@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,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Health Monitoring Types
|
|
3
|
+
*
|
|
4
|
+
* TypeScript definitions for system health monitoring, process tracking,
|
|
5
|
+
* zombie detection, and alerting.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Source of a tracked process
|
|
9
|
+
*/
|
|
10
|
+
export type ProcessSource = 'exec' | 'orchestration' | 'mcp' | 'ai-runtime' | 'dev-server' | 'database' | 'unknown';
|
|
11
|
+
/**
|
|
12
|
+
* Status of a tracked process
|
|
13
|
+
*/
|
|
14
|
+
export type ProcessStatus = 'running' | 'completed' | 'failed' | 'zombie' | 'killed';
|
|
15
|
+
/**
|
|
16
|
+
* Tracked process metadata
|
|
17
|
+
*/
|
|
18
|
+
export interface ProcessMetadata {
|
|
19
|
+
[key: string]: string | number | boolean | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Tracked process entry
|
|
23
|
+
*/
|
|
24
|
+
export interface TrackedProcess {
|
|
25
|
+
/** Process ID */
|
|
26
|
+
pid: number;
|
|
27
|
+
/** Command executed */
|
|
28
|
+
command: string;
|
|
29
|
+
/** Command arguments */
|
|
30
|
+
args: string[];
|
|
31
|
+
/** Process source */
|
|
32
|
+
source: ProcessSource;
|
|
33
|
+
/** Current status */
|
|
34
|
+
status: ProcessStatus;
|
|
35
|
+
/** Start timestamp */
|
|
36
|
+
startTime: number;
|
|
37
|
+
/** End timestamp (if completed/failed/killed) */
|
|
38
|
+
endTime?: number;
|
|
39
|
+
/** Exit code (if completed/failed) */
|
|
40
|
+
exitCode?: number;
|
|
41
|
+
/** Signal that killed process (if killed) */
|
|
42
|
+
signal?: string;
|
|
43
|
+
/** Custom metadata */
|
|
44
|
+
metadata?: ProcessMetadata;
|
|
45
|
+
/** Parent process ID */
|
|
46
|
+
ppid?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Zombie process detection result
|
|
50
|
+
*/
|
|
51
|
+
export interface ZombieProcess {
|
|
52
|
+
/** Process ID */
|
|
53
|
+
pid: number;
|
|
54
|
+
/** Parent process ID */
|
|
55
|
+
ppid: number;
|
|
56
|
+
/** Command name */
|
|
57
|
+
command: string;
|
|
58
|
+
/** When zombie was first detected */
|
|
59
|
+
detectedAt: number;
|
|
60
|
+
/** Associated tracked process (if available) */
|
|
61
|
+
trackedProcess?: TrackedProcess;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Database pool metrics
|
|
65
|
+
*/
|
|
66
|
+
export interface PoolMetrics {
|
|
67
|
+
/** Total connections in pool */
|
|
68
|
+
totalCount: number;
|
|
69
|
+
/** Idle connections */
|
|
70
|
+
idleCount: number;
|
|
71
|
+
/** Waiting requests */
|
|
72
|
+
waitingCount: number;
|
|
73
|
+
/** Pool name/identifier */
|
|
74
|
+
name: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* System health metrics
|
|
78
|
+
*/
|
|
79
|
+
export interface HealthMetrics {
|
|
80
|
+
/** System information */
|
|
81
|
+
system: {
|
|
82
|
+
/** Memory usage in MB */
|
|
83
|
+
memoryUsage: number;
|
|
84
|
+
/** CPU usage percentage */
|
|
85
|
+
cpuUsage: number;
|
|
86
|
+
/** Uptime in seconds */
|
|
87
|
+
uptime: number;
|
|
88
|
+
/** Platform */
|
|
89
|
+
platform: string;
|
|
90
|
+
/** Node.js version */
|
|
91
|
+
nodeVersion: string;
|
|
92
|
+
};
|
|
93
|
+
/** Process statistics */
|
|
94
|
+
processes: {
|
|
95
|
+
/** Active running processes */
|
|
96
|
+
active: number;
|
|
97
|
+
/** Zombie processes */
|
|
98
|
+
zombies: number;
|
|
99
|
+
/** Failed processes */
|
|
100
|
+
failed: number;
|
|
101
|
+
/** Process spawn rate (per minute) */
|
|
102
|
+
spawnRate: number;
|
|
103
|
+
/** Processes by source */
|
|
104
|
+
bySource: Record<ProcessSource, number>;
|
|
105
|
+
};
|
|
106
|
+
/** Database pool metrics */
|
|
107
|
+
database: {
|
|
108
|
+
/** REST database pools */
|
|
109
|
+
rest: PoolMetrics[];
|
|
110
|
+
/** Vector database pools */
|
|
111
|
+
vector: PoolMetrics[];
|
|
112
|
+
};
|
|
113
|
+
/** Recent zombie processes */
|
|
114
|
+
recentZombies: ZombieProcess[];
|
|
115
|
+
/** Active alerts */
|
|
116
|
+
alerts: Alert[];
|
|
117
|
+
/** Timestamp of metrics collection */
|
|
118
|
+
timestamp: number;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Alert severity level
|
|
122
|
+
*/
|
|
123
|
+
export type AlertLevel = 'warning' | 'critical';
|
|
124
|
+
/**
|
|
125
|
+
* Alert metric type
|
|
126
|
+
*/
|
|
127
|
+
export type AlertMetric = 'zombies' | 'memory' | 'active_processes' | 'database_waiting' | 'spawn_rate';
|
|
128
|
+
/**
|
|
129
|
+
* Alert definition
|
|
130
|
+
*/
|
|
131
|
+
export interface Alert {
|
|
132
|
+
/** Alert severity */
|
|
133
|
+
level: AlertLevel;
|
|
134
|
+
/** Metric that triggered alert */
|
|
135
|
+
metric: AlertMetric;
|
|
136
|
+
/** Human-readable message */
|
|
137
|
+
message: string;
|
|
138
|
+
/** Current value */
|
|
139
|
+
value: number;
|
|
140
|
+
/** Threshold that was exceeded */
|
|
141
|
+
threshold: number;
|
|
142
|
+
/** Timestamp when alert was triggered */
|
|
143
|
+
timestamp: number;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Alert threshold configuration
|
|
147
|
+
*/
|
|
148
|
+
export interface AlertThresholds {
|
|
149
|
+
zombies: {
|
|
150
|
+
warning: number;
|
|
151
|
+
critical: number;
|
|
152
|
+
};
|
|
153
|
+
memory: {
|
|
154
|
+
warning: number;
|
|
155
|
+
critical: number;
|
|
156
|
+
};
|
|
157
|
+
processes: {
|
|
158
|
+
active: {
|
|
159
|
+
warning: number;
|
|
160
|
+
critical: number;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
database: {
|
|
164
|
+
waiting: {
|
|
165
|
+
warning: number;
|
|
166
|
+
critical: number;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
spawnRate: {
|
|
170
|
+
warning: number;
|
|
171
|
+
critical: number;
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Cleanup handler function
|
|
176
|
+
*/
|
|
177
|
+
export type CleanupHandler = () => void | Promise<void>;
|
|
178
|
+
/**
|
|
179
|
+
* Cleanup handler registration
|
|
180
|
+
*/
|
|
181
|
+
export interface CleanupRegistration {
|
|
182
|
+
/** Handler ID */
|
|
183
|
+
id: string;
|
|
184
|
+
/** Handler function */
|
|
185
|
+
handler: CleanupHandler;
|
|
186
|
+
/** Priority (higher executes first) */
|
|
187
|
+
priority: number;
|
|
188
|
+
/** Handler description */
|
|
189
|
+
description: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Process registry statistics
|
|
193
|
+
*/
|
|
194
|
+
export interface RegistryStats {
|
|
195
|
+
/** Total processes tracked */
|
|
196
|
+
total: number;
|
|
197
|
+
/** Currently running */
|
|
198
|
+
running: number;
|
|
199
|
+
/** Completed successfully */
|
|
200
|
+
completed: number;
|
|
201
|
+
/** Failed */
|
|
202
|
+
failed: number;
|
|
203
|
+
/** Zombies detected */
|
|
204
|
+
zombies: number;
|
|
205
|
+
/** Killed by signal */
|
|
206
|
+
killed: number;
|
|
207
|
+
/** Processes by source */
|
|
208
|
+
bySource: Record<ProcessSource, number>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Health monitoring configuration
|
|
212
|
+
*/
|
|
213
|
+
export interface MonitoringConfig {
|
|
214
|
+
/** Enable process monitoring */
|
|
215
|
+
enabled: boolean;
|
|
216
|
+
/** Zombie detection interval (ms) */
|
|
217
|
+
zombieDetectionInterval: number;
|
|
218
|
+
/** Health check interval (ms) */
|
|
219
|
+
healthCheckInterval: number;
|
|
220
|
+
/** Alert thresholds */
|
|
221
|
+
alertThresholds: AlertThresholds;
|
|
222
|
+
/** Maximum tracked processes to keep in history */
|
|
223
|
+
maxHistorySize: number;
|
|
224
|
+
/** Maximum zombies to track */
|
|
225
|
+
maxZombieHistory: number;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Default monitoring configuration
|
|
229
|
+
*/
|
|
230
|
+
export declare const DEFAULT_MONITORING_CONFIG: MonitoringConfig;
|
|
231
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/monitoring/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Health Monitoring Types
|
|
3
|
+
*
|
|
4
|
+
* TypeScript definitions for system health monitoring, process tracking,
|
|
5
|
+
* zombie detection, and alerting.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Default monitoring configuration
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_MONITORING_CONFIG = {
|
|
11
|
+
enabled: process.env.ENABLE_PROCESS_MONITORING !== 'false',
|
|
12
|
+
zombieDetectionInterval: 30_000, // 30 seconds
|
|
13
|
+
healthCheckInterval: 5_000, // 5 seconds
|
|
14
|
+
alertThresholds: {
|
|
15
|
+
zombies: {
|
|
16
|
+
warning: 3,
|
|
17
|
+
critical: 5,
|
|
18
|
+
},
|
|
19
|
+
memory: {
|
|
20
|
+
warning: 512, // MB
|
|
21
|
+
critical: 1024, // MB
|
|
22
|
+
},
|
|
23
|
+
processes: {
|
|
24
|
+
active: {
|
|
25
|
+
warning: 50,
|
|
26
|
+
critical: 100,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
database: {
|
|
30
|
+
waiting: {
|
|
31
|
+
warning: 5,
|
|
32
|
+
critical: 10,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
spawnRate: {
|
|
36
|
+
warning: 20, // per minute
|
|
37
|
+
critical: 50, // per minute
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
maxHistorySize: 1000,
|
|
41
|
+
maxZombieHistory: 50,
|
|
42
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zombie Process Detector
|
|
3
|
+
*
|
|
4
|
+
* Periodically scans for defunct (zombie) processes and attempts automatic cleanup.
|
|
5
|
+
* Zombie processes are dead processes that haven't been reaped by their parent.
|
|
6
|
+
*/
|
|
7
|
+
import type { ZombieProcess } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Zombie detector class
|
|
10
|
+
*/
|
|
11
|
+
declare class ZombieDetector {
|
|
12
|
+
private interval;
|
|
13
|
+
private zombieHistory;
|
|
14
|
+
private enabled;
|
|
15
|
+
private detectionInterval;
|
|
16
|
+
private maxHistory;
|
|
17
|
+
private onZombieDetected?;
|
|
18
|
+
/**
|
|
19
|
+
* Start zombie detection
|
|
20
|
+
*/
|
|
21
|
+
start(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Stop zombie detection
|
|
24
|
+
*/
|
|
25
|
+
stop(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Perform a single scan for zombie processes
|
|
28
|
+
*/
|
|
29
|
+
scan(): Promise<ZombieProcess[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Attempt to clean up a zombie process
|
|
32
|
+
*/
|
|
33
|
+
private attemptCleanup;
|
|
34
|
+
/**
|
|
35
|
+
* Add zombie to history
|
|
36
|
+
*/
|
|
37
|
+
private addToHistory;
|
|
38
|
+
/**
|
|
39
|
+
* Get zombie history
|
|
40
|
+
*/
|
|
41
|
+
getHistory(): ZombieProcess[];
|
|
42
|
+
/**
|
|
43
|
+
* Get current zombie count
|
|
44
|
+
*/
|
|
45
|
+
getCount(): number;
|
|
46
|
+
/**
|
|
47
|
+
* Clear history
|
|
48
|
+
*/
|
|
49
|
+
clearHistory(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Set zombie detection callback
|
|
52
|
+
*/
|
|
53
|
+
onZombie(callback: (zombie: ZombieProcess) => void): void;
|
|
54
|
+
/**
|
|
55
|
+
* Enable or disable detection
|
|
56
|
+
*/
|
|
57
|
+
setEnabled(enabled: boolean): void;
|
|
58
|
+
/**
|
|
59
|
+
* Check if detection is enabled
|
|
60
|
+
*/
|
|
61
|
+
isEnabled(): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Check if detector is running
|
|
64
|
+
*/
|
|
65
|
+
isRunning(): boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Singleton instance
|
|
69
|
+
*/
|
|
70
|
+
export declare const zombieDetector: ZombieDetector;
|
|
71
|
+
/**
|
|
72
|
+
* Convenience functions
|
|
73
|
+
*/
|
|
74
|
+
export declare function startZombieDetection(): void;
|
|
75
|
+
export declare function stopZombieDetection(): void;
|
|
76
|
+
export declare function scanForZombies(): Promise<ZombieProcess[]>;
|
|
77
|
+
export declare function getZombieHistory(): ZombieProcess[];
|
|
78
|
+
export declare function getZombieCount(): number;
|
|
79
|
+
export declare function onZombieDetected(callback: (zombie: ZombieProcess) => void): void;
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=zombie-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zombie-detector.d.ts","sourceRoot":"","sources":["../../src/monitoring/zombie-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAK/C;;GAEG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,iBAAiB,CAA4D;IACrF,OAAO,CAAC,UAAU,CAAqD;IACvE,OAAO,CAAC,gBAAgB,CAAC,CAAiC;IAE1D;;OAEG;IACH,KAAK,IAAI,IAAI;IAiBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA6DtC;;OAEG;YACW,cAAc;IAkD5B;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,UAAU,IAAI,aAAa,EAAE;IAI7B;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAIzD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlC;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAA;AAElD;;GAEG;AAEH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CAElD;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAEhF"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zombie Process Detector
|
|
3
|
+
*
|
|
4
|
+
* Periodically scans for defunct (zombie) processes and attempts automatic cleanup.
|
|
5
|
+
* Zombie processes are dead processes that haven't been reaped by their parent.
|
|
6
|
+
*/
|
|
7
|
+
import { exec } from 'node:child_process';
|
|
8
|
+
import { promisify } from 'node:util';
|
|
9
|
+
import { logger } from '../utils/logger-server.js';
|
|
10
|
+
import { processRegistry } from './process-registry.js';
|
|
11
|
+
import { DEFAULT_MONITORING_CONFIG } from './types.js';
|
|
12
|
+
const execAsync = promisify(exec);
|
|
13
|
+
/**
|
|
14
|
+
* Zombie detector class
|
|
15
|
+
*/
|
|
16
|
+
class ZombieDetector {
|
|
17
|
+
interval = null;
|
|
18
|
+
zombieHistory = [];
|
|
19
|
+
enabled = DEFAULT_MONITORING_CONFIG.enabled;
|
|
20
|
+
detectionInterval = DEFAULT_MONITORING_CONFIG.zombieDetectionInterval;
|
|
21
|
+
maxHistory = DEFAULT_MONITORING_CONFIG.maxZombieHistory;
|
|
22
|
+
onZombieDetected;
|
|
23
|
+
/**
|
|
24
|
+
* Start zombie detection
|
|
25
|
+
*/
|
|
26
|
+
start() {
|
|
27
|
+
if (!this.enabled || this.interval)
|
|
28
|
+
return;
|
|
29
|
+
logger.info('Starting zombie process detector', {
|
|
30
|
+
interval: this.detectionInterval,
|
|
31
|
+
});
|
|
32
|
+
this.interval = setInterval(() => {
|
|
33
|
+
this.scan().catch((error) => {
|
|
34
|
+
logger.error('Zombie detection scan failed', { error });
|
|
35
|
+
});
|
|
36
|
+
}, this.detectionInterval);
|
|
37
|
+
// Prevent interval from keeping process alive
|
|
38
|
+
this.interval.unref();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Stop zombie detection
|
|
42
|
+
*/
|
|
43
|
+
stop() {
|
|
44
|
+
if (this.interval) {
|
|
45
|
+
clearInterval(this.interval);
|
|
46
|
+
this.interval = null;
|
|
47
|
+
logger.info('Stopped zombie process detector');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Perform a single scan for zombie processes
|
|
52
|
+
*/
|
|
53
|
+
async scan() {
|
|
54
|
+
if (!this.enabled)
|
|
55
|
+
return [];
|
|
56
|
+
try {
|
|
57
|
+
// Use ps to find defunct processes
|
|
58
|
+
// Format: PID PPID COMMAND STATE
|
|
59
|
+
const { stdout } = await execAsync("ps axo pid,ppid,comm,state | grep -E ' (Z|z)' || true");
|
|
60
|
+
const zombies = [];
|
|
61
|
+
if (stdout.trim()) {
|
|
62
|
+
const lines = stdout.trim().split('\n');
|
|
63
|
+
for (const line of lines) {
|
|
64
|
+
const match = line.trim().match(/^(\d+)\s+(\d+)\s+(\S+)\s+[Zz]/);
|
|
65
|
+
if (match?.[1] && match[2] && match[3]) {
|
|
66
|
+
const pid = parseInt(match[1], 10);
|
|
67
|
+
const ppid = parseInt(match[2], 10);
|
|
68
|
+
const command = match[3];
|
|
69
|
+
const zombie = {
|
|
70
|
+
pid,
|
|
71
|
+
ppid,
|
|
72
|
+
command,
|
|
73
|
+
detectedAt: Date.now(),
|
|
74
|
+
trackedProcess: processRegistry.get(pid),
|
|
75
|
+
};
|
|
76
|
+
zombies.push(zombie);
|
|
77
|
+
// Mark in registry
|
|
78
|
+
processRegistry.markZombie(pid);
|
|
79
|
+
// Add to history
|
|
80
|
+
this.addToHistory(zombie);
|
|
81
|
+
// Log detection
|
|
82
|
+
logger.warn('Zombie process detected', {
|
|
83
|
+
pid,
|
|
84
|
+
ppid,
|
|
85
|
+
command,
|
|
86
|
+
});
|
|
87
|
+
// Attempt cleanup
|
|
88
|
+
await this.attemptCleanup(zombie);
|
|
89
|
+
// Notify callback
|
|
90
|
+
if (this.onZombieDetected) {
|
|
91
|
+
this.onZombieDetected(zombie);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return zombies;
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
logger.error('Failed to scan for zombie processes', { error });
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Attempt to clean up a zombie process
|
|
105
|
+
*/
|
|
106
|
+
async attemptCleanup(zombie) {
|
|
107
|
+
try {
|
|
108
|
+
// Zombies can't be killed directly - need to signal parent to reap them
|
|
109
|
+
// Try sending SIGCHLD to parent process
|
|
110
|
+
logger.info('Attempting zombie cleanup by signaling parent', {
|
|
111
|
+
zombie: zombie.pid,
|
|
112
|
+
parent: zombie.ppid,
|
|
113
|
+
});
|
|
114
|
+
// Check if parent exists
|
|
115
|
+
const { stdout: parentExists } = await execAsync(`ps -p ${zombie.ppid} -o pid= || true`);
|
|
116
|
+
if (!parentExists.trim()) {
|
|
117
|
+
logger.warn('Zombie parent process does not exist', {
|
|
118
|
+
zombie: zombie.pid,
|
|
119
|
+
parent: zombie.ppid,
|
|
120
|
+
});
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
// Send SIGCHLD to parent
|
|
124
|
+
process.kill(zombie.ppid, 'SIGCHLD');
|
|
125
|
+
// Wait a moment and check if zombie is gone
|
|
126
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
127
|
+
const { stdout: zombieStillExists } = await execAsync(`ps -p ${zombie.pid} -o state= || true`);
|
|
128
|
+
if (!zombieStillExists.trim()) {
|
|
129
|
+
logger.info('Zombie process successfully reaped', {
|
|
130
|
+
pid: zombie.pid,
|
|
131
|
+
});
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
logger.warn('Zombie process persists after cleanup attempt', {
|
|
135
|
+
pid: zombie.pid,
|
|
136
|
+
ppid: zombie.ppid,
|
|
137
|
+
});
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
logger.error('Failed to cleanup zombie process', {
|
|
142
|
+
zombie: zombie.pid,
|
|
143
|
+
error,
|
|
144
|
+
});
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Add zombie to history
|
|
150
|
+
*/
|
|
151
|
+
addToHistory(zombie) {
|
|
152
|
+
this.zombieHistory.unshift(zombie);
|
|
153
|
+
// Trim history
|
|
154
|
+
if (this.zombieHistory.length > this.maxHistory) {
|
|
155
|
+
this.zombieHistory = this.zombieHistory.slice(0, this.maxHistory);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get zombie history
|
|
160
|
+
*/
|
|
161
|
+
getHistory() {
|
|
162
|
+
return [...this.zombieHistory];
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get current zombie count
|
|
166
|
+
*/
|
|
167
|
+
getCount() {
|
|
168
|
+
return processRegistry.getZombies().length;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Clear history
|
|
172
|
+
*/
|
|
173
|
+
clearHistory() {
|
|
174
|
+
this.zombieHistory = [];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Set zombie detection callback
|
|
178
|
+
*/
|
|
179
|
+
onZombie(callback) {
|
|
180
|
+
this.onZombieDetected = callback;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Enable or disable detection
|
|
184
|
+
*/
|
|
185
|
+
setEnabled(enabled) {
|
|
186
|
+
this.enabled = enabled;
|
|
187
|
+
if (!enabled && this.interval) {
|
|
188
|
+
this.stop();
|
|
189
|
+
}
|
|
190
|
+
else if (enabled && !this.interval) {
|
|
191
|
+
this.start();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Check if detection is enabled
|
|
196
|
+
*/
|
|
197
|
+
isEnabled() {
|
|
198
|
+
return this.enabled;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Check if detector is running
|
|
202
|
+
*/
|
|
203
|
+
isRunning() {
|
|
204
|
+
return this.interval !== null;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Singleton instance
|
|
209
|
+
*/
|
|
210
|
+
export const zombieDetector = new ZombieDetector();
|
|
211
|
+
/**
|
|
212
|
+
* Convenience functions
|
|
213
|
+
*/
|
|
214
|
+
export function startZombieDetection() {
|
|
215
|
+
zombieDetector.start();
|
|
216
|
+
}
|
|
217
|
+
export function stopZombieDetection() {
|
|
218
|
+
zombieDetector.stop();
|
|
219
|
+
}
|
|
220
|
+
export function scanForZombies() {
|
|
221
|
+
return zombieDetector.scan();
|
|
222
|
+
}
|
|
223
|
+
export function getZombieHistory() {
|
|
224
|
+
return zombieDetector.getHistory();
|
|
225
|
+
}
|
|
226
|
+
export function getZombieCount() {
|
|
227
|
+
return zombieDetector.getCount();
|
|
228
|
+
}
|
|
229
|
+
export function onZombieDetected(callback) {
|
|
230
|
+
zombieDetector.onZombie(callback);
|
|
231
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nextjs/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/nextjs/utilities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAKjE,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAexF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getRevealUI as getRevealUICore } from '../config/runtime.js';
|
|
2
|
+
let revealInstance = null;
|
|
3
|
+
let configInstance = null;
|
|
4
|
+
export async function getRevealUI(options) {
|
|
5
|
+
// In development, always create a new instance to support HMR
|
|
6
|
+
if (process.env.NODE_ENV === 'development') {
|
|
7
|
+
revealInstance = null;
|
|
8
|
+
configInstance = null;
|
|
9
|
+
}
|
|
10
|
+
if (revealInstance && configInstance === options.config) {
|
|
11
|
+
return revealInstance;
|
|
12
|
+
}
|
|
13
|
+
revealInstance = await getRevealUICore({ config: options.config });
|
|
14
|
+
configInstance = options.config;
|
|
15
|
+
return revealInstance;
|
|
16
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { NextConfig } from 'next';
|
|
2
|
+
export interface WithRevealUIOptions {
|
|
3
|
+
/** Path to the RevealUI config file (relative to Next.js project root) */
|
|
4
|
+
configPath?: string;
|
|
5
|
+
/** Whether to enable admin UI */
|
|
6
|
+
admin?: boolean;
|
|
7
|
+
/** Admin route path */
|
|
8
|
+
adminRoute?: string;
|
|
9
|
+
/** API route path */
|
|
10
|
+
apiRoute?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Next.js configuration wrapper for RevealUI
|
|
14
|
+
* Provides webpack aliases, environment variables, and build configuration
|
|
15
|
+
*
|
|
16
|
+
* Sets up `@revealui/config` alias to import the RevealUI config file.
|
|
17
|
+
* The alias works with both Webpack (Next.js < 15) and Turbopack (Next.js 16+).
|
|
18
|
+
*/
|
|
19
|
+
export declare function withRevealUI(nextConfig?: NextConfig, options?: WithRevealUIOptions): NextConfig;
|
|
20
|
+
//# sourceMappingURL=withRevealUI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withRevealUI.d.ts","sourceRoot":"","sources":["../../src/nextjs/withRevealUI.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAOtC,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,UAAU,GAAE,UAAe,EAC3B,OAAO,GAAE,mBAAwB,GAChC,UAAU,CAgMZ"}
|