@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,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-Safe Logger
|
|
3
|
+
*
|
|
4
|
+
* Production-safe logging utility that works in both client and server contexts.
|
|
5
|
+
* Does not depend on Node.js APIs (no async_hooks, no crypto).
|
|
6
|
+
* Info/warn messages are no-ops in production to avoid console pollution.
|
|
7
|
+
*
|
|
8
|
+
* NOTE: No 'use client' directive here. This is a plain utility module, not a
|
|
9
|
+
* React component. Adding 'use client' causes Next.js to create a reference
|
|
10
|
+
* proxy when imported from server code (API routes), stripping all methods.
|
|
11
|
+
*/
|
|
12
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
13
|
+
export interface LogContext {
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
export interface Logger {
|
|
17
|
+
debug(message: string, context?: LogContext): void;
|
|
18
|
+
info(message: string, context?: LogContext): void;
|
|
19
|
+
warn(message: string, context?: LogContext): void;
|
|
20
|
+
error(message: string, context?: LogContext): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a client-safe logger instance
|
|
24
|
+
*
|
|
25
|
+
* @returns Logger instance safe for client-side use
|
|
26
|
+
*/
|
|
27
|
+
export declare function createLogger(): Logger;
|
|
28
|
+
/**
|
|
29
|
+
* Default client-safe logger instance
|
|
30
|
+
*/
|
|
31
|
+
export declare const logger: Logger;
|
|
32
|
+
//# sourceMappingURL=logger-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-client.d.ts","sourceRoot":"","sources":["../../src/utils/logger-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAClD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACjD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CACnD;AAyCD;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,QAAiB,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-Safe Logger
|
|
3
|
+
*
|
|
4
|
+
* Production-safe logging utility that works in both client and server contexts.
|
|
5
|
+
* Does not depend on Node.js APIs (no async_hooks, no crypto).
|
|
6
|
+
* Info/warn messages are no-ops in production to avoid console pollution.
|
|
7
|
+
*
|
|
8
|
+
* NOTE: No 'use client' directive here. This is a plain utility module, not a
|
|
9
|
+
* React component. Adding 'use client' causes Next.js to create a reference
|
|
10
|
+
* proxy when imported from server code (API routes), stripping all methods.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Client-safe logger implementation
|
|
14
|
+
* Simple console-based logging without Node.js dependencies
|
|
15
|
+
*/
|
|
16
|
+
class ClientLogger {
|
|
17
|
+
formatMessage(level, message, context) {
|
|
18
|
+
const timestamp = new Date().toISOString();
|
|
19
|
+
const prefix = `[${timestamp}] [RevealUI] [${level.toUpperCase()}]`;
|
|
20
|
+
if (context && Object.keys(context).length > 0) {
|
|
21
|
+
return `${prefix} ${message} ${JSON.stringify(context)}`;
|
|
22
|
+
}
|
|
23
|
+
return `${prefix} ${message}`;
|
|
24
|
+
}
|
|
25
|
+
debug(message, context) {
|
|
26
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
27
|
+
console.debug(this.formatMessage('debug', message, context));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
info(message, context) {
|
|
31
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
32
|
+
console.info(this.formatMessage('info', message, context));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
warn(message, context) {
|
|
36
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
37
|
+
console.warn(this.formatMessage('warn', message, context));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
error(message, context) {
|
|
41
|
+
console.error(this.formatMessage('error', message, context));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a client-safe logger instance
|
|
46
|
+
*
|
|
47
|
+
* @returns Logger instance safe for client-side use
|
|
48
|
+
*/
|
|
49
|
+
export function createLogger() {
|
|
50
|
+
return new ClientLogger();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Default client-safe logger instance
|
|
54
|
+
*/
|
|
55
|
+
export const logger = createLogger();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Logger Utility
|
|
3
|
+
*
|
|
4
|
+
* Server-side logging utility for RevealUI framework.
|
|
5
|
+
* Supports different log levels and structured output.
|
|
6
|
+
* Automatically includes request ID from request context when available.
|
|
7
|
+
*
|
|
8
|
+
* WARNING: This module uses Node.js APIs (async_hooks via request-context).
|
|
9
|
+
* For client-safe logging, use './logger-client.js' instead.
|
|
10
|
+
*/
|
|
11
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
12
|
+
export interface LogContext {
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
export interface Logger {
|
|
16
|
+
debug(message: string, context?: LogContext): void;
|
|
17
|
+
info(message: string, context?: LogContext): void;
|
|
18
|
+
warn(message: string, context?: LogContext): void;
|
|
19
|
+
error(message: string, context?: LogContext): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Create a logger instance
|
|
23
|
+
*
|
|
24
|
+
* @param minLevel - Minimum log level to output (default: 'info')
|
|
25
|
+
* @returns Logger instance
|
|
26
|
+
*/
|
|
27
|
+
export declare function createLogger(minLevel?: LogLevel): Logger;
|
|
28
|
+
/**
|
|
29
|
+
* Default logger instance
|
|
30
|
+
*/
|
|
31
|
+
export declare const logger: Logger;
|
|
32
|
+
//# sourceMappingURL=logger-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-server.d.ts","sourceRoot":"","sources":["../../src/utils/logger-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAClD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACjD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CACnD;AAsDD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAKxD;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,QAAiB,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Logger Utility
|
|
3
|
+
*
|
|
4
|
+
* Server-side logging utility for RevealUI framework.
|
|
5
|
+
* Supports different log levels and structured output.
|
|
6
|
+
* Automatically includes request ID from request context when available.
|
|
7
|
+
*
|
|
8
|
+
* WARNING: This module uses Node.js APIs (async_hooks via request-context).
|
|
9
|
+
* For client-safe logging, use './logger-client.js' instead.
|
|
10
|
+
*/
|
|
11
|
+
import { getRequestId } from './request-context.js';
|
|
12
|
+
class ConsoleLogger {
|
|
13
|
+
minLevel;
|
|
14
|
+
constructor(minLevel = 'info') {
|
|
15
|
+
this.minLevel = minLevel;
|
|
16
|
+
}
|
|
17
|
+
shouldLog(level) {
|
|
18
|
+
const levels = ['debug', 'info', 'warn', 'error'];
|
|
19
|
+
return levels.indexOf(level) >= levels.indexOf(this.minLevel);
|
|
20
|
+
}
|
|
21
|
+
formatMessage(level, message, context) {
|
|
22
|
+
const timestamp = new Date().toISOString();
|
|
23
|
+
const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
|
|
24
|
+
// Automatically include request ID if available
|
|
25
|
+
const requestId = getRequestId();
|
|
26
|
+
const enrichedContext = requestId ? { requestId, ...context } : context;
|
|
27
|
+
if (enrichedContext && Object.keys(enrichedContext).length > 0) {
|
|
28
|
+
return `${prefix} ${message} ${JSON.stringify(enrichedContext)}`;
|
|
29
|
+
}
|
|
30
|
+
return `${prefix} ${message}`;
|
|
31
|
+
}
|
|
32
|
+
debug(message, context) {
|
|
33
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
34
|
+
console.debug(this.formatMessage('debug', message, context));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
info(message, context) {
|
|
38
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
39
|
+
console.info(this.formatMessage('info', message, context));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
warn(message, context) {
|
|
43
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
44
|
+
console.warn(this.formatMessage('warn', message, context));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
error(message, context) {
|
|
48
|
+
if (this.shouldLog('error')) {
|
|
49
|
+
console.error(this.formatMessage('error', message, context));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create a logger instance
|
|
55
|
+
*
|
|
56
|
+
* @param minLevel - Minimum log level to output (default: 'info')
|
|
57
|
+
* @returns Logger instance
|
|
58
|
+
*/
|
|
59
|
+
export function createLogger(minLevel) {
|
|
60
|
+
// In production, can be extended to use structured logging services
|
|
61
|
+
// For now, use console-based logger
|
|
62
|
+
const level = minLevel || process.env.LOG_LEVEL || 'info';
|
|
63
|
+
return new ConsoleLogger(level);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Default logger instance
|
|
67
|
+
*/
|
|
68
|
+
export const logger = createLogger();
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger Utility - Default Export
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the client-safe logger implementation.
|
|
5
|
+
* This ensures that default imports get the client-safe version
|
|
6
|
+
* without Node.js dependencies (no async_hooks, no crypto).
|
|
7
|
+
*
|
|
8
|
+
* For server-side logging with request context:
|
|
9
|
+
* import { logger } from '@revealui/core/server'
|
|
10
|
+
* import { logger } from '@revealui/core/utils/logger/server'
|
|
11
|
+
*/
|
|
12
|
+
export type { LogContext, Logger, LogLevel } from './logger-client.js';
|
|
13
|
+
export { createLogger, logger } from './logger-client.js';
|
|
14
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger Utility - Default Export
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the client-safe logger implementation.
|
|
5
|
+
* This ensures that default imports get the client-safe version
|
|
6
|
+
* without Node.js dependencies (no async_hooks, no crypto).
|
|
7
|
+
*
|
|
8
|
+
* For server-side logging with request context:
|
|
9
|
+
* import { logger } from '@revealui/core/server'
|
|
10
|
+
* import { logger } from '@revealui/core/utils/logger/server'
|
|
11
|
+
*/
|
|
12
|
+
export { createLogger, logger } from './logger-client.js';
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Context Management
|
|
3
|
+
*
|
|
4
|
+
* Provides request ID generation and context propagation for distributed tracing.
|
|
5
|
+
* Request IDs enable tracking a single request across multiple services and logs.
|
|
6
|
+
*
|
|
7
|
+
* WARNING: This module uses Node.js-specific APIs (async_hooks, crypto).
|
|
8
|
+
* Do NOT import in client-side code or edge runtime.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Request context data stored in AsyncLocalStorage
|
|
12
|
+
*/
|
|
13
|
+
export interface RequestContext {
|
|
14
|
+
/** Unique request identifier */
|
|
15
|
+
requestId: string;
|
|
16
|
+
/** Request start timestamp */
|
|
17
|
+
startTime: number;
|
|
18
|
+
/** User ID (if authenticated) */
|
|
19
|
+
userId?: string;
|
|
20
|
+
/** IP address */
|
|
21
|
+
ip?: string;
|
|
22
|
+
/** User agent */
|
|
23
|
+
userAgent?: string;
|
|
24
|
+
/** Request path */
|
|
25
|
+
path?: string;
|
|
26
|
+
/** Request method */
|
|
27
|
+
method?: string;
|
|
28
|
+
/** Additional metadata */
|
|
29
|
+
metadata?: Record<string, unknown>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate a new request ID
|
|
33
|
+
* Uses UUID v4 for guaranteed uniqueness
|
|
34
|
+
*/
|
|
35
|
+
export declare function generateRequestId(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Get the current request context
|
|
38
|
+
* Returns undefined if not in a request context
|
|
39
|
+
*/
|
|
40
|
+
export declare function getRequestContext(): RequestContext | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Get the current request ID
|
|
43
|
+
* Returns undefined if not in a request context
|
|
44
|
+
*/
|
|
45
|
+
export declare function getRequestId(): string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Run a function within a request context
|
|
48
|
+
*
|
|
49
|
+
* @param context - Request context data
|
|
50
|
+
* @param fn - Function to run within the context
|
|
51
|
+
* @returns Result of the function
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* await runInRequestContext(
|
|
56
|
+
* {
|
|
57
|
+
* requestId: generateRequestId(),
|
|
58
|
+
* startTime: Date.now(),
|
|
59
|
+
* userId: 'user-123',
|
|
60
|
+
* path: '/api/users',
|
|
61
|
+
* method: 'GET',
|
|
62
|
+
* },
|
|
63
|
+
* async () => {
|
|
64
|
+
* // All code here has access to request context
|
|
65
|
+
* const requestId = getRequestId()
|
|
66
|
+
* logger.info('Processing request', { requestId })
|
|
67
|
+
* }
|
|
68
|
+
* )
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function runInRequestContext<T>(context: RequestContext, fn: () => T): T;
|
|
72
|
+
/**
|
|
73
|
+
* Update the current request context with additional data
|
|
74
|
+
*
|
|
75
|
+
* @param updates - Partial context updates to merge
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* updateRequestContext({ userId: 'user-123' })
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function updateRequestContext(updates: Partial<RequestContext>): void;
|
|
83
|
+
/**
|
|
84
|
+
* Extract request ID from various header formats
|
|
85
|
+
*
|
|
86
|
+
* Checks multiple common header names:
|
|
87
|
+
* - x-request-id (standard)
|
|
88
|
+
* - x-correlation-id (correlation pattern)
|
|
89
|
+
* - x-trace-id (OpenTelemetry)
|
|
90
|
+
* - request-id (simple)
|
|
91
|
+
*
|
|
92
|
+
* @param headers - Request headers (any format)
|
|
93
|
+
* @returns Request ID or undefined
|
|
94
|
+
*/
|
|
95
|
+
export declare function extractRequestId(headers: Record<string, string | string[] | undefined>): string | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Create request context from HTTP request
|
|
98
|
+
*
|
|
99
|
+
* @param options - Request information
|
|
100
|
+
* @returns Request context
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* const context = createRequestContext({
|
|
105
|
+
* headers: request.headers,
|
|
106
|
+
* path: request.url,
|
|
107
|
+
* method: request.method,
|
|
108
|
+
* ip: request.ip,
|
|
109
|
+
* })
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare function createRequestContext(options: {
|
|
113
|
+
headers?: Record<string, string | string[] | undefined>;
|
|
114
|
+
path?: string;
|
|
115
|
+
method?: string;
|
|
116
|
+
ip?: string;
|
|
117
|
+
userId?: string;
|
|
118
|
+
}): RequestContext;
|
|
119
|
+
/**
|
|
120
|
+
* Get request duration in milliseconds
|
|
121
|
+
*
|
|
122
|
+
* @returns Duration in ms, or undefined if not in request context
|
|
123
|
+
*/
|
|
124
|
+
export declare function getRequestDuration(): number | undefined;
|
|
125
|
+
/**
|
|
126
|
+
* Request context headers for propagating across services
|
|
127
|
+
*
|
|
128
|
+
* Use these when making HTTP requests to other services to maintain trace continuity
|
|
129
|
+
*
|
|
130
|
+
* @returns Headers object with request ID
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* const response = await fetch('https://api.example.com/users', {
|
|
135
|
+
* headers: {
|
|
136
|
+
* ...getRequestHeaders(),
|
|
137
|
+
* 'Authorization': 'Bearer token',
|
|
138
|
+
* }
|
|
139
|
+
* })
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export declare function getRequestHeaders(): Record<string, string>;
|
|
143
|
+
//# sourceMappingURL=request-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/utils/request-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAA;IAEjB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAA;IAEjB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,iBAAiB;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;IAEX,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAK3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,MAAM,GAAG,SAAS,CAWpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,cAAc,CAajB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAKvD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO1D"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Context Management
|
|
3
|
+
*
|
|
4
|
+
* Provides request ID generation and context propagation for distributed tracing.
|
|
5
|
+
* Request IDs enable tracking a single request across multiple services and logs.
|
|
6
|
+
*
|
|
7
|
+
* WARNING: This module uses Node.js-specific APIs (async_hooks, crypto).
|
|
8
|
+
* Do NOT import in client-side code or edge runtime.
|
|
9
|
+
*/
|
|
10
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
11
|
+
import { randomUUID } from 'node:crypto';
|
|
12
|
+
/**
|
|
13
|
+
* AsyncLocalStorage for request context
|
|
14
|
+
* Provides request-scoped storage without passing context through every function
|
|
15
|
+
*/
|
|
16
|
+
const requestContextStorage = new AsyncLocalStorage();
|
|
17
|
+
/**
|
|
18
|
+
* Generate a new request ID
|
|
19
|
+
* Uses UUID v4 for guaranteed uniqueness
|
|
20
|
+
*/
|
|
21
|
+
export function generateRequestId() {
|
|
22
|
+
return randomUUID();
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the current request context
|
|
26
|
+
* Returns undefined if not in a request context
|
|
27
|
+
*/
|
|
28
|
+
export function getRequestContext() {
|
|
29
|
+
return requestContextStorage.getStore();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the current request ID
|
|
33
|
+
* Returns undefined if not in a request context
|
|
34
|
+
*/
|
|
35
|
+
export function getRequestId() {
|
|
36
|
+
return getRequestContext()?.requestId;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Run a function within a request context
|
|
40
|
+
*
|
|
41
|
+
* @param context - Request context data
|
|
42
|
+
* @param fn - Function to run within the context
|
|
43
|
+
* @returns Result of the function
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* await runInRequestContext(
|
|
48
|
+
* {
|
|
49
|
+
* requestId: generateRequestId(),
|
|
50
|
+
* startTime: Date.now(),
|
|
51
|
+
* userId: 'user-123',
|
|
52
|
+
* path: '/api/users',
|
|
53
|
+
* method: 'GET',
|
|
54
|
+
* },
|
|
55
|
+
* async () => {
|
|
56
|
+
* // All code here has access to request context
|
|
57
|
+
* const requestId = getRequestId()
|
|
58
|
+
* logger.info('Processing request', { requestId })
|
|
59
|
+
* }
|
|
60
|
+
* )
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export function runInRequestContext(context, fn) {
|
|
64
|
+
return requestContextStorage.run(context, fn);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Update the current request context with additional data
|
|
68
|
+
*
|
|
69
|
+
* @param updates - Partial context updates to merge
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* updateRequestContext({ userId: 'user-123' })
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export function updateRequestContext(updates) {
|
|
77
|
+
const current = getRequestContext();
|
|
78
|
+
if (current) {
|
|
79
|
+
Object.assign(current, updates);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Extract request ID from various header formats
|
|
84
|
+
*
|
|
85
|
+
* Checks multiple common header names:
|
|
86
|
+
* - x-request-id (standard)
|
|
87
|
+
* - x-correlation-id (correlation pattern)
|
|
88
|
+
* - x-trace-id (OpenTelemetry)
|
|
89
|
+
* - request-id (simple)
|
|
90
|
+
*
|
|
91
|
+
* @param headers - Request headers (any format)
|
|
92
|
+
* @returns Request ID or undefined
|
|
93
|
+
*/
|
|
94
|
+
export function extractRequestId(headers) {
|
|
95
|
+
const headerNames = ['x-request-id', 'x-correlation-id', 'x-trace-id', 'request-id'];
|
|
96
|
+
for (const name of headerNames) {
|
|
97
|
+
const value = headers[name];
|
|
98
|
+
if (value) {
|
|
99
|
+
return Array.isArray(value) ? value[0] : value;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Create request context from HTTP request
|
|
106
|
+
*
|
|
107
|
+
* @param options - Request information
|
|
108
|
+
* @returns Request context
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const context = createRequestContext({
|
|
113
|
+
* headers: request.headers,
|
|
114
|
+
* path: request.url,
|
|
115
|
+
* method: request.method,
|
|
116
|
+
* ip: request.ip,
|
|
117
|
+
* })
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export function createRequestContext(options) {
|
|
121
|
+
// Try to extract existing request ID from headers, or generate new one
|
|
122
|
+
const requestId = options.headers ? extractRequestId(options.headers) : undefined;
|
|
123
|
+
return {
|
|
124
|
+
requestId: requestId || generateRequestId(),
|
|
125
|
+
startTime: Date.now(),
|
|
126
|
+
path: options.path,
|
|
127
|
+
method: options.method,
|
|
128
|
+
ip: options.ip,
|
|
129
|
+
userId: options.userId,
|
|
130
|
+
userAgent: options.headers?.['user-agent'],
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get request duration in milliseconds
|
|
135
|
+
*
|
|
136
|
+
* @returns Duration in ms, or undefined if not in request context
|
|
137
|
+
*/
|
|
138
|
+
export function getRequestDuration() {
|
|
139
|
+
const context = getRequestContext();
|
|
140
|
+
if (!context)
|
|
141
|
+
return undefined;
|
|
142
|
+
return Date.now() - context.startTime;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Request context headers for propagating across services
|
|
146
|
+
*
|
|
147
|
+
* Use these when making HTTP requests to other services to maintain trace continuity
|
|
148
|
+
*
|
|
149
|
+
* @returns Headers object with request ID
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* const response = await fetch('https://api.example.com/users', {
|
|
154
|
+
* headers: {
|
|
155
|
+
* ...getRequestHeaders(),
|
|
156
|
+
* 'Authorization': 'Bearer token',
|
|
157
|
+
* }
|
|
158
|
+
* })
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export function getRequestHeaders() {
|
|
162
|
+
const requestId = getRequestId();
|
|
163
|
+
if (!requestId)
|
|
164
|
+
return {};
|
|
165
|
+
return {
|
|
166
|
+
'x-request-id': requestId,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Header Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for extracting headers from RevealRequest objects.
|
|
5
|
+
* Handles various header types (Headers, Map, plain object).
|
|
6
|
+
*/
|
|
7
|
+
import type { RevealRequest } from '../types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Extract authorization header from request
|
|
10
|
+
*
|
|
11
|
+
* @param req - RevealRequest object
|
|
12
|
+
* @returns Authorization header value or null if not found
|
|
13
|
+
*/
|
|
14
|
+
export declare function extractAuthHeader(req?: RevealRequest): string | null;
|
|
15
|
+
//# sourceMappingURL=request-headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-headers.d.ts","sourceRoot":"","sources":["../../src/utils/request-headers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAqBpE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Header Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for extracting headers from RevealRequest objects.
|
|
5
|
+
* Handles various header types (Headers, Map, plain object).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Extract authorization header from request
|
|
9
|
+
*
|
|
10
|
+
* @param req - RevealRequest object
|
|
11
|
+
* @returns Authorization header value or null if not found
|
|
12
|
+
*/
|
|
13
|
+
export function extractAuthHeader(req) {
|
|
14
|
+
if (!req?.headers) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
let authHeader;
|
|
18
|
+
// Handle Headers object
|
|
19
|
+
if (req.headers instanceof Headers) {
|
|
20
|
+
authHeader = req.headers.get('authorization') || undefined;
|
|
21
|
+
}
|
|
22
|
+
// Handle Map object (used in tests) - type cast to avoid TS error
|
|
23
|
+
else if (req.headers instanceof Map) {
|
|
24
|
+
authHeader = req.headers.get('authorization') || undefined;
|
|
25
|
+
}
|
|
26
|
+
// Handle plain object with authorization property
|
|
27
|
+
else if (typeof req.headers === 'object' && 'authorization' in req.headers) {
|
|
28
|
+
authHeader = req.headers.authorization;
|
|
29
|
+
}
|
|
30
|
+
return authHeader || null;
|
|
31
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Field, SelectType } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Strips unselected fields from a document based on select configuration
|
|
4
|
+
*/
|
|
5
|
+
export declare const stripUnselectedFields: ({ field, select, siblingDoc, }: {
|
|
6
|
+
field: Field;
|
|
7
|
+
select: SelectType;
|
|
8
|
+
siblingDoc: Record<string, unknown>;
|
|
9
|
+
}) => void;
|
|
10
|
+
//# sourceMappingURL=stripUnselectedFields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripUnselectedFields.d.ts","sourceRoot":"","sources":["../../src/utils/stripUnselectedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,gCAInC;IACD,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,KAAG,IAgBH,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strips unselected fields from a document based on select configuration
|
|
3
|
+
*/
|
|
4
|
+
export const stripUnselectedFields = ({ field, select, siblingDoc, }) => {
|
|
5
|
+
if (!select || typeof select !== 'object')
|
|
6
|
+
return;
|
|
7
|
+
const fieldName = field.name || '';
|
|
8
|
+
if (!fieldName)
|
|
9
|
+
return;
|
|
10
|
+
const fieldValue = siblingDoc[fieldName];
|
|
11
|
+
// Only process if field value is an object (not primitive types)
|
|
12
|
+
if (fieldValue && typeof fieldValue === 'object' && !Array.isArray(fieldValue)) {
|
|
13
|
+
const fieldValueRecord = fieldValue;
|
|
14
|
+
for (const key of Object.keys(fieldValueRecord)) {
|
|
15
|
+
if (!(key in select)) {
|
|
16
|
+
Reflect.deleteProperty(fieldValueRecord, key);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Guard Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for checking field types and JSON field detection.
|
|
5
|
+
* The Field interface already includes hasMany, so simple checks are sufficient.
|
|
6
|
+
*/
|
|
7
|
+
import type { Field } from '@revealui/contracts/cms';
|
|
8
|
+
import type { RevealUIField } from '../types/extensions.js';
|
|
9
|
+
/**
|
|
10
|
+
* Check if a field should be stored as JSON
|
|
11
|
+
*
|
|
12
|
+
* JSON fields include:
|
|
13
|
+
* - Complex types (array, group, blocks, richText)
|
|
14
|
+
* - Select fields with hasMany
|
|
15
|
+
* - Relationship fields with hasMany (stored as JSON array)
|
|
16
|
+
*
|
|
17
|
+
* Note: Field extends FieldStructure which has 'type' and 'hasMany' properties.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isJsonFieldType(field: RevealUIField | Field): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Flatten all named fields from a fields array, recursing into tabs and row containers.
|
|
22
|
+
* This ensures nested fields (e.g. inside a `tabs` field) are included when building
|
|
23
|
+
* the JSON field name set for INSERT/UPDATE queries.
|
|
24
|
+
*/
|
|
25
|
+
export declare function flattenFields(fields: (RevealUIField | Field)[]): (RevealUIField | Field)[];
|
|
26
|
+
/**
|
|
27
|
+
* Type guard to check if a value is a plain object (not null, array, or Date)
|
|
28
|
+
*
|
|
29
|
+
* @param item - Value to check
|
|
30
|
+
* @returns True if value is a plain object
|
|
31
|
+
*/
|
|
32
|
+
export declare function isObject(item: unknown): item is Record<string, unknown>;
|
|
33
|
+
//# sourceMappingURL=type-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../../src/utils/type-guards.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,GAAG,OAAO,CAiBrE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE,CAgB1F;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvE"}
|