@revealui/core 0.0.1-pre.4 → 0.2.1
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 -202
- package/README.md +108 -152
- 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 +113 -0
- package/dist/api/rate-limit.d.ts.map +1 -0
- package/dist/api/rate-limit.js +316 -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 +464 -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 +98 -0
- package/dist/cache/query-cache.d.ts.map +1 -0
- package/dist/cache/query-cache.js +260 -0
- package/dist/caching/app-cache.d.ts +237 -0
- package/dist/caching/app-cache.d.ts.map +1 -0
- package/dist/caching/app-cache.js +430 -0
- package/dist/caching/cdn-config.d.ts +155 -0
- package/dist/caching/cdn-config.d.ts.map +1 -0
- package/dist/caching/cdn-config.js +411 -0
- package/dist/caching/edge-cache.d.ts +177 -0
- package/dist/caching/edge-cache.d.ts.map +1 -0
- package/dist/caching/edge-cache.js +385 -0
- package/dist/caching/service-worker.d.ts +154 -0
- package/dist/caching/service-worker.d.ts.map +1 -0
- package/dist/caching/service-worker.js +437 -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 +318 -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 +99 -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/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 +10 -0
- package/dist/client/admin/index.d.ts.map +1 -0
- package/dist/client/admin/index.js +10 -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 +6 -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 +220 -0
- package/dist/client/admin/utils/auth.d.ts +23 -0
- package/dist/client/admin/utils/auth.d.ts.map +1 -0
- package/dist/client/admin/utils/auth.js +52 -0
- package/dist/client/admin/utils/index.d.ts +6 -0
- package/dist/client/admin/utils/index.d.ts.map +1 -0
- package/dist/client/admin/utils/index.js +5 -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/http/client.d.ts +15 -0
- package/dist/client/http/client.d.ts.map +1 -0
- package/dist/client/http/client.js +49 -0
- package/dist/client/http/fetchBanner.d.ts +18 -0
- package/dist/client/http/fetchBanner.d.ts.map +1 -0
- package/dist/client/http/fetchBanner.js +44 -0
- package/dist/client/http/fetchCard.d.ts +18 -0
- package/dist/client/http/fetchCard.d.ts.map +1 -0
- package/dist/client/http/fetchCard.js +46 -0
- package/dist/client/http/fetchEvents.d.ts +18 -0
- package/dist/client/http/fetchEvents.d.ts.map +1 -0
- package/dist/client/http/fetchEvents.js +44 -0
- package/dist/client/http/fetchHero.d.ts +17 -0
- package/dist/client/http/fetchHero.d.ts.map +1 -0
- package/dist/client/http/fetchHero.js +55 -0
- package/dist/client/http/fetchMainInfos.d.ts +17 -0
- package/dist/client/http/fetchMainInfos.d.ts.map +1 -0
- package/dist/client/http/fetchMainInfos.js +44 -0
- package/dist/client/http/fetchVideos.d.ts +13 -0
- package/dist/client/http/fetchVideos.d.ts.map +1 -0
- package/dist/client/http/fetchVideos.js +36 -0
- package/dist/client/http/index.d.ts +19 -0
- package/dist/client/http/index.d.ts.map +1 -0
- package/dist/client/http/index.js +11 -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 +99 -0
- package/dist/client/richtext/components/ImageUploadButton.d.ts +11 -0
- package/dist/client/richtext/components/ImageUploadButton.d.ts.map +1 -0
- package/dist/client/richtext/components/ImageUploadButton.js +103 -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 +248 -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 +34 -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 +10 -0
- package/dist/collections/operations/create.d.ts.map +1 -0
- package/dist/collections/operations/create.js +101 -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 +16 -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 +10 -0
- package/dist/collections/operations/find.d.ts.map +1 -0
- package/dist/collections/operations/find.js +124 -0
- package/dist/collections/operations/findById.d.ts +15 -0
- package/dist/collections/operations/findById.d.ts.map +1 -0
- package/dist/collections/operations/findById.js +59 -0
- package/dist/collections/operations/update.d.ts +10 -0
- package/dist/collections/operations/update.d.ts.map +1 -0
- package/dist/collections/operations/update.js +134 -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 +12 -0
- package/dist/config/utils.d.ts.map +1 -0
- package/dist/config/utils.js +34 -0
- package/dist/database/index.d.ts +1 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +6 -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 +526 -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/circuit-breaker.d.ts +262 -0
- package/dist/error-handling/circuit-breaker.d.ts.map +1 -0
- package/dist/error-handling/circuit-breaker.js +542 -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 +477 -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 +16 -0
- package/dist/error-handling/index.d.ts.map +1 -0
- package/dist/error-handling/index.js +15 -0
- package/dist/error-handling/retry.d.ts +194 -0
- package/dist/error-handling/retry.d.ts.map +1 -0
- package/dist/error-handling/retry.js +450 -0
- package/dist/errors/index.d.ts +23 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +40 -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 +86 -0
- package/dist/features.d.ts.map +1 -0
- package/dist/features.js +92 -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/agents/index.d.ts +8 -0
- package/dist/generated/agents/index.d.ts.map +1 -0
- package/dist/generated/agents/index.js +7 -0
- package/dist/generated/components/index.d.ts +8 -0
- package/dist/generated/components/index.d.ts.map +1 -0
- package/dist/generated/components/index.js +7 -0
- package/dist/generated/functions/index.d.ts +8 -0
- package/dist/generated/functions/index.d.ts.map +1 -0
- package/dist/generated/functions/index.js +7 -0
- package/dist/generated/hooks/index.d.ts +8 -0
- package/dist/generated/hooks/index.d.ts.map +1 -0
- package/dist/generated/hooks/index.js +7 -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/plans/index.d.ts +8 -0
- package/dist/generated/plans/index.d.ts.map +1 -0
- package/dist/generated/plans/index.js +7 -0
- package/dist/generated/prompts/index.d.ts +8 -0
- package/dist/generated/prompts/index.d.ts.map +1 -0
- package/dist/generated/prompts/index.js +7 -0
- package/dist/generated/tools/index.d.ts +8 -0
- package/dist/generated/tools/index.d.ts.map +1 -0
- package/dist/generated/tools/index.js +7 -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 +12 -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 +11 -0
- package/dist/generated/types/supabase.d.ts +193 -0
- package/dist/generated/types/supabase.d.ts.map +1 -0
- package/dist/generated/types/supabase.js +5 -0
- package/dist/globals/GlobalOperations.d.ts +24 -0
- package/dist/globals/GlobalOperations.d.ts.map +1 -0
- package/dist/globals/GlobalOperations.js +149 -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 +64 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +126 -33
- package/dist/instance/RevealUIInstance.d.ts +6 -0
- package/dist/instance/RevealUIInstance.d.ts.map +1 -0
- package/dist/instance/RevealUIInstance.js +306 -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 +41 -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 +27 -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 +23 -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 +23 -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 +45 -0
- package/dist/license.d.ts +82 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +193 -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 +231 -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 +390 -0
- package/dist/observability/health-check.d.ts +95 -0
- package/dist/observability/health-check.d.ts.map +1 -0
- package/dist/observability/health-check.js +375 -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 +381 -0
- package/dist/optimization/asset-optimizer.d.ts +202 -0
- package/dist/optimization/asset-optimizer.d.ts.map +1 -0
- package/dist/optimization/asset-optimizer.js +312 -0
- package/dist/optimization/build-optimizer.d.ts +202 -0
- package/dist/optimization/build-optimizer.d.ts.map +1 -0
- package/dist/optimization/build-optimizer.js +271 -0
- package/dist/optimization/bundle-analyzer.d.ts +98 -0
- package/dist/optimization/bundle-analyzer.d.ts.map +1 -0
- package/dist/optimization/bundle-analyzer.js +322 -0
- package/dist/optimization/code-splitting.d.ts +131 -0
- package/dist/optimization/code-splitting.d.ts.map +1 -0
- package/dist/optimization/code-splitting.js +277 -0
- package/dist/plugin/index.d.ts +12 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +4 -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 +8 -0
- package/dist/plugins/nested-docs.d.ts.map +1 -0
- package/dist/plugins/nested-docs.js +67 -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 +255 -0
- package/dist/relationships/analyzer.d.ts +39 -0
- package/dist/relationships/analyzer.d.ts.map +1 -0
- package/dist/relationships/analyzer.js +127 -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-helpers.d.ts +104 -0
- package/dist/relationships/populate-helpers.d.ts.map +1 -0
- package/dist/relationships/populate-helpers.js +187 -0
- package/dist/relationships/population.d.ts +42 -0
- package/dist/relationships/population.d.ts.map +1 -0
- package/dist/relationships/population.js +188 -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 +117 -0
- package/dist/richtext/exports/server/rsc.d.ts.map +1 -0
- package/dist/richtext/exports/server/rsc.js +288 -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/audit.d.ts +188 -0
- package/dist/security/audit.d.ts.map +1 -0
- package/dist/security/audit.js +431 -0
- package/dist/security/auth.d.ts +241 -0
- package/dist/security/auth.d.ts.map +1 -0
- package/dist/security/auth.js +476 -0
- package/dist/security/authorization.d.ts +235 -0
- package/dist/security/authorization.d.ts.map +1 -0
- package/dist/security/authorization.js +434 -0
- package/dist/security/encryption.d.ts +214 -0
- package/dist/security/encryption.d.ts.map +1 -0
- package/dist/security/encryption.js +517 -0
- package/dist/security/gdpr.d.ts +300 -0
- package/dist/security/gdpr.d.ts.map +1 -0
- package/dist/security/gdpr.js +465 -0
- package/dist/security/headers.d.ts +182 -0
- package/dist/security/headers.d.ts.map +1 -0
- package/dist/security/headers.js +402 -0
- package/dist/security/index.d.ts +19 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +18 -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 +1 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +4 -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 +83 -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 +216 -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 +115 -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 +96 -0
- package/dist/utils/errors.d.ts +97 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +397 -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 +23 -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/jwt-validation.d.ts +14 -0
- package/dist/utils/jwt-validation.d.ts.map +1 -0
- package/dist/utils/jwt-validation.js +36 -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/request-headers.d.ts +15 -0
- package/dist/utils/request-headers.d.ts.map +1 -0
- package/dist/utils/request-headers.js +31 -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 +241 -724
- package/LICENSE_SUMMARY.md +0 -55
- package/NOTICE +0 -34
- package/dist/exports/RenderErrorPage.js +0 -3
- package/dist/exports/__internal.js +0 -3
- package/dist/exports/abort.js +0 -3
- package/dist/exports/bin-entry.js +0 -5
- package/dist/exports/client.js +0 -3
- package/dist/exports/config.js +0 -1
- package/dist/exports/helpers.js +0 -1
- package/dist/exports/index.js +0 -33
- package/dist/exports/plugin.js +0 -3
- package/dist/exports/prerender.js +0 -3
- package/dist/exports/router.js +0 -3
- package/dist/exports/routing.js +0 -3
- package/dist/exports/server.js +0 -3
- package/dist/exports/setup.js +0 -3
- package/dist/exports/types.js +0 -1
- package/dist/integration/styles.css +0 -141
- package/dist/shared/RenderErrorPage.d.ts +0 -3
- package/dist/shared/RenderErrorPage.js +0 -3
- package/dist/shared/abort.js +0 -3
- package/dist/shared/route/routing.js +0 -3
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LRU Cache with TTL (Time To Live)
|
|
3
|
+
*
|
|
4
|
+
* Provides a cache implementation with:
|
|
5
|
+
* - TTL (Time To Live) expiration
|
|
6
|
+
* - Size limits with LRU eviction
|
|
7
|
+
* - Type-safe generic interface
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const cache = new LRUCache<string, User>({ maxSize: 100, ttlMs: 5 * 60 * 1000 })
|
|
12
|
+
* const user = await cache.fetch('user:123', () => fetchUserFromDB('123'))
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* LRU Cache with TTL for storing key-value pairs
|
|
17
|
+
*
|
|
18
|
+
* Features:
|
|
19
|
+
* - Automatic expiration based on TTL
|
|
20
|
+
* - Size limits with LRU (Least Recently Used) eviction
|
|
21
|
+
* - Type-safe generic interface
|
|
22
|
+
*/
|
|
23
|
+
export class LRUCache {
|
|
24
|
+
cache = new Map();
|
|
25
|
+
maxSize;
|
|
26
|
+
ttlMs;
|
|
27
|
+
constructor(options = {}) {
|
|
28
|
+
this.maxSize = options.maxSize ?? 100;
|
|
29
|
+
this.ttlMs = options.ttlMs ?? 5 * 60 * 1000; // 5 minutes default
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Fetch a value from cache or compute it using the fetcher function
|
|
33
|
+
*
|
|
34
|
+
* @param key - Cache key
|
|
35
|
+
* @param fetcher - Function to fetch the value if not in cache
|
|
36
|
+
* @returns The cached or newly fetched value
|
|
37
|
+
*/
|
|
38
|
+
async fetch(key, fetcher) {
|
|
39
|
+
const now = Date.now();
|
|
40
|
+
const cached = this.cache.get(key);
|
|
41
|
+
// Check if cached entry exists and is still valid
|
|
42
|
+
if (cached && cached.expiresAt > now) {
|
|
43
|
+
// Update last accessed time for LRU
|
|
44
|
+
cached.lastAccessed = now;
|
|
45
|
+
return cached.data;
|
|
46
|
+
}
|
|
47
|
+
// Remove expired entry if present
|
|
48
|
+
if (cached) {
|
|
49
|
+
this.cache.delete(key);
|
|
50
|
+
}
|
|
51
|
+
// Evict least recently used entries if at capacity
|
|
52
|
+
this.evictIfNeeded();
|
|
53
|
+
// Fetch fresh data
|
|
54
|
+
const data = await fetcher();
|
|
55
|
+
this.cache.set(key, {
|
|
56
|
+
data,
|
|
57
|
+
expiresAt: now + this.ttlMs,
|
|
58
|
+
lastAccessed: now,
|
|
59
|
+
});
|
|
60
|
+
return data;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get a value from cache without fetching (returns undefined if not found or expired)
|
|
64
|
+
*
|
|
65
|
+
* @param key - Cache key
|
|
66
|
+
* @returns The cached value or undefined
|
|
67
|
+
*/
|
|
68
|
+
get(key) {
|
|
69
|
+
const now = Date.now();
|
|
70
|
+
const cached = this.cache.get(key);
|
|
71
|
+
if (cached && cached.expiresAt > now) {
|
|
72
|
+
cached.lastAccessed = now;
|
|
73
|
+
return cached.data;
|
|
74
|
+
}
|
|
75
|
+
// Remove expired entry
|
|
76
|
+
if (cached) {
|
|
77
|
+
this.cache.delete(key);
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Set a value in the cache
|
|
83
|
+
*
|
|
84
|
+
* @param key - Cache key
|
|
85
|
+
* @param value - Value to cache
|
|
86
|
+
*/
|
|
87
|
+
set(key, value) {
|
|
88
|
+
const now = Date.now();
|
|
89
|
+
this.evictIfNeeded();
|
|
90
|
+
this.cache.set(key, {
|
|
91
|
+
data: value,
|
|
92
|
+
expiresAt: now + this.ttlMs,
|
|
93
|
+
lastAccessed: now,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Delete a value from the cache
|
|
98
|
+
*
|
|
99
|
+
* @param key - Cache key
|
|
100
|
+
* @returns true if the entry was deleted, false if it didn't exist
|
|
101
|
+
*/
|
|
102
|
+
delete(key) {
|
|
103
|
+
return this.cache.delete(key);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Clear all entries from the cache
|
|
107
|
+
*/
|
|
108
|
+
clear() {
|
|
109
|
+
this.cache.clear();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the current size of the cache
|
|
113
|
+
*/
|
|
114
|
+
get size() {
|
|
115
|
+
return this.cache.size;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Evict expired entries and LRU entries if at capacity
|
|
119
|
+
*/
|
|
120
|
+
evictIfNeeded() {
|
|
121
|
+
const now = Date.now();
|
|
122
|
+
// First, remove all expired entries
|
|
123
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
124
|
+
if (entry.expiresAt <= now) {
|
|
125
|
+
this.cache.delete(key);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// If still at capacity, remove least recently used entry
|
|
129
|
+
if (this.cache.size >= this.maxSize) {
|
|
130
|
+
let lruKey;
|
|
131
|
+
let lruTime = Infinity;
|
|
132
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
133
|
+
if (entry.lastAccessed < lruTime) {
|
|
134
|
+
lruTime = entry.lastAccessed;
|
|
135
|
+
lruKey = key;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (lruKey !== undefined) {
|
|
139
|
+
this.cache.delete(lruKey);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Clean up expired entries (can be called periodically)
|
|
145
|
+
*/
|
|
146
|
+
cleanup() {
|
|
147
|
+
const now = Date.now();
|
|
148
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
149
|
+
if (entry.expiresAt <= now) {
|
|
150
|
+
this.cache.delete(key);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep Clone Utility
|
|
3
|
+
*
|
|
4
|
+
* Properly deep clones objects, handling edge cases that JSON.parse(JSON.stringify()) misses:
|
|
5
|
+
* - Preserves Date objects
|
|
6
|
+
* - Handles undefined values (by omitting them, which is acceptable for our use case)
|
|
7
|
+
* - Handles null values correctly
|
|
8
|
+
* - Works with plain objects and arrays
|
|
9
|
+
* - Handles Map, Set, RegExp, TypedArrays, ArrayBuffer
|
|
10
|
+
* - Throws on circular references (fail-fast is better than silent corruption)
|
|
11
|
+
*
|
|
12
|
+
* This is a comprehensive deep clone implementation suitable for production use.
|
|
13
|
+
* Moved from @revealui/ai/memory/utils/deep-clone.ts to @revealui/core/utils/deep-clone.ts
|
|
14
|
+
* for shared usage across the framework.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Deep clones a plain object or array.
|
|
18
|
+
*
|
|
19
|
+
* @param obj - Object to clone
|
|
20
|
+
* @param visited - Internal parameter to track visited objects (for circular reference detection)
|
|
21
|
+
* @returns Deep cloned object
|
|
22
|
+
* @throws Error if object contains circular references
|
|
23
|
+
*/
|
|
24
|
+
export declare function deepClone<T>(obj: T, visited?: WeakMap<object, unknown>): T;
|
|
25
|
+
//# sourceMappingURL=deep-clone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-clone.d.ts","sourceRoot":"","sources":["../../src/utils/deep-clone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,2BAAiC,GAAG,CAAC,CAuHhF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep Clone Utility
|
|
3
|
+
*
|
|
4
|
+
* Properly deep clones objects, handling edge cases that JSON.parse(JSON.stringify()) misses:
|
|
5
|
+
* - Preserves Date objects
|
|
6
|
+
* - Handles undefined values (by omitting them, which is acceptable for our use case)
|
|
7
|
+
* - Handles null values correctly
|
|
8
|
+
* - Works with plain objects and arrays
|
|
9
|
+
* - Handles Map, Set, RegExp, TypedArrays, ArrayBuffer
|
|
10
|
+
* - Throws on circular references (fail-fast is better than silent corruption)
|
|
11
|
+
*
|
|
12
|
+
* This is a comprehensive deep clone implementation suitable for production use.
|
|
13
|
+
* Moved from @revealui/ai/memory/utils/deep-clone.ts to @revealui/core/utils/deep-clone.ts
|
|
14
|
+
* for shared usage across the framework.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Deep clones a plain object or array.
|
|
18
|
+
*
|
|
19
|
+
* @param obj - Object to clone
|
|
20
|
+
* @param visited - Internal parameter to track visited objects (for circular reference detection)
|
|
21
|
+
* @returns Deep cloned object
|
|
22
|
+
* @throws Error if object contains circular references
|
|
23
|
+
*/
|
|
24
|
+
export function deepClone(obj, visited = new WeakMap()) {
|
|
25
|
+
// Handle primitives and null
|
|
26
|
+
if (obj === null || typeof obj !== 'object') {
|
|
27
|
+
return obj;
|
|
28
|
+
}
|
|
29
|
+
// Check for circular references
|
|
30
|
+
if (visited.has(obj)) {
|
|
31
|
+
throw new Error('Circular reference detected in object');
|
|
32
|
+
}
|
|
33
|
+
// Handle Date objects
|
|
34
|
+
if (obj instanceof Date) {
|
|
35
|
+
return new Date(obj.getTime());
|
|
36
|
+
}
|
|
37
|
+
// Handle RegExp objects
|
|
38
|
+
if (obj instanceof RegExp) {
|
|
39
|
+
return new RegExp(obj.source, obj.flags);
|
|
40
|
+
}
|
|
41
|
+
// Handle Map objects
|
|
42
|
+
if (obj instanceof Map) {
|
|
43
|
+
visited.set(obj, new Map());
|
|
44
|
+
const cloned = new Map();
|
|
45
|
+
for (const [key, value] of obj.entries()) {
|
|
46
|
+
cloned.set(deepClone(key, visited), deepClone(value, visited));
|
|
47
|
+
}
|
|
48
|
+
visited.delete(obj);
|
|
49
|
+
return cloned;
|
|
50
|
+
}
|
|
51
|
+
// Handle Set objects
|
|
52
|
+
if (obj instanceof Set) {
|
|
53
|
+
visited.set(obj, new Set());
|
|
54
|
+
const cloned = new Set();
|
|
55
|
+
for (const value of obj.values()) {
|
|
56
|
+
cloned.add(deepClone(value, visited));
|
|
57
|
+
}
|
|
58
|
+
visited.delete(obj);
|
|
59
|
+
return cloned;
|
|
60
|
+
}
|
|
61
|
+
// Handle TypedArrays (Uint8Array, Int32Array, etc.)
|
|
62
|
+
if (ArrayBuffer.isView(obj)) {
|
|
63
|
+
const typedArray = obj;
|
|
64
|
+
const TypedArrayConstructor = obj.constructor;
|
|
65
|
+
return new TypedArrayConstructor(typedArray.buffer.slice(), typedArray.byteOffset, typedArray.length);
|
|
66
|
+
}
|
|
67
|
+
// Handle ArrayBuffer
|
|
68
|
+
if (obj instanceof ArrayBuffer) {
|
|
69
|
+
return obj.slice(0);
|
|
70
|
+
}
|
|
71
|
+
// Handle arrays
|
|
72
|
+
if (Array.isArray(obj)) {
|
|
73
|
+
visited.set(obj, []);
|
|
74
|
+
const array = obj;
|
|
75
|
+
const cloned = array.map((item) => deepClone(item, visited));
|
|
76
|
+
visited.delete(obj);
|
|
77
|
+
return cloned;
|
|
78
|
+
}
|
|
79
|
+
// Handle plain objects
|
|
80
|
+
if (typeof obj === 'object') {
|
|
81
|
+
visited.set(obj, {});
|
|
82
|
+
const cloned = {};
|
|
83
|
+
const objRecord = obj;
|
|
84
|
+
for (const key in objRecord) {
|
|
85
|
+
if (Object.hasOwn(objRecord, key)) {
|
|
86
|
+
const value = objRecord[key];
|
|
87
|
+
// Skip undefined (JSON.stringify behavior)
|
|
88
|
+
if (value === undefined) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
;
|
|
93
|
+
cloned[key] = deepClone(value, visited);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
visited.delete(obj);
|
|
97
|
+
// If we hit a circular reference or other issue, throw with context
|
|
98
|
+
throw new Error(`Failed to deep clone object: ${error instanceof Error ? error.message : String(error)} at key "${key}"`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
visited.delete(obj);
|
|
103
|
+
return cloned;
|
|
104
|
+
}
|
|
105
|
+
// Handle functions - return as-is (can't clone functions)
|
|
106
|
+
if (typeof obj === 'function') {
|
|
107
|
+
return obj;
|
|
108
|
+
}
|
|
109
|
+
// Handle symbols - return as-is (symbols are unique by design)
|
|
110
|
+
if (typeof obj === 'symbol') {
|
|
111
|
+
return obj;
|
|
112
|
+
}
|
|
113
|
+
// Fallback for other types
|
|
114
|
+
return obj;
|
|
115
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-Agnostic Error Response Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides standardized error response data objects (not Response/NextResponse wrappers).
|
|
5
|
+
* These functions return plain data objects that can be wrapped by framework-specific
|
|
6
|
+
* response utilities (NextResponse.json, new Response, etc.).
|
|
7
|
+
*
|
|
8
|
+
* Use these functions to create error response data, then wrap in your framework's
|
|
9
|
+
* response type:
|
|
10
|
+
* - Next.js: `NextResponse.json(createErrorResponseData(...), { status: 400 })`
|
|
11
|
+
* - Standard: `new Response(JSON.stringify(createErrorResponseData(...)), { status: 400 })`
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Error response data format
|
|
15
|
+
*/
|
|
16
|
+
export interface ErrorResponseData {
|
|
17
|
+
error: string;
|
|
18
|
+
message: string;
|
|
19
|
+
code?: string;
|
|
20
|
+
details?: unknown;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create error response data from an error object
|
|
24
|
+
*
|
|
25
|
+
* @param error - The error to convert to response data
|
|
26
|
+
* @param context - Additional context for error handling
|
|
27
|
+
* @returns Error response data object
|
|
28
|
+
*/
|
|
29
|
+
export declare function createErrorResponseData(error: unknown, context?: Record<string, unknown>): ErrorResponseData;
|
|
30
|
+
/**
|
|
31
|
+
* Create validation error response data
|
|
32
|
+
*
|
|
33
|
+
* @param message - Error message
|
|
34
|
+
* @param field - Field that failed validation
|
|
35
|
+
* @param value - Invalid value
|
|
36
|
+
* @param details - Additional validation details
|
|
37
|
+
* @returns Validation error response data
|
|
38
|
+
*/
|
|
39
|
+
export declare function createValidationErrorResponseData(message: string, field: string, value: unknown, details?: Record<string, unknown>): ErrorResponseData;
|
|
40
|
+
/**
|
|
41
|
+
* Create application error response data
|
|
42
|
+
*
|
|
43
|
+
* @param message - Error message
|
|
44
|
+
* @param code - Error code
|
|
45
|
+
* @param statusCode - HTTP status code (for reference, not included in data)
|
|
46
|
+
* @param context - Additional context
|
|
47
|
+
* @returns Application error response data
|
|
48
|
+
*/
|
|
49
|
+
export declare function createApplicationErrorResponseData(message: string, code: string, statusCode?: number, context?: Record<string, unknown>): ErrorResponseData;
|
|
50
|
+
/**
|
|
51
|
+
* Create success response data
|
|
52
|
+
*
|
|
53
|
+
* @param data - Response data
|
|
54
|
+
* @returns Success response data (can be wrapped by framework)
|
|
55
|
+
*/
|
|
56
|
+
export declare function createSuccessResponseData<T>(data: T): T;
|
|
57
|
+
//# sourceMappingURL=error-responses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-responses.d.ts","sourceRoot":"","sources":["../../src/utils/error-responses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,iBAAiB,CA8BnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,iBAAiB,CAWnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,iBAAiB,CAQnB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEvD"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-Agnostic Error Response Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides standardized error response data objects (not Response/NextResponse wrappers).
|
|
5
|
+
* These functions return plain data objects that can be wrapped by framework-specific
|
|
6
|
+
* response utilities (NextResponse.json, new Response, etc.).
|
|
7
|
+
*
|
|
8
|
+
* Use these functions to create error response data, then wrap in your framework's
|
|
9
|
+
* response type:
|
|
10
|
+
* - Next.js: `NextResponse.json(createErrorResponseData(...), { status: 400 })`
|
|
11
|
+
* - Standard: `new Response(JSON.stringify(createErrorResponseData(...)), { status: 400 })`
|
|
12
|
+
*/
|
|
13
|
+
import { ApplicationError, ValidationError } from './errors.js';
|
|
14
|
+
/**
|
|
15
|
+
* Create error response data from an error object
|
|
16
|
+
*
|
|
17
|
+
* @param error - The error to convert to response data
|
|
18
|
+
* @param context - Additional context for error handling
|
|
19
|
+
* @returns Error response data object
|
|
20
|
+
*/
|
|
21
|
+
export function createErrorResponseData(error, context) {
|
|
22
|
+
if (error instanceof ApplicationError) {
|
|
23
|
+
return {
|
|
24
|
+
error: error.code || 'INTERNAL_ERROR',
|
|
25
|
+
message: error.message,
|
|
26
|
+
code: error.code,
|
|
27
|
+
...(error.context && { details: error.context }),
|
|
28
|
+
...(context && { details: { ...error.context, ...context } }),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (error instanceof ValidationError) {
|
|
32
|
+
return {
|
|
33
|
+
error: 'VALIDATION_ERROR',
|
|
34
|
+
message: error.message,
|
|
35
|
+
code: 'VALIDATION_ERROR',
|
|
36
|
+
...(error.context && { details: error.context }),
|
|
37
|
+
...(context && { details: { ...error.context, ...context } }),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// Unknown error
|
|
41
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
42
|
+
return {
|
|
43
|
+
error: 'INTERNAL_ERROR',
|
|
44
|
+
message: errorMessage,
|
|
45
|
+
code: 'INTERNAL_ERROR',
|
|
46
|
+
...(context && { details: context }),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create validation error response data
|
|
51
|
+
*
|
|
52
|
+
* @param message - Error message
|
|
53
|
+
* @param field - Field that failed validation
|
|
54
|
+
* @param value - Invalid value
|
|
55
|
+
* @param details - Additional validation details
|
|
56
|
+
* @returns Validation error response data
|
|
57
|
+
*/
|
|
58
|
+
export function createValidationErrorResponseData(message, field, value, details) {
|
|
59
|
+
return {
|
|
60
|
+
error: 'VALIDATION_ERROR',
|
|
61
|
+
message,
|
|
62
|
+
code: 'VALIDATION_ERROR',
|
|
63
|
+
details: {
|
|
64
|
+
field,
|
|
65
|
+
value,
|
|
66
|
+
...details,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Create application error response data
|
|
72
|
+
*
|
|
73
|
+
* @param message - Error message
|
|
74
|
+
* @param code - Error code
|
|
75
|
+
* @param statusCode - HTTP status code (for reference, not included in data)
|
|
76
|
+
* @param context - Additional context
|
|
77
|
+
* @returns Application error response data
|
|
78
|
+
*/
|
|
79
|
+
export function createApplicationErrorResponseData(message, code, statusCode, context) {
|
|
80
|
+
return {
|
|
81
|
+
error: code || 'INTERNAL_ERROR',
|
|
82
|
+
message,
|
|
83
|
+
code,
|
|
84
|
+
...(context && { details: context }),
|
|
85
|
+
...(statusCode !== undefined && { statusCode }), // Include for reference if needed
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create success response data
|
|
90
|
+
*
|
|
91
|
+
* @param data - Response data
|
|
92
|
+
* @returns Success response data (can be wrapped by framework)
|
|
93
|
+
*/
|
|
94
|
+
export function createSuccessResponseData(data) {
|
|
95
|
+
return data;
|
|
96
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Handling Utilities
|
|
3
|
+
*
|
|
4
|
+
* Standardized error handling for RevealUI framework.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Application Error
|
|
8
|
+
* Use for business logic failures, validation failures, expected errors
|
|
9
|
+
*/
|
|
10
|
+
export declare class ApplicationError extends Error {
|
|
11
|
+
code: string;
|
|
12
|
+
statusCode: number;
|
|
13
|
+
context?: Record<string, unknown> | undefined;
|
|
14
|
+
constructor(message: string, code: string, statusCode?: number, context?: Record<string, unknown> | undefined);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Validation Error
|
|
18
|
+
* Use for input validation failures, schema validation failures
|
|
19
|
+
*/
|
|
20
|
+
export declare class ValidationError extends Error {
|
|
21
|
+
field: string;
|
|
22
|
+
value: unknown;
|
|
23
|
+
context?: Record<string, unknown> | undefined;
|
|
24
|
+
constructor(message: string, field: string, value: unknown, context?: Record<string, unknown> | undefined);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Database Error
|
|
28
|
+
* Use for database operation failures with Postgres error code parsing
|
|
29
|
+
*/
|
|
30
|
+
export declare class DatabaseError extends Error {
|
|
31
|
+
code: string;
|
|
32
|
+
statusCode: number;
|
|
33
|
+
pgCode?: string | undefined;
|
|
34
|
+
constraint?: string | undefined;
|
|
35
|
+
table?: string | undefined;
|
|
36
|
+
column?: string | undefined;
|
|
37
|
+
context?: Record<string, unknown> | undefined;
|
|
38
|
+
constructor(message: string, code: string, statusCode?: number, pgCode?: string | undefined, constraint?: string | undefined, table?: string | undefined, column?: string | undefined, context?: Record<string, unknown> | undefined);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Postgres Error Codes
|
|
42
|
+
* Reference: https://www.postgresql.org/docs/current/errcodes-appendix.html
|
|
43
|
+
*/
|
|
44
|
+
export declare const PostgresErrorCode: {
|
|
45
|
+
readonly UNIQUE_VIOLATION: "23505";
|
|
46
|
+
readonly FOREIGN_KEY_VIOLATION: "23503";
|
|
47
|
+
readonly NOT_NULL_VIOLATION: "23502";
|
|
48
|
+
readonly CHECK_VIOLATION: "23514";
|
|
49
|
+
readonly UNDEFINED_TABLE: "42P01";
|
|
50
|
+
readonly UNDEFINED_COLUMN: "42703";
|
|
51
|
+
readonly DUPLICATE_TABLE: "42P07";
|
|
52
|
+
readonly DUPLICATE_COLUMN: "42701";
|
|
53
|
+
readonly DEADLOCK_DETECTED: "40P01";
|
|
54
|
+
readonly SERIALIZATION_FAILURE: "40001";
|
|
55
|
+
readonly QUERY_CANCELED: "57014";
|
|
56
|
+
readonly ADMIN_SHUTDOWN: "57P01";
|
|
57
|
+
readonly DISK_FULL: "53100";
|
|
58
|
+
readonly OUT_OF_MEMORY: "53200";
|
|
59
|
+
readonly TOO_MANY_CONNECTIONS: "53300";
|
|
60
|
+
readonly CONNECTION_EXCEPTION: "08000";
|
|
61
|
+
readonly CONNECTION_FAILURE: "08006";
|
|
62
|
+
readonly CONNECTION_DOES_NOT_EXIST: "08003";
|
|
63
|
+
readonly INVALID_TRANSACTION_STATE: "25000";
|
|
64
|
+
readonly ACTIVE_SQL_TRANSACTION: "25001";
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Handle and log error in API routes
|
|
68
|
+
*
|
|
69
|
+
* @param error - The error to handle
|
|
70
|
+
* @param context - Additional context to log
|
|
71
|
+
* @returns User-friendly error message
|
|
72
|
+
*/
|
|
73
|
+
export declare function handleApiError(error: unknown, context?: Record<string, unknown>): {
|
|
74
|
+
message: string;
|
|
75
|
+
statusCode: number;
|
|
76
|
+
code?: string;
|
|
77
|
+
retryable?: boolean;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Handle database errors with Postgres error code parsing
|
|
81
|
+
*
|
|
82
|
+
* @param error - Database error
|
|
83
|
+
* @param operation - Operation being performed (e.g., 'insert user', 'update order')
|
|
84
|
+
* @param context - Additional context (e.g., { userId: '123', table: 'users' })
|
|
85
|
+
* @returns Never - always throws a DatabaseError
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* try {
|
|
90
|
+
* await db.insert(users).values({ email: 'existing@example.com' })
|
|
91
|
+
* } catch (error) {
|
|
92
|
+
* handleDatabaseError(error, 'insert user', { email: 'existing@example.com' })
|
|
93
|
+
* }
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function handleDatabaseError(error: unknown, operation: string, context?: Record<string, unknown>): never;
|
|
97
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IAGhC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHxC,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAM3C;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,OAAO;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHxC,OAAO,EAAE,MAAM,EACR,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAM3C;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAG7B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,MAAM,CAAC,EAAE,MAAM;IACf,UAAU,CAAC,EAAE,MAAM;IACnB,KAAK,CAAC,EAAE,MAAM;IACd,MAAM,CAAC,EAAE,MAAM;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAPxC,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAY,EACxB,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,KAAK,CAAC,EAAE,MAAM,YAAA,EACd,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAM3C;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;CAkCpB,CAAA;AAkCV;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CA+D7E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,KAAK,CA4WP"}
|