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,154 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { createRequire } from 'module';
|
|
3
|
+
const require = createRequire(import.meta.url);
|
|
4
|
+
let nativeModule;
|
|
5
|
+
const candidatePaths = [
|
|
6
|
+
'./nuclie_native.node',
|
|
7
|
+
'../nuclie_native.node',
|
|
8
|
+
'../../nuclie_native.node',
|
|
9
|
+
path.join(process.cwd(), 'nuclie_native.node'),
|
|
10
|
+
path.join(process.cwd(), 'dist/nuclie_native.node')
|
|
11
|
+
];
|
|
12
|
+
for (const p of candidatePaths) {
|
|
13
|
+
try {
|
|
14
|
+
nativeModule = require(p);
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
catch (e) { }
|
|
18
|
+
}
|
|
19
|
+
if (!nativeModule) {
|
|
20
|
+
if (process.env.DEBUG)
|
|
21
|
+
console.log('[DEBUG] Native BuildCache not found, using in-memory fallback');
|
|
22
|
+
// Provide a fallback in-memory implementation
|
|
23
|
+
nativeModule = {
|
|
24
|
+
BuildCache: class {
|
|
25
|
+
constructor(cachePath) {
|
|
26
|
+
this.store = new Map();
|
|
27
|
+
}
|
|
28
|
+
get(key) { return this.store.get(key) || null; }
|
|
29
|
+
set(key, value) { this.store.set(key, value); }
|
|
30
|
+
delete(key) { this.store.delete(key); }
|
|
31
|
+
has(key) { return this.store.has(key); }
|
|
32
|
+
batchSet(entries) { Object.entries(entries).forEach(([k, v]) => this.store.set(k, v)); }
|
|
33
|
+
clearTarget(target) { this.store.clear(); return 0; }
|
|
34
|
+
clearAll() { this.store.clear(); }
|
|
35
|
+
getStats() { return { size: this.store.size, keys: this.store.size, hitRate: 0 }; }
|
|
36
|
+
compact() { }
|
|
37
|
+
close() { this.store.clear(); }
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const { BuildCache: NativeBuildCache } = nativeModule;
|
|
42
|
+
/**
|
|
43
|
+
* RocksDB-based persistent build cache
|
|
44
|
+
*
|
|
45
|
+
* Features:
|
|
46
|
+
* - LSM tree architecture for efficient writes
|
|
47
|
+
* - Automatic compaction and cleanup
|
|
48
|
+
* - Multi-target support (dev/prod/lib)
|
|
49
|
+
* - Cache warming and invalidation
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const cache = new BuildCache('.nuclie_cache');
|
|
54
|
+
*
|
|
55
|
+
* // Set a value
|
|
56
|
+
* cache.set('input:src/App.tsx:abc123', JSON.stringify(transformResult));
|
|
57
|
+
*
|
|
58
|
+
* // Get a value
|
|
59
|
+
* const cached = cache.get('input:src/App.tsx:abc123');
|
|
60
|
+
*
|
|
61
|
+
* // Get statistics
|
|
62
|
+
* const stats = cache.getStats();
|
|
63
|
+
* console.log(`Hit rate: ${stats.hitRate}%`);
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export class BuildCache {
|
|
67
|
+
constructor(cachePath) {
|
|
68
|
+
this.cache = new NativeBuildCache(cachePath);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get a value from the cache
|
|
72
|
+
*/
|
|
73
|
+
get(key) {
|
|
74
|
+
return this.cache.get(key) || null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Set a value in the cache
|
|
78
|
+
*/
|
|
79
|
+
set(key, value) {
|
|
80
|
+
this.cache.set(key, value);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Delete a value from the cache
|
|
84
|
+
*/
|
|
85
|
+
delete(key) {
|
|
86
|
+
this.cache.delete(key);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if a key exists in the cache
|
|
90
|
+
*/
|
|
91
|
+
has(key) {
|
|
92
|
+
return this.cache.has(key);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Batch set multiple key-value pairs
|
|
96
|
+
*/
|
|
97
|
+
batchSet(entries) {
|
|
98
|
+
this.cache.batchSet(entries);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Clear all entries for a specific target (dev/prod/lib)
|
|
102
|
+
*/
|
|
103
|
+
clearTarget(target) {
|
|
104
|
+
return this.cache.clearTarget(target);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Clear all cache entries
|
|
108
|
+
*/
|
|
109
|
+
clearAll() {
|
|
110
|
+
this.cache.clearAll();
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get cache statistics
|
|
114
|
+
*/
|
|
115
|
+
getStats() {
|
|
116
|
+
return this.cache.getStats();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Compact the database to reclaim space
|
|
120
|
+
*/
|
|
121
|
+
compact() {
|
|
122
|
+
this.cache.compact();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Close the cache (cleanup)
|
|
126
|
+
*/
|
|
127
|
+
close() {
|
|
128
|
+
this.cache.close();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Create cache key for input fingerprint
|
|
133
|
+
*/
|
|
134
|
+
export function createInputKey(filePath, contentHash) {
|
|
135
|
+
return `input:${filePath}:${contentHash}`;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Create cache key for graph hash
|
|
139
|
+
*/
|
|
140
|
+
export function createGraphKey(graphHash) {
|
|
141
|
+
return `graph:${graphHash}`;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Create cache key for plan hash
|
|
145
|
+
*/
|
|
146
|
+
export function createPlanKey(planHash, target) {
|
|
147
|
+
return `plan:${target}:${planHash}`;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create cache key for artifact
|
|
151
|
+
*/
|
|
152
|
+
export function createArtifactKey(artifactId, target) {
|
|
153
|
+
return `artifact:${target}:${artifactId}`;
|
|
154
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
declare let native: any;
|
|
2
|
+
export declare const GraphAnalyzer: any, BuildOrchestrator: any, BuildCache: any, fastHash: any, batchHash: any, scanImports: any, normalizePath: any, PluginRuntime: any, NativeWorker: any, helloRust: any;
|
|
3
|
+
export { NativeWorker as RustNativeWorker };
|
|
4
|
+
export default native;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createRequire } from 'module';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import fs from 'fs';
|
|
5
|
+
const _require = createRequire(import.meta.url);
|
|
6
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
+
const __dirname = path.dirname(__filename);
|
|
8
|
+
let native;
|
|
9
|
+
try {
|
|
10
|
+
const candidates = [
|
|
11
|
+
path.resolve(__dirname, '../../nuclie_native.node'),
|
|
12
|
+
path.resolve(__dirname, '../nuclie_native.node'),
|
|
13
|
+
path.resolve(__dirname, './nuclie_native.node'),
|
|
14
|
+
path.resolve(process.cwd(), 'nuclie_native.node')
|
|
15
|
+
];
|
|
16
|
+
let found = '';
|
|
17
|
+
for (const c of candidates) {
|
|
18
|
+
if (fs.existsSync(c)) {
|
|
19
|
+
found = c;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (found) {
|
|
24
|
+
native = _require(found);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// Use fallback instead of throwing
|
|
28
|
+
native = null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
// Fallback Mock with proper hashing
|
|
33
|
+
const crypto = _require('crypto');
|
|
34
|
+
native = {
|
|
35
|
+
GraphAnalyzer: class {
|
|
36
|
+
},
|
|
37
|
+
BuildOrchestrator: class {
|
|
38
|
+
},
|
|
39
|
+
BuildCache: class {
|
|
40
|
+
},
|
|
41
|
+
fastHash: (s) => crypto.createHash('sha256').update(s).digest('hex').substring(0, 16),
|
|
42
|
+
batchHash: (sa) => sa.map((s) => crypto.createHash('sha256').update(s).digest('hex').substring(0, 16)),
|
|
43
|
+
scanImports: (s) => [],
|
|
44
|
+
normalizePath: (s) => s.replace(/\\/g, '/'),
|
|
45
|
+
PluginRuntime: class {
|
|
46
|
+
},
|
|
47
|
+
NativeWorker: class {
|
|
48
|
+
constructor() { }
|
|
49
|
+
processFile() { return null; }
|
|
50
|
+
},
|
|
51
|
+
helloRust: () => "Mock"
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export const { GraphAnalyzer, BuildOrchestrator, BuildCache, fastHash, batchHash, scanImports, normalizePath, PluginRuntime, NativeWorker, helloRust } = native;
|
|
55
|
+
export { NativeWorker as RustNativeWorker };
|
|
56
|
+
export default native;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { BuildEvent, OrchestratorStats } from '../../nuclie_native.node';
|
|
2
|
+
export { BuildEvent, OrchestratorStats };
|
|
3
|
+
/**
|
|
4
|
+
* Tokio-based parallel build orchestrator
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Work-stealing scheduler for optimal CPU utilization
|
|
8
|
+
* - Parallel workers for graph/plan/execute stages
|
|
9
|
+
* - Deterministic stable IDs
|
|
10
|
+
* - Structured event logging
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const orchestrator = new BuildOrchestrator();
|
|
15
|
+
*
|
|
16
|
+
* // Execute tasks in parallel
|
|
17
|
+
* const stats = await orchestrator.executeParallel(100);
|
|
18
|
+
* console.log(`Completed ${stats.completedTasks} tasks in ${stats.totalDurationMs}ms`);
|
|
19
|
+
*
|
|
20
|
+
* // Generate stable IDs
|
|
21
|
+
* const id = orchestrator.generateStableId(fileContent, 'module');
|
|
22
|
+
*
|
|
23
|
+
* // Get events
|
|
24
|
+
* const events = await orchestrator.getEvents();
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class BuildOrchestrator {
|
|
28
|
+
private orchestrator;
|
|
29
|
+
constructor(parallelism?: number);
|
|
30
|
+
/**
|
|
31
|
+
* Log a build event
|
|
32
|
+
*/
|
|
33
|
+
logEvent(stage: string, message: string, durationMs?: number): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Get all logged events
|
|
36
|
+
*/
|
|
37
|
+
getEvents(): Promise<BuildEvent[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Clear all events
|
|
40
|
+
*/
|
|
41
|
+
clearEvents(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Execute tasks in parallel
|
|
44
|
+
*/
|
|
45
|
+
executeParallel(taskCount: number): Promise<OrchestratorStats>;
|
|
46
|
+
/**
|
|
47
|
+
* Process items in parallel using Rayon (CPU-bound)
|
|
48
|
+
*/
|
|
49
|
+
processParallelSync(items: string[]): string[];
|
|
50
|
+
/**
|
|
51
|
+
* Generate deterministic stable ID from content
|
|
52
|
+
*/
|
|
53
|
+
generateStableId(content: string, prefix: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Batch generate stable IDs
|
|
56
|
+
*/
|
|
57
|
+
batchGenerateIds(items: string[], prefix: string): string[];
|
|
58
|
+
/**
|
|
59
|
+
* Get orchestrator statistics
|
|
60
|
+
*/
|
|
61
|
+
getStats(): Promise<OrchestratorStats>;
|
|
62
|
+
/**
|
|
63
|
+
* Get parallelism level
|
|
64
|
+
*/
|
|
65
|
+
get parallelism(): number;
|
|
66
|
+
/**
|
|
67
|
+
* Shutdown the orchestrator
|
|
68
|
+
*/
|
|
69
|
+
shutdown(): void;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get optimal parallelism for the current system
|
|
73
|
+
*/
|
|
74
|
+
export declare function getOptimalConcurrency(): number;
|
|
75
|
+
/**
|
|
76
|
+
* Benchmark parallel vs sequential processing
|
|
77
|
+
*/
|
|
78
|
+
export declare function benchmarkConcurrency(itemCount: number): Record<string, number>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// TypeScript bindings for Tokio orchestrator
|
|
2
|
+
// Day 2: Module 1 - Speed Mastery
|
|
3
|
+
import { createRequire } from 'module';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const nativeModule = require('../../nuclie_native.node');
|
|
6
|
+
const { BuildOrchestrator: NativeBuildOrchestrator, getOptimalParallelism, benchmarkParallelism } = nativeModule;
|
|
7
|
+
/**
|
|
8
|
+
* Tokio-based parallel build orchestrator
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Work-stealing scheduler for optimal CPU utilization
|
|
12
|
+
* - Parallel workers for graph/plan/execute stages
|
|
13
|
+
* - Deterministic stable IDs
|
|
14
|
+
* - Structured event logging
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const orchestrator = new BuildOrchestrator();
|
|
19
|
+
*
|
|
20
|
+
* // Execute tasks in parallel
|
|
21
|
+
* const stats = await orchestrator.executeParallel(100);
|
|
22
|
+
* console.log(`Completed ${stats.completedTasks} tasks in ${stats.totalDurationMs}ms`);
|
|
23
|
+
*
|
|
24
|
+
* // Generate stable IDs
|
|
25
|
+
* const id = orchestrator.generateStableId(fileContent, 'module');
|
|
26
|
+
*
|
|
27
|
+
* // Get events
|
|
28
|
+
* const events = await orchestrator.getEvents();
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export class BuildOrchestrator {
|
|
32
|
+
constructor(parallelism) {
|
|
33
|
+
this.orchestrator = new NativeBuildOrchestrator(parallelism);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Log a build event
|
|
37
|
+
*/
|
|
38
|
+
async logEvent(stage, message, durationMs) {
|
|
39
|
+
await this.orchestrator.logEvent(stage, message, durationMs);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get all logged events
|
|
43
|
+
*/
|
|
44
|
+
async getEvents() {
|
|
45
|
+
return await this.orchestrator.getEvents();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Clear all events
|
|
49
|
+
*/
|
|
50
|
+
async clearEvents() {
|
|
51
|
+
await this.orchestrator.clearEvents();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Execute tasks in parallel
|
|
55
|
+
*/
|
|
56
|
+
async executeParallel(taskCount) {
|
|
57
|
+
return await this.orchestrator.executeParallel(taskCount);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Process items in parallel using Rayon (CPU-bound)
|
|
61
|
+
*/
|
|
62
|
+
processParallelSync(items) {
|
|
63
|
+
return this.orchestrator.processParallelSync(items);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Generate deterministic stable ID from content
|
|
67
|
+
*/
|
|
68
|
+
generateStableId(content, prefix) {
|
|
69
|
+
return this.orchestrator.generateStableId(content, prefix);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Batch generate stable IDs
|
|
73
|
+
*/
|
|
74
|
+
batchGenerateIds(items, prefix) {
|
|
75
|
+
return this.orchestrator.batchGenerateIds(items, prefix);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get orchestrator statistics
|
|
79
|
+
*/
|
|
80
|
+
async getStats() {
|
|
81
|
+
return await this.orchestrator.getStats();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get parallelism level
|
|
85
|
+
*/
|
|
86
|
+
get parallelism() {
|
|
87
|
+
return this.orchestrator.parallelism;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Shutdown the orchestrator
|
|
91
|
+
*/
|
|
92
|
+
shutdown() {
|
|
93
|
+
this.orchestrator.shutdown();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get optimal parallelism for the current system
|
|
98
|
+
*/
|
|
99
|
+
export function getOptimalConcurrency() {
|
|
100
|
+
return getOptimalParallelism();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Benchmark parallel vs sequential processing
|
|
104
|
+
*/
|
|
105
|
+
export function benchmarkConcurrency(itemCount) {
|
|
106
|
+
return benchmarkParallelism(itemCount);
|
|
107
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secure WASM Runtime wrapper
|
|
3
|
+
* Enforces:
|
|
4
|
+
* - CPU limits (via fuel/epochs)
|
|
5
|
+
* - Memory limits (64MB)
|
|
6
|
+
* - Sandbox (No FS/Net)
|
|
7
|
+
*/
|
|
8
|
+
export declare class PluginRuntime {
|
|
9
|
+
private runtime;
|
|
10
|
+
constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Verify a WASM binary is valid and safe (basic check)
|
|
13
|
+
*/
|
|
14
|
+
verify(wasmBytes: Buffer): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Execute a plugin with input string
|
|
17
|
+
* @param wasmBytes Plugin binary
|
|
18
|
+
* @param input Input data (JSON string usually)
|
|
19
|
+
* @param timeoutMs CPU time budget
|
|
20
|
+
*/
|
|
21
|
+
execute(wasmBytes: Buffer, input: string, timeoutMs?: number): string;
|
|
22
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// TypeScript bindings for Nuclie v2.0 native WASM runtime
|
|
2
|
+
// Day 8: Zero-Trust Ecosystem
|
|
3
|
+
import { createRequire } from 'module';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const nativeModule = require('../../nuclie_native.node');
|
|
6
|
+
const { PluginRuntime: NativePluginRuntime } = nativeModule;
|
|
7
|
+
/**
|
|
8
|
+
* Secure WASM Runtime wrapper
|
|
9
|
+
* Enforces:
|
|
10
|
+
* - CPU limits (via fuel/epochs)
|
|
11
|
+
* - Memory limits (64MB)
|
|
12
|
+
* - Sandbox (No FS/Net)
|
|
13
|
+
*/
|
|
14
|
+
export class PluginRuntime {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.runtime = new NativePluginRuntime();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Verify a WASM binary is valid and safe (basic check)
|
|
20
|
+
*/
|
|
21
|
+
verify(wasmBytes) {
|
|
22
|
+
return this.runtime.verifyPlugin(wasmBytes);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Execute a plugin with input string
|
|
26
|
+
* @param wasmBytes Plugin binary
|
|
27
|
+
* @param input Input data (JSON string usually)
|
|
28
|
+
* @param timeoutMs CPU time budget
|
|
29
|
+
*/
|
|
30
|
+
execute(wasmBytes, input, timeoutMs = 100) {
|
|
31
|
+
return this.runtime.execute(wasmBytes, input, timeoutMs);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs/promises';
|
|
3
|
+
import { fastHash } from '../native/index.js';
|
|
4
|
+
export function createAssetPlugin(outDir = 'build_output') {
|
|
5
|
+
return {
|
|
6
|
+
manifest: {
|
|
7
|
+
name: 'nuclie:asset',
|
|
8
|
+
version: '1.0.0',
|
|
9
|
+
engineVersion: '1.0.0',
|
|
10
|
+
type: 'js',
|
|
11
|
+
hooks: ['resolveId', 'load'],
|
|
12
|
+
permissions: { fs: 'read' }
|
|
13
|
+
},
|
|
14
|
+
id: 'nuclie:asset',
|
|
15
|
+
async runHook(hook, input, context) {
|
|
16
|
+
const ASSET_REGEX = /\.(png|jpg|jpeg|gif|svg|webp|woff|woff2|ttf|eot|otf)$/;
|
|
17
|
+
if (hook === 'resolveId') {
|
|
18
|
+
if (ASSET_REGEX.test(input.path)) {
|
|
19
|
+
return {
|
|
20
|
+
id: path.resolve(input.resolveDir, input.path),
|
|
21
|
+
external: false,
|
|
22
|
+
namespace: 'asset-ns'
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (hook === 'load') {
|
|
27
|
+
if (input.namespace === 'asset-ns' || ASSET_REGEX.test(input.path)) {
|
|
28
|
+
const content = await fs.readFile(input.path);
|
|
29
|
+
// Use fastHash from native module to calculate hash
|
|
30
|
+
const hash = fastHash(content.toString('utf-8'));
|
|
31
|
+
const ext = path.extname(input.path);
|
|
32
|
+
const name = path.basename(input.path, ext);
|
|
33
|
+
const hashedName = `${name}.${hash.slice(0, 8)}${ext}`;
|
|
34
|
+
// Create assets directory in output
|
|
35
|
+
const assetsDir = path.join(outDir, 'assets');
|
|
36
|
+
await fs.mkdir(assetsDir, { recursive: true });
|
|
37
|
+
// Write the asset file
|
|
38
|
+
const outputPath = path.join(assetsDir, hashedName);
|
|
39
|
+
await fs.writeFile(outputPath, content);
|
|
40
|
+
// Return the public path as a JS module
|
|
41
|
+
return {
|
|
42
|
+
code: `export default "/assets/${hashedName}";`,
|
|
43
|
+
loader: 'js'
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null; // Return null to let other plugins handle it
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nuclie Compatibility Layer
|
|
3
|
+
* Adapts Vite/Rollup Plugins to Nuclie Architecture
|
|
4
|
+
* Day 11: Vite/Rollup Compat Layer Lock
|
|
5
|
+
*/
|
|
6
|
+
import { PluginRuntime } from '../wasm-runtime.js';
|
|
7
|
+
import type { Plugin as RollupPlugin } from 'rollup';
|
|
8
|
+
export declare class CompatPluginAdapter {
|
|
9
|
+
private runtime;
|
|
10
|
+
constructor(runtime: PluginRuntime);
|
|
11
|
+
/**
|
|
12
|
+
* Converts a secure WASM plugin into a Rollup-compatible plugin interface
|
|
13
|
+
* This allows Nuclie (using Rolldown) to bundle using WASM plugins transparently.
|
|
14
|
+
*/
|
|
15
|
+
adapt(manifest: any, wasmBytes: Buffer): RollupPlugin;
|
|
16
|
+
/**
|
|
17
|
+
* Internal helper to execute WASM safely and parse result
|
|
18
|
+
*/
|
|
19
|
+
private runWasm;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The "Inverse" Adapter: Running a Legacy Mock JS Plugin inside a "Virtual" Sandbox?
|
|
23
|
+
* The plan says: "Auto-convert Vite/Rollup plugins -> WASM"
|
|
24
|
+
* This means taking a `my-plugin.js` and wrapping it so it runs securely.
|
|
25
|
+
*
|
|
26
|
+
* Strategy:
|
|
27
|
+
* 1. Read JS code.
|
|
28
|
+
* 2. Feed it to a "QuickJS-WASM" container.
|
|
29
|
+
* 3. The container executes the JS hooks.
|
|
30
|
+
*/
|
|
31
|
+
export declare class JSPluginToWasm {
|
|
32
|
+
static convert(jsPluginCode: string): Promise<Buffer>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nuclie Compatibility Layer
|
|
3
|
+
* Adapts Vite/Rollup Plugins to Nuclie Architecture
|
|
4
|
+
* Day 11: Vite/Rollup Compat Layer Lock
|
|
5
|
+
*/
|
|
6
|
+
// Mock QuickJS engine binary path (in reality, we'd bundle this)
|
|
7
|
+
// This interface simulates running a JS plugin INSIDE the secure WASM container
|
|
8
|
+
// by creating a 'host' plugin that delegates to the WASM runtime.
|
|
9
|
+
export class CompatPluginAdapter {
|
|
10
|
+
constructor(runtime) {
|
|
11
|
+
this.runtime = runtime;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Converts a secure WASM plugin into a Rollup-compatible plugin interface
|
|
15
|
+
* This allows Nuclie (using Rolldown) to bundle using WASM plugins transparently.
|
|
16
|
+
*/
|
|
17
|
+
adapt(manifest, wasmBytes) {
|
|
18
|
+
return {
|
|
19
|
+
name: manifest.name,
|
|
20
|
+
// Map 'resolveId' hook
|
|
21
|
+
resolveId: async (source, importer) => {
|
|
22
|
+
// We pass the call into the WASM sandbox
|
|
23
|
+
const input = JSON.stringify({
|
|
24
|
+
hook: 'resolveId',
|
|
25
|
+
args: [source, importer]
|
|
26
|
+
});
|
|
27
|
+
// Execute with 100ms timeout
|
|
28
|
+
const result = this.runWasm(wasmBytes, input);
|
|
29
|
+
if (result && result.id) {
|
|
30
|
+
return result.id;
|
|
31
|
+
}
|
|
32
|
+
return null; // Defer to next
|
|
33
|
+
},
|
|
34
|
+
// Map 'load' hook
|
|
35
|
+
load: async (id) => {
|
|
36
|
+
const input = JSON.stringify({
|
|
37
|
+
hook: 'load',
|
|
38
|
+
args: [id]
|
|
39
|
+
});
|
|
40
|
+
const result = this.runWasm(wasmBytes, input);
|
|
41
|
+
if (result && result.code) {
|
|
42
|
+
return result.code;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
},
|
|
46
|
+
// Map 'transform' hook
|
|
47
|
+
transform: async (code, id) => {
|
|
48
|
+
const input = JSON.stringify({
|
|
49
|
+
hook: 'transform',
|
|
50
|
+
args: [code, id]
|
|
51
|
+
});
|
|
52
|
+
const result = this.runWasm(wasmBytes, input);
|
|
53
|
+
if (result && result.code) {
|
|
54
|
+
return { code: result.code, map: result.map };
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Internal helper to execute WASM safely and parse result
|
|
62
|
+
*/
|
|
63
|
+
runWasm(wasmBytes, input) {
|
|
64
|
+
try {
|
|
65
|
+
// runtime.execute returns JSON string
|
|
66
|
+
const outputStr = this.runtime.execute(wasmBytes, input, 200); // 200ms for compat
|
|
67
|
+
if (outputStr === 'Success')
|
|
68
|
+
return null; // Logic in WASM handle default?
|
|
69
|
+
// Our minimal WASM stubs returned "Success" or raw string.
|
|
70
|
+
// Real Plugin Protocol requires JSON return.
|
|
71
|
+
// We assume the WASM plugin complies with Nuclie V2 Plugin Protocol.
|
|
72
|
+
return JSON.parse(outputStr);
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.error('WASM Plugin Error:', e);
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The "Inverse" Adapter: Running a Legacy Mock JS Plugin inside a "Virtual" Sandbox?
|
|
82
|
+
* The plan says: "Auto-convert Vite/Rollup plugins -> WASM"
|
|
83
|
+
* This means taking a `my-plugin.js` and wrapping it so it runs securely.
|
|
84
|
+
*
|
|
85
|
+
* Strategy:
|
|
86
|
+
* 1. Read JS code.
|
|
87
|
+
* 2. Feed it to a "QuickJS-WASM" container.
|
|
88
|
+
* 3. The container executes the JS hooks.
|
|
89
|
+
*/
|
|
90
|
+
export class JSPluginToWasm {
|
|
91
|
+
static async convert(jsPluginCode) {
|
|
92
|
+
// In a real implementation, this returns a pre-compiled WASM binary
|
|
93
|
+
// that contains QuickJS + the User's JS Code bundled into the data segment.
|
|
94
|
+
// For Proof-Of-Concept (Day 11 MVP), we return a Mock WASM
|
|
95
|
+
// that simply echoes "I am sandboxed".
|
|
96
|
+
// To truly prove this, we need a QuickJS build.
|
|
97
|
+
// We will simulate the "Conversion" by returning a robust stub
|
|
98
|
+
// and relying on the 'CompatPluginAdapter' to run it.
|
|
99
|
+
// Return dummy bytes that satisfy the runtime verify
|
|
100
|
+
return Buffer.from('0061736d01000000', 'hex');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Plugin } from '../index.js';
|
|
2
|
+
export interface CompressOptions {
|
|
3
|
+
algorithm?: 'gzip' | 'brotli';
|
|
4
|
+
threshold?: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Nuclie Compress Plugin (nuclie-compress)
|
|
8
|
+
* Mocks compression-webpack-plugin using a simple status message.
|
|
9
|
+
* In a real V1, this would actually gzip/brotli the assets in `dist`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function nuclieCompress(options?: CompressOptions): Plugin;
|
|
12
|
+
/**
|
|
13
|
+
* Nuclie CSS Extract Plugin (nuclie-css-extract)
|
|
14
|
+
* Mocks mini-css-extract-plugin.
|
|
15
|
+
* Nuclie extracts CSS by default, so this is mostly a no-op compatibility shim.
|
|
16
|
+
*/
|
|
17
|
+
export declare function nuclieCssExtract(options?: any): Plugin;
|