nuclie 1.0.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 +21 -0
- package/README.md +516 -0
- package/dist/ai/analyzer.d.ts +29 -0
- package/dist/ai/analyzer.js +202 -0
- package/dist/ai/chat/cli.d.ts +3 -0
- package/dist/ai/chat/cli.js +38 -0
- package/dist/ai/client.d.ts +17 -0
- package/dist/ai/client.js +68 -0
- package/dist/ai/cloud/api.d.ts +28 -0
- package/dist/ai/cloud/api.js +118 -0
- package/dist/ai/cloud/modelSync.d.ts +18 -0
- package/dist/ai/cloud/modelSync.js +104 -0
- package/dist/ai/cloud/telemetry.d.ts +14 -0
- package/dist/ai/cloud/telemetry.js +23 -0
- package/dist/ai/config.d.ts +14 -0
- package/dist/ai/config.js +9 -0
- package/dist/ai/core/errorMemory.d.ts +14 -0
- package/dist/ai/core/errorMemory.js +36 -0
- package/dist/ai/dashboard/cli.d.ts +3 -0
- package/dist/ai/dashboard/cli.js +32 -0
- package/dist/ai/healer/applier.d.ts +9 -0
- package/dist/ai/healer/applier.js +74 -0
- package/dist/ai/healer/cli.d.ts +3 -0
- package/dist/ai/healer/cli.js +57 -0
- package/dist/ai/healer/collector.d.ts +16 -0
- package/dist/ai/healer/collector.js +41 -0
- package/dist/ai/healer/fixer.d.ts +12 -0
- package/dist/ai/healer/fixer.js +40 -0
- package/dist/ai/healer/llm.d.ts +9 -0
- package/dist/ai/healer/llm.js +20 -0
- package/dist/ai/healer/parser.d.ts +16 -0
- package/dist/ai/healer/parser.js +67 -0
- package/dist/ai/learning/evolver.d.ts +8 -0
- package/dist/ai/learning/evolver.js +24 -0
- package/dist/ai/llm/fixGenerator.d.ts +9 -0
- package/dist/ai/llm/fixGenerator.js +21 -0
- package/dist/ai/llm/ollama.d.ts +10 -0
- package/dist/ai/llm/ollama.js +56 -0
- package/dist/ai/local/fixStore.d.ts +19 -0
- package/dist/ai/local/fixStore.js +105 -0
- package/dist/ai/optimizer/analyzer.d.ts +9 -0
- package/dist/ai/optimizer/analyzer.js +65 -0
- package/dist/ai/optimizer/engine.d.ts +16 -0
- package/dist/ai/optimizer/engine.js +51 -0
- package/dist/ai/optimizer/llm.d.ts +8 -0
- package/dist/ai/optimizer/llm.js +14 -0
- package/dist/ai/optimizer/profiler.d.ts +11 -0
- package/dist/ai/optimizer/profiler.js +111 -0
- package/dist/ai/optimizer/rules.d.ts +12 -0
- package/dist/ai/optimizer/rules.js +37 -0
- package/dist/ai/patterns/common.d.ts +8 -0
- package/dist/ai/patterns/common.js +181 -0
- package/dist/ai/reporter/assembler.d.ts +11 -0
- package/dist/ai/reporter/assembler.js +10 -0
- package/dist/ai/reporter/generator.d.ts +4 -0
- package/dist/ai/reporter/generator.js +42 -0
- package/dist/ai/reporter/narrator.d.ts +8 -0
- package/dist/ai/reporter/narrator.js +29 -0
- package/dist/ai/schema.d.ts +104 -0
- package/dist/ai/schema.js +45 -0
- package/dist/ai/telemetry.d.ts +14 -0
- package/dist/ai/telemetry.js +96 -0
- package/dist/audit/a11y.d.ts +5 -0
- package/dist/audit/a11y.js +123 -0
- package/dist/audit/best-practices.d.ts +5 -0
- package/dist/audit/best-practices.js +68 -0
- package/dist/audit/build-integration.d.ts +59 -0
- package/dist/audit/build-integration.js +138 -0
- package/dist/audit/core.d.ts +62 -0
- package/dist/audit/core.js +327 -0
- package/dist/audit/index.d.ts +4 -0
- package/dist/audit/index.js +60 -0
- package/dist/audit/perf.d.ts +5 -0
- package/dist/audit/perf.js +69 -0
- package/dist/audit/seo.d.ts +5 -0
- package/dist/audit/seo.js +63 -0
- package/dist/audit/types.d.ts +35 -0
- package/dist/audit/types.js +1 -0
- package/dist/audit-stub/types.d.ts +25 -0
- package/dist/audit-stub/types.js +1 -0
- package/dist/build/bundle-stats.d.ts +2 -0
- package/dist/build/bundle-stats.js +42 -0
- package/dist/build/bundler.d.ts +46 -0
- package/dist/build/bundler.js +31 -0
- package/dist/build/index.d.ts +36 -0
- package/dist/build/index.js +69 -0
- package/dist/build/pipeline.d.ts +31 -0
- package/dist/build/pipeline.js +68 -0
- package/dist/builder/server.d.ts +11 -0
- package/dist/builder/server.js +253 -0
- package/dist/cache/incremental.d.ts +75 -0
- package/dist/cache/incremental.js +200 -0
- package/dist/cache/index.d.ts +17 -0
- package/dist/cache/index.js +186 -0
- package/dist/cache/rocksdb.d.ts +18 -0
- package/dist/cache/rocksdb.js +63 -0
- package/dist/cli/css-cli.d.ts +5 -0
- package/dist/cli/css-cli.js +112 -0
- package/dist/cli/inspect.d.ts +1 -0
- package/dist/cli/inspect.js +94 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +586 -0
- package/dist/commands/analyze.d.ts +1 -0
- package/dist/commands/analyze.js +295 -0
- package/dist/commands/doctor.d.ts +21 -0
- package/dist/commands/doctor.js +364 -0
- package/dist/commands/ssr.d.ts +12 -0
- package/dist/commands/ssr.js +30 -0
- package/dist/commands/verify.d.ts +38 -0
- package/dist/commands/verify.js +459 -0
- package/dist/config/index.d.ts +145 -0
- package/dist/config/index.js +227 -0
- package/dist/config/live-config.d.ts +22 -0
- package/dist/config/live-config.js +88 -0
- package/dist/core/__tests__/permissions.test.d.ts +1 -0
- package/dist/core/__tests__/permissions.test.js +16 -0
- package/dist/core/__tests__/universal-transformer.test.d.ts +1 -0
- package/dist/core/__tests__/universal-transformer.test.js +27 -0
- package/dist/core/build/globalOptimizer.d.ts +8 -0
- package/dist/core/build/globalOptimizer.js +21 -0
- package/dist/core/build/incremental.d.ts +13 -0
- package/dist/core/build/incremental.js +29 -0
- package/dist/core/bundler-rolldown.d.ts +42 -0
- package/dist/core/bundler-rolldown.js +100 -0
- package/dist/core/cache/lazy-init.d.ts +50 -0
- package/dist/core/cache/lazy-init.js +153 -0
- package/dist/core/cache-manager.d.ts +51 -0
- package/dist/core/cache-manager.js +149 -0
- package/dist/core/css/engine.d.ts +37 -0
- package/dist/core/css/engine.js +113 -0
- package/dist/core/css-framework-detector.d.ts +10 -0
- package/dist/core/css-framework-detector.js +169 -0
- package/dist/core/detection/files.d.ts +2 -0
- package/dist/core/detection/files.js +77 -0
- package/dist/core/detection/index.d.ts +8 -0
- package/dist/core/detection/index.js +39 -0
- package/dist/core/detection/resolver.d.ts +2 -0
- package/dist/core/detection/resolver.js +116 -0
- package/dist/core/detection/scanner.d.ts +4 -0
- package/dist/core/detection/scanner.js +145 -0
- package/dist/core/detection/types.d.ts +33 -0
- package/dist/core/detection/types.js +12 -0
- package/dist/core/engine/cache.d.ts +18 -0
- package/dist/core/engine/cache.js +72 -0
- package/dist/core/engine/config.d.ts +11 -0
- package/dist/core/engine/config.js +158 -0
- package/dist/core/engine/emit.d.ts +8 -0
- package/dist/core/engine/emit.js +60 -0
- package/dist/core/engine/events.d.ts +13 -0
- package/dist/core/engine/events.js +35 -0
- package/dist/core/engine/execute.d.ts +5 -0
- package/dist/core/engine/execute.js +226 -0
- package/dist/core/engine/hash.d.ts +8 -0
- package/dist/core/engine/hash.js +39 -0
- package/dist/core/engine/index.d.ts +49 -0
- package/dist/core/engine/index.js +156 -0
- package/dist/core/engine/optimize.d.ts +2 -0
- package/dist/core/engine/optimize.js +99 -0
- package/dist/core/engine/plan.d.ts +9 -0
- package/dist/core/engine/plan.js +196 -0
- package/dist/core/engine/types.d.ts +120 -0
- package/dist/core/engine/types.js +1 -0
- package/dist/core/errors/hero-errors.d.ts +57 -0
- package/dist/core/errors/hero-errors.js +269 -0
- package/dist/core/framework-detector.d.ts +20 -0
- package/dist/core/framework-detector.js +148 -0
- package/dist/core/graph/js-graph-analyzer.d.ts +51 -0
- package/dist/core/graph/js-graph-analyzer.js +178 -0
- package/dist/core/graph/serializer.d.ts +7 -0
- package/dist/core/graph/serializer.js +24 -0
- package/dist/core/interop/analyze.d.ts +8 -0
- package/dist/core/interop/analyze.js +82 -0
- package/dist/core/interop/analyze_ast.d.ts +9 -0
- package/dist/core/interop/analyze_ast.js +174 -0
- package/dist/core/interop/index.d.ts +19 -0
- package/dist/core/interop/index.js +36 -0
- package/dist/core/interop/resolve.d.ts +9 -0
- package/dist/core/interop/resolve.js +55 -0
- package/dist/core/interop/types.d.ts +28 -0
- package/dist/core/interop/types.js +2 -0
- package/dist/core/interop/wrapper.d.ts +11 -0
- package/dist/core/interop/wrapper.js +50 -0
- package/dist/core/parser-bun.d.ts +54 -0
- package/dist/core/parser-bun.js +86 -0
- package/dist/core/permissions.d.ts +16 -0
- package/dist/core/permissions.js +47 -0
- package/dist/core/pipeline/framework-pipeline.d.ts +71 -0
- package/dist/core/pipeline/framework-pipeline.js +113 -0
- package/dist/core/plugins/index.d.ts +5 -0
- package/dist/core/plugins/index.js +5 -0
- package/dist/core/plugins/manager.d.ts +30 -0
- package/dist/core/plugins/manager.js +123 -0
- package/dist/core/plugins/sandbox_js.d.ts +9 -0
- package/dist/core/plugins/sandbox_js.js +37 -0
- package/dist/core/plugins/sandbox_wasm.d.ts +10 -0
- package/dist/core/plugins/sandbox_wasm.js +68 -0
- package/dist/core/plugins/types.d.ts +37 -0
- package/dist/core/plugins/types.js +2 -0
- package/dist/core/plugins/validation.d.ts +8 -0
- package/dist/core/plugins/validation.js +30 -0
- package/dist/core/sandbox.d.ts +9 -0
- package/dist/core/sandbox.js +79 -0
- package/dist/core/steps/css-optimization.d.ts +65 -0
- package/dist/core/steps/css-optimization.js +318 -0
- package/dist/core/steps.d.ts +7 -0
- package/dist/core/steps.js +17 -0
- package/dist/core/transform/batchTransformer.d.ts +12 -0
- package/dist/core/transform/batchTransformer.js +24 -0
- package/dist/core/transform/transformer.d.ts +9 -0
- package/dist/core/transform/transformer.js +189 -0
- package/dist/core/universal-transformer.d.ts +81 -0
- package/dist/core/universal-transformer.js +780 -0
- package/dist/create/index.d.ts +25 -0
- package/dist/create/index.js +584 -0
- package/dist/create/ui.d.ts +13 -0
- package/dist/create/ui.js +218 -0
- package/dist/create-nuclie/cli.d.ts +7 -0
- package/dist/create-nuclie/cli.js +73 -0
- package/dist/create-nuclie/templates.d.ts +18 -0
- package/dist/create-nuclie/templates.js +73 -0
- package/dist/create-nuclie.d.ts +2 -0
- package/dist/create-nuclie.js +7 -0
- package/dist/dashboard/metrics.d.ts +31 -0
- package/dist/dashboard/metrics.js +59 -0
- package/dist/dashboard/server/router.d.ts +52 -0
- package/dist/dashboard/server/router.js +36 -0
- package/dist/dev/__tests__/preBundler.test.d.ts +1 -0
- package/dist/dev/__tests__/preBundler.test.js +51 -0
- package/dist/dev/configWatcher.d.ts +10 -0
- package/dist/dev/configWatcher.js +42 -0
- package/dist/dev/devServer.d.ts +2 -0
- package/dist/dev/devServer.js +1398 -0
- package/dist/dev/devServer.minimal.d.ts +8 -0
- package/dist/dev/devServer.minimal.js +122 -0
- package/dist/dev/federation-dev.d.ts +14 -0
- package/dist/dev/federation-dev.js +69 -0
- package/dist/dev/hmr-engine.d.ts +12 -0
- package/dist/dev/hmr-engine.js +66 -0
- package/dist/dev/hmr-v2.d.ts +40 -0
- package/dist/dev/hmr-v2.js +87 -0
- package/dist/dev/hmrThrottle.d.ts +13 -0
- package/dist/dev/hmrThrottle.js +56 -0
- package/dist/dev/overlay/overlay-client.d.ts +7 -0
- package/dist/dev/overlay/overlay-client.js +53 -0
- package/dist/dev/overlay/overlay-ui.d.ts +17 -0
- package/dist/dev/overlay/overlay-ui.js +133 -0
- package/dist/dev/preBundler.d.ts +17 -0
- package/dist/dev/preBundler.js +343 -0
- package/dist/dev/statusHandler.d.ts +11 -0
- package/dist/dev/statusHandler.js +44 -0
- package/dist/dev/types.d.ts +30 -0
- package/dist/dev/types.js +1 -0
- package/dist/dev/watcher.d.ts +11 -0
- package/dist/dev/watcher.js +40 -0
- package/dist/dev-server-manual.d.ts +5 -0
- package/dist/dev-server-manual.js +24 -0
- package/dist/dev-server.d.ts +25 -0
- package/dist/dev-server.js +255 -0
- package/dist/env/api.d.ts +27 -0
- package/dist/env/api.js +36 -0
- package/dist/fix/ast-transforms.d.ts +81 -0
- package/dist/fix/ast-transforms.js +449 -0
- package/dist/hmr/classifier.d.ts +51 -0
- package/dist/hmr/classifier.js +232 -0
- package/dist/hmr/index.d.ts +5 -0
- package/dist/hmr/index.js +5 -0
- package/dist/hmr/overlay.d.ts +39 -0
- package/dist/hmr/overlay.js +285 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.js +57 -0
- package/dist/init/bootstrap.d.ts +1 -0
- package/dist/init/bootstrap.js +106 -0
- package/dist/init/index.d.ts +1 -0
- package/dist/init/index.js +74 -0
- package/dist/init/templates.d.ts +2 -0
- package/dist/init/templates.js +227 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +3 -0
- package/dist/marketplace/client.d.ts +25 -0
- package/dist/marketplace/client.js +73 -0
- package/dist/marketplace/db.d.ts +24 -0
- package/dist/marketplace/db.js +57 -0
- package/dist/marketplace/plugin-adapter.d.ts +14 -0
- package/dist/marketplace/plugin-adapter.js +85 -0
- package/dist/marketplace/server.d.ts +66 -0
- package/dist/marketplace/server.js +97 -0
- package/dist/meta-frameworks/base-router.d.ts +63 -0
- package/dist/meta-frameworks/base-router.js +259 -0
- package/dist/meta-frameworks/index.d.ts +8 -0
- package/dist/meta-frameworks/index.js +8 -0
- package/dist/meta-frameworks/nextjs/router.d.ts +35 -0
- package/dist/meta-frameworks/nextjs/router.js +176 -0
- package/dist/meta-frameworks/nuxt/router.d.ts +22 -0
- package/dist/meta-frameworks/nuxt/router.js +84 -0
- package/dist/meta-frameworks/remix/router.d.ts +28 -0
- package/dist/meta-frameworks/remix/router.js +136 -0
- package/dist/meta-frameworks/ssr/react-renderer.d.ts +24 -0
- package/dist/meta-frameworks/ssr/react-renderer.js +53 -0
- package/dist/meta-frameworks/ssr/server.d.ts +92 -0
- package/dist/meta-frameworks/ssr/server.js +312 -0
- package/dist/meta-frameworks/ssr/vue-renderer.d.ts +11 -0
- package/dist/meta-frameworks/ssr/vue-renderer.js +35 -0
- package/dist/meta-frameworks/types.d.ts +76 -0
- package/dist/meta-frameworks/types.js +5 -0
- package/dist/migrate/analyzer.d.ts +46 -0
- package/dist/migrate/analyzer.js +254 -0
- package/dist/migrate/cli.d.ts +10 -0
- package/dist/migrate/cli.js +63 -0
- package/dist/migrate/generator.d.ts +32 -0
- package/dist/migrate/generator.js +214 -0
- package/dist/native/cache.d.ts +86 -0
- package/dist/native/cache.js +154 -0
- package/dist/native/index.d.ts +4 -0
- package/dist/native/index.js +56 -0
- package/dist/native/orchestrator.d.ts +78 -0
- package/dist/native/orchestrator.js +107 -0
- package/dist/native/wasm.d.ts +22 -0
- package/dist/native/wasm.js +33 -0
- package/dist/nuclie_native.node +0 -0
- package/dist/plugins/assets.d.ts +2 -0
- package/dist/plugins/assets.js +50 -0
- package/dist/plugins/compat/adapter.d.ts +33 -0
- package/dist/plugins/compat/adapter.js +102 -0
- package/dist/plugins/compat/deferred.d.ts +17 -0
- package/dist/plugins/compat/deferred.js +28 -0
- package/dist/plugins/compat/index.d.ts +11 -0
- package/dist/plugins/compat/index.js +11 -0
- package/dist/plugins/compat/rollup.d.ts +19 -0
- package/dist/plugins/compat/rollup.js +76 -0
- package/dist/plugins/compat/tier-a.d.ts +60 -0
- package/dist/plugins/compat/tier-a.js +132 -0
- package/dist/plugins/compat/tier-b.d.ts +34 -0
- package/dist/plugins/compat/tier-b.js +90 -0
- package/dist/plugins/compat/tier-c.d.ts +48 -0
- package/dist/plugins/compat/tier-c.js +49 -0
- package/dist/plugins/compat/webpack.d.ts +26 -0
- package/dist/plugins/compat/webpack.js +77 -0
- package/dist/plugins/core/linker.d.ts +8 -0
- package/dist/plugins/core/linker.js +51 -0
- package/dist/plugins/css/bootstrap.d.ts +25 -0
- package/dist/plugins/css/bootstrap.js +110 -0
- package/dist/plugins/css/bulma.d.ts +23 -0
- package/dist/plugins/css/bulma.js +75 -0
- package/dist/plugins/css/css-modules.d.ts +19 -0
- package/dist/plugins/css/css-modules.js +96 -0
- package/dist/plugins/css/css-optimizer.d.ts +43 -0
- package/dist/plugins/css/css-optimizer.js +155 -0
- package/dist/plugins/css/emotion.d.ts +35 -0
- package/dist/plugins/css/emotion.js +109 -0
- package/dist/plugins/css/less.d.ts +6 -0
- package/dist/plugins/css/less.js +33 -0
- package/dist/plugins/css/material.d.ts +24 -0
- package/dist/plugins/css/material.js +97 -0
- package/dist/plugins/css/postcss.d.ts +2 -0
- package/dist/plugins/css/postcss.js +96 -0
- package/dist/plugins/css/sass.d.ts +6 -0
- package/dist/plugins/css/sass.js +36 -0
- package/dist/plugins/css/styled-components.d.ts +33 -0
- package/dist/plugins/css/styled-components.js +94 -0
- package/dist/plugins/css/stylus.d.ts +6 -0
- package/dist/plugins/css/stylus.js +41 -0
- package/dist/plugins/css/tailwind.d.ts +9 -0
- package/dist/plugins/css/tailwind.js +132 -0
- package/dist/plugins/css-in-js.d.ts +10 -0
- package/dist/plugins/css-in-js.js +24 -0
- package/dist/plugins/edge.d.ts +7 -0
- package/dist/plugins/edge.js +38 -0
- package/dist/plugins/esbuildAdapter.d.ts +3 -0
- package/dist/plugins/esbuildAdapter.js +77 -0
- package/dist/plugins/federation_next.d.ts +16 -0
- package/dist/plugins/federation_next.js +78 -0
- package/dist/plugins/framework-plugins.d.ts +3 -0
- package/dist/plugins/framework-plugins.js +40 -0
- package/dist/plugins/frameworks/index.d.ts +8 -0
- package/dist/plugins/frameworks/index.js +10 -0
- package/dist/plugins/frameworks/lit.d.ts +36 -0
- package/dist/plugins/frameworks/lit.js +114 -0
- package/dist/plugins/frameworks/react.d.ts +38 -0
- package/dist/plugins/frameworks/react.js +144 -0
- package/dist/plugins/frameworks/solid.d.ts +36 -0
- package/dist/plugins/frameworks/solid.js +108 -0
- package/dist/plugins/frameworks/svelte.d.ts +43 -0
- package/dist/plugins/frameworks/svelte.js +144 -0
- package/dist/plugins/frameworks/vue.d.ts +43 -0
- package/dist/plugins/frameworks/vue.js +240 -0
- package/dist/plugins/governance.d.ts +36 -0
- package/dist/plugins/governance.js +50 -0
- package/dist/plugins/html.d.ts +2 -0
- package/dist/plugins/html.js +49 -0
- package/dist/plugins/implementations/analytics.d.ts +7 -0
- package/dist/plugins/implementations/analytics.js +15 -0
- package/dist/plugins/implementations/apollo.d.ts +7 -0
- package/dist/plugins/implementations/apollo.js +15 -0
- package/dist/plugins/implementations/audit.d.ts +7 -0
- package/dist/plugins/implementations/audit.js +30 -0
- package/dist/plugins/implementations/auto-fix.d.ts +7 -0
- package/dist/plugins/implementations/auto-fix.js +15 -0
- package/dist/plugins/implementations/avif.d.ts +7 -0
- package/dist/plugins/implementations/avif.js +27 -0
- package/dist/plugins/implementations/babel.d.ts +7 -0
- package/dist/plugins/implementations/babel.js +15 -0
- package/dist/plugins/implementations/bundle-analyzer.d.ts +7 -0
- package/dist/plugins/implementations/bundle-analyzer.js +21 -0
- package/dist/plugins/implementations/bundle-size.d.ts +7 -0
- package/dist/plugins/implementations/bundle-size.js +21 -0
- package/dist/plugins/implementations/checker.d.ts +7 -0
- package/dist/plugins/implementations/checker.js +15 -0
- package/dist/plugins/implementations/chromatic.d.ts +7 -0
- package/dist/plugins/implementations/chromatic.js +15 -0
- package/dist/plugins/implementations/cloudflare.d.ts +7 -0
- package/dist/plugins/implementations/cloudflare.js +15 -0
- package/dist/plugins/implementations/code-split.d.ts +7 -0
- package/dist/plugins/implementations/code-split.js +21 -0
- package/dist/plugins/implementations/compression.d.ts +7 -0
- package/dist/plugins/implementations/compression.js +21 -0
- package/dist/plugins/implementations/copy.d.ts +7 -0
- package/dist/plugins/implementations/copy.js +15 -0
- package/dist/plugins/implementations/critical-css.d.ts +7 -0
- package/dist/plugins/implementations/critical-css.js +25 -0
- package/dist/plugins/implementations/crypto-sign.d.ts +7 -0
- package/dist/plugins/implementations/crypto-sign.js +30 -0
- package/dist/plugins/implementations/css-framework.d.ts +7 -0
- package/dist/plugins/implementations/css-framework.js +25 -0
- package/dist/plugins/implementations/css.d.ts +7 -0
- package/dist/plugins/implementations/css.js +25 -0
- package/dist/plugins/implementations/cypress.d.ts +7 -0
- package/dist/plugins/implementations/cypress.js +15 -0
- package/dist/plugins/implementations/determinism.d.ts +7 -0
- package/dist/plugins/implementations/determinism.js +21 -0
- package/dist/plugins/implementations/edge.d.ts +8 -0
- package/dist/plugins/implementations/edge.js +35 -0
- package/dist/plugins/implementations/env-validation.d.ts +7 -0
- package/dist/plugins/implementations/env-validation.js +30 -0
- package/dist/plugins/implementations/eslint.d.ts +7 -0
- package/dist/plugins/implementations/eslint.js +15 -0
- package/dist/plugins/implementations/federation.d.ts +7 -0
- package/dist/plugins/implementations/federation.js +15 -0
- package/dist/plugins/implementations/file.d.ts +7 -0
- package/dist/plugins/implementations/file.js +27 -0
- package/dist/plugins/implementations/font-subset.d.ts +7 -0
- package/dist/plugins/implementations/font-subset.js +27 -0
- package/dist/plugins/implementations/fonts.d.ts +7 -0
- package/dist/plugins/implementations/fonts.js +27 -0
- package/dist/plugins/implementations/formatjs.d.ts +7 -0
- package/dist/plugins/implementations/formatjs.js +18 -0
- package/dist/plugins/implementations/graphql.d.ts +7 -0
- package/dist/plugins/implementations/graphql.js +15 -0
- package/dist/plugins/implementations/hmr-classify.d.ts +7 -0
- package/dist/plugins/implementations/hmr-classify.js +21 -0
- package/dist/plugins/implementations/html.d.ts +7 -0
- package/dist/plugins/implementations/html.js +15 -0
- package/dist/plugins/implementations/i18n.d.ts +7 -0
- package/dist/plugins/implementations/i18n.js +15 -0
- package/dist/plugins/implementations/icon.d.ts +7 -0
- package/dist/plugins/implementations/icon.js +27 -0
- package/dist/plugins/implementations/imagemin.d.ts +7 -0
- package/dist/plugins/implementations/imagemin.js +27 -0
- package/dist/plugins/implementations/inspect.d.ts +7 -0
- package/dist/plugins/implementations/inspect.js +15 -0
- package/dist/plugins/implementations/jest.d.ts +7 -0
- package/dist/plugins/implementations/jest.js +19 -0
- package/dist/plugins/implementations/jotai.d.ts +8 -0
- package/dist/plugins/implementations/jotai.js +35 -0
- package/dist/plugins/implementations/lazy-load.d.ts +7 -0
- package/dist/plugins/implementations/lazy-load.js +21 -0
- package/dist/plugins/implementations/legacy.d.ts +7 -0
- package/dist/plugins/implementations/legacy.js +15 -0
- package/dist/plugins/implementations/lighthouse.d.ts +7 -0
- package/dist/plugins/implementations/lighthouse.js +21 -0
- package/dist/plugins/implementations/manifest.d.ts +7 -0
- package/dist/plugins/implementations/manifest.js +15 -0
- package/dist/plugins/implementations/markdown.d.ts +7 -0
- package/dist/plugins/implementations/markdown.js +15 -0
- package/dist/plugins/implementations/md.d.ts +7 -0
- package/dist/plugins/implementations/md.js +15 -0
- package/dist/plugins/implementations/mdx.d.ts +7 -0
- package/dist/plugins/implementations/mdx.js +15 -0
- package/dist/plugins/implementations/meta-tags.d.ts +7 -0
- package/dist/plugins/implementations/meta-tags.js +15 -0
- package/dist/plugins/implementations/mini-css-extract-plugin.d.ts +7 -0
- package/dist/plugins/implementations/mini-css-extract-plugin.js +25 -0
- package/dist/plugins/implementations/mobx.d.ts +8 -0
- package/dist/plugins/implementations/mobx.js +35 -0
- package/dist/plugins/implementations/mock.d.ts +7 -0
- package/dist/plugins/implementations/mock.js +15 -0
- package/dist/plugins/implementations/msw.d.ts +7 -0
- package/dist/plugins/implementations/msw.js +19 -0
- package/dist/plugins/implementations/nanostores.d.ts +7 -0
- package/dist/plugins/implementations/nanostores.js +18 -0
- package/dist/plugins/implementations/netlify.d.ts +7 -0
- package/dist/plugins/implementations/netlify.js +15 -0
- package/dist/plugins/implementations/observability.d.ts +7 -0
- package/dist/plugins/implementations/observability.js +15 -0
- package/dist/plugins/implementations/og-image.d.ts +7 -0
- package/dist/plugins/implementations/og-image.js +15 -0
- package/dist/plugins/implementations/pages.d.ts +7 -0
- package/dist/plugins/implementations/pages.js +15 -0
- package/dist/plugins/implementations/pinia.d.ts +8 -0
- package/dist/plugins/implementations/pinia.js +35 -0
- package/dist/plugins/implementations/plausible.d.ts +7 -0
- package/dist/plugins/implementations/plausible.js +18 -0
- package/dist/plugins/implementations/playwright.d.ts +7 -0
- package/dist/plugins/implementations/playwright.js +15 -0
- package/dist/plugins/implementations/postcss.d.ts +7 -0
- package/dist/plugins/implementations/postcss.js +25 -0
- package/dist/plugins/implementations/posthog.d.ts +7 -0
- package/dist/plugins/implementations/posthog.js +18 -0
- package/dist/plugins/implementations/prebundle.d.ts +7 -0
- package/dist/plugins/implementations/prebundle.js +21 -0
- package/dist/plugins/implementations/prefetch.d.ts +7 -0
- package/dist/plugins/implementations/prefetch.js +21 -0
- package/dist/plugins/implementations/preload.d.ts +7 -0
- package/dist/plugins/implementations/preload.js +21 -0
- package/dist/plugins/implementations/prisma.d.ts +7 -0
- package/dist/plugins/implementations/prisma.js +15 -0
- package/dist/plugins/implementations/pwa.d.ts +7 -0
- package/dist/plugins/implementations/pwa.js +15 -0
- package/dist/plugins/implementations/qr-code.d.ts +7 -0
- package/dist/plugins/implementations/qr-code.js +19 -0
- package/dist/plugins/implementations/razorpay.d.ts +7 -0
- package/dist/plugins/implementations/razorpay.js +19 -0
- package/dist/plugins/implementations/react-i18next.d.ts +7 -0
- package/dist/plugins/implementations/react-i18next.js +18 -0
- package/dist/plugins/implementations/react-query.d.ts +8 -0
- package/dist/plugins/implementations/react-query.js +35 -0
- package/dist/plugins/implementations/react.d.ts +8 -0
- package/dist/plugins/implementations/react.js +35 -0
- package/dist/plugins/implementations/recoil.d.ts +8 -0
- package/dist/plugins/implementations/recoil.js +35 -0
- package/dist/plugins/implementations/redux.d.ts +8 -0
- package/dist/plugins/implementations/redux.js +35 -0
- package/dist/plugins/implementations/relay.d.ts +7 -0
- package/dist/plugins/implementations/relay.js +15 -0
- package/dist/plugins/implementations/repro.d.ts +7 -0
- package/dist/plugins/implementations/repro.js +15 -0
- package/dist/plugins/implementations/robots.d.ts +7 -0
- package/dist/plugins/implementations/robots.js +15 -0
- package/dist/plugins/implementations/root-cause.d.ts +7 -0
- package/dist/plugins/implementations/root-cause.js +15 -0
- package/dist/plugins/implementations/rss.d.ts +7 -0
- package/dist/plugins/implementations/rss.js +15 -0
- package/dist/plugins/implementations/sass.d.ts +7 -0
- package/dist/plugins/implementations/sass.js +25 -0
- package/dist/plugins/implementations/sentry.d.ts +7 -0
- package/dist/plugins/implementations/sentry.js +15 -0
- package/dist/plugins/implementations/sitemap.d.ts +7 -0
- package/dist/plugins/implementations/sitemap.js +15 -0
- package/dist/plugins/implementations/solid.d.ts +8 -0
- package/dist/plugins/implementations/solid.js +35 -0
- package/dist/plugins/implementations/sprite.d.ts +7 -0
- package/dist/plugins/implementations/sprite.js +27 -0
- package/dist/plugins/implementations/ssr.d.ts +8 -0
- package/dist/plugins/implementations/ssr.js +35 -0
- package/dist/plugins/implementations/storybook.d.ts +7 -0
- package/dist/plugins/implementations/storybook.js +15 -0
- package/dist/plugins/implementations/stripe.d.ts +7 -0
- package/dist/plugins/implementations/stripe.js +19 -0
- package/dist/plugins/implementations/style.d.ts +7 -0
- package/dist/plugins/implementations/style.js +25 -0
- package/dist/plugins/implementations/svelte.d.ts +8 -0
- package/dist/plugins/implementations/svelte.js +35 -0
- package/dist/plugins/implementations/tailwind.d.ts +7 -0
- package/dist/plugins/implementations/tailwind.js +25 -0
- package/dist/plugins/implementations/tanstack-query.d.ts +7 -0
- package/dist/plugins/implementations/tanstack-query.js +18 -0
- package/dist/plugins/implementations/terser.d.ts +7 -0
- package/dist/plugins/implementations/terser.js +21 -0
- package/dist/plugins/implementations/testing-library-react.d.ts +7 -0
- package/dist/plugins/implementations/testing-library-react.js +19 -0
- package/dist/plugins/implementations/testing-library.d.ts +7 -0
- package/dist/plugins/implementations/testing-library.js +15 -0
- package/dist/plugins/implementations/tree-shake.d.ts +7 -0
- package/dist/plugins/implementations/tree-shake.js +21 -0
- package/dist/plugins/implementations/trpc.d.ts +7 -0
- package/dist/plugins/implementations/trpc.js +15 -0
- package/dist/plugins/implementations/ts.d.ts +7 -0
- package/dist/plugins/implementations/ts.js +15 -0
- package/dist/plugins/implementations/typescript.d.ts +7 -0
- package/dist/plugins/implementations/typescript.js +15 -0
- package/dist/plugins/implementations/unocss.d.ts +7 -0
- package/dist/plugins/implementations/unocss.js +25 -0
- package/dist/plugins/implementations/upi-payment.d.ts +7 -0
- package/dist/plugins/implementations/upi-payment.js +19 -0
- package/dist/plugins/implementations/url.d.ts +7 -0
- package/dist/plugins/implementations/url.js +27 -0
- package/dist/plugins/implementations/vercel.d.ts +7 -0
- package/dist/plugins/implementations/vercel.js +15 -0
- package/dist/plugins/implementations/visualizer.d.ts +7 -0
- package/dist/plugins/implementations/visualizer.js +15 -0
- package/dist/plugins/implementations/vite-svg-loader.d.ts +7 -0
- package/dist/plugins/implementations/vite-svg-loader.js +27 -0
- package/dist/plugins/implementations/vitest.d.ts +7 -0
- package/dist/plugins/implementations/vitest.js +15 -0
- package/dist/plugins/implementations/vue-i18n-next.d.ts +7 -0
- package/dist/plugins/implementations/vue-i18n-next.js +18 -0
- package/dist/plugins/implementations/vue-i18n.d.ts +7 -0
- package/dist/plugins/implementations/vue-i18n.js +15 -0
- package/dist/plugins/implementations/vue-layouts.d.ts +8 -0
- package/dist/plugins/implementations/vue-layouts.js +35 -0
- package/dist/plugins/implementations/vue.d.ts +8 -0
- package/dist/plugins/implementations/vue.js +35 -0
- package/dist/plugins/implementations/vuex.d.ts +8 -0
- package/dist/plugins/implementations/vuex.js +35 -0
- package/dist/plugins/implementations/wasm-sandbox.d.ts +7 -0
- package/dist/plugins/implementations/wasm-sandbox.js +30 -0
- package/dist/plugins/implementations/webp.d.ts +7 -0
- package/dist/plugins/implementations/webp.js +27 -0
- package/dist/plugins/implementations/windicss.d.ts +7 -0
- package/dist/plugins/implementations/windicss.js +25 -0
- package/dist/plugins/implementations/workbox.d.ts +7 -0
- package/dist/plugins/implementations/workbox.js +15 -0
- package/dist/plugins/implementations/xstate.d.ts +7 -0
- package/dist/plugins/implementations/xstate.js +18 -0
- package/dist/plugins/implementations/zod.d.ts +7 -0
- package/dist/plugins/implementations/zod.js +15 -0
- package/dist/plugins/implementations/zustand-devtools.d.ts +7 -0
- package/dist/plugins/implementations/zustand-devtools.js +18 -0
- package/dist/plugins/implementations/zustand.d.ts +8 -0
- package/dist/plugins/implementations/zustand.js +35 -0
- package/dist/plugins/index.d.ts +49 -0
- package/dist/plugins/index.js +117 -0
- package/dist/plugins/js-transform.d.ts +2 -0
- package/dist/plugins/js-transform.js +49 -0
- package/dist/plugins/json.d.ts +2 -0
- package/dist/plugins/json.js +34 -0
- package/dist/plugins/pluginWorker.mjs +95 -0
- package/dist/plugins/ported/adapter.d.ts +92 -0
- package/dist/plugins/ported/adapter.js +226 -0
- package/dist/plugins/registry.d.ts +51 -0
- package/dist/plugins/registry.js +151 -0
- package/dist/plugins/reporter.d.ts +5 -0
- package/dist/plugins/reporter.js +47 -0
- package/dist/plugins/samplePlugin.mjs +4 -0
- package/dist/plugins/sandbox.d.ts +12 -0
- package/dist/plugins/sandbox.js +126 -0
- package/dist/plugins/signer.d.ts +53 -0
- package/dist/plugins/signer.js +109 -0
- package/dist/plugins/static.d.ts +2 -0
- package/dist/plugins/static.js +47 -0
- package/dist/plugins/svelte.d.ts +7 -0
- package/dist/plugins/svelte.js +27 -0
- package/dist/plugins/testSandbox.d.ts +1 -0
- package/dist/plugins/testSandbox.js +14 -0
- package/dist/plugins/verify.d.ts +3 -0
- package/dist/plugins/verify.js +113 -0
- package/dist/plugins/vue.d.ts +7 -0
- package/dist/plugins/vue.js +86 -0
- package/dist/plugins/wasm-runtime.d.ts +15 -0
- package/dist/plugins/wasm-runtime.js +33 -0
- package/dist/plugins/wasm.d.ts +5 -0
- package/dist/plugins/wasm.js +44 -0
- package/dist/polyfills/corejs.d.ts +9 -0
- package/dist/polyfills/corejs.js +18 -0
- package/dist/presets/core.d.ts +111 -0
- package/dist/presets/core.js +239 -0
- package/dist/presets/frameworks.d.ts +34 -0
- package/dist/presets/frameworks.js +270 -0
- package/dist/presets/index.d.ts +8 -0
- package/dist/presets/index.js +3 -0
- package/dist/presets/infrastructure.d.ts +2 -0
- package/dist/presets/infrastructure.js +33 -0
- package/dist/presets/spa.d.ts +2 -0
- package/dist/presets/spa.js +15 -0
- package/dist/presets/ssg.d.ts +2 -0
- package/dist/presets/ssg.js +9 -0
- package/dist/presets/ssr.d.ts +2 -0
- package/dist/presets/ssr.js +13 -0
- package/dist/repro/dashboard.d.ts +83 -0
- package/dist/repro/dashboard.js +251 -0
- package/dist/repro/github.d.ts +26 -0
- package/dist/repro/github.js +73 -0
- package/dist/resolve/css-precedence.d.ts +16 -0
- package/dist/resolve/css-precedence.js +56 -0
- package/dist/resolve/graph.d.ts +48 -0
- package/dist/resolve/graph.js +232 -0
- package/dist/resolve/utils.d.ts +13 -0
- package/dist/resolve/utils.js +53 -0
- package/dist/runtime/client.d.ts +9 -0
- package/dist/runtime/client.js +218 -0
- package/dist/runtime/error-overlay.d.ts +15 -0
- package/dist/runtime/error-overlay.js +327 -0
- package/dist/runtime/federation-fallback.d.ts +67 -0
- package/dist/runtime/federation-fallback.js +225 -0
- package/dist/runtime/federation.d.ts +27 -0
- package/dist/runtime/federation.js +210 -0
- package/dist/runtime/federation_runtime.js +90 -0
- package/dist/runtime/hmr-client.d.ts +5 -0
- package/dist/runtime/hmr-client.js +70 -0
- package/dist/security/anomaly.d.ts +41 -0
- package/dist/security/anomaly.js +77 -0
- package/dist/server/security-headers.d.ts +37 -0
- package/dist/server/security-headers.js +110 -0
- package/dist/ssr/adapters/edge.d.ts +12 -0
- package/dist/ssr/adapters/edge.js +26 -0
- package/dist/ssr/adapters/index.d.ts +23 -0
- package/dist/ssr/adapters/index.js +58 -0
- package/dist/ssr/app-router.d.ts +24 -0
- package/dist/ssr/app-router.js +70 -0
- package/dist/ssr/edge/handlers.d.ts +24 -0
- package/dist/ssr/edge/handlers.js +48 -0
- package/dist/ssr/image.d.ts +24 -0
- package/dist/ssr/image.js +38 -0
- package/dist/ssr/isr.d.ts +14 -0
- package/dist/ssr/isr.js +29 -0
- package/dist/ssr/rsc.d.ts +19 -0
- package/dist/ssr/rsc.js +33 -0
- package/dist/ssr/streaming.d.ts +31 -0
- package/dist/ssr/streaming.js +78 -0
- package/dist/ssr/universal-engine.d.ts +36 -0
- package/dist/ssr/universal-engine.js +139 -0
- package/dist/templates/manager.d.ts +28 -0
- package/dist/templates/manager.js +162 -0
- package/dist/templates/starters/angular-spa.d.ts +6 -0
- package/dist/templates/starters/angular-spa.js +149 -0
- package/dist/templates/starters/edge.d.ts +6 -0
- package/dist/templates/starters/edge.js +93 -0
- package/dist/templates/starters/fintech.d.ts +6 -0
- package/dist/templates/starters/fintech.js +211 -0
- package/dist/templates/starters/monorepo.d.ts +6 -0
- package/dist/templates/starters/monorepo.js +133 -0
- package/dist/templates/starters/nextjs-app.d.ts +13 -0
- package/dist/templates/starters/nextjs-app.js +116 -0
- package/dist/templates/starters/preact-spa.d.ts +6 -0
- package/dist/templates/starters/preact-spa.js +97 -0
- package/dist/templates/starters/premium-dashboard.d.ts +6 -0
- package/dist/templates/starters/premium-dashboard.js +762 -0
- package/dist/templates/starters/react-spa.d.ts +6 -0
- package/dist/templates/starters/react-spa.js +152 -0
- package/dist/templates/starters/react-ssr.d.ts +6 -0
- package/dist/templates/starters/react-ssr.js +190 -0
- package/dist/templates/starters/remix-app.d.ts +12 -0
- package/dist/templates/starters/remix-app.js +108 -0
- package/dist/templates/starters/solid-spa.d.ts +6 -0
- package/dist/templates/starters/solid-spa.js +158 -0
- package/dist/templates/starters/svelte-spa.d.ts +6 -0
- package/dist/templates/starters/svelte-spa.js +147 -0
- package/dist/templates/starters/vue-spa.d.ts +6 -0
- package/dist/templates/starters/vue-spa.js +136 -0
- package/dist/test/api.d.ts +58 -0
- package/dist/test/api.js +154 -0
- package/dist/test/coverage.d.ts +1 -0
- package/dist/test/coverage.js +134 -0
- package/dist/test/determinism.d.ts +1 -0
- package/dist/test/determinism.js +122 -0
- package/dist/test/regression.d.ts +1 -0
- package/dist/test/regression.js +30 -0
- package/dist/test/runner.d.ts +1 -0
- package/dist/test/runner.js +159 -0
- package/dist/test-server.d.ts +1 -0
- package/dist/test-server.js +22 -0
- package/dist/ui/terminal-warnings.d.ts +10 -0
- package/dist/ui/terminal-warnings.js +26 -0
- package/dist/ui/types.d.ts +13 -0
- package/dist/ui/types.js +5 -0
- package/dist/ui/warning-detector.d.ts +46 -0
- package/dist/ui/warning-detector.js +178 -0
- package/dist/ui/warning-library.d.ts +51 -0
- package/dist/ui/warning-library.js +283 -0
- package/dist/utils/interactive.d.ts +2 -0
- package/dist/utils/interactive.js +37 -0
- package/dist/utils/logger.d.ts +26 -0
- package/dist/utils/logger.js +130 -0
- package/dist/utils/path-normalize.d.ts +24 -0
- package/dist/utils/path-normalize.js +37 -0
- package/dist/visual/chart-generator.d.ts +11 -0
- package/dist/visual/chart-generator.js +30 -0
- package/dist/visual/client/renderer.d.ts +31 -0
- package/dist/visual/client/renderer.js +98 -0
- package/dist/visual/federation-editor.d.ts +1 -0
- package/dist/visual/federation-editor.js +231 -0
- package/dist/visual/graph-engine.d.ts +38 -0
- package/dist/visual/graph-engine.js +64 -0
- package/dist/visual/graph-ui.d.ts +2 -0
- package/dist/visual/graph-ui.js +119 -0
- package/dist/visual/graph-visualizer.d.ts +69 -0
- package/dist/visual/graph-visualizer.js +282 -0
- package/dist/visual/root-cause.d.ts +83 -0
- package/dist/visual/root-cause.js +265 -0
- package/package.json +169 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { explainReporter } from '../engine/events.js';
|
|
4
|
+
// Phase 4: Entry File Inspection
|
|
5
|
+
export async function inspectEntryFiles(rootDir, entryFiles) {
|
|
6
|
+
const signals = [];
|
|
7
|
+
for (const entry of entryFiles) {
|
|
8
|
+
const absEntry = path.resolve(rootDir, entry);
|
|
9
|
+
let content = '';
|
|
10
|
+
try {
|
|
11
|
+
content = await fs.readFile(absEntry, 'utf-8');
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
// Framework specific signals
|
|
17
|
+
// React
|
|
18
|
+
if (content.includes('createRoot') || content.includes('hydrateRoot')) {
|
|
19
|
+
signals.push({
|
|
20
|
+
framework: 'react',
|
|
21
|
+
source: 'entry',
|
|
22
|
+
strength: 30,
|
|
23
|
+
evidence: `Found React initialization in ${entry}`
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
// Vue
|
|
27
|
+
if (content.includes('createApp') && (content.includes('vue') || entry.endsWith('.ts') || entry.endsWith('.js'))) {
|
|
28
|
+
signals.push({
|
|
29
|
+
framework: 'vue',
|
|
30
|
+
source: 'entry',
|
|
31
|
+
strength: 30,
|
|
32
|
+
evidence: `Found Vue createApp in ${entry}`
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
// Svelte
|
|
36
|
+
if (content.includes('new App') && content.includes('target:')) {
|
|
37
|
+
signals.push({
|
|
38
|
+
framework: 'svelte',
|
|
39
|
+
source: 'entry',
|
|
40
|
+
strength: 30,
|
|
41
|
+
evidence: `Found Svelte app initialization in ${entry}`
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
// Angular
|
|
45
|
+
if (content.includes('platformBrowserDynamic') || content.includes('bootstrapModule')) {
|
|
46
|
+
signals.push({
|
|
47
|
+
framework: 'angular',
|
|
48
|
+
source: 'entry',
|
|
49
|
+
strength: 40,
|
|
50
|
+
evidence: `Found Angular bootstrap in ${entry}`
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
// Meta-framework Specific Exports
|
|
54
|
+
// Next.js (Pages router)
|
|
55
|
+
if (content.includes('getStaticProps') || content.includes('getServerSideProps')) {
|
|
56
|
+
signals.push({
|
|
57
|
+
framework: 'next',
|
|
58
|
+
source: 'entry',
|
|
59
|
+
strength: 40,
|
|
60
|
+
evidence: `Found Next.js data fetching in ${entry}`
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Remix
|
|
64
|
+
if (content.includes('export const loader') || content.includes('export const action')) {
|
|
65
|
+
// Ambiguous as generic loaders exist, but strong hint with routes
|
|
66
|
+
// We give it moderate weight
|
|
67
|
+
signals.push({
|
|
68
|
+
framework: 'remix',
|
|
69
|
+
source: 'entry',
|
|
70
|
+
strength: 20,
|
|
71
|
+
evidence: `Found Remix-style loader/action in ${entry}`
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
explainReporter.report('detect', 'inspect', `Inspected ${entry}`);
|
|
75
|
+
}
|
|
76
|
+
return signals;
|
|
77
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FrameworkProfile } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Framework Detection System
|
|
4
|
+
*
|
|
5
|
+
* @internal - This is part of the core detection logic. Use public APIs or official presets.
|
|
6
|
+
*/
|
|
7
|
+
export declare function detectFramework(rootDir: string, candidateEntries?: string[]): Promise<FrameworkProfile>;
|
|
8
|
+
export * from './types.js';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { scanDependencies, scanFileSystem, scanConfigArtifacts } from './scanner.js';
|
|
2
|
+
import { inspectEntryFiles } from './files.js';
|
|
3
|
+
import { resolveFrameworkProfile } from './resolver.js';
|
|
4
|
+
import { explainReporter } from '../engine/events.js';
|
|
5
|
+
// Phase 10: Main Detection API
|
|
6
|
+
/**
|
|
7
|
+
* Framework Detection System
|
|
8
|
+
*
|
|
9
|
+
* @internal - This is part of the core detection logic. Use public APIs or official presets.
|
|
10
|
+
*/
|
|
11
|
+
export async function detectFramework(rootDir, candidateEntries = []) {
|
|
12
|
+
explainReporter.report('detect', 'start', 'Starting framework detection');
|
|
13
|
+
// 1. Initial Scans
|
|
14
|
+
const depSignals = await scanDependencies(rootDir);
|
|
15
|
+
const fsSignals = await scanFileSystem(rootDir);
|
|
16
|
+
const cfgSignals = await scanConfigArtifacts(rootDir);
|
|
17
|
+
let allSignals = [...depSignals, ...fsSignals, ...cfgSignals];
|
|
18
|
+
// 2. Intermediate Resolve (to refine Entry Inspection if needed)
|
|
19
|
+
// Actually, we can inspect entries regardless.
|
|
20
|
+
// If no candidateEntries provided, we might guess common ones?
|
|
21
|
+
let entries = [...candidateEntries];
|
|
22
|
+
if (entries.length === 0) {
|
|
23
|
+
// Fallback defaults
|
|
24
|
+
entries = ['src/main.tsx', 'src/main.ts', 'src/index.tsx', 'src/index.ts', 'src/main.js', 'src/index.js'];
|
|
25
|
+
}
|
|
26
|
+
// 3. Entry Inspection
|
|
27
|
+
const entrySignals = await inspectEntryFiles(rootDir, entries);
|
|
28
|
+
allSignals = [...allSignals, ...entrySignals];
|
|
29
|
+
// 4. Final Resolution
|
|
30
|
+
const profile = resolveFrameworkProfile(allSignals);
|
|
31
|
+
// 5. Populate detected entry points if we found them
|
|
32
|
+
// Logic: If inspectEntryFiles looked at them, valid ones exist?
|
|
33
|
+
// inspectEntryFiles only looked.
|
|
34
|
+
// We should verify existence and add to profile.entryPoints.
|
|
35
|
+
// This logic belongs partly in scanner or graph, but let's just confirm what we checked.
|
|
36
|
+
// For now, we trust the input `entries` or found ones.
|
|
37
|
+
return profile;
|
|
38
|
+
}
|
|
39
|
+
export * from './types.js';
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { UNKNOWN_PROFILE } from './types.js';
|
|
2
|
+
import { explainReporter } from '../engine/events.js';
|
|
3
|
+
const META_FRAMEWORK_MAP = {
|
|
4
|
+
'next': 'react',
|
|
5
|
+
'remix': 'react',
|
|
6
|
+
'nuxt': 'vue',
|
|
7
|
+
'sveltekit': 'svelte',
|
|
8
|
+
'solid-start': 'solid-js',
|
|
9
|
+
'analog': 'angular'
|
|
10
|
+
// Astro is special, can be its own primary
|
|
11
|
+
};
|
|
12
|
+
export function resolveFrameworkProfile(signals) {
|
|
13
|
+
explainReporter.report('detect', 'aggregate', `Resolving profile from ${signals.length} signals`);
|
|
14
|
+
// 1. Group by Framework
|
|
15
|
+
const scores = new Map();
|
|
16
|
+
const evidences = new Map();
|
|
17
|
+
const versionRanges = new Map();
|
|
18
|
+
for (const s of signals) {
|
|
19
|
+
const current = scores.get(s.framework) || 0;
|
|
20
|
+
scores.set(s.framework, current + s.strength);
|
|
21
|
+
if (!evidences.has(s.framework))
|
|
22
|
+
evidences.set(s.framework, []);
|
|
23
|
+
evidences.get(s.framework).push(s.evidence);
|
|
24
|
+
if (s.versionRange && !versionRanges.has(s.framework)) {
|
|
25
|
+
versionRanges.set(s.framework, s.versionRange);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// 2. Sort by Score
|
|
29
|
+
// Deterministic sort: Score desc, then Name asc
|
|
30
|
+
const sortedFrameworks = Array.from(scores.keys()).sort((a, b) => {
|
|
31
|
+
const scoreA = scores.get(a);
|
|
32
|
+
const scoreB = scores.get(b);
|
|
33
|
+
if (scoreA !== scoreB)
|
|
34
|
+
return scoreB - scoreA;
|
|
35
|
+
return a.localeCompare(b);
|
|
36
|
+
});
|
|
37
|
+
if (sortedFrameworks.length === 0) {
|
|
38
|
+
return UNKNOWN_PROFILE;
|
|
39
|
+
}
|
|
40
|
+
const DetectedFrameworks = sortedFrameworks.map(fw => ({
|
|
41
|
+
name: fw,
|
|
42
|
+
versionRange: versionRanges.get(fw),
|
|
43
|
+
compatibility: 'full' // Placeholder logic for now, later version checks
|
|
44
|
+
}));
|
|
45
|
+
// 3. Identify Primary and Meta
|
|
46
|
+
// Top score is usually the winner, but we must handle Meta relationships.
|
|
47
|
+
// If 'next' is present, it's the Meta, implying 'react' as Primary.
|
|
48
|
+
// If 'react' is top score (80) and 'next' is (40), we still might want to know it's a Next app.
|
|
49
|
+
let meta;
|
|
50
|
+
let primary = sortedFrameworks[0];
|
|
51
|
+
// Check for meta-frameworks in the detected list
|
|
52
|
+
// We prioritize detected meta-frameworks even if they have lower score than the lib?
|
|
53
|
+
// e.g. React (40) + Next (30). It's a Next app.
|
|
54
|
+
// But usually Next brings React dependency, so React score is high.
|
|
55
|
+
// Let's look for known meta-frameworks in the list.
|
|
56
|
+
const detectedMeta = sortedFrameworks.find(fw => Object.keys(META_FRAMEWORK_MAP).includes(fw));
|
|
57
|
+
if (detectedMeta) {
|
|
58
|
+
meta = detectedMeta;
|
|
59
|
+
// Enforce the primary for this meta
|
|
60
|
+
const impliedPrimary = META_FRAMEWORK_MAP[meta];
|
|
61
|
+
if (impliedPrimary) {
|
|
62
|
+
primary = impliedPrimary;
|
|
63
|
+
// Ensure implied primary is in the list (it should be if deps are correct)
|
|
64
|
+
if (!scores.has(primary)) {
|
|
65
|
+
// Hybrid case or pure meta (unlikely for these pairs)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// No meta found, determine primary from top score
|
|
71
|
+
// Only if it's not 'unknown'
|
|
72
|
+
}
|
|
73
|
+
// 4. Inferences
|
|
74
|
+
// Routing
|
|
75
|
+
let routing = 'none';
|
|
76
|
+
if (meta) {
|
|
77
|
+
routing = 'file-based'; // Next, Nuxt, SvelteKit, Remix, Astro usually
|
|
78
|
+
}
|
|
79
|
+
else if (primary === 'angular') {
|
|
80
|
+
routing = 'code-based'; // Traditionally
|
|
81
|
+
}
|
|
82
|
+
else if (['react', 'vue', 'svelte'].includes(primary)) {
|
|
83
|
+
// SPA usually code-based or none
|
|
84
|
+
// Check signals for 'react-router', etc? (Future)
|
|
85
|
+
routing = 'code-based';
|
|
86
|
+
}
|
|
87
|
+
// Rendering
|
|
88
|
+
// Default to SPA unless Meta/SSR signals
|
|
89
|
+
let renderingPrimary = 'spa';
|
|
90
|
+
if (meta || primary === 'astro' || primary === 'qwik') {
|
|
91
|
+
renderingPrimary = 'ssr'; // Or SSG / Hybrid, strictly speaking 'server-capable'
|
|
92
|
+
}
|
|
93
|
+
// 5. Confidence Score
|
|
94
|
+
// Normalized 0-1 based on top score threshold?
|
|
95
|
+
// Or just Raw Score.
|
|
96
|
+
// Let's use 0-100 logic.
|
|
97
|
+
// If > 50, confident.
|
|
98
|
+
const topScore = scores.get(meta || primary) || 0;
|
|
99
|
+
const confidence = Math.min(topScore, 100);
|
|
100
|
+
const profile = {
|
|
101
|
+
frameworks: DetectedFrameworks,
|
|
102
|
+
primaryFramework: primary,
|
|
103
|
+
metaFramework: meta,
|
|
104
|
+
versionRange: versionRanges.get(primary),
|
|
105
|
+
compatibility: 'full', // Default
|
|
106
|
+
rendering: {
|
|
107
|
+
primary: renderingPrimary
|
|
108
|
+
},
|
|
109
|
+
routing: routing,
|
|
110
|
+
runtimeTarget: renderingPrimary === 'spa' ? 'browser' : 'node', // Default wrapper
|
|
111
|
+
entryPoints: [], // Populated by caller or files scanner
|
|
112
|
+
confidenceScore: confidence
|
|
113
|
+
};
|
|
114
|
+
explainReporter.report('detect', 'complete', `Resolved: ${meta ? meta + '+' : ''}${primary} (${confidence}%)`, { profile });
|
|
115
|
+
return profile;
|
|
116
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DetectionSignal } from './types.js';
|
|
2
|
+
export declare function scanDependencies(rootDir: string): Promise<DetectionSignal[]>;
|
|
3
|
+
export declare function scanFileSystem(rootDir: string): Promise<DetectionSignal[]>;
|
|
4
|
+
export declare function scanConfigArtifacts(rootDir: string): Promise<DetectionSignal[]>;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs/promises';
|
|
3
|
+
import { explainReporter } from '../engine/events.js';
|
|
4
|
+
// Phase 2: Dependency Scanner
|
|
5
|
+
export async function scanDependencies(rootDir) {
|
|
6
|
+
const signals = [];
|
|
7
|
+
let pkg;
|
|
8
|
+
try {
|
|
9
|
+
const pkgContent = await fs.readFile(path.join(rootDir, 'package.json'), 'utf-8');
|
|
10
|
+
pkg = JSON.parse(pkgContent);
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
// No package.json, can't scan deps
|
|
14
|
+
return signals;
|
|
15
|
+
}
|
|
16
|
+
const allDeps = {
|
|
17
|
+
...pkg.dependencies,
|
|
18
|
+
...pkg.devDependencies,
|
|
19
|
+
...pkg.peerDependencies
|
|
20
|
+
};
|
|
21
|
+
const FRAMEWORK_MAP = {
|
|
22
|
+
'react': 'react',
|
|
23
|
+
'vue': 'vue',
|
|
24
|
+
'svelte': 'svelte',
|
|
25
|
+
'solid-js': 'solid-js',
|
|
26
|
+
'preact': 'preact',
|
|
27
|
+
'@builder.io/qwik': 'qwik',
|
|
28
|
+
'@angular/core': 'angular',
|
|
29
|
+
'lit': 'lit',
|
|
30
|
+
'next': 'next',
|
|
31
|
+
'@remix-run/react': 'remix',
|
|
32
|
+
'@remix-run/node': 'remix',
|
|
33
|
+
'remix': 'remix', // v1
|
|
34
|
+
'nuxt': 'nuxt',
|
|
35
|
+
'@sveltejs/kit': 'sveltekit',
|
|
36
|
+
'astro': 'astro'
|
|
37
|
+
};
|
|
38
|
+
for (const [dep, version] of Object.entries(allDeps)) {
|
|
39
|
+
if (FRAMEWORK_MAP[dep]) {
|
|
40
|
+
const fw = FRAMEWORK_MAP[dep];
|
|
41
|
+
signals.push({
|
|
42
|
+
framework: fw,
|
|
43
|
+
source: 'dependency',
|
|
44
|
+
strength: 40, // Strong signal
|
|
45
|
+
evidence: `Found dependency: ${dep}@${version}`,
|
|
46
|
+
versionRange: typeof version === 'string' ? version : undefined
|
|
47
|
+
});
|
|
48
|
+
explainReporter.report('detect', 'signal', `Dependency signal: ${fw} from ${dep}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return signals;
|
|
52
|
+
}
|
|
53
|
+
// Phase 3: File System Scanner
|
|
54
|
+
export async function scanFileSystem(rootDir) {
|
|
55
|
+
const signals = [];
|
|
56
|
+
// Simple existence checks
|
|
57
|
+
const check = async (p) => {
|
|
58
|
+
try {
|
|
59
|
+
await fs.access(path.join(rootDir, p));
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
// Heuristics
|
|
67
|
+
if (await check('pages') || await check('app')) {
|
|
68
|
+
// Next.js uses /pages or /app. But generic apps might too.
|
|
69
|
+
// We give it moderate weight.
|
|
70
|
+
signals.push({
|
|
71
|
+
framework: 'next',
|
|
72
|
+
source: 'filesystem',
|
|
73
|
+
strength: 20,
|
|
74
|
+
evidence: 'Found /pages or /app directory'
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (await check('routes') || await check('app/routes')) {
|
|
78
|
+
signals.push({
|
|
79
|
+
framework: 'remix',
|
|
80
|
+
source: 'filesystem',
|
|
81
|
+
strength: 20,
|
|
82
|
+
evidence: 'Found /routes directory'
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (await check('src/routes')) {
|
|
86
|
+
signals.push({
|
|
87
|
+
framework: 'sveltekit',
|
|
88
|
+
source: 'filesystem',
|
|
89
|
+
strength: 20,
|
|
90
|
+
evidence: 'Found /src/routes directory'
|
|
91
|
+
});
|
|
92
|
+
signals.push({
|
|
93
|
+
framework: 'solid-js', // SolidStart also uses src/routes often
|
|
94
|
+
source: 'filesystem',
|
|
95
|
+
strength: 10,
|
|
96
|
+
evidence: 'Found /src/routes directory (ambiguous)'
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (await check('astro.config.mjs') || await check('astro.config.ts')) {
|
|
100
|
+
// Config file is also a FS signal but we have a dedicated config scanner.
|
|
101
|
+
// We can include it here or there. The prompt distinguishes them.
|
|
102
|
+
// "Phase 3: /astro.config.* -> Astro"
|
|
103
|
+
signals.push({
|
|
104
|
+
framework: 'astro',
|
|
105
|
+
source: 'filesystem',
|
|
106
|
+
strength: 30, // Pretty strong
|
|
107
|
+
evidence: 'Found astro config file'
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (await check('angular.json')) {
|
|
111
|
+
signals.push({
|
|
112
|
+
framework: 'angular',
|
|
113
|
+
source: 'filesystem',
|
|
114
|
+
strength: 30,
|
|
115
|
+
evidence: 'Found angular.json'
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
return signals;
|
|
119
|
+
}
|
|
120
|
+
// Phase 5: Config Artifact Inspection
|
|
121
|
+
export async function scanConfigArtifacts(rootDir) {
|
|
122
|
+
const signals = [];
|
|
123
|
+
const check = async (p, fw) => {
|
|
124
|
+
try {
|
|
125
|
+
await fs.access(path.join(rootDir, p));
|
|
126
|
+
signals.push({
|
|
127
|
+
framework: fw,
|
|
128
|
+
source: 'config',
|
|
129
|
+
strength: 10, // Confirmation signal
|
|
130
|
+
evidence: `Found config file: ${p}`
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch { }
|
|
134
|
+
};
|
|
135
|
+
await check('next.config.js', 'next');
|
|
136
|
+
await check('next.config.ts', 'next');
|
|
137
|
+
await check('next.config.mjs', 'next');
|
|
138
|
+
await check('nuxt.config.js', 'nuxt');
|
|
139
|
+
await check('nuxt.config.ts', 'nuxt');
|
|
140
|
+
await check('svelte.config.js', 'svelte');
|
|
141
|
+
await check('svelte.config.ts', 'svelte'); // SvelteKit usually
|
|
142
|
+
await check('remix.config.js', 'remix');
|
|
143
|
+
await check('vite.config.ts', 'unknown'); // Generic, but might prompt deep scan
|
|
144
|
+
return signals;
|
|
145
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type FrameworkName = 'react' | 'vue' | 'svelte' | 'solid-js' | 'preact' | 'qwik' | 'angular' | 'lit' | 'next' | 'remix' | 'nuxt' | 'sveltekit' | 'astro' | 'unknown';
|
|
2
|
+
export type SignalSource = 'dependency' | 'filesystem' | 'entry' | 'config';
|
|
3
|
+
export interface DetectionSignal {
|
|
4
|
+
framework: FrameworkName;
|
|
5
|
+
source: SignalSource;
|
|
6
|
+
strength: number;
|
|
7
|
+
evidence: string;
|
|
8
|
+
versionRange?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface RenderingMode {
|
|
11
|
+
primary: 'spa' | 'ssr' | 'ssg' | 'isr';
|
|
12
|
+
islands?: boolean;
|
|
13
|
+
prerender?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface DetectedFramework {
|
|
16
|
+
name: FrameworkName;
|
|
17
|
+
versionRange?: string;
|
|
18
|
+
compatibility: 'full' | 'partial' | 'experimental' | 'unknown';
|
|
19
|
+
}
|
|
20
|
+
export interface FrameworkProfile {
|
|
21
|
+
frameworks: DetectedFramework[];
|
|
22
|
+
primaryFramework: FrameworkName;
|
|
23
|
+
metaFramework?: FrameworkName;
|
|
24
|
+
versionRange?: string;
|
|
25
|
+
compatibility: 'full' | 'partial' | 'experimental' | 'unknown';
|
|
26
|
+
rendering: RenderingMode;
|
|
27
|
+
routing: 'file-based' | 'code-based' | 'none';
|
|
28
|
+
runtimeTarget: 'browser' | 'node' | 'edge' | 'mixed';
|
|
29
|
+
entryPoints: string[];
|
|
30
|
+
serverEntry?: string;
|
|
31
|
+
confidenceScore: number;
|
|
32
|
+
}
|
|
33
|
+
export declare const UNKNOWN_PROFILE: FrameworkProfile;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Phase 1: Core Types & Contracts
|
|
2
|
+
// Default/Fallback profile
|
|
3
|
+
export const UNKNOWN_PROFILE = {
|
|
4
|
+
frameworks: [],
|
|
5
|
+
primaryFramework: 'unknown',
|
|
6
|
+
compatibility: 'unknown',
|
|
7
|
+
rendering: { primary: 'spa' },
|
|
8
|
+
routing: 'none',
|
|
9
|
+
runtimeTarget: 'browser',
|
|
10
|
+
entryPoints: [],
|
|
11
|
+
confidenceScore: 0
|
|
12
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BuildCache, CachedResult } from './types.js';
|
|
2
|
+
export declare class InMemoryBuildCache implements BuildCache {
|
|
3
|
+
private store;
|
|
4
|
+
get(key: string): CachedResult | null;
|
|
5
|
+
set(key: string, value: CachedResult): void;
|
|
6
|
+
clear(): void;
|
|
7
|
+
close(): void;
|
|
8
|
+
}
|
|
9
|
+
export declare class PersistentBuildCache implements BuildCache {
|
|
10
|
+
private cacheDir;
|
|
11
|
+
constructor(rootDir: string);
|
|
12
|
+
private getDb;
|
|
13
|
+
get(key: string): CachedResult | null;
|
|
14
|
+
getAsync(key: string): Promise<CachedResult | null>;
|
|
15
|
+
set(key: string, value: CachedResult): Promise<void>;
|
|
16
|
+
clear(): Promise<void>;
|
|
17
|
+
close(): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { createRequire } from 'module';
|
|
3
|
+
const require = createRequire(import.meta.url);
|
|
4
|
+
export class InMemoryBuildCache {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.store = new Map();
|
|
7
|
+
}
|
|
8
|
+
get(key) {
|
|
9
|
+
return this.store.get(key) || null;
|
|
10
|
+
}
|
|
11
|
+
set(key, value) {
|
|
12
|
+
this.store.set(key, value);
|
|
13
|
+
}
|
|
14
|
+
clear() {
|
|
15
|
+
this.store.clear();
|
|
16
|
+
}
|
|
17
|
+
close() { }
|
|
18
|
+
}
|
|
19
|
+
export class PersistentBuildCache {
|
|
20
|
+
constructor(rootDir) {
|
|
21
|
+
this.cacheDir = path.join(rootDir, '.nuclie_cache');
|
|
22
|
+
}
|
|
23
|
+
async getDb() {
|
|
24
|
+
try {
|
|
25
|
+
const { getLazyCacheDatabase } = await import('../cache/lazy-init.js');
|
|
26
|
+
return await getLazyCacheDatabase(this.cacheDir);
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
// Fallback to Memory Cache on Lock Error (Robustness)
|
|
30
|
+
if (e.message?.includes('Lock') || e.message?.includes('IO error') || e.message?.includes('Resource temporarily unavailable')) {
|
|
31
|
+
const { log } = await import('../../utils/logger.js');
|
|
32
|
+
log.warn(`Cache locked, falling back to in-memory cache: ${e.message}`, { category: 'cache' });
|
|
33
|
+
// Return a mock DB interface that uses an in-memory map
|
|
34
|
+
const store = new Map();
|
|
35
|
+
return {
|
|
36
|
+
get: (k) => store.get(k),
|
|
37
|
+
set: (k, v) => store.set(k, v),
|
|
38
|
+
clearAll: () => store.clear(),
|
|
39
|
+
close: () => { }
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
throw e;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
get(key) {
|
|
46
|
+
// BuildCache.get is synchronous in type, but RocksDB is fast enough
|
|
47
|
+
// that we can potentially use a sync bridge or just handle it.
|
|
48
|
+
// Actually, the BuildCache interface expects sync.
|
|
49
|
+
// For Module 8, we will use the async version for better perf,
|
|
50
|
+
// but for compatibility we'll use a trick if needed.
|
|
51
|
+
// Let's assume we can make the engine await cache results.
|
|
52
|
+
return null; // Will be handled by the async flow in engine
|
|
53
|
+
}
|
|
54
|
+
async getAsync(key) {
|
|
55
|
+
const db = await this.getDb();
|
|
56
|
+
const val = db.get(key);
|
|
57
|
+
if (val)
|
|
58
|
+
return JSON.parse(val);
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
async set(key, value) {
|
|
62
|
+
const db = await this.getDb();
|
|
63
|
+
db.set(key, JSON.stringify(value));
|
|
64
|
+
}
|
|
65
|
+
async clear() {
|
|
66
|
+
const db = await this.getDb();
|
|
67
|
+
db.clearAll();
|
|
68
|
+
}
|
|
69
|
+
async close() {
|
|
70
|
+
// Managed by global lazy cache
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine Configuration and Initialization
|
|
3
|
+
*
|
|
4
|
+
* @internal - This is part of the core engine and NOT a public API.
|
|
5
|
+
*/
|
|
6
|
+
import { BuildConfig } from '../../config/index.js';
|
|
7
|
+
import { BuildContext, BuildMode, InputFingerprint } from './types.js';
|
|
8
|
+
import { DependencyGraph } from '../../resolve/graph.js';
|
|
9
|
+
export declare function initBuild(userConfig: BuildConfig, mode: BuildMode, rootDir: string): Promise<BuildContext>;
|
|
10
|
+
export declare function computeInputFingerprint(ctx: BuildContext): Promise<InputFingerprint>;
|
|
11
|
+
export declare function attachGraph(ctx: BuildContext, graph: DependencyGraph): BuildContext;
|