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,156 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { initBuild, attachGraph, computeInputFingerprint } from './config.js';
|
|
3
|
+
import { planBuild, planParallelExecution, determinismCheck } from './plan.js';
|
|
4
|
+
import { executeParallel } from './execute.js';
|
|
5
|
+
import { optimizeArtifacts } from './optimize.js';
|
|
6
|
+
import { emit, computeBuildFingerprint } from './emit.js';
|
|
7
|
+
import { DependencyGraph } from '../../resolve/graph.js';
|
|
8
|
+
import { explainReporter } from './events.js';
|
|
9
|
+
import { log } from '../../utils/logger.js';
|
|
10
|
+
/**
|
|
11
|
+
* Core Build Engine
|
|
12
|
+
*
|
|
13
|
+
* PUBLIC: The main orchestrator for the Nuclie build pipeline.
|
|
14
|
+
* Use this class to run builds programmatically.
|
|
15
|
+
*
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export class CoreBuildEngine {
|
|
19
|
+
constructor() {
|
|
20
|
+
/** @internal */
|
|
21
|
+
this.latestGraph = null;
|
|
22
|
+
/** @internal */
|
|
23
|
+
this.ctx = null;
|
|
24
|
+
}
|
|
25
|
+
/** @public */
|
|
26
|
+
getGraph() { return this.latestGraph; }
|
|
27
|
+
/**
|
|
28
|
+
* Incremental Invalidation (Phase 10)
|
|
29
|
+
*/
|
|
30
|
+
async invalidateFile(filePath) {
|
|
31
|
+
if (this.latestGraph && this.ctx) {
|
|
32
|
+
await this.latestGraph.invalidate(filePath, this.ctx.rootDir);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Shutdown and cleanup resources
|
|
37
|
+
*/
|
|
38
|
+
async close() {
|
|
39
|
+
if (this.ctx && this.ctx.cache) {
|
|
40
|
+
this.ctx.cache.close();
|
|
41
|
+
}
|
|
42
|
+
this.ctx = null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Main Entry Point for the Build Engine (Pipeline Orchestrator)
|
|
46
|
+
*/
|
|
47
|
+
async run(userConfig, mode = 'dev', rootDir, changedFiles = []) {
|
|
48
|
+
try {
|
|
49
|
+
explainReporter.clear();
|
|
50
|
+
explainReporter.startMark('Total Build');
|
|
51
|
+
log.info('--> Core Engine: Starting Build Pipeline');
|
|
52
|
+
// Stage 1: Initialization
|
|
53
|
+
// Normalize paths, Load env, Resolve config, Freeze context
|
|
54
|
+
explainReporter.startMark('Initialization');
|
|
55
|
+
if (!this.ctx) {
|
|
56
|
+
this.ctx = await initBuild(userConfig, mode, rootDir);
|
|
57
|
+
}
|
|
58
|
+
explainReporter.endMark('Initialization', 'init');
|
|
59
|
+
// Stage 2: Input Fingerprinting
|
|
60
|
+
// Hash all inputs for CI verification
|
|
61
|
+
explainReporter.startMark('Fingerprinting');
|
|
62
|
+
const inputFingerprint = await computeInputFingerprint(this.ctx);
|
|
63
|
+
explainReporter.endMark('Fingerprinting', 'fingerprint');
|
|
64
|
+
// Stage 3: Attach Dependency Graph
|
|
65
|
+
// (In a full architecture, Module 2 would be invoked here independently)
|
|
66
|
+
explainReporter.startMark('Dependency Graph');
|
|
67
|
+
if (!this.latestGraph) {
|
|
68
|
+
log.info('--> Core Engine: Building NEW Dependency Graph');
|
|
69
|
+
const graph = new DependencyGraph(this.ctx.pluginManager);
|
|
70
|
+
for (const entry of this.ctx.config.entryPoints) {
|
|
71
|
+
const absEntry = path.isAbsolute(entry)
|
|
72
|
+
? entry
|
|
73
|
+
: path.resolve(this.ctx.rootDir, entry);
|
|
74
|
+
await graph.addEntry(absEntry, this.ctx.rootDir);
|
|
75
|
+
}
|
|
76
|
+
this.latestGraph = graph;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
log.info(`--> Core Engine: Reusing Incremental Dependency Graph with ${changedFiles.length} changes`);
|
|
80
|
+
// If we have explicit changed files, invalidate them now
|
|
81
|
+
for (const file of changedFiles) {
|
|
82
|
+
await this.latestGraph.invalidate(file, this.ctx.rootDir);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
this.ctx = attachGraph(this.ctx, this.latestGraph);
|
|
86
|
+
explainReporter.endMark('Dependency Graph', 'graph');
|
|
87
|
+
// Stage 4: Build Planning
|
|
88
|
+
// Chunk boundaries, Asset grouping, Execution order
|
|
89
|
+
explainReporter.startMark('Build Planning');
|
|
90
|
+
log.info('--> Core Engine: Planning Build');
|
|
91
|
+
const buildPlan = planBuild(this.ctx);
|
|
92
|
+
explainReporter.endMark('Build Planning', 'plan');
|
|
93
|
+
// Stage 5: Parallel Execution Planning
|
|
94
|
+
// Group independent work
|
|
95
|
+
explainReporter.startMark('Parallel Planning');
|
|
96
|
+
const execPlan = planParallelExecution(buildPlan);
|
|
97
|
+
explainReporter.endMark('Parallel Planning', 'parallel_plan');
|
|
98
|
+
// Stage 6: Determinism Check
|
|
99
|
+
// Mode-aware checks
|
|
100
|
+
explainReporter.startMark('Determinism Check');
|
|
101
|
+
determinismCheck(buildPlan, this.ctx);
|
|
102
|
+
explainReporter.endMark('Determinism Check', 'determinism');
|
|
103
|
+
// Stage 7: Execution
|
|
104
|
+
// Execute parallel groups, Cache-aware
|
|
105
|
+
explainReporter.startMark('Execution');
|
|
106
|
+
log.info('--> Core Engine: Executing Plan');
|
|
107
|
+
let artifacts = await executeParallel(execPlan, buildPlan, this.ctx);
|
|
108
|
+
explainReporter.endMark('Execution', 'execute');
|
|
109
|
+
// Stage 8: Optimization
|
|
110
|
+
explainReporter.startMark('Optimization');
|
|
111
|
+
artifacts = await optimizeArtifacts(artifacts, this.ctx);
|
|
112
|
+
explainReporter.endMark('Optimization', 'optimize');
|
|
113
|
+
// POST-BUILD HOOK (Federation, Manifests, etc.)
|
|
114
|
+
const hookResult = await this.ctx.pluginManager.runHook('buildEnd', {
|
|
115
|
+
artifacts,
|
|
116
|
+
ctx: this.ctx
|
|
117
|
+
}, this.ctx);
|
|
118
|
+
if (hookResult && hookResult.artifacts) {
|
|
119
|
+
artifacts = hookResult.artifacts;
|
|
120
|
+
}
|
|
121
|
+
// Stage 9: Emit
|
|
122
|
+
// Write files, Store metadata
|
|
123
|
+
explainReporter.startMark('Emit');
|
|
124
|
+
log.info('--> Core Engine: Emitting Artifacts');
|
|
125
|
+
const emittedArtifacts = await emit(artifacts, this.ctx);
|
|
126
|
+
explainReporter.endMark('Emit', 'emit');
|
|
127
|
+
// Stage 10: Output Fingerprinting
|
|
128
|
+
// Compute final build hash
|
|
129
|
+
explainReporter.startMark('Output Fingerprint');
|
|
130
|
+
const buildFingerprint = computeBuildFingerprint(inputFingerprint, emittedArtifacts, buildPlan, this.ctx);
|
|
131
|
+
explainReporter.endMark('Output Fingerprint', 'fingerprint_output');
|
|
132
|
+
explainReporter.endMark('Total Build', 'profile');
|
|
133
|
+
log.success(`--> Core Engine: Build Complete. ${emittedArtifacts.length} artifacts emitted.`);
|
|
134
|
+
return {
|
|
135
|
+
success: true,
|
|
136
|
+
fingerprint: buildFingerprint,
|
|
137
|
+
artifacts: emittedArtifacts,
|
|
138
|
+
events: explainReporter.getEvents(),
|
|
139
|
+
pluginMetrics: this.ctx.pluginManager.getMetricsSummary()
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
log.error('--> Core Engine: Build Failed', error);
|
|
144
|
+
// In case of error, we can still try to dump explain logs for debugging
|
|
145
|
+
return {
|
|
146
|
+
success: false,
|
|
147
|
+
error: {
|
|
148
|
+
message: error.message,
|
|
149
|
+
code: error.code || 'UNKNOWN_ERROR',
|
|
150
|
+
stage: error.stage || 'unknown'
|
|
151
|
+
},
|
|
152
|
+
events: explainReporter.getEvents()
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { explainReporter } from './events.js';
|
|
2
|
+
import { canonicalHash } from './hash.js';
|
|
3
|
+
import { gzipSync, brotliCompressSync, constants } from 'node:zlib';
|
|
4
|
+
export async function optimizeArtifacts(artifacts, ctx) {
|
|
5
|
+
explainReporter.report('optimize', 'start', 'Starting parallel optimization passes');
|
|
6
|
+
const optimizationTasks = artifacts.map(async (artifact) => {
|
|
7
|
+
if (!artifact.source) {
|
|
8
|
+
return [artifact];
|
|
9
|
+
}
|
|
10
|
+
let content = typeof artifact.source === 'string'
|
|
11
|
+
? artifact.source
|
|
12
|
+
: new TextDecoder().decode(artifact.source);
|
|
13
|
+
const tasks = [];
|
|
14
|
+
// 1. Minification (Concurrent)
|
|
15
|
+
if (ctx.config.minify) {
|
|
16
|
+
explainReporter.report('optimize', 'minify', `Minifying ${artifact.fileName}`);
|
|
17
|
+
try {
|
|
18
|
+
const { transform } = await import('esbuild');
|
|
19
|
+
// Day 52: Advanced CSS Purging (Heuristic)
|
|
20
|
+
if (artifact.type === 'css' && (ctx.mode === 'production' || ctx.mode === 'build')) {
|
|
21
|
+
const jsArtifacts = artifacts.filter(a => a.type === 'js');
|
|
22
|
+
const allJsContent = jsArtifacts.map(a => typeof a.source === 'string' ? a.source : new TextDecoder().decode(a.source)).join('\n');
|
|
23
|
+
if (allJsContent.length > 0) {
|
|
24
|
+
content = content.replace(/([^{}]*)\{([^}]*)\}/g, (match, selector, rules) => {
|
|
25
|
+
const cleanSelector = selector.trim().split(/[ ,>+]/)[0].replace(/[.#]/, '');
|
|
26
|
+
if (cleanSelector === '' || cleanSelector === 'body' || cleanSelector === 'html' || cleanSelector === '*' ||
|
|
27
|
+
allJsContent.includes(cleanSelector) || allJsContent.includes(selector.trim())) {
|
|
28
|
+
return match;
|
|
29
|
+
}
|
|
30
|
+
return ''; // Purged!
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const result = await transform(content, {
|
|
35
|
+
minify: true,
|
|
36
|
+
loader: artifact.type,
|
|
37
|
+
legalComments: 'none',
|
|
38
|
+
charset: 'utf8'
|
|
39
|
+
});
|
|
40
|
+
content = result.code;
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
explainReporter.report('optimize', 'error', `Minification failed for ${artifact.fileName}: ${err.message}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// 2. Metadata Stripping
|
|
47
|
+
if (ctx.config.sourceMaps === false) {
|
|
48
|
+
content = content.replace(/\/\/# sourceMappingURL=.*/g, '');
|
|
49
|
+
}
|
|
50
|
+
const optimizedArtifact = {
|
|
51
|
+
...artifact,
|
|
52
|
+
source: content,
|
|
53
|
+
id: canonicalHash(content).substring(0, 16)
|
|
54
|
+
};
|
|
55
|
+
tasks.push(optimizedArtifact);
|
|
56
|
+
// 3. Compression (Parallel)
|
|
57
|
+
if ((ctx.mode === 'production' || ctx.mode === 'build') && /\.(js|css|html|svg|json)$/.test(artifact.fileName)) {
|
|
58
|
+
const buffer = Buffer.from(content);
|
|
59
|
+
// Gzip
|
|
60
|
+
try {
|
|
61
|
+
const gz = gzipSync(buffer, { level: constants.Z_BEST_COMPRESSION });
|
|
62
|
+
tasks.push({
|
|
63
|
+
id: optimizedArtifact.id + '.gz',
|
|
64
|
+
fileName: optimizedArtifact.fileName + '.gz',
|
|
65
|
+
source: gz,
|
|
66
|
+
type: 'asset',
|
|
67
|
+
dependencies: []
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
explainReporter.report('optimize', 'warn', `Gzip failed for ${artifact.fileName}`);
|
|
72
|
+
}
|
|
73
|
+
// Brotli
|
|
74
|
+
try {
|
|
75
|
+
const br = brotliCompressSync(buffer, {
|
|
76
|
+
params: {
|
|
77
|
+
[constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT,
|
|
78
|
+
[constants.BROTLI_PARAM_QUALITY]: constants.BROTLI_MAX_QUALITY,
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
tasks.push({
|
|
82
|
+
id: optimizedArtifact.id + '.br',
|
|
83
|
+
fileName: optimizedArtifact.fileName + '.br',
|
|
84
|
+
source: br,
|
|
85
|
+
type: 'asset',
|
|
86
|
+
dependencies: []
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
explainReporter.report('optimize', 'warn', `Brotli failed for ${artifact.fileName}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return tasks;
|
|
94
|
+
});
|
|
95
|
+
const results = await Promise.all(optimizationTasks);
|
|
96
|
+
const flattenedResults = results.flat();
|
|
97
|
+
explainReporter.report('optimize', 'complete', `Optimization finished. ${flattenedResults.length} artifacts generated.`);
|
|
98
|
+
return flattenedResults;
|
|
99
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine Build Planning
|
|
3
|
+
*
|
|
4
|
+
* @internal - This is part of the core engine and NOT a public API.
|
|
5
|
+
*/
|
|
6
|
+
import { BuildContext, BuildPlan, ExecutionPlan } from './types.js';
|
|
7
|
+
export declare function planBuild(ctx: BuildContext): BuildPlan;
|
|
8
|
+
export declare function planParallelExecution(plan: BuildPlan): ExecutionPlan;
|
|
9
|
+
export declare function determinismCheck(plan: BuildPlan, ctx: BuildContext): void;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine Build Planning
|
|
3
|
+
*
|
|
4
|
+
* @internal - This is part of the core engine and NOT a public API.
|
|
5
|
+
*/
|
|
6
|
+
import { explainReporter } from './events.js';
|
|
7
|
+
import { canonicalHash } from './hash.js';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import { normalizePath, generateModuleId } from '../../resolve/utils.js';
|
|
10
|
+
// Stage 4: Build Planning
|
|
11
|
+
export function planBuild(ctx) {
|
|
12
|
+
explainReporter.report('plan', 'start', 'Starting build planning');
|
|
13
|
+
const chunks = [];
|
|
14
|
+
const assets = [];
|
|
15
|
+
const entryDeps = new Map();
|
|
16
|
+
const sortedEntries = [...ctx.config.entryPoints].sort();
|
|
17
|
+
const getId = (p) => {
|
|
18
|
+
const normalized = normalizePath(p);
|
|
19
|
+
return generateModuleId('file', normalized, ctx.rootDir);
|
|
20
|
+
};
|
|
21
|
+
// 1. Identify Async Entry Points (targets of dynamic imports)
|
|
22
|
+
const asyncEntries = new Set();
|
|
23
|
+
for (const node of ctx.graph.nodes.values()) {
|
|
24
|
+
for (const edge of node.edges) {
|
|
25
|
+
if (edge.kind === 'dynamic-import') {
|
|
26
|
+
asyncEntries.add(edge.to);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// 2. Traversal Helper (stops at async boundaries)
|
|
31
|
+
const traverse = (startId) => {
|
|
32
|
+
const visited = new Set();
|
|
33
|
+
const queue = [startId];
|
|
34
|
+
while (queue.length > 0) {
|
|
35
|
+
const currId = queue.shift();
|
|
36
|
+
if (visited.has(currId))
|
|
37
|
+
continue;
|
|
38
|
+
visited.add(currId);
|
|
39
|
+
const node = ctx.graph.nodes.get(currId);
|
|
40
|
+
if (node) {
|
|
41
|
+
const sortedDeps = node.edges
|
|
42
|
+
.filter(e => e.kind !== 'dynamic-import') // Stop at dynamic boundaries
|
|
43
|
+
.map(e => e.to)
|
|
44
|
+
.sort();
|
|
45
|
+
for (const dep of sortedDeps) {
|
|
46
|
+
if (!asyncEntries.has(dep)) { // Don't follow into other async entries
|
|
47
|
+
queue.push(dep);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return visited;
|
|
53
|
+
};
|
|
54
|
+
// 3. Process Main Entries
|
|
55
|
+
const mainEntries = sortedEntries.map(e => getId(path.resolve(ctx.rootDir, e)));
|
|
56
|
+
// PRODUCTION TREE-SHAKING: Use native graph analysis to prune unreachable modules
|
|
57
|
+
let reachableModules = null;
|
|
58
|
+
if (ctx.mode === 'production' || ctx.mode === 'build') {
|
|
59
|
+
try {
|
|
60
|
+
const entryIds = mainEntries.filter(id => ctx.graph.nodes.has(id));
|
|
61
|
+
if (entryIds.length > 0) {
|
|
62
|
+
const reachable = ctx.graph.getReachableNodes(entryIds);
|
|
63
|
+
reachableModules = new Set(reachable);
|
|
64
|
+
const totalNodes = ctx.graph.nodes.size;
|
|
65
|
+
const pruned = totalNodes - reachable.length;
|
|
66
|
+
if (pruned > 0) {
|
|
67
|
+
explainReporter.report('plan', 'tree_shake', `Native tree-shaking: Pruned ${pruned}/${totalNodes} unreachable modules`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
explainReporter.report('plan', 'tree_shake_fallback', 'Native tree-shaking unavailable, using all modules');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
for (const entryId of mainEntries) {
|
|
76
|
+
if (!ctx.graph.nodes.has(entryId))
|
|
77
|
+
continue;
|
|
78
|
+
const deps = traverse(entryId);
|
|
79
|
+
// Filter to only reachable modules if tree-shaking was successful
|
|
80
|
+
const finalDeps = reachableModules
|
|
81
|
+
? new Set([...deps].filter(id => reachableModules.has(id)))
|
|
82
|
+
: deps;
|
|
83
|
+
entryDeps.set(ctx.graph.nodes.get(entryId).path, finalDeps);
|
|
84
|
+
}
|
|
85
|
+
// 4. Process Async Entries
|
|
86
|
+
for (const entryId of Array.from(asyncEntries).sort()) {
|
|
87
|
+
const deps = traverse(entryId);
|
|
88
|
+
// Filter to only reachable modules if tree-shaking was successful
|
|
89
|
+
const finalDeps = reachableModules
|
|
90
|
+
? new Set([...deps].filter(id => reachableModules.has(id)))
|
|
91
|
+
: deps;
|
|
92
|
+
entryDeps.set(ctx.graph.nodes.get(entryId).path, finalDeps);
|
|
93
|
+
}
|
|
94
|
+
// 5. Create Chunks
|
|
95
|
+
const sortedEntryKeys = Array.from(entryDeps.keys()).sort();
|
|
96
|
+
for (const entry of sortedEntryKeys) {
|
|
97
|
+
const deps = entryDeps.get(entry);
|
|
98
|
+
const allModules = Array.from(deps).sort();
|
|
99
|
+
const jsModules = allModules.filter(id => {
|
|
100
|
+
const type = ctx.graph.nodes.get(id)?.type;
|
|
101
|
+
return type === 'file' || type === 'style-asset';
|
|
102
|
+
});
|
|
103
|
+
const cssModules = allModules.filter(id => {
|
|
104
|
+
const type = ctx.graph.nodes.get(id)?.type;
|
|
105
|
+
return type === 'css' || type === 'css-module';
|
|
106
|
+
});
|
|
107
|
+
const assetModules = allModules.filter(id => ctx.graph.nodes.get(id)?.type === 'style-asset');
|
|
108
|
+
const isAsync = asyncEntries.has(getId(entry));
|
|
109
|
+
const name = path.basename(entry, path.extname(entry));
|
|
110
|
+
const outputPrefix = isAsync ? `chunk.${name}` : name;
|
|
111
|
+
if (jsModules.length > 0) {
|
|
112
|
+
chunks.push({
|
|
113
|
+
id: `chunk_${name}_js`,
|
|
114
|
+
entry: path.relative(ctx.rootDir, entry),
|
|
115
|
+
modules: jsModules,
|
|
116
|
+
outputName: `assets/${outputPrefix}.${canonicalHash(jsModules).substring(0, 8)}.bundle.js`
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
if (cssModules.length > 0) {
|
|
120
|
+
chunks.push({
|
|
121
|
+
id: `chunk_${name}_css`,
|
|
122
|
+
entry: path.relative(ctx.rootDir, entry),
|
|
123
|
+
modules: cssModules,
|
|
124
|
+
outputName: `assets/${outputPrefix}.${canonicalHash(cssModules).substring(0, 8)}.bundle.css`
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
for (const assetId of assetModules) {
|
|
128
|
+
const node = ctx.graph.nodes.get(assetId);
|
|
129
|
+
if (node) {
|
|
130
|
+
assets.push({
|
|
131
|
+
id: assetId,
|
|
132
|
+
sourcePath: path.relative(ctx.rootDir, node.path),
|
|
133
|
+
outputName: `assets/${path.basename(node.path)}`
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Sort chunks strictly by ID
|
|
139
|
+
chunks.sort((a, b) => a.id.localeCompare(b.id));
|
|
140
|
+
const executionOrder = chunks.map(c => c.id);
|
|
141
|
+
// Calculate Plan ID (Hash of the plan content)
|
|
142
|
+
const planStructure = {
|
|
143
|
+
target: ctx.target,
|
|
144
|
+
chunks,
|
|
145
|
+
assets,
|
|
146
|
+
executionOrder
|
|
147
|
+
};
|
|
148
|
+
const planId = canonicalHash(planStructure);
|
|
149
|
+
explainReporter.report('plan', 'complete', 'Build plan created', { planId, chunkCount: chunks.length });
|
|
150
|
+
return {
|
|
151
|
+
planId,
|
|
152
|
+
target: ctx.target,
|
|
153
|
+
chunks,
|
|
154
|
+
assets,
|
|
155
|
+
executionOrder
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
// Stage 5: Parallel Execution Planning
|
|
159
|
+
export function planParallelExecution(plan) {
|
|
160
|
+
explainReporter.report('parallel_plan', 'start', 'Planning parallel execution');
|
|
161
|
+
// For this simple engine, chunks are independent enough to run in parallel
|
|
162
|
+
// In a real complex graph, we'd analyze shared chunks to avoid race conditions
|
|
163
|
+
// or build shared dependencies first.
|
|
164
|
+
// Here we treat all chunks as one parallel group.
|
|
165
|
+
const chunkIds = plan.chunks.map(c => c.id);
|
|
166
|
+
const execPlan = {
|
|
167
|
+
sequential: [], // setup steps if any
|
|
168
|
+
parallelGroups: [chunkIds] // All chunks in one parallel wave
|
|
169
|
+
};
|
|
170
|
+
explainReporter.report('parallel_plan', 'complete', 'Execution plan ready', { groups: execPlan.parallelGroups.length });
|
|
171
|
+
return execPlan;
|
|
172
|
+
}
|
|
173
|
+
// Stage 6: Determinism Check
|
|
174
|
+
export function determinismCheck(plan, ctx) {
|
|
175
|
+
explainReporter.report('determinism', 'check', `Checking determinism for mode: ${ctx.mode}`);
|
|
176
|
+
// 1. Check Module Sorting
|
|
177
|
+
// All chunk modules must be sorted.
|
|
178
|
+
for (const chunk of plan.chunks) {
|
|
179
|
+
const sorted = [...chunk.modules].sort();
|
|
180
|
+
if (JSON.stringify(chunk.modules) !== JSON.stringify(sorted)) {
|
|
181
|
+
const msg = `Determinism Violation: Chunk ${chunk.id} modules are not sorted.`;
|
|
182
|
+
if (ctx.mode === 'ci')
|
|
183
|
+
throw new Error(msg);
|
|
184
|
+
explainReporter.report('determinism', 'fail', msg);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// 2. Check Execution Order matches Chunks
|
|
188
|
+
const planIds = plan.chunks.map(c => c.id);
|
|
189
|
+
if (JSON.stringify(planIds) !== JSON.stringify(plan.executionOrder)) {
|
|
190
|
+
const msg = `Determinism Violation: Execution order does not match chunk sort order.`;
|
|
191
|
+
if (ctx.mode === 'ci')
|
|
192
|
+
throw new Error(msg);
|
|
193
|
+
explainReporter.report('determinism', 'fail', msg);
|
|
194
|
+
}
|
|
195
|
+
explainReporter.report('determinism', 'pass', 'Determinism checks passed');
|
|
196
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { DependencyGraph } from '../../resolve/graph.js';
|
|
2
|
+
export type EngineInfo = {
|
|
3
|
+
name: "Nuclie";
|
|
4
|
+
version: string;
|
|
5
|
+
commit?: string;
|
|
6
|
+
buildTime?: string;
|
|
7
|
+
};
|
|
8
|
+
export type BuildMode = 'dev' | 'build' | 'ci' | 'debug' | 'production';
|
|
9
|
+
export type BuildTarget = 'browser' | 'node' | 'edge';
|
|
10
|
+
export interface BuildContext {
|
|
11
|
+
engine: EngineInfo;
|
|
12
|
+
mode: BuildMode;
|
|
13
|
+
target: BuildTarget;
|
|
14
|
+
rootDir: string;
|
|
15
|
+
env: Record<string, string>;
|
|
16
|
+
graph: DependencyGraph;
|
|
17
|
+
graphHash: string;
|
|
18
|
+
cache: BuildCache;
|
|
19
|
+
config: ResolvedConfig;
|
|
20
|
+
pluginManager: any;
|
|
21
|
+
}
|
|
22
|
+
export type InputFingerprint = {
|
|
23
|
+
sourceFiles: {
|
|
24
|
+
path: string;
|
|
25
|
+
contentHash: string;
|
|
26
|
+
}[];
|
|
27
|
+
configHash: string;
|
|
28
|
+
engineFingerprint: string;
|
|
29
|
+
inputHash: string;
|
|
30
|
+
};
|
|
31
|
+
export interface ChunkPlan {
|
|
32
|
+
id: string;
|
|
33
|
+
entry: string;
|
|
34
|
+
modules: string[];
|
|
35
|
+
outputName: string;
|
|
36
|
+
}
|
|
37
|
+
export interface AssetPlan {
|
|
38
|
+
id: string;
|
|
39
|
+
sourcePath: string;
|
|
40
|
+
outputName: string;
|
|
41
|
+
}
|
|
42
|
+
export interface BuildPlan {
|
|
43
|
+
planId: string;
|
|
44
|
+
target: BuildTarget;
|
|
45
|
+
chunks: ChunkPlan[];
|
|
46
|
+
assets: AssetPlan[];
|
|
47
|
+
executionOrder: string[];
|
|
48
|
+
}
|
|
49
|
+
export type ExecutionPlan = {
|
|
50
|
+
sequential: string[];
|
|
51
|
+
parallelGroups: string[][];
|
|
52
|
+
};
|
|
53
|
+
export interface BuildArtifact {
|
|
54
|
+
id: string;
|
|
55
|
+
type: 'js' | 'css' | 'asset' | 'map';
|
|
56
|
+
fileName: string;
|
|
57
|
+
dependencies: string[];
|
|
58
|
+
source?: string | Uint8Array;
|
|
59
|
+
modules?: Array<{
|
|
60
|
+
id: string;
|
|
61
|
+
size: number;
|
|
62
|
+
originalSize: number;
|
|
63
|
+
}>;
|
|
64
|
+
}
|
|
65
|
+
export type BuildFingerprint = {
|
|
66
|
+
engineVersion: string;
|
|
67
|
+
graphHash: string;
|
|
68
|
+
planHash: string;
|
|
69
|
+
inputHash: string;
|
|
70
|
+
outputHash: string;
|
|
71
|
+
target: string;
|
|
72
|
+
buildTime?: string;
|
|
73
|
+
};
|
|
74
|
+
export interface CachedResult {
|
|
75
|
+
hash: string;
|
|
76
|
+
artifact: BuildArtifact;
|
|
77
|
+
}
|
|
78
|
+
export interface BuildCache {
|
|
79
|
+
get(key: string): CachedResult | null | Promise<CachedResult | null>;
|
|
80
|
+
set(key: string, value: CachedResult): void | Promise<void>;
|
|
81
|
+
clear(): void | Promise<void>;
|
|
82
|
+
close(): void | Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
export interface ResolvedConfig {
|
|
85
|
+
entryPoints: string[];
|
|
86
|
+
outputDir: string;
|
|
87
|
+
publicPath: string;
|
|
88
|
+
splittingStrategy: 'route' | 'module';
|
|
89
|
+
hashing: 'content';
|
|
90
|
+
sourceMaps: boolean | 'inline' | 'external' | 'hidden';
|
|
91
|
+
minify?: boolean;
|
|
92
|
+
cssModules?: boolean;
|
|
93
|
+
federation?: any;
|
|
94
|
+
}
|
|
95
|
+
export interface BuildError {
|
|
96
|
+
code: string;
|
|
97
|
+
message: string;
|
|
98
|
+
module?: string;
|
|
99
|
+
stage: 'init' | 'fingerprint' | 'graph' | 'plan' | 'parallel_plan' | 'determinism' | 'execute' | 'optimize' | 'emit' | 'fingerprint_output' | 'audit' | 'unknown';
|
|
100
|
+
}
|
|
101
|
+
export interface ExplainEvent {
|
|
102
|
+
stage: string;
|
|
103
|
+
decision: string;
|
|
104
|
+
reason: string;
|
|
105
|
+
name?: string;
|
|
106
|
+
id?: string;
|
|
107
|
+
data?: any;
|
|
108
|
+
timestamp?: number;
|
|
109
|
+
}
|
|
110
|
+
export type DeltaGraph = {
|
|
111
|
+
added: string[];
|
|
112
|
+
modified: string[];
|
|
113
|
+
removed: string[];
|
|
114
|
+
};
|
|
115
|
+
export type HotReloadContext = {
|
|
116
|
+
baseGraphHash: string;
|
|
117
|
+
deltaGraph: DeltaGraph;
|
|
118
|
+
affectedNodes: string[];
|
|
119
|
+
affectedChunks: string[];
|
|
120
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hero Errors System
|
|
3
|
+
*
|
|
4
|
+
* Provides rich, contextual error messages with:
|
|
5
|
+
* - File chain visualization
|
|
6
|
+
* - Graph explanation
|
|
7
|
+
* - Suggested fixes
|
|
8
|
+
* - Related documentation
|
|
9
|
+
*
|
|
10
|
+
* Never show "Build failed" without context.
|
|
11
|
+
*/
|
|
12
|
+
export interface ErrorContext {
|
|
13
|
+
code: string;
|
|
14
|
+
message: string;
|
|
15
|
+
file?: string;
|
|
16
|
+
line?: number;
|
|
17
|
+
column?: number;
|
|
18
|
+
stack?: string;
|
|
19
|
+
fileChain?: string[];
|
|
20
|
+
graphExplanation?: string;
|
|
21
|
+
suggestedFix?: string;
|
|
22
|
+
relatedDocs?: string[];
|
|
23
|
+
severity: 'error' | 'warning' | 'info';
|
|
24
|
+
}
|
|
25
|
+
export declare class HeroError extends Error {
|
|
26
|
+
readonly context: ErrorContext;
|
|
27
|
+
constructor(context: ErrorContext);
|
|
28
|
+
/**
|
|
29
|
+
* Format error for display with rich context
|
|
30
|
+
*/
|
|
31
|
+
format(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Display error to console
|
|
34
|
+
*/
|
|
35
|
+
display(): void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Error Registry - 10 High-Impact Errors
|
|
39
|
+
*/
|
|
40
|
+
export declare function createModuleNotFoundError(modulePath: string, importedFrom: string, fileChain: string[]): HeroError;
|
|
41
|
+
export declare function createCircularDependencyError(cycle: string[]): HeroError;
|
|
42
|
+
export declare function createCSSImportError(cssFile: string, reason: string, importedFrom?: string): HeroError;
|
|
43
|
+
export declare function createFrameworkAdapterMissingError(framework: string): HeroError;
|
|
44
|
+
export declare function createInvalidConfigError(configPath: string, validationErrors: string[]): HeroError;
|
|
45
|
+
export declare function createCacheCorruptedError(cachePath: string): HeroError;
|
|
46
|
+
export declare function createHMRConnectionError(port: number, reason: string): HeroError;
|
|
47
|
+
export declare function createAssetResolutionError(assetPath: string, importedFrom: string): HeroError;
|
|
48
|
+
export declare function createTypeScriptError(file: string, line: number, column: number, message: string, code: string): HeroError;
|
|
49
|
+
export declare function createPluginHookError(pluginName: string, hookName: string, error: Error): HeroError;
|
|
50
|
+
/**
|
|
51
|
+
* Wrap any error in a HeroError with context
|
|
52
|
+
*/
|
|
53
|
+
export declare function wrapError(error: Error, context?: Partial<ErrorContext>): HeroError;
|
|
54
|
+
/**
|
|
55
|
+
* Print a Hero Error to the console
|
|
56
|
+
*/
|
|
57
|
+
export declare function printHeroError(error: HeroError): void;
|