@revealui/core 0.0.0-canary-20260409021642
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/LICENSE +22 -0
- package/README.md +171 -0
- package/dist/api/compression.d.ts +83 -0
- package/dist/api/compression.d.ts.map +1 -0
- package/dist/api/compression.js +233 -0
- package/dist/api/payload-optimization.d.ts +138 -0
- package/dist/api/payload-optimization.d.ts.map +1 -0
- package/dist/api/payload-optimization.js +320 -0
- package/dist/api/rate-limit.d.ts +114 -0
- package/dist/api/rate-limit.d.ts.map +1 -0
- package/dist/api/rate-limit.js +376 -0
- package/dist/api/response-cache.d.ts +125 -0
- package/dist/api/response-cache.d.ts.map +1 -0
- package/dist/api/response-cache.js +335 -0
- package/dist/api/rest.d.ts +54 -0
- package/dist/api/rest.d.ts.map +1 -0
- package/dist/api/rest.js +465 -0
- package/dist/auth/access.d.ts +25 -0
- package/dist/auth/access.d.ts.map +1 -0
- package/dist/auth/access.js +20 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +2 -0
- package/dist/cache/query-cache.d.ts +100 -0
- package/dist/cache/query-cache.d.ts.map +1 -0
- package/dist/cache/query-cache.js +266 -0
- package/dist/caching/index.d.ts +6 -0
- package/dist/caching/index.d.ts.map +1 -0
- package/dist/caching/index.js +5 -0
- package/dist/client/admin/RichText.d.ts +12 -0
- package/dist/client/admin/RichText.d.ts.map +1 -0
- package/dist/client/admin/RichText.js +5 -0
- package/dist/client/admin/components/AdminDashboard.d.ts +7 -0
- package/dist/client/admin/components/AdminDashboard.d.ts.map +1 -0
- package/dist/client/admin/components/AdminDashboard.js +308 -0
- package/dist/client/admin/components/CollectionList.d.ts +16 -0
- package/dist/client/admin/components/CollectionList.d.ts.map +1 -0
- package/dist/client/admin/components/CollectionList.js +67 -0
- package/dist/client/admin/components/DocumentForm.d.ts +11 -0
- package/dist/client/admin/components/DocumentForm.d.ts.map +1 -0
- package/dist/client/admin/components/DocumentForm.js +223 -0
- package/dist/client/admin/components/GlobalForm.d.ts +11 -0
- package/dist/client/admin/components/GlobalForm.d.ts.map +1 -0
- package/dist/client/admin/components/GlobalForm.js +74 -0
- package/dist/client/admin/context/ServerFunctionContext.d.ts +8 -0
- package/dist/client/admin/context/ServerFunctionContext.d.ts.map +1 -0
- package/dist/client/admin/context/ServerFunctionContext.js +15 -0
- package/dist/client/admin/i18n/en.d.ts +25 -0
- package/dist/client/admin/i18n/en.d.ts.map +1 -0
- package/dist/client/admin/i18n/en.js +25 -0
- package/dist/client/admin/index.d.ts +11 -0
- package/dist/client/admin/index.d.ts.map +1 -0
- package/dist/client/admin/index.js +11 -0
- package/dist/client/admin/layout.d.ts +10 -0
- package/dist/client/admin/layout.d.ts.map +1 -0
- package/dist/client/admin/layout.js +7 -0
- package/dist/client/admin/page.d.ts +38 -0
- package/dist/client/admin/page.d.ts.map +1 -0
- package/dist/client/admin/page.js +15 -0
- package/dist/client/admin/utils/apiClient.d.ts +110 -0
- package/dist/client/admin/utils/apiClient.d.ts.map +1 -0
- package/dist/client/admin/utils/apiClient.js +216 -0
- package/dist/client/admin/utils/index.d.ts +5 -0
- package/dist/client/admin/utils/index.d.ts.map +1 -0
- package/dist/client/admin/utils/index.js +4 -0
- package/dist/client/admin/utils/serializeConfig.d.ts +7 -0
- package/dist/client/admin/utils/serializeConfig.d.ts.map +1 -0
- package/dist/client/admin/utils/serializeConfig.js +35 -0
- package/dist/client/hooks.d.ts +18 -0
- package/dist/client/hooks.d.ts.map +1 -0
- package/dist/client/hooks.js +29 -0
- package/dist/client/index.d.ts +11 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +13 -0
- package/dist/client/richtext/RichTextEditor.d.ts +48 -0
- package/dist/client/richtext/RichTextEditor.d.ts.map +1 -0
- package/dist/client/richtext/RichTextEditor.js +360 -0
- package/dist/client/richtext/components/ImageNodeComponent.d.ts +9 -0
- package/dist/client/richtext/components/ImageNodeComponent.d.ts.map +1 -0
- package/dist/client/richtext/components/ImageNodeComponent.js +98 -0
- package/dist/client/richtext/components/ImageUploadButton.d.ts +13 -0
- package/dist/client/richtext/components/ImageUploadButton.d.ts.map +1 -0
- package/dist/client/richtext/components/ImageUploadButton.js +118 -0
- package/dist/client/richtext/index.d.ts +92 -0
- package/dist/client/richtext/index.d.ts.map +1 -0
- package/dist/client/richtext/index.js +74 -0
- package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts +20 -0
- package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts.map +1 -0
- package/dist/client/richtext/nodes/DecoratorBlockNode.js +29 -0
- package/dist/client/richtext/nodes/ImageNode.d.ts +51 -0
- package/dist/client/richtext/nodes/ImageNode.d.ts.map +1 -0
- package/dist/client/richtext/nodes/ImageNode.js +95 -0
- package/dist/client/richtext/plugins/CollaborationPlugin.d.ts +13 -0
- package/dist/client/richtext/plugins/CollaborationPlugin.d.ts.map +1 -0
- package/dist/client/richtext/plugins/CollaborationPlugin.js +8 -0
- package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts +4 -0
- package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts.map +1 -0
- package/dist/client/richtext/plugins/CursorsOverlayPlugin.js +50 -0
- package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts +7 -0
- package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts.map +1 -0
- package/dist/client/richtext/plugins/FloatingToolbarPlugin.js +246 -0
- package/dist/client/richtext/plugins/ImagePlugin.d.ts +3 -0
- package/dist/client/richtext/plugins/ImagePlugin.d.ts.map +1 -0
- package/dist/client/richtext/plugins/ImagePlugin.js +73 -0
- package/dist/client/richtext/plugins/PastePlugin.d.ts +2 -0
- package/dist/client/richtext/plugins/PastePlugin.d.ts.map +1 -0
- package/dist/client/richtext/plugins/PastePlugin.js +36 -0
- package/dist/client/richtext/plugins/ToolbarPlugin.d.ts +8 -0
- package/dist/client/richtext/plugins/ToolbarPlugin.d.ts.map +1 -0
- package/dist/client/richtext/plugins/ToolbarPlugin.js +204 -0
- package/dist/client/ui/index.d.ts +111 -0
- package/dist/client/ui/index.d.ts.map +1 -0
- package/dist/client/ui/index.js +130 -0
- package/dist/collections/CollectionOperations.d.ts +27 -0
- package/dist/collections/CollectionOperations.d.ts.map +1 -0
- package/dist/collections/CollectionOperations.js +48 -0
- package/dist/collections/hooks.d.ts +11 -0
- package/dist/collections/hooks.d.ts.map +1 -0
- package/dist/collections/hooks.js +35 -0
- package/dist/collections/index.d.ts +2 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +1 -0
- package/dist/collections/operations/create.d.ts +9 -0
- package/dist/collections/operations/create.d.ts.map +1 -0
- package/dist/collections/operations/create.js +130 -0
- package/dist/collections/operations/createMany.d.ts +12 -0
- package/dist/collections/operations/createMany.d.ts.map +1 -0
- package/dist/collections/operations/createMany.js +43 -0
- package/dist/collections/operations/delete.d.ts +10 -0
- package/dist/collections/operations/delete.d.ts.map +1 -0
- package/dist/collections/operations/delete.js +45 -0
- package/dist/collections/operations/deleteMany.d.ts +11 -0
- package/dist/collections/operations/deleteMany.d.ts.map +1 -0
- package/dist/collections/operations/deleteMany.js +50 -0
- package/dist/collections/operations/fieldHooks.d.ts +21 -0
- package/dist/collections/operations/fieldHooks.d.ts.map +1 -0
- package/dist/collections/operations/fieldHooks.js +51 -0
- package/dist/collections/operations/find.d.ts +8 -0
- package/dist/collections/operations/find.d.ts.map +1 -0
- package/dist/collections/operations/find.js +231 -0
- package/dist/collections/operations/findById.d.ts +14 -0
- package/dist/collections/operations/findById.d.ts.map +1 -0
- package/dist/collections/operations/findById.js +111 -0
- package/dist/collections/operations/sqlAdapter.d.ts +23 -0
- package/dist/collections/operations/sqlAdapter.d.ts.map +1 -0
- package/dist/collections/operations/sqlAdapter.js +108 -0
- package/dist/collections/operations/update.d.ts +8 -0
- package/dist/collections/operations/update.d.ts.map +1 -0
- package/dist/collections/operations/update.js +226 -0
- package/dist/collections/operations/updateMany.d.ts +11 -0
- package/dist/collections/operations/updateMany.d.ts.map +1 -0
- package/dist/collections/operations/updateMany.js +52 -0
- package/dist/collections/registry.d.ts +12 -0
- package/dist/collections/registry.d.ts.map +1 -0
- package/dist/collections/registry.js +38 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +61 -0
- package/dist/config/runtime.d.ts +22 -0
- package/dist/config/runtime.d.ts.map +1 -0
- package/dist/config/runtime.js +32 -0
- package/dist/config/utils.d.ts +2 -0
- package/dist/config/utils.d.ts.map +1 -0
- package/dist/config/utils.js +21 -0
- package/dist/database/index.d.ts +4 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +2 -0
- package/dist/database/safe-parse.d.ts +26 -0
- package/dist/database/safe-parse.d.ts.map +1 -0
- package/dist/database/safe-parse.js +42 -0
- package/dist/database/ssl-config.d.ts +9 -0
- package/dist/database/ssl-config.d.ts.map +1 -0
- package/dist/database/ssl-config.js +7 -0
- package/dist/database/type-adapter.d.ts +113 -0
- package/dist/database/type-adapter.d.ts.map +1 -0
- package/dist/database/type-adapter.js +97 -0
- package/dist/database/universal-postgres.d.ts +45 -0
- package/dist/database/universal-postgres.d.ts.map +1 -0
- package/dist/database/universal-postgres.js +531 -0
- package/dist/dataloader.d.ts +26 -0
- package/dist/dataloader.d.ts.map +1 -0
- package/dist/dataloader.js +176 -0
- package/dist/error-handling/error-boundary.d.ts +94 -0
- package/dist/error-handling/error-boundary.d.ts.map +1 -0
- package/dist/error-handling/error-boundary.js +285 -0
- package/dist/error-handling/error-reporter.d.ts +214 -0
- package/dist/error-handling/error-reporter.d.ts.map +1 -0
- package/dist/error-handling/error-reporter.js +491 -0
- package/dist/error-handling/fallback-components.d.ts +131 -0
- package/dist/error-handling/fallback-components.d.ts.map +1 -0
- package/dist/error-handling/fallback-components.js +371 -0
- package/dist/error-handling/index.d.ts +14 -0
- package/dist/error-handling/index.d.ts.map +1 -0
- package/dist/error-handling/index.js +12 -0
- package/dist/factories/builders.d.ts +50 -0
- package/dist/factories/builders.d.ts.map +1 -0
- package/dist/factories/builders.js +77 -0
- package/dist/factories/index.d.ts +2 -0
- package/dist/factories/index.d.ts.map +1 -0
- package/dist/factories/index.js +1 -0
- package/dist/features.d.ts +88 -0
- package/dist/features.d.ts.map +1 -0
- package/dist/features.js +105 -0
- package/dist/fieldTraversal.d.ts +26 -0
- package/dist/fieldTraversal.d.ts.map +1 -0
- package/dist/fieldTraversal.js +132 -0
- package/dist/fields/config/types.d.ts +48 -0
- package/dist/fields/config/types.d.ts.map +1 -0
- package/dist/fields/config/types.js +20 -0
- package/dist/fields/getDefaultValue.d.ts +16 -0
- package/dist/fields/getDefaultValue.d.ts.map +1 -0
- package/dist/fields/getDefaultValue.js +20 -0
- package/dist/fields/getFieldPaths.d.ts +25 -0
- package/dist/fields/getFieldPaths.d.ts.map +1 -0
- package/dist/fields/getFieldPaths.js +23 -0
- package/dist/fields/hooks/afterRead/index.d.ts +36 -0
- package/dist/fields/hooks/afterRead/index.d.ts.map +1 -0
- package/dist/fields/hooks/afterRead/index.js +70 -0
- package/dist/fields/hooks/afterRead/promise.d.ts +46 -0
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -0
- package/dist/fields/hooks/afterRead/promise.js +178 -0
- package/dist/fields/hooks/afterRead/traverseFields.d.ts +44 -0
- package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -0
- package/dist/fields/hooks/afterRead/traverseFields.js +37 -0
- package/dist/generated/index.d.ts +10 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +9 -0
- package/dist/generated/types/cms.d.ts +1766 -0
- package/dist/generated/types/cms.d.ts.map +1 -0
- package/dist/generated/types/cms.js +11 -0
- package/dist/generated/types/index.d.ts +16 -0
- package/dist/generated/types/index.d.ts.map +1 -0
- package/dist/generated/types/index.js +21 -0
- package/dist/generated/types/neon.d.ts +11 -0
- package/dist/generated/types/neon.d.ts.map +1 -0
- package/dist/generated/types/neon.js +13 -0
- package/dist/globals/GlobalOperations.d.ts +24 -0
- package/dist/globals/GlobalOperations.d.ts.map +1 -0
- package/dist/globals/GlobalOperations.js +165 -0
- package/dist/globals/index.d.ts +2 -0
- package/dist/globals/index.d.ts.map +1 -0
- package/dist/globals/index.js +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +136 -0
- package/dist/instance/RevealUIInstance.d.ts +6 -0
- package/dist/instance/RevealUIInstance.d.ts.map +1 -0
- package/dist/instance/RevealUIInstance.js +293 -0
- package/dist/instance/index.d.ts +3 -0
- package/dist/instance/index.d.ts.map +1 -0
- package/dist/instance/index.js +2 -0
- package/dist/instance/logger.d.ts +31 -0
- package/dist/instance/logger.d.ts.map +1 -0
- package/dist/instance/logger.js +42 -0
- package/dist/instance/methods/create.d.ts +10 -0
- package/dist/instance/methods/create.d.ts.map +1 -0
- package/dist/instance/methods/create.js +38 -0
- package/dist/instance/methods/delete.d.ts +10 -0
- package/dist/instance/methods/delete.d.ts.map +1 -0
- package/dist/instance/methods/delete.js +24 -0
- package/dist/instance/methods/find.d.ts +10 -0
- package/dist/instance/methods/find.d.ts.map +1 -0
- package/dist/instance/methods/find.js +20 -0
- package/dist/instance/methods/findById.d.ts +13 -0
- package/dist/instance/methods/findById.d.ts.map +1 -0
- package/dist/instance/methods/findById.js +20 -0
- package/dist/instance/methods/hooks.d.ts +14 -0
- package/dist/instance/methods/hooks.d.ts.map +1 -0
- package/dist/instance/methods/hooks.js +34 -0
- package/dist/instance/methods/update.d.ts +10 -0
- package/dist/instance/methods/update.d.ts.map +1 -0
- package/dist/instance/methods/update.js +42 -0
- package/dist/jobs/index.d.ts +16 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +14 -0
- package/dist/jobs/queue.d.ts +57 -0
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/queue.js +134 -0
- package/dist/license-encryption.d.ts +21 -0
- package/dist/license-encryption.d.ts.map +1 -0
- package/dist/license-encryption.js +74 -0
- package/dist/license.d.ts +99 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +262 -0
- package/dist/monitoring/alerts.d.ts +118 -0
- package/dist/monitoring/alerts.d.ts.map +1 -0
- package/dist/monitoring/alerts.js +324 -0
- package/dist/monitoring/cleanup-manager.d.ts +71 -0
- package/dist/monitoring/cleanup-manager.d.ts.map +1 -0
- package/dist/monitoring/cleanup-manager.js +226 -0
- package/dist/monitoring/health-monitor.d.ts +22 -0
- package/dist/monitoring/health-monitor.d.ts.map +1 -0
- package/dist/monitoring/health-monitor.js +142 -0
- package/dist/monitoring/index.d.ts +14 -0
- package/dist/monitoring/index.d.ts.map +1 -0
- package/dist/monitoring/index.js +17 -0
- package/dist/monitoring/process-registry.d.ts +97 -0
- package/dist/monitoring/process-registry.d.ts.map +1 -0
- package/dist/monitoring/process-registry.js +222 -0
- package/dist/monitoring/query-monitor.d.ts +153 -0
- package/dist/monitoring/query-monitor.d.ts.map +1 -0
- package/dist/monitoring/query-monitor.js +209 -0
- package/dist/monitoring/types.d.ts +231 -0
- package/dist/monitoring/types.d.ts.map +1 -0
- package/dist/monitoring/types.js +42 -0
- package/dist/monitoring/zombie-detector.d.ts +81 -0
- package/dist/monitoring/zombie-detector.d.ts.map +1 -0
- package/dist/monitoring/zombie-detector.js +236 -0
- package/dist/nextjs/index.d.ts +4 -0
- package/dist/nextjs/index.d.ts.map +1 -0
- package/dist/nextjs/index.js +3 -0
- package/dist/nextjs/utilities.d.ts +5 -0
- package/dist/nextjs/utilities.d.ts.map +1 -0
- package/dist/nextjs/utilities.js +16 -0
- package/dist/nextjs/withRevealUI.d.ts +20 -0
- package/dist/nextjs/withRevealUI.d.ts.map +1 -0
- package/dist/nextjs/withRevealUI.js +181 -0
- package/dist/observability/alerts.d.ts +138 -0
- package/dist/observability/alerts.d.ts.map +1 -0
- package/dist/observability/alerts.js +389 -0
- package/dist/observability/health-check.d.ts +91 -0
- package/dist/observability/health-check.d.ts.map +1 -0
- package/dist/observability/health-check.js +345 -0
- package/dist/observability/index.d.ts +12 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +11 -0
- package/dist/observability/logger.d.ts +47 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +140 -0
- package/dist/observability/metrics.d.ts +205 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +429 -0
- package/dist/observability/tracing.d.ts +149 -0
- package/dist/observability/tracing.d.ts.map +1 -0
- package/dist/observability/tracing.js +380 -0
- package/dist/plugins/form-builder.d.ts +115 -0
- package/dist/plugins/form-builder.d.ts.map +1 -0
- package/dist/plugins/form-builder.js +239 -0
- package/dist/plugins/index.d.ts +5 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +4 -0
- package/dist/plugins/nested-docs.d.ts +12 -0
- package/dist/plugins/nested-docs.d.ts.map +1 -0
- package/dist/plugins/nested-docs.js +111 -0
- package/dist/plugins/redirects.d.ts +17 -0
- package/dist/plugins/redirects.d.ts.map +1 -0
- package/dist/plugins/redirects.js +62 -0
- package/dist/queries/index.d.ts +2 -0
- package/dist/queries/index.d.ts.map +1 -0
- package/dist/queries/index.js +1 -0
- package/dist/queries/queryBuilder.d.ts +47 -0
- package/dist/queries/queryBuilder.d.ts.map +1 -0
- package/dist/queries/queryBuilder.js +276 -0
- package/dist/relationships/analyzer.d.ts +39 -0
- package/dist/relationships/analyzer.d.ts.map +1 -0
- package/dist/relationships/analyzer.js +135 -0
- package/dist/relationships/index.d.ts +3 -0
- package/dist/relationships/index.d.ts.map +1 -0
- package/dist/relationships/index.js +2 -0
- package/dist/relationships/populate-core.d.ts +57 -0
- package/dist/relationships/populate-core.d.ts.map +1 -0
- package/dist/relationships/populate-core.js +116 -0
- package/dist/relationships/populate-helpers.d.ts +58 -0
- package/dist/relationships/populate-helpers.d.ts.map +1 -0
- package/dist/relationships/populate-helpers.js +82 -0
- package/dist/relationships/population.d.ts +34 -0
- package/dist/relationships/population.d.ts.map +1 -0
- package/dist/relationships/population.js +193 -0
- package/dist/revealui.d.ts +46 -0
- package/dist/revealui.d.ts.map +1 -0
- package/dist/revealui.js +92 -0
- package/dist/richtext/exports/client/rcc.d.ts +37 -0
- package/dist/richtext/exports/client/rcc.d.ts.map +1 -0
- package/dist/richtext/exports/client/rcc.js +182 -0
- package/dist/richtext/exports/server/rsc.d.ts +134 -0
- package/dist/richtext/exports/server/rsc.d.ts.map +1 -0
- package/dist/richtext/exports/server/rsc.js +344 -0
- package/dist/richtext/index.d.ts +161 -0
- package/dist/richtext/index.d.ts.map +1 -0
- package/dist/richtext/index.js +243 -0
- package/dist/richtext/lexical.d.ts +23 -0
- package/dist/richtext/lexical.d.ts.map +1 -0
- package/dist/richtext/lexical.js +35 -0
- package/dist/security/index.d.ts +6 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +5 -0
- package/dist/server/index.d.ts +21 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +28 -0
- package/dist/server/renderPage.d.ts +69 -0
- package/dist/server/renderPage.d.ts.map +1 -0
- package/dist/server/renderPage.js +109 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +2 -0
- package/dist/storage/vercel-blob.d.ts +17 -0
- package/dist/storage/vercel-blob.d.ts.map +1 -0
- package/dist/storage/vercel-blob.js +86 -0
- package/dist/translations/index.d.ts +17 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +1 -0
- package/dist/types/access.d.ts +67 -0
- package/dist/types/access.d.ts.map +1 -0
- package/dist/types/access.js +8 -0
- package/dist/types/api.d.ts +57 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +8 -0
- package/dist/types/cms.d.ts +8 -0
- package/dist/types/cms.d.ts.map +1 -0
- package/dist/types/cms.js +6 -0
- package/dist/types/config.d.ts +152 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +9 -0
- package/dist/types/core.d.ts +11 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +9 -0
- package/dist/types/extensions.d.ts +116 -0
- package/dist/types/extensions.d.ts.map +1 -0
- package/dist/types/extensions.js +8 -0
- package/dist/types/frontend.d.ts +53 -0
- package/dist/types/frontend.d.ts.map +1 -0
- package/dist/types/frontend.js +7 -0
- package/dist/types/generated.d.ts +12 -0
- package/dist/types/generated.d.ts.map +1 -0
- package/dist/types/generated.js +10 -0
- package/dist/types/hooks.d.ts +53 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/hooks.js +8 -0
- package/dist/types/index.d.ts +49 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +61 -0
- package/dist/types/interfaces/app.d.ts +50 -0
- package/dist/types/interfaces/app.d.ts.map +1 -0
- package/dist/types/interfaces/app.js +5 -0
- package/dist/types/jobs.d.ts +112 -0
- package/dist/types/jobs.d.ts.map +1 -0
- package/dist/types/jobs.js +7 -0
- package/dist/types/legacy.d.ts +147 -0
- package/dist/types/legacy.d.ts.map +1 -0
- package/dist/types/legacy.js +8 -0
- package/dist/types/plugins.d.ts +17 -0
- package/dist/types/plugins.d.ts.map +1 -0
- package/dist/types/plugins.js +8 -0
- package/dist/types/query.d.ts +99 -0
- package/dist/types/query.d.ts.map +1 -0
- package/dist/types/query.js +24 -0
- package/dist/types/request.d.ts +40 -0
- package/dist/types/request.d.ts.map +1 -0
- package/dist/types/request.js +8 -0
- package/dist/types/richtext.d.ts +23 -0
- package/dist/types/richtext.d.ts.map +1 -0
- package/dist/types/richtext.js +8 -0
- package/dist/types/runtime.d.ts +275 -0
- package/dist/types/runtime.d.ts.map +1 -0
- package/dist/types/runtime.js +9 -0
- package/dist/types/schema.d.ts +9 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +7 -0
- package/dist/types/user.d.ts +48 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +8 -0
- package/dist/utils/access-conversion.d.ts +17 -0
- package/dist/utils/access-conversion.d.ts.map +1 -0
- package/dist/utils/access-conversion.js +96 -0
- package/dist/utils/api-wrapper.d.ts +63 -0
- package/dist/utils/api-wrapper.d.ts.map +1 -0
- package/dist/utils/api-wrapper.js +151 -0
- package/dist/utils/block-conversion.d.ts +21 -0
- package/dist/utils/block-conversion.d.ts.map +1 -0
- package/dist/utils/block-conversion.js +109 -0
- package/dist/utils/cache.d.ts +86 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +154 -0
- package/dist/utils/deep-clone.d.ts +25 -0
- package/dist/utils/deep-clone.d.ts.map +1 -0
- package/dist/utils/deep-clone.js +114 -0
- package/dist/utils/error-responses.d.ts +57 -0
- package/dist/utils/error-responses.d.ts.map +1 -0
- package/dist/utils/error-responses.js +95 -0
- package/dist/utils/errors.d.ts +133 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +500 -0
- package/dist/utils/field-conversion.d.ts +40 -0
- package/dist/utils/field-conversion.d.ts.map +1 -0
- package/dist/utils/field-conversion.js +275 -0
- package/dist/utils/flattenResult.d.ts +7 -0
- package/dist/utils/flattenResult.d.ts.map +1 -0
- package/dist/utils/flattenResult.js +22 -0
- package/dist/utils/getBlockSelect.d.ts +12 -0
- package/dist/utils/getBlockSelect.d.ts.map +1 -0
- package/dist/utils/getBlockSelect.js +12 -0
- package/dist/utils/getSelectMode.d.ts +8 -0
- package/dist/utils/getSelectMode.d.ts.map +1 -0
- package/dist/utils/getSelectMode.js +21 -0
- package/dist/utils/isValidID.d.ts +5 -0
- package/dist/utils/isValidID.d.ts.map +1 -0
- package/dist/utils/isValidID.js +13 -0
- package/dist/utils/json-parsing.d.ts +48 -0
- package/dist/utils/json-parsing.d.ts.map +1 -0
- package/dist/utils/json-parsing.js +130 -0
- package/dist/utils/logger-client.d.ts +32 -0
- package/dist/utils/logger-client.d.ts.map +1 -0
- package/dist/utils/logger-client.js +55 -0
- package/dist/utils/logger-server.d.ts +32 -0
- package/dist/utils/logger-server.d.ts.map +1 -0
- package/dist/utils/logger-server.js +68 -0
- package/dist/utils/logger.d.ts +14 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +12 -0
- package/dist/utils/request-context.d.ts +143 -0
- package/dist/utils/request-context.d.ts.map +1 -0
- package/dist/utils/request-context.js +168 -0
- package/dist/utils/stripUnselectedFields.d.ts +10 -0
- package/dist/utils/stripUnselectedFields.d.ts.map +1 -0
- package/dist/utils/stripUnselectedFields.js +20 -0
- package/dist/utils/type-guards.d.ts +33 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +63 -0
- package/dist/utils/user.d.ts +14 -0
- package/dist/utils/user.d.ts.map +1 -0
- package/dist/utils/user.js +15 -0
- package/package.json +302 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Payload Optimization
|
|
3
|
+
*
|
|
4
|
+
* Reduces payload size through field selection, pagination, and data transformation
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Paginate array of items
|
|
8
|
+
*/
|
|
9
|
+
export function paginateArray(items, options = {}) {
|
|
10
|
+
const { page = 1, limit = options.defaultLimit || 20, maxLimit = 100 } = options;
|
|
11
|
+
// Enforce max limit
|
|
12
|
+
const effectiveLimit = Math.min(limit, maxLimit);
|
|
13
|
+
// Calculate offset
|
|
14
|
+
const offset = (page - 1) * effectiveLimit;
|
|
15
|
+
// Slice data
|
|
16
|
+
const data = items.slice(offset, offset + effectiveLimit);
|
|
17
|
+
return {
|
|
18
|
+
data,
|
|
19
|
+
pagination: {
|
|
20
|
+
page,
|
|
21
|
+
limit: effectiveLimit,
|
|
22
|
+
total: items.length,
|
|
23
|
+
hasMore: offset + effectiveLimit < items.length,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create cursor for cursor-based pagination
|
|
29
|
+
*/
|
|
30
|
+
export function createCursor(item, field = 'id') {
|
|
31
|
+
const value = item[field];
|
|
32
|
+
return Buffer.from(JSON.stringify({ field, value })).toString('base64');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse cursor
|
|
36
|
+
*/
|
|
37
|
+
export function parseCursor(cursor) {
|
|
38
|
+
try {
|
|
39
|
+
const decoded = Buffer.from(cursor, 'base64').toString('utf-8');
|
|
40
|
+
return JSON.parse(decoded);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Select fields from object
|
|
48
|
+
*/
|
|
49
|
+
export function selectFields(obj, options) {
|
|
50
|
+
const { include, exclude, defaultFields } = options;
|
|
51
|
+
// If include is specified, only include those fields
|
|
52
|
+
if (include && include.length > 0) {
|
|
53
|
+
const result = {};
|
|
54
|
+
for (const field of include) {
|
|
55
|
+
if (field in obj) {
|
|
56
|
+
result[field] = obj[field];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
// If exclude is specified, exclude those fields
|
|
62
|
+
if (exclude && exclude.length > 0) {
|
|
63
|
+
const result = { ...obj };
|
|
64
|
+
for (const field of exclude) {
|
|
65
|
+
delete result[field];
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
// Use default fields
|
|
70
|
+
if (defaultFields && defaultFields.length > 0) {
|
|
71
|
+
const result = {};
|
|
72
|
+
for (const field of defaultFields) {
|
|
73
|
+
if (field in obj) {
|
|
74
|
+
result[field] = obj[field];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
// Return all fields
|
|
80
|
+
return obj;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Select fields from array of objects
|
|
84
|
+
*/
|
|
85
|
+
export function selectFieldsFromArray(items, options) {
|
|
86
|
+
return items.map((item) => selectFields(item, options));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Remove null and undefined values
|
|
90
|
+
*/
|
|
91
|
+
export function removeEmpty(obj) {
|
|
92
|
+
const result = {};
|
|
93
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
94
|
+
if (value !== null && value !== undefined) {
|
|
95
|
+
result[key] = value;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Flatten nested object
|
|
102
|
+
*/
|
|
103
|
+
export function flattenObject(obj, prefix = '') {
|
|
104
|
+
const result = {};
|
|
105
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
106
|
+
const newKey = prefix ? `${prefix}.${key}` : key;
|
|
107
|
+
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
108
|
+
Object.assign(result, flattenObject(value, newKey));
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
result[newKey] = value;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Minimize JSON response size
|
|
118
|
+
*/
|
|
119
|
+
export function minimizeJSON(data) {
|
|
120
|
+
return JSON.stringify(data, null, 0);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Format JSON response (for development)
|
|
124
|
+
*/
|
|
125
|
+
export function formatJSON(data) {
|
|
126
|
+
return JSON.stringify(data, null, 2);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Remove sensitive fields
|
|
130
|
+
*/
|
|
131
|
+
export function sanitizeResponse(obj, sensitiveFields = ['password', 'secret', 'token', 'apiKey']) {
|
|
132
|
+
return selectFields(obj, { exclude: sensitiveFields });
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Transform timestamps to ISO strings
|
|
136
|
+
*/
|
|
137
|
+
export function transformDates(obj) {
|
|
138
|
+
const result = {};
|
|
139
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
140
|
+
if (value instanceof Date) {
|
|
141
|
+
result[key] = value.toISOString();
|
|
142
|
+
}
|
|
143
|
+
else if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
144
|
+
result[key] = transformDates(value);
|
|
145
|
+
}
|
|
146
|
+
else if (Array.isArray(value)) {
|
|
147
|
+
result[key] = value.map((item) => typeof item === 'object' && item !== null
|
|
148
|
+
? transformDates(item)
|
|
149
|
+
: item);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
result[key] = value;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Calculate payload size in bytes
|
|
159
|
+
*/
|
|
160
|
+
export function getPayloadSize(data) {
|
|
161
|
+
const json = JSON.stringify(data);
|
|
162
|
+
return new Blob([json]).size;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get payload size in human-readable format
|
|
166
|
+
*/
|
|
167
|
+
export function formatPayloadSize(bytes) {
|
|
168
|
+
if (bytes < 1024)
|
|
169
|
+
return `${bytes} B`;
|
|
170
|
+
if (bytes < 1024 * 1024)
|
|
171
|
+
return `${(bytes / 1024).toFixed(2)} KB`;
|
|
172
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
|
|
173
|
+
}
|
|
174
|
+
export function optimizePayload(data, options = {}) {
|
|
175
|
+
const originalSize = getPayloadSize(data);
|
|
176
|
+
let optimized = data;
|
|
177
|
+
// Select fields
|
|
178
|
+
if (Array.isArray(data)) {
|
|
179
|
+
optimized = selectFieldsFromArray(data, options);
|
|
180
|
+
}
|
|
181
|
+
else if (typeof data === 'object' && data !== null) {
|
|
182
|
+
optimized = selectFields(data, options);
|
|
183
|
+
}
|
|
184
|
+
// Remove empty values
|
|
185
|
+
if (options.removeEmpty) {
|
|
186
|
+
if (Array.isArray(optimized)) {
|
|
187
|
+
optimized = optimized.map((item) => removeEmpty(item));
|
|
188
|
+
}
|
|
189
|
+
else if (optimized !== null && typeof optimized === 'object') {
|
|
190
|
+
optimized = removeEmpty(optimized);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// Transform dates
|
|
194
|
+
if (options.transformDates) {
|
|
195
|
+
if (Array.isArray(optimized)) {
|
|
196
|
+
optimized = optimized.map((item) => transformDates(item));
|
|
197
|
+
}
|
|
198
|
+
else if (optimized !== null && typeof optimized === 'object') {
|
|
199
|
+
optimized = transformDates(optimized);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Sanitize
|
|
203
|
+
if (options.sanitize) {
|
|
204
|
+
if (Array.isArray(optimized)) {
|
|
205
|
+
optimized = optimized.map((item) => sanitizeResponse(item));
|
|
206
|
+
}
|
|
207
|
+
else if (optimized !== null && typeof optimized === 'object') {
|
|
208
|
+
optimized = sanitizeResponse(optimized);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const optimizedSize = getPayloadSize(optimized);
|
|
212
|
+
const savings = originalSize - optimizedSize;
|
|
213
|
+
const savingsPercent = (savings / originalSize) * 100;
|
|
214
|
+
return {
|
|
215
|
+
data: optimized,
|
|
216
|
+
originalSize,
|
|
217
|
+
optimizedSize,
|
|
218
|
+
savings,
|
|
219
|
+
savingsPercent,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Create API response with optimized payload
|
|
224
|
+
*/
|
|
225
|
+
export function createOptimizedResponse(data, options = {}) {
|
|
226
|
+
let result = data;
|
|
227
|
+
// Paginate if array
|
|
228
|
+
if (Array.isArray(data) && options.pagination) {
|
|
229
|
+
const paginated = paginateArray(data, options.pagination);
|
|
230
|
+
result = {
|
|
231
|
+
data: paginated.data,
|
|
232
|
+
meta: {
|
|
233
|
+
pagination: paginated.pagination,
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
// Optimize payload
|
|
238
|
+
if (options.optimize) {
|
|
239
|
+
const optimized = optimizePayload(result, options.fields || {});
|
|
240
|
+
const resultWithMeta = result;
|
|
241
|
+
return {
|
|
242
|
+
data: optimized.data,
|
|
243
|
+
meta: {
|
|
244
|
+
...(resultWithMeta.meta && typeof resultWithMeta.meta === 'object'
|
|
245
|
+
? resultWithMeta.meta
|
|
246
|
+
: {}),
|
|
247
|
+
size: {
|
|
248
|
+
original: formatPayloadSize(optimized.originalSize),
|
|
249
|
+
optimized: formatPayloadSize(optimized.optimizedSize),
|
|
250
|
+
savings: `${optimized.savingsPercent.toFixed(1)}%`,
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
return { data: result };
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Parse field selection from query params
|
|
259
|
+
*/
|
|
260
|
+
export function parseFieldsFromQuery(query) {
|
|
261
|
+
const params = new URLSearchParams(query);
|
|
262
|
+
const include = params.get('fields')?.split(',').filter(Boolean);
|
|
263
|
+
const exclude = params.get('exclude')?.split(',').filter(Boolean);
|
|
264
|
+
return {
|
|
265
|
+
include,
|
|
266
|
+
exclude,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Parse pagination from query params
|
|
271
|
+
*/
|
|
272
|
+
export function parsePaginationFromQuery(query) {
|
|
273
|
+
const params = new URLSearchParams(query);
|
|
274
|
+
const page = parseInt(params.get('page') || '1', 10);
|
|
275
|
+
const limit = parseInt(params.get('limit') || '20', 10);
|
|
276
|
+
const cursor = params.get('cursor') || undefined;
|
|
277
|
+
return {
|
|
278
|
+
page,
|
|
279
|
+
limit,
|
|
280
|
+
cursor,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Batch responses to reduce round trips
|
|
285
|
+
*/
|
|
286
|
+
export function batchResponses(responses) {
|
|
287
|
+
const result = {};
|
|
288
|
+
for (const { key, data } of responses) {
|
|
289
|
+
result[key] = data;
|
|
290
|
+
}
|
|
291
|
+
return result;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Create partial response (for large objects)
|
|
295
|
+
*/
|
|
296
|
+
export function createPartialResponse(obj, maxDepth = 2, currentDepth = 0) {
|
|
297
|
+
if (currentDepth >= maxDepth) {
|
|
298
|
+
return '[truncated]';
|
|
299
|
+
}
|
|
300
|
+
const result = {};
|
|
301
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
302
|
+
if (Array.isArray(value)) {
|
|
303
|
+
result[key] = value
|
|
304
|
+
.slice(0, 10)
|
|
305
|
+
.map((item) => typeof item === 'object' && item !== null
|
|
306
|
+
? createPartialResponse(item, maxDepth, currentDepth + 1)
|
|
307
|
+
: item);
|
|
308
|
+
if (value.length > 10) {
|
|
309
|
+
result[`${key}_count`] = value.length;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
else if (value !== null && typeof value === 'object') {
|
|
313
|
+
result[key] = createPartialResponse(value, maxDepth, currentDepth + 1);
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
result[key] = value;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return result;
|
|
320
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Rate Limiting
|
|
3
|
+
*
|
|
4
|
+
* Implements rate limiting to prevent API abuse
|
|
5
|
+
*/
|
|
6
|
+
import { type NextRequest, NextResponse } from 'next/server';
|
|
7
|
+
interface RateLimitConfig {
|
|
8
|
+
windowMs: number;
|
|
9
|
+
maxRequests: number;
|
|
10
|
+
keyGenerator?: (request: NextRequest) => string;
|
|
11
|
+
skip?: (request: NextRequest) => boolean;
|
|
12
|
+
handler?: (request: NextRequest) => NextResponse;
|
|
13
|
+
}
|
|
14
|
+
interface RateLimitEntry {
|
|
15
|
+
count: number;
|
|
16
|
+
resetTime: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check if rate limit exceeded
|
|
20
|
+
*/
|
|
21
|
+
export declare function checkRateLimit(request: NextRequest, config: RateLimitConfig): {
|
|
22
|
+
allowed: boolean;
|
|
23
|
+
limit: number;
|
|
24
|
+
remaining: number;
|
|
25
|
+
resetTime: number;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Create rate limit middleware
|
|
29
|
+
*/
|
|
30
|
+
export declare function createRateLimitMiddleware(config: RateLimitConfig): (request: NextRequest, next: () => Promise<NextResponse>) => Promise<NextResponse<unknown>>;
|
|
31
|
+
/**
|
|
32
|
+
* Cleanup expired rate limit entries across all stores
|
|
33
|
+
*/
|
|
34
|
+
export declare function cleanupRateLimits(): number;
|
|
35
|
+
/**
|
|
36
|
+
* Start rate limit cleanup interval
|
|
37
|
+
*/
|
|
38
|
+
export declare function startRateLimitCleanup(intervalMs?: number): NodeJS.Timeout;
|
|
39
|
+
/**
|
|
40
|
+
* Get rate limit stats
|
|
41
|
+
*/
|
|
42
|
+
export declare function getRateLimitStats(): {
|
|
43
|
+
total: number;
|
|
44
|
+
active: number;
|
|
45
|
+
expired: number;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Rate limit preset configuration
|
|
49
|
+
*/
|
|
50
|
+
export interface RateLimitPresetConfig {
|
|
51
|
+
/** Time window in milliseconds */
|
|
52
|
+
windowMs: number;
|
|
53
|
+
/** Maximum requests per window */
|
|
54
|
+
maxRequests: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Override one or more rate limit presets.
|
|
58
|
+
*
|
|
59
|
+
* Unknown keys create new presets; existing keys are merged with defaults.
|
|
60
|
+
*/
|
|
61
|
+
export declare function configureRateLimitPresets(overrides: Record<string, Partial<RateLimitPresetConfig>>): void;
|
|
62
|
+
/**
|
|
63
|
+
* Get the current (possibly overridden) rate limit presets.
|
|
64
|
+
*/
|
|
65
|
+
export declare function getRateLimitPresets(): Readonly<Record<string, RateLimitPresetConfig>>;
|
|
66
|
+
/**
|
|
67
|
+
* Reset all presets to their defaults.
|
|
68
|
+
*/
|
|
69
|
+
export declare function resetRateLimitPresets(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Rate limit presets — backward-compatible accessor.
|
|
72
|
+
*
|
|
73
|
+
* Reads from the mutable `rateLimitPresets` so overrides from
|
|
74
|
+
* `configureRateLimitPresets()` are reflected automatically.
|
|
75
|
+
*/
|
|
76
|
+
export declare const RATE_LIMIT_PRESETS: Record<string, RateLimitPresetConfig>;
|
|
77
|
+
/**
|
|
78
|
+
* Rate limit by user ID
|
|
79
|
+
*/
|
|
80
|
+
export declare function createUserRateLimit(config: Omit<RateLimitConfig, 'keyGenerator'>): (request: NextRequest, next: () => Promise<NextResponse>) => Promise<NextResponse<unknown>>;
|
|
81
|
+
/**
|
|
82
|
+
* Rate limit by API key
|
|
83
|
+
*/
|
|
84
|
+
export declare function createAPIKeyRateLimit(config: Omit<RateLimitConfig, 'keyGenerator'>): (request: NextRequest, next: () => Promise<NextResponse>) => Promise<NextResponse<unknown>>;
|
|
85
|
+
/**
|
|
86
|
+
* Rate limit by endpoint
|
|
87
|
+
*/
|
|
88
|
+
export declare function createEndpointRateLimit(config: Omit<RateLimitConfig, 'keyGenerator'>): (request: NextRequest, next: () => Promise<NextResponse>) => Promise<NextResponse<unknown>>;
|
|
89
|
+
export declare function checkSlidingWindowRateLimit(request: NextRequest, config: RateLimitConfig): {
|
|
90
|
+
allowed: boolean;
|
|
91
|
+
limit: number;
|
|
92
|
+
remaining: number;
|
|
93
|
+
};
|
|
94
|
+
export declare function checkTokenBucketRateLimit(request: NextRequest, config: RateLimitConfig & {
|
|
95
|
+
refillRate: number;
|
|
96
|
+
}): {
|
|
97
|
+
allowed: boolean;
|
|
98
|
+
limit: number;
|
|
99
|
+
remaining: number;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Clear rate limit for specific key
|
|
103
|
+
*/
|
|
104
|
+
export declare function clearRateLimit(key: string): void;
|
|
105
|
+
/**
|
|
106
|
+
* Clear all rate limits
|
|
107
|
+
*/
|
|
108
|
+
export declare function clearAllRateLimits(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Get rate limit info for key
|
|
111
|
+
*/
|
|
112
|
+
export declare function getRateLimitInfo(key: string): RateLimitEntry | null;
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=rate-limit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/api/rate-limit.ts"],"names":[],"mappings":"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"}
|