@revealui/core 0.0.1-pre.3 → 0.2.0
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 +29 -180
- 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 +301 -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 +425 -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 +381 -0
- package/dist/caching/service-worker.d.ts +165 -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 +27 -0
- package/dist/client/admin/utils/auth.d.ts.map +1 -0
- package/dist/client/admin/utils/auth.js +58 -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 +12 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +15 -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 +20 -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/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 +162 -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 +213 -0
- package/dist/error-handling/error-reporter.d.ts.map +1 -0
- package/dist/error-handling/error-reporter.js +506 -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 +82 -0
- package/dist/features.d.ts.map +1 -0
- package/dist/features.js +89 -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 +19 -0
- package/dist/generated/types/index.d.ts.map +1 -0
- package/dist/generated/types/index.js +28 -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 +128 -33
- package/dist/instance/RevealUIInstance.d.ts +6 -0
- package/dist/instance/RevealUIInstance.d.ts.map +1 -0
- package/dist/instance/RevealUIInstance.js +312 -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 +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 +32 -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/license.d.ts +73 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +157 -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 +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 +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 +144 -0
- package/dist/optimization/code-splitting.d.ts.map +1 -0
- package/dist/optimization/code-splitting.js +290 -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 +252 -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 +474 -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 +506 -0
- package/dist/security/gdpr.d.ts +300 -0
- package/dist/security/gdpr.d.ts.map +1 -0
- package/dist/security/gdpr.js +470 -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 +14 -0
- package/dist/types/generated.d.ts.map +1 -0
- package/dist/types/generated.js +11 -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 +250 -697
- package/LICENSE_SUMMARY.md +0 -55
- package/NOTICE +0 -34
- package/dist/core/gaurds/logger/log404/index.spec.snapshot-1 +0 -8
- package/dist/core/gaurds/logger/log404/index.spec.snapshot-2 +0 -9
- 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 -17
- package/dist/exports/cli.js +0 -3
- 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/node/cli/index.js +0 -18
- 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,450 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry Logic for API Calls
|
|
3
|
+
*
|
|
4
|
+
* Implements exponential backoff and retry strategies
|
|
5
|
+
*/
|
|
6
|
+
import { logger } from '../observability/logger.js';
|
|
7
|
+
const DEFAULT_CONFIG = {
|
|
8
|
+
maxRetries: 3,
|
|
9
|
+
baseDelay: 1000,
|
|
10
|
+
maxDelay: 30000,
|
|
11
|
+
exponentialBackoff: true,
|
|
12
|
+
jitter: true,
|
|
13
|
+
retryableErrors: (error) => {
|
|
14
|
+
// Check for explicit non-retryable status codes (4xx client errors)
|
|
15
|
+
if ('statusCode' in error) {
|
|
16
|
+
const statusCode = error.statusCode;
|
|
17
|
+
// Don't retry 4xx errors except 408 (timeout) and 429 (rate limit)
|
|
18
|
+
if (statusCode !== undefined && statusCode >= 400 && statusCode < 500) {
|
|
19
|
+
return statusCode === 408 || statusCode === 429;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Retry all other errors by default (network errors, 5xx, generic errors)
|
|
23
|
+
return true;
|
|
24
|
+
},
|
|
25
|
+
onRetry: () => { },
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Retry a function with exponential backoff
|
|
29
|
+
*/
|
|
30
|
+
export async function retry(fn, config = {}, options = {}) {
|
|
31
|
+
const mergedConfig = { ...DEFAULT_CONFIG, ...config };
|
|
32
|
+
let lastError;
|
|
33
|
+
for (let attempt = 0; attempt <= mergedConfig.maxRetries; attempt++) {
|
|
34
|
+
try {
|
|
35
|
+
// Check if aborted
|
|
36
|
+
if (options.signal?.aborted) {
|
|
37
|
+
throw new Error('Request aborted');
|
|
38
|
+
}
|
|
39
|
+
return await fn();
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
43
|
+
// Don't retry if it's the last attempt
|
|
44
|
+
if (attempt === mergedConfig.maxRetries) {
|
|
45
|
+
throw lastError;
|
|
46
|
+
}
|
|
47
|
+
// Don't retry if error is not retryable
|
|
48
|
+
if (!mergedConfig.retryableErrors(lastError)) {
|
|
49
|
+
throw lastError;
|
|
50
|
+
}
|
|
51
|
+
// Call retry callback
|
|
52
|
+
mergedConfig.onRetry(lastError, attempt + 1);
|
|
53
|
+
// Calculate delay
|
|
54
|
+
const delay = calculateDelay(attempt, mergedConfig.baseDelay, mergedConfig.maxDelay, mergedConfig.exponentialBackoff, mergedConfig.jitter);
|
|
55
|
+
// Wait before retrying
|
|
56
|
+
await sleep(delay, options.signal);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
throw lastError;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Calculate retry delay with exponential backoff
|
|
63
|
+
*/
|
|
64
|
+
export function calculateDelay(attempt, baseDelay, maxDelay, exponentialBackoff, jitter) {
|
|
65
|
+
let delay = baseDelay;
|
|
66
|
+
if (exponentialBackoff) {
|
|
67
|
+
// Exponential backoff: 2^attempt * baseDelay
|
|
68
|
+
delay = Math.min(baseDelay * 2 ** attempt, maxDelay);
|
|
69
|
+
}
|
|
70
|
+
if (jitter) {
|
|
71
|
+
// Add random jitter (±25%)
|
|
72
|
+
const jitterAmount = delay * 0.25;
|
|
73
|
+
delay = delay + (Math.random() * jitterAmount * 2 - jitterAmount);
|
|
74
|
+
}
|
|
75
|
+
return Math.floor(delay);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Sleep with abort support
|
|
79
|
+
*/
|
|
80
|
+
export function sleep(ms, signal) {
|
|
81
|
+
return new Promise((resolve, reject) => {
|
|
82
|
+
if (signal?.aborted) {
|
|
83
|
+
reject(new Error('Request aborted'));
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const timeout = setTimeout(resolve, ms);
|
|
87
|
+
if (signal) {
|
|
88
|
+
signal.addEventListener('abort', () => {
|
|
89
|
+
clearTimeout(timeout);
|
|
90
|
+
reject(new Error('Request aborted'));
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Retry wrapper for fetch
|
|
97
|
+
*/
|
|
98
|
+
export async function fetchWithRetry(url, init, config) {
|
|
99
|
+
const abortController = new AbortController();
|
|
100
|
+
const signal = init?.signal || abortController.signal;
|
|
101
|
+
return retry(async () => {
|
|
102
|
+
const response = await fetch(url, {
|
|
103
|
+
...init,
|
|
104
|
+
signal,
|
|
105
|
+
});
|
|
106
|
+
// Throw on error status
|
|
107
|
+
if (!response.ok) {
|
|
108
|
+
const error = new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
109
|
+
error.statusCode = response.status;
|
|
110
|
+
error.response = response;
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
return response;
|
|
114
|
+
}, {
|
|
115
|
+
...config,
|
|
116
|
+
retryableErrors: (error) => {
|
|
117
|
+
// Check custom retryable errors first
|
|
118
|
+
if (config?.retryableErrors && !config.retryableErrors(error)) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
// Don't retry 4xx errors (except 408, 429)
|
|
122
|
+
if ('statusCode' in error) {
|
|
123
|
+
const statusCode = error.statusCode;
|
|
124
|
+
if (statusCode !== undefined && statusCode >= 400 && statusCode < 500) {
|
|
125
|
+
return statusCode === 408 || statusCode === 429;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
},
|
|
130
|
+
}, { signal });
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Retry wrapper class
|
|
134
|
+
*/
|
|
135
|
+
export class RetryableOperation {
|
|
136
|
+
fn;
|
|
137
|
+
config;
|
|
138
|
+
abortController;
|
|
139
|
+
attempts = 0;
|
|
140
|
+
lastError;
|
|
141
|
+
constructor(fn, config = {}) {
|
|
142
|
+
this.fn = fn;
|
|
143
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
144
|
+
this.abortController = new AbortController();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Execute with retry
|
|
148
|
+
*/
|
|
149
|
+
async execute() {
|
|
150
|
+
return retry(this.fn, this.config, { signal: this.abortController.signal });
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Abort operation
|
|
154
|
+
*/
|
|
155
|
+
abort() {
|
|
156
|
+
this.abortController.abort();
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get retry statistics
|
|
160
|
+
*/
|
|
161
|
+
getStats() {
|
|
162
|
+
return {
|
|
163
|
+
attempts: this.attempts,
|
|
164
|
+
lastError: this.lastError,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Retry decorator
|
|
170
|
+
*/
|
|
171
|
+
export function Retryable(config) {
|
|
172
|
+
return (_target, _propertyKey, descriptor) => {
|
|
173
|
+
const originalMethod = descriptor.value;
|
|
174
|
+
descriptor.value = async function (...args) {
|
|
175
|
+
return retry(() => originalMethod.apply(this, args), config);
|
|
176
|
+
};
|
|
177
|
+
return descriptor;
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Create retry middleware for API client
|
|
182
|
+
*/
|
|
183
|
+
export function createRetryMiddleware(config = {}) {
|
|
184
|
+
return async (_request, next) => {
|
|
185
|
+
return retry(next, config);
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Batch retry - retry multiple operations
|
|
190
|
+
*/
|
|
191
|
+
export async function retryBatch(operations, config = {}) {
|
|
192
|
+
return Promise.all(operations.map(async (op) => {
|
|
193
|
+
try {
|
|
194
|
+
return await retry(op, config);
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
198
|
+
}
|
|
199
|
+
}));
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Retry with fallback
|
|
203
|
+
*/
|
|
204
|
+
export async function retryWithFallback(primary, fallback, config = {}) {
|
|
205
|
+
try {
|
|
206
|
+
return await retry(primary, config);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
logger.warn('Primary operation failed, trying fallback', {
|
|
210
|
+
error: error instanceof Error ? error.message : String(error),
|
|
211
|
+
});
|
|
212
|
+
return fallback();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Conditional retry - only retry if condition is met
|
|
217
|
+
*/
|
|
218
|
+
export async function retryIf(fn, condition, config = {}) {
|
|
219
|
+
return retry(fn, {
|
|
220
|
+
...config,
|
|
221
|
+
retryableErrors: (error) => {
|
|
222
|
+
// Check original retryable condition first
|
|
223
|
+
const originalCheck = config.retryableErrors?.(error) ?? DEFAULT_CONFIG.retryableErrors(error);
|
|
224
|
+
if (!originalCheck)
|
|
225
|
+
return false;
|
|
226
|
+
// Then check custom condition
|
|
227
|
+
return condition(error, 0);
|
|
228
|
+
},
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Retry until condition is met
|
|
233
|
+
*/
|
|
234
|
+
export async function retryUntil(fn, predicate, config = {}, maxAttempts = 10) {
|
|
235
|
+
let attempts = 0;
|
|
236
|
+
while (attempts < maxAttempts) {
|
|
237
|
+
try {
|
|
238
|
+
const result = await fn();
|
|
239
|
+
if (predicate(result)) {
|
|
240
|
+
return result;
|
|
241
|
+
}
|
|
242
|
+
// Result doesn't match predicate, treat as retryable error
|
|
243
|
+
attempts++;
|
|
244
|
+
if (attempts >= maxAttempts) {
|
|
245
|
+
throw new Error('Max attempts reached without matching predicate');
|
|
246
|
+
}
|
|
247
|
+
const delay = calculateDelay(attempts - 1, config.baseDelay || DEFAULT_CONFIG.baseDelay, config.maxDelay || DEFAULT_CONFIG.maxDelay, config.exponentialBackoff ?? DEFAULT_CONFIG.exponentialBackoff, config.jitter ?? DEFAULT_CONFIG.jitter);
|
|
248
|
+
await sleep(delay);
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
attempts++;
|
|
252
|
+
if (attempts >= maxAttempts) {
|
|
253
|
+
throw error;
|
|
254
|
+
}
|
|
255
|
+
const delay = calculateDelay(attempts - 1, config.baseDelay || DEFAULT_CONFIG.baseDelay, config.maxDelay || DEFAULT_CONFIG.maxDelay, config.exponentialBackoff ?? DEFAULT_CONFIG.exponentialBackoff, config.jitter ?? DEFAULT_CONFIG.jitter);
|
|
256
|
+
await sleep(delay);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
throw new Error('Max attempts reached');
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Exponential backoff iterator
|
|
263
|
+
*/
|
|
264
|
+
export class ExponentialBackoff {
|
|
265
|
+
baseDelay;
|
|
266
|
+
maxDelay;
|
|
267
|
+
maxAttempts;
|
|
268
|
+
jitter;
|
|
269
|
+
constructor(baseDelay = 1000, maxDelay = 30000, maxAttempts = 10, jitter = true) {
|
|
270
|
+
this.baseDelay = baseDelay;
|
|
271
|
+
this.maxDelay = maxDelay;
|
|
272
|
+
this.maxAttempts = maxAttempts;
|
|
273
|
+
this.jitter = jitter;
|
|
274
|
+
}
|
|
275
|
+
async *[Symbol.asyncIterator]() {
|
|
276
|
+
for (let attempt = 0; attempt < this.maxAttempts; attempt++) {
|
|
277
|
+
const delay = calculateDelay(attempt, this.baseDelay, this.maxDelay, true, this.jitter);
|
|
278
|
+
yield delay;
|
|
279
|
+
await sleep(delay);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Retry policy builder
|
|
285
|
+
*/
|
|
286
|
+
export class RetryPolicyBuilder {
|
|
287
|
+
config = {};
|
|
288
|
+
/**
|
|
289
|
+
* Set max retries
|
|
290
|
+
*/
|
|
291
|
+
maxRetries(count) {
|
|
292
|
+
this.config.maxRetries = count;
|
|
293
|
+
return this;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Set base delay
|
|
297
|
+
*/
|
|
298
|
+
baseDelay(ms) {
|
|
299
|
+
this.config.baseDelay = ms;
|
|
300
|
+
return this;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Set max delay
|
|
304
|
+
*/
|
|
305
|
+
maxDelay(ms) {
|
|
306
|
+
this.config.maxDelay = ms;
|
|
307
|
+
return this;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Enable/disable exponential backoff
|
|
311
|
+
*/
|
|
312
|
+
exponentialBackoff(enabled = true) {
|
|
313
|
+
this.config.exponentialBackoff = enabled;
|
|
314
|
+
return this;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Enable/disable jitter
|
|
318
|
+
*/
|
|
319
|
+
jitter(enabled = true) {
|
|
320
|
+
this.config.jitter = enabled;
|
|
321
|
+
return this;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Set custom retryable errors function
|
|
325
|
+
*/
|
|
326
|
+
retryOn(fn) {
|
|
327
|
+
this.config.retryableErrors = fn;
|
|
328
|
+
return this;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Set retry callback
|
|
332
|
+
*/
|
|
333
|
+
onRetry(fn) {
|
|
334
|
+
this.config.onRetry = fn;
|
|
335
|
+
return this;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Build retry config
|
|
339
|
+
*/
|
|
340
|
+
build() {
|
|
341
|
+
return this.config;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Execute function with built policy
|
|
345
|
+
*/
|
|
346
|
+
async execute(fn) {
|
|
347
|
+
return retry(fn, this.build());
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Common retry policies
|
|
352
|
+
*/
|
|
353
|
+
export const RetryPolicies = {
|
|
354
|
+
/**
|
|
355
|
+
* Default policy - 3 retries with exponential backoff
|
|
356
|
+
*/
|
|
357
|
+
default: () => ({
|
|
358
|
+
maxRetries: 3,
|
|
359
|
+
baseDelay: 1000,
|
|
360
|
+
maxDelay: 30000,
|
|
361
|
+
exponentialBackoff: true,
|
|
362
|
+
jitter: true,
|
|
363
|
+
}),
|
|
364
|
+
/**
|
|
365
|
+
* Aggressive policy - more retries, faster backoff
|
|
366
|
+
*/
|
|
367
|
+
aggressive: () => ({
|
|
368
|
+
maxRetries: 5,
|
|
369
|
+
baseDelay: 500,
|
|
370
|
+
maxDelay: 10000,
|
|
371
|
+
exponentialBackoff: true,
|
|
372
|
+
jitter: true,
|
|
373
|
+
}),
|
|
374
|
+
/**
|
|
375
|
+
* Conservative policy - fewer retries, longer backoff
|
|
376
|
+
*/
|
|
377
|
+
conservative: () => ({
|
|
378
|
+
maxRetries: 2,
|
|
379
|
+
baseDelay: 2000,
|
|
380
|
+
maxDelay: 60000,
|
|
381
|
+
exponentialBackoff: true,
|
|
382
|
+
jitter: true,
|
|
383
|
+
}),
|
|
384
|
+
/**
|
|
385
|
+
* Linear backoff policy
|
|
386
|
+
*/
|
|
387
|
+
linear: () => ({
|
|
388
|
+
maxRetries: 3,
|
|
389
|
+
baseDelay: 1000,
|
|
390
|
+
maxDelay: 10000,
|
|
391
|
+
exponentialBackoff: false,
|
|
392
|
+
jitter: false,
|
|
393
|
+
}),
|
|
394
|
+
/**
|
|
395
|
+
* Immediate retry policy - no delay
|
|
396
|
+
*/
|
|
397
|
+
immediate: () => ({
|
|
398
|
+
maxRetries: 3,
|
|
399
|
+
baseDelay: 0,
|
|
400
|
+
maxDelay: 0,
|
|
401
|
+
exponentialBackoff: false,
|
|
402
|
+
jitter: false,
|
|
403
|
+
}),
|
|
404
|
+
/**
|
|
405
|
+
* Network error only policy
|
|
406
|
+
*/
|
|
407
|
+
networkOnly: () => ({
|
|
408
|
+
maxRetries: 3,
|
|
409
|
+
baseDelay: 1000,
|
|
410
|
+
maxDelay: 30000,
|
|
411
|
+
exponentialBackoff: true,
|
|
412
|
+
jitter: true,
|
|
413
|
+
retryableErrors: (error) => error.name === 'NetworkError',
|
|
414
|
+
}),
|
|
415
|
+
/**
|
|
416
|
+
* Idempotent operations policy (safe to retry)
|
|
417
|
+
*/
|
|
418
|
+
idempotent: () => ({
|
|
419
|
+
maxRetries: 5,
|
|
420
|
+
baseDelay: 1000,
|
|
421
|
+
maxDelay: 30000,
|
|
422
|
+
exponentialBackoff: true,
|
|
423
|
+
jitter: true,
|
|
424
|
+
}),
|
|
425
|
+
};
|
|
426
|
+
/**
|
|
427
|
+
* Global retry configuration
|
|
428
|
+
*/
|
|
429
|
+
class GlobalRetryConfig {
|
|
430
|
+
config = RetryPolicies.default();
|
|
431
|
+
/**
|
|
432
|
+
* Set global retry config
|
|
433
|
+
*/
|
|
434
|
+
setConfig(config) {
|
|
435
|
+
this.config = { ...this.config, ...config };
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Get global retry config
|
|
439
|
+
*/
|
|
440
|
+
getConfig() {
|
|
441
|
+
return this.config;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Reset to default config
|
|
445
|
+
*/
|
|
446
|
+
reset() {
|
|
447
|
+
this.config = RetryPolicies.default();
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
export const globalRetryConfig = new GlobalRetryConfig();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RevealUI CMS Errors
|
|
3
|
+
* @module @revealui/core/errors
|
|
4
|
+
*/
|
|
5
|
+
export declare class RevealUIError extends Error {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class MissingEditorProp extends RevealUIError {
|
|
9
|
+
constructor(fieldName?: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class ValidationError extends RevealUIError {
|
|
12
|
+
constructor(message: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class ConfigurationError extends RevealUIError {
|
|
15
|
+
constructor(message: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class AccessDeniedError extends RevealUIError {
|
|
18
|
+
constructor(message?: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class NotFoundError extends RevealUIError {
|
|
21
|
+
constructor(resource?: string);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,SAAS,CAAC,EAAE,MAAM;CAI/B;AAED,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,kBAAmB,SAAQ,aAAa;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,OAAO,SAAkB;CAItC;AAED,qBAAa,aAAc,SAAQ,aAAa;gBAClC,QAAQ,CAAC,EAAE,MAAM;CAI9B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RevealUI CMS Errors
|
|
3
|
+
* @module @revealui/core/errors
|
|
4
|
+
*/
|
|
5
|
+
export class RevealUIError extends Error {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = 'RevealUIError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class MissingEditorProp extends RevealUIError {
|
|
12
|
+
constructor(fieldName) {
|
|
13
|
+
super(`Missing editor prop${fieldName ? ` for field: ${fieldName}` : ''}`);
|
|
14
|
+
this.name = 'MissingEditorProp';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class ValidationError extends RevealUIError {
|
|
18
|
+
constructor(message) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = 'ValidationError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class ConfigurationError extends RevealUIError {
|
|
24
|
+
constructor(message) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.name = 'ConfigurationError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class AccessDeniedError extends RevealUIError {
|
|
30
|
+
constructor(message = 'Access denied') {
|
|
31
|
+
super(message);
|
|
32
|
+
this.name = 'AccessDeniedError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class NotFoundError extends RevealUIError {
|
|
36
|
+
constructor(resource) {
|
|
37
|
+
super(`${resource || 'Resource'} not found`);
|
|
38
|
+
this.name = 'NotFoundError';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { RevealConfig, RevealUIAccessRule, RevealUIBlock, RevealUICollectionConfig, RevealUIField, RevealUIInstance } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Factory Functions
|
|
4
|
+
*
|
|
5
|
+
* Helper functions for creating RevealUI configuration objects.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Creates a RevealUI instance (wrapper around createRevealUIInstance for backward compatibility)
|
|
9
|
+
*/
|
|
10
|
+
export declare function createRevealUI(config: RevealConfig): Promise<RevealUIInstance>;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a collection configuration with defaults
|
|
13
|
+
*/
|
|
14
|
+
export declare function createRevealUICollection(options: {
|
|
15
|
+
slug: string;
|
|
16
|
+
fields: RevealUIField[];
|
|
17
|
+
revealUI?: RevealUICollectionConfig['revealUI'];
|
|
18
|
+
access?: RevealUICollectionConfig['access'];
|
|
19
|
+
}): RevealUICollectionConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a field configuration with defaults
|
|
22
|
+
*/
|
|
23
|
+
export declare function createRevealUIField(options: {
|
|
24
|
+
name: string;
|
|
25
|
+
type: RevealUIField['type'];
|
|
26
|
+
label?: string;
|
|
27
|
+
required?: boolean;
|
|
28
|
+
revealUI?: RevealUIField['revealUI'];
|
|
29
|
+
admin?: RevealUIField['admin'];
|
|
30
|
+
validate?: RevealUIField['validate'];
|
|
31
|
+
}): RevealUIField;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a block configuration with defaults
|
|
34
|
+
*/
|
|
35
|
+
export declare function createRevealUIBlock(options: {
|
|
36
|
+
slug: string;
|
|
37
|
+
fields: RevealUIField[];
|
|
38
|
+
revealUI?: RevealUIBlock['revealUI'];
|
|
39
|
+
labels?: RevealUIBlock['labels'];
|
|
40
|
+
}): RevealUIBlock;
|
|
41
|
+
/**
|
|
42
|
+
* Creates an access rule configuration
|
|
43
|
+
*/
|
|
44
|
+
export declare function createRevealUIAccessRule(options: {
|
|
45
|
+
tenant?: string;
|
|
46
|
+
user?: string;
|
|
47
|
+
permissions?: RevealUIAccessRule['permissions'];
|
|
48
|
+
condition?: RevealUIAccessRule['condition'];
|
|
49
|
+
}): RevealUIAccessRule;
|
|
50
|
+
//# sourceMappingURL=builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/factories/builders.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAE1B;;;;GAIG;AAEH;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEpF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC/C,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAA;CAC5C,GAAG,wBAAwB,CAY3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACpC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAC9B,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CACrC,GAAG,aAAa,CAiBhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CACjC,GAAG,aAAa,CAahB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAA;IAC/C,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAA;CAC5C,GAAG,kBAAkB,CAOrB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { createRevealUIInstance } from '../instance/RevealUIInstance.js';
|
|
2
|
+
/**
|
|
3
|
+
* Factory Functions
|
|
4
|
+
*
|
|
5
|
+
* Helper functions for creating RevealUI configuration objects.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Creates a RevealUI instance (wrapper around createRevealUIInstance for backward compatibility)
|
|
9
|
+
*/
|
|
10
|
+
export async function createRevealUI(config) {
|
|
11
|
+
return createRevealUIInstance(config);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates a collection configuration with defaults
|
|
15
|
+
*/
|
|
16
|
+
export function createRevealUICollection(options) {
|
|
17
|
+
return {
|
|
18
|
+
slug: options.slug,
|
|
19
|
+
fields: options.fields,
|
|
20
|
+
revealUI: {
|
|
21
|
+
tenantScoped: false,
|
|
22
|
+
auditLog: false,
|
|
23
|
+
permissions: ['read', 'update'],
|
|
24
|
+
...(options.revealUI || {}),
|
|
25
|
+
},
|
|
26
|
+
access: options.access,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates a field configuration with defaults
|
|
31
|
+
*/
|
|
32
|
+
export function createRevealUIField(options) {
|
|
33
|
+
return {
|
|
34
|
+
name: options.name,
|
|
35
|
+
type: options.type,
|
|
36
|
+
label: options.label,
|
|
37
|
+
required: options.required,
|
|
38
|
+
revealUI: {
|
|
39
|
+
searchable: false,
|
|
40
|
+
permissions: ['read', 'update'],
|
|
41
|
+
tenantScoped: false,
|
|
42
|
+
auditLog: false,
|
|
43
|
+
validation: [],
|
|
44
|
+
...options.revealUI,
|
|
45
|
+
},
|
|
46
|
+
admin: options.admin,
|
|
47
|
+
validate: options.validate,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates a block configuration with defaults
|
|
52
|
+
*/
|
|
53
|
+
export function createRevealUIBlock(options) {
|
|
54
|
+
return {
|
|
55
|
+
slug: options.slug,
|
|
56
|
+
fields: options.fields,
|
|
57
|
+
revealUI: {
|
|
58
|
+
category: 'content',
|
|
59
|
+
icon: 'block',
|
|
60
|
+
permissions: ['read', 'update'],
|
|
61
|
+
tenantScoped: false,
|
|
62
|
+
...options.revealUI,
|
|
63
|
+
},
|
|
64
|
+
labels: options.labels,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Creates an access rule configuration
|
|
69
|
+
*/
|
|
70
|
+
export function createRevealUIAccessRule(options) {
|
|
71
|
+
return {
|
|
72
|
+
tenant: options.tenant,
|
|
73
|
+
user: options.user,
|
|
74
|
+
permissions: options.permissions,
|
|
75
|
+
condition: options.condition,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { createRevealUI, createRevealUIAccessRule, createRevealUIBlock, createRevealUICollection, createRevealUIField, } from './builders.js';
|