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,132 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { exec } from 'child_process';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
import { log } from '../../utils/logger.js';
|
|
6
|
+
const execAsync = promisify(exec);
|
|
7
|
+
export class TailwindPlugin {
|
|
8
|
+
constructor(root, cfg) {
|
|
9
|
+
this.name = 'tailwind-plugin';
|
|
10
|
+
this.root = process.cwd();
|
|
11
|
+
if (root)
|
|
12
|
+
this.root = root;
|
|
13
|
+
this.cfg = cfg;
|
|
14
|
+
}
|
|
15
|
+
async apply(cwd) {
|
|
16
|
+
this.root = cwd;
|
|
17
|
+
log.info('Configuring Tailwind CSS...');
|
|
18
|
+
try {
|
|
19
|
+
// 1. Install dependencies
|
|
20
|
+
log.info('Installing dependencies: tailwindcss, @tailwindcss/postcss, postcss, autoprefixer...');
|
|
21
|
+
await execAsync('npm install -D tailwindcss @tailwindcss/postcss postcss autoprefixer', { cwd });
|
|
22
|
+
// 2. Initialize Tailwind config
|
|
23
|
+
const configPath = path.join(cwd, 'tailwind.config.js');
|
|
24
|
+
if (!await this.fileExists(configPath)) {
|
|
25
|
+
// Tailwind v4 doesn't strictly need a config file for basic usage, but we'll keep it for now
|
|
26
|
+
// or we can just let the user create it.
|
|
27
|
+
// For v4, the config format might be different or unnecessary if using CSS imports.
|
|
28
|
+
// But let's stick to the v3-style config for now if it works, or just basic export.
|
|
29
|
+
// Actually, v4 is quite different. But let's just fix the plugin loading first.
|
|
30
|
+
const configContent = `/** @type {import('tailwindcss').Config} */
|
|
31
|
+
export default {
|
|
32
|
+
content: [
|
|
33
|
+
"./index.html",
|
|
34
|
+
"./src/**/*.{js,ts,jsx,tsx}",
|
|
35
|
+
],
|
|
36
|
+
theme: {
|
|
37
|
+
extend: {},
|
|
38
|
+
},
|
|
39
|
+
plugins: [],
|
|
40
|
+
}`;
|
|
41
|
+
await fs.writeFile(configPath, configContent);
|
|
42
|
+
log.success('Created tailwind.config.js');
|
|
43
|
+
}
|
|
44
|
+
// 3. Create PostCSS config
|
|
45
|
+
const postcssPath = path.join(cwd, 'postcss.config.js');
|
|
46
|
+
if (!await this.fileExists(postcssPath)) {
|
|
47
|
+
const postcssContent = `export default {
|
|
48
|
+
plugins: {
|
|
49
|
+
'@tailwindcss/postcss': {},
|
|
50
|
+
autoprefixer: {},
|
|
51
|
+
},
|
|
52
|
+
}`;
|
|
53
|
+
await fs.writeFile(postcssPath, postcssContent);
|
|
54
|
+
log.success('Created postcss.config.js');
|
|
55
|
+
}
|
|
56
|
+
// 4. Create or update CSS entry
|
|
57
|
+
const cssPath = path.join(cwd, 'src/index.css');
|
|
58
|
+
const directives = `@tailwind base;\n@tailwind components;\n@tailwind utilities;\n`;
|
|
59
|
+
if (await this.fileExists(cssPath)) {
|
|
60
|
+
const content = await fs.readFile(cssPath, 'utf-8');
|
|
61
|
+
if (!content.includes('@tailwind')) {
|
|
62
|
+
await fs.writeFile(cssPath, directives + '\n' + content);
|
|
63
|
+
log.success('Injected Tailwind directives into src/index.css');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
await fs.mkdir(path.dirname(cssPath), { recursive: true });
|
|
68
|
+
await fs.writeFile(cssPath, directives);
|
|
69
|
+
log.success('Created src/index.css with Tailwind directives');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
log.error('Failed to configure Tailwind CSS:', error);
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async transform(code, id) {
|
|
78
|
+
if (!id.endsWith('.css') && !id.endsWith('.scss') && !id.endsWith('.less'))
|
|
79
|
+
return;
|
|
80
|
+
// log.info(`[TailwindPlugin] Transforming ${id}`);
|
|
81
|
+
try {
|
|
82
|
+
// Dynamic import to avoid bundling issues if dependencies aren't present
|
|
83
|
+
const { createRequire } = await import('module');
|
|
84
|
+
const require = createRequire(path.resolve(this.root, 'package.json'));
|
|
85
|
+
const postcss = require('postcss');
|
|
86
|
+
let tailwindcss;
|
|
87
|
+
try {
|
|
88
|
+
tailwindcss = require('@tailwindcss/postcss');
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
tailwindcss = require('tailwindcss');
|
|
92
|
+
}
|
|
93
|
+
const autoprefixer = require('autoprefixer');
|
|
94
|
+
// log.info('[TailwindPlugin] Loaded dependencies');
|
|
95
|
+
// Zero-Config Logic
|
|
96
|
+
const configPath = path.join(this.root, 'tailwind.config.js');
|
|
97
|
+
const hasConfigFile = await this.fileExists(configPath);
|
|
98
|
+
let tailwindConfig = null;
|
|
99
|
+
if (hasConfigFile) {
|
|
100
|
+
tailwindConfig = { config: configPath };
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Default Config if no file exists
|
|
104
|
+
tailwindConfig = this.cfg?.css?.tailwindConfig || {
|
|
105
|
+
content: [
|
|
106
|
+
"./index.html",
|
|
107
|
+
"./src/**/*.{js,ts,jsx,tsx,vue,svelte,html}",
|
|
108
|
+
],
|
|
109
|
+
theme: {
|
|
110
|
+
extend: {},
|
|
111
|
+
},
|
|
112
|
+
plugins: [],
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const processor = postcss([
|
|
116
|
+
tailwindcss(tailwindConfig),
|
|
117
|
+
autoprefixer
|
|
118
|
+
]);
|
|
119
|
+
const result = await processor.process(code, { from: id });
|
|
120
|
+
// log.info('[TailwindPlugin] Transformation successful');
|
|
121
|
+
return result.css;
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
log.error('[TailwindPlugin] Processing failed:', e);
|
|
125
|
+
// If tailwind/postcss not installed, just return original code
|
|
126
|
+
return code;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async fileExists(path) {
|
|
130
|
+
return fs.access(path).then(() => true).catch(() => false);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Plugin } from './index.js';
|
|
2
|
+
/**
|
|
3
|
+
* CSS-in-JS Plugin
|
|
4
|
+
* Supports styled-components, emotion, and other CSS-in-JS libraries
|
|
5
|
+
* Ensures proper module resolution and transformation
|
|
6
|
+
*/
|
|
7
|
+
export declare class CssInJsPlugin implements Plugin {
|
|
8
|
+
name: string;
|
|
9
|
+
setup(build: any): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS-in-JS Plugin
|
|
3
|
+
* Supports styled-components, emotion, and other CSS-in-JS libraries
|
|
4
|
+
* Ensures proper module resolution and transformation
|
|
5
|
+
*/
|
|
6
|
+
export class CssInJsPlugin {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.name = 'css-in-js-plugin';
|
|
9
|
+
}
|
|
10
|
+
setup(build) {
|
|
11
|
+
// Ensure CSS-in-JS libraries are properly resolved
|
|
12
|
+
// Most CSS-in-JS libraries work out of the box with esbuild,
|
|
13
|
+
// but we can add special handling if needed
|
|
14
|
+
// For styled-components, we might want to add the babel plugin
|
|
15
|
+
// in development mode for better debugging (displayName)
|
|
16
|
+
// This is a placeholder for future enhancements
|
|
17
|
+
// onResolve hooks removed as esbuild handles resolution and bundling by default.
|
|
18
|
+
// If we need specific behavior later (e.g. optimizing imports), we can add it back.
|
|
19
|
+
// In the future, we could add:
|
|
20
|
+
// - Server-side rendering support (extracting critical CSS)
|
|
21
|
+
// - Development mode enhancements (better component names)
|
|
22
|
+
// - Production optimizations (dead code elimination for unused styles)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export class EdgePlugin {
|
|
2
|
+
constructor(config = {}) {
|
|
3
|
+
this.name = 'edge-plugin';
|
|
4
|
+
this.config = config;
|
|
5
|
+
}
|
|
6
|
+
setup(build) {
|
|
7
|
+
const options = build.initialOptions;
|
|
8
|
+
// Configure for Edge Runtime
|
|
9
|
+
if (this.config.platform === 'edge' || options.platform === 'neutral' || options.define?.['process.env.NEXT_RUNTIME'] === '"edge"') {
|
|
10
|
+
options.target = 'esnext';
|
|
11
|
+
options.platform = 'neutral';
|
|
12
|
+
// Polyfills for Node.js built-ins often needed in Edge
|
|
13
|
+
options.inject = [
|
|
14
|
+
...(options.inject || []),
|
|
15
|
+
// We might need to inject a buffer polyfill or similar if the user code relies on it
|
|
16
|
+
// For now, we'll just ensure the environment is set up correctly
|
|
17
|
+
];
|
|
18
|
+
options.define = {
|
|
19
|
+
...options.define,
|
|
20
|
+
'process.env.NODE_ENV': '"production"',
|
|
21
|
+
'process.env.NEXT_RUNTIME': '"edge"',
|
|
22
|
+
};
|
|
23
|
+
// Resolve some Node.js modules to empty or browser equivalents
|
|
24
|
+
build.onResolve({ filter: /^(path|fs|os|util)$/ }, (args) => {
|
|
25
|
+
return {
|
|
26
|
+
path: args.path,
|
|
27
|
+
namespace: 'edge-mock'
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
build.onLoad({ filter: /.*/, namespace: 'edge-mock' }, (args) => {
|
|
31
|
+
return {
|
|
32
|
+
contents: 'export default {};',
|
|
33
|
+
loader: 'js'
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs/promises';
|
|
3
|
+
import { UniversalTransformer } from '../core/universal-transformer.js';
|
|
4
|
+
import { log } from '../utils/logger.js';
|
|
5
|
+
export function createEsbuildPlugin(pm, root) {
|
|
6
|
+
const universalTransformer = new UniversalTransformer(root);
|
|
7
|
+
return {
|
|
8
|
+
name: 'nuclie-adapter',
|
|
9
|
+
setup(build) {
|
|
10
|
+
build.onLoad({ filter: /.*/ }, async (args) => {
|
|
11
|
+
// Skip node_modules (unless we strictly need to transform them, but usually not for libs)
|
|
12
|
+
if (args.path.includes('node_modules'))
|
|
13
|
+
return;
|
|
14
|
+
const ext = path.extname(args.path);
|
|
15
|
+
// console.log(`[Adapter] Loading file: ${args.path} (ext: ${ext})`);
|
|
16
|
+
// Handle Framework Components via Universal Transformer
|
|
17
|
+
const frameworkExtensions = {
|
|
18
|
+
'.vue': 'vue',
|
|
19
|
+
'.svelte': 'svelte',
|
|
20
|
+
'.astro': 'astro',
|
|
21
|
+
'.tsx': 'react',
|
|
22
|
+
'.jsx': 'react',
|
|
23
|
+
'.ts': 'vanilla' // We will check for lit/angular inside
|
|
24
|
+
};
|
|
25
|
+
if (frameworkExtensions[ext]) {
|
|
26
|
+
let raw = await fs.readFile(args.path, 'utf-8');
|
|
27
|
+
let framework = frameworkExtensions[ext];
|
|
28
|
+
// Framework-specific heuristics
|
|
29
|
+
if (raw.includes('@builder.io/qwik'))
|
|
30
|
+
framework = 'qwik';
|
|
31
|
+
if (raw.includes('@customElement') || raw.includes('lit-element'))
|
|
32
|
+
framework = 'lit';
|
|
33
|
+
if (raw.includes('@Component') && raw.includes('@angular/core'))
|
|
34
|
+
framework = 'angular';
|
|
35
|
+
console.log(`[Adapter] Transforming ${args.path} with ${framework}`);
|
|
36
|
+
try {
|
|
37
|
+
const result = await universalTransformer.transform({
|
|
38
|
+
code: raw,
|
|
39
|
+
filePath: args.path,
|
|
40
|
+
isDev: false, // Production build
|
|
41
|
+
framework: framework,
|
|
42
|
+
root: root
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
contents: result.code,
|
|
46
|
+
loader: 'js', // Clean JS after transform
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
log.error(`Failed to transform ${args.path}: ${e.message}`);
|
|
51
|
+
return { errors: [{ text: e.message }] };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Handle standard JS/TS extensions possibly via PluginManager
|
|
55
|
+
if (['.ts', '.tsx', '.js', '.jsx', '.mjs'].includes(ext)) {
|
|
56
|
+
let raw = await fs.readFile(args.path, 'utf-8');
|
|
57
|
+
// Use PluginManager for additional transforms
|
|
58
|
+
const transformed = await pm.transform(raw, args.path);
|
|
59
|
+
return {
|
|
60
|
+
contents: transformed,
|
|
61
|
+
loader: ext.slice(1),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// Handle CSS and Preprocessors
|
|
65
|
+
if (['.css', '.scss', '.sass', '.less', '.styl'].includes(ext)) {
|
|
66
|
+
let raw = await fs.readFile(args.path, 'utf-8');
|
|
67
|
+
const transformed = await pm.transform(raw, args.path);
|
|
68
|
+
return {
|
|
69
|
+
contents: transformed,
|
|
70
|
+
loader: 'css',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return;
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NucliePlugin } from '../core/plugins/types.js';
|
|
2
|
+
export interface FederationConfig {
|
|
3
|
+
name: string;
|
|
4
|
+
filename?: string;
|
|
5
|
+
exposes?: Record<string, string>;
|
|
6
|
+
remotes?: Record<string, string>;
|
|
7
|
+
shared?: Record<string, {
|
|
8
|
+
singleton?: boolean;
|
|
9
|
+
requiredVersion?: string;
|
|
10
|
+
}>;
|
|
11
|
+
prefetch?: string[];
|
|
12
|
+
fallback?: string;
|
|
13
|
+
mock?: boolean;
|
|
14
|
+
healthCheck?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function createFederationPlugin(config: FederationConfig): NucliePlugin;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { canonicalHash } from '../core/engine/hash.js';
|
|
2
|
+
import crypto from 'crypto';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
export function createFederationPlugin(config) {
|
|
5
|
+
return {
|
|
6
|
+
manifest: {
|
|
7
|
+
name: 'nuclie:federation',
|
|
8
|
+
version: '1.0.0',
|
|
9
|
+
engineVersion: '1.0.0',
|
|
10
|
+
type: 'js',
|
|
11
|
+
hooks: ['buildEnd'],
|
|
12
|
+
permissions: { fs: 'read' }
|
|
13
|
+
},
|
|
14
|
+
id: canonicalHash(`federation:${config.name}`),
|
|
15
|
+
async runHook(hook, input, context) {
|
|
16
|
+
if (hook !== 'buildEnd')
|
|
17
|
+
return input;
|
|
18
|
+
const { artifacts, ctx } = input;
|
|
19
|
+
const filename = config.filename || 'remoteEntry.json';
|
|
20
|
+
const manifest = {
|
|
21
|
+
name: config.name,
|
|
22
|
+
exposes: {},
|
|
23
|
+
remotes: config.remotes || {},
|
|
24
|
+
shared: {},
|
|
25
|
+
health: config.healthCheck,
|
|
26
|
+
prefetch: config.prefetch,
|
|
27
|
+
fallback: config.fallback,
|
|
28
|
+
timestamp: Date.now()
|
|
29
|
+
};
|
|
30
|
+
// Process Exposes
|
|
31
|
+
if (config.exposes) {
|
|
32
|
+
for (const [key, importPath] of Object.entries(config.exposes)) {
|
|
33
|
+
// Simple mapping: find the artifact that corresponds to this exposed module
|
|
34
|
+
// This is tricky without a bundler metafile.
|
|
35
|
+
// For now, in this simpler engine, we can check if there's a chunk for it.
|
|
36
|
+
// Or we just point to the client bundle if it's there.
|
|
37
|
+
// HEURISTIC: Find chunk with ID containing the exposed name
|
|
38
|
+
const exposedName = path.basename(importPath, path.extname(importPath));
|
|
39
|
+
const artifact = artifacts.find((a) => a.fileName.includes(exposedName));
|
|
40
|
+
manifest.exposes[key] = {
|
|
41
|
+
import: artifact ? `./${artifact.fileName}` : importPath,
|
|
42
|
+
name: key,
|
|
43
|
+
assets: []
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Process Shared
|
|
48
|
+
if (config.shared) {
|
|
49
|
+
for (const [pkgName, options] of Object.entries(config.shared)) {
|
|
50
|
+
// In a real scenario, we'd read package.json
|
|
51
|
+
const version = '18.2.0'; // Mock for now or read from disk
|
|
52
|
+
manifest.shared[pkgName] = {
|
|
53
|
+
version, // simplified
|
|
54
|
+
singleton: options.singleton,
|
|
55
|
+
requiredVersion: options.requiredVersion
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Hash
|
|
60
|
+
const content = JSON.stringify(manifest);
|
|
61
|
+
manifest.manifestHash = crypto.createHash('sha256').update(content).digest('hex');
|
|
62
|
+
// Create Artifact
|
|
63
|
+
const isJs = filename.endsWith('.js');
|
|
64
|
+
const manifestArtifact = {
|
|
65
|
+
id: canonicalHash(content).substring(0, 16),
|
|
66
|
+
type: isJs ? 'js' : 'json',
|
|
67
|
+
fileName: filename,
|
|
68
|
+
dependencies: [],
|
|
69
|
+
source: isJs
|
|
70
|
+
? `var ${config.name}; ${config.name} = ${JSON.stringify(manifest, null, 2)};`
|
|
71
|
+
: JSON.stringify(manifest, null, 2)
|
|
72
|
+
};
|
|
73
|
+
return {
|
|
74
|
+
artifacts: [...artifacts, manifestArtifact]
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export function getFrameworkConfig(framework) {
|
|
2
|
+
const baseConfig = {
|
|
3
|
+
platform: 'browser',
|
|
4
|
+
};
|
|
5
|
+
switch (framework.name) {
|
|
6
|
+
case 'react':
|
|
7
|
+
return {
|
|
8
|
+
...baseConfig,
|
|
9
|
+
esbuildPlugins: [], // In a real implementation, we would add the react plugin here if needed, or handle it in the build pipeline
|
|
10
|
+
// For now, our build pipeline might already handle basics, but we can add specific presets here.
|
|
11
|
+
};
|
|
12
|
+
case 'vue':
|
|
13
|
+
return {
|
|
14
|
+
...baseConfig,
|
|
15
|
+
// Add Vue specific config
|
|
16
|
+
};
|
|
17
|
+
case 'svelte':
|
|
18
|
+
return {
|
|
19
|
+
...baseConfig,
|
|
20
|
+
// Add Svelte specific config
|
|
21
|
+
};
|
|
22
|
+
case 'preact':
|
|
23
|
+
return {
|
|
24
|
+
...baseConfig,
|
|
25
|
+
// Add Preact specific config
|
|
26
|
+
};
|
|
27
|
+
case 'solid':
|
|
28
|
+
return {
|
|
29
|
+
...baseConfig,
|
|
30
|
+
// Add Solid specific config
|
|
31
|
+
};
|
|
32
|
+
case 'angular':
|
|
33
|
+
return {
|
|
34
|
+
...baseConfig,
|
|
35
|
+
// Add Angular specific config
|
|
36
|
+
};
|
|
37
|
+
default:
|
|
38
|
+
return baseConfig;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework Plugins - Production-Grade Implementations
|
|
3
|
+
*/
|
|
4
|
+
export { nuclieReact, reactPreset, type ReactPluginOptions } from './react.js';
|
|
5
|
+
export { nuclieVue, vuePreset, type VuePluginOptions } from './vue.js';
|
|
6
|
+
export { nuclieSvelte, sveltePreset, type SveltePluginOptions } from './svelte.js';
|
|
7
|
+
export { nuclieSolid, solidPreset, type SolidPluginOptions } from './solid.js';
|
|
8
|
+
export { nuclieLit, litPreset, type LitPluginOptions } from './lit.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework Plugins - Production-Grade Implementations
|
|
3
|
+
*/
|
|
4
|
+
// Tier 1: Production-Ready
|
|
5
|
+
export { nuclieReact, reactPreset } from './react.js';
|
|
6
|
+
export { nuclieVue, vuePreset } from './vue.js';
|
|
7
|
+
// Tier 2: Stable
|
|
8
|
+
export { nuclieSvelte, sveltePreset } from './svelte.js';
|
|
9
|
+
export { nuclieSolid, solidPreset } from './solid.js';
|
|
10
|
+
export { nuclieLit, litPreset } from './lit.js';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nuclie/lit - Production-Grade Lit Plugin
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - TypeScript decorator support
|
|
6
|
+
* - Template literal handling
|
|
7
|
+
* - HMR support
|
|
8
|
+
* - Zero global state
|
|
9
|
+
*/
|
|
10
|
+
import { Plugin } from '../index.js';
|
|
11
|
+
export interface LitPluginOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Enable HMR
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
hmr?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Development mode
|
|
19
|
+
* @default process.env.NODE_ENV !== 'production'
|
|
20
|
+
*/
|
|
21
|
+
development?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Include source maps
|
|
24
|
+
* @default true in development
|
|
25
|
+
*/
|
|
26
|
+
sourceMaps?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* TypeScript compiler options
|
|
29
|
+
*/
|
|
30
|
+
typescript?: {
|
|
31
|
+
experimentalDecorators?: boolean;
|
|
32
|
+
useDefineForClassFields?: boolean;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export declare function nuclieLit(options?: LitPluginOptions): Plugin;
|
|
36
|
+
export declare function litPreset(options?: LitPluginOptions): Plugin[];
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nuclie/lit - Production-Grade Lit Plugin
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - TypeScript decorator support
|
|
6
|
+
* - Template literal handling
|
|
7
|
+
* - HMR support
|
|
8
|
+
* - Zero global state
|
|
9
|
+
*/
|
|
10
|
+
import path from 'path';
|
|
11
|
+
export function nuclieLit(options = {}) {
|
|
12
|
+
const { hmr = true, development = process.env.NODE_ENV !== 'production', sourceMaps = development, typescript = {} } = options;
|
|
13
|
+
return {
|
|
14
|
+
name: 'nuclie-lit',
|
|
15
|
+
async transform(code, id) {
|
|
16
|
+
// Only process Lit files (.ts, .js with Lit imports)
|
|
17
|
+
if (!isLitFile(id, code)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
// Transform TypeScript/JavaScript with decorator support
|
|
21
|
+
const transformed = await transformLit(code, {
|
|
22
|
+
filename: id,
|
|
23
|
+
loader: id.endsWith('.ts') ? 'ts' : 'js',
|
|
24
|
+
development,
|
|
25
|
+
sourcemap: sourceMaps,
|
|
26
|
+
typescript: {
|
|
27
|
+
experimentalDecorators: true,
|
|
28
|
+
useDefineForClassFields: false,
|
|
29
|
+
...typescript
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
if (!transformed) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
// Add HMR support
|
|
36
|
+
const hmrCode = (development && hmr) ? `
|
|
37
|
+
// Lit HMR
|
|
38
|
+
if (import.meta.hot) {
|
|
39
|
+
import.meta.hot.accept((newModule) => {
|
|
40
|
+
// Re-register custom elements
|
|
41
|
+
if (newModule) {
|
|
42
|
+
// Lit's reactive properties will handle updates
|
|
43
|
+
const elements = document.querySelectorAll('[data-lit-element]');
|
|
44
|
+
elements.forEach(el => {
|
|
45
|
+
if (el.requestUpdate) {
|
|
46
|
+
el.requestUpdate();
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
`.trim() : '';
|
|
53
|
+
const output = `
|
|
54
|
+
${transformed}
|
|
55
|
+
|
|
56
|
+
${hmrCode}
|
|
57
|
+
`.trim();
|
|
58
|
+
return {
|
|
59
|
+
code: output,
|
|
60
|
+
map: sourceMaps ? generateSourceMap(code, output, id) : undefined
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// Helper functions
|
|
66
|
+
function isLitFile(id, code) {
|
|
67
|
+
// Check file extension
|
|
68
|
+
if (!/\.(ts|js)$/.test(id)) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
// Check for Lit imports
|
|
72
|
+
return /from\s+['"]lit['"]/.test(code) ||
|
|
73
|
+
/from\s+['"]lit\//.test(code) ||
|
|
74
|
+
/@customElement/.test(code);
|
|
75
|
+
}
|
|
76
|
+
async function transformLit(code, options) {
|
|
77
|
+
try {
|
|
78
|
+
// Use esbuild for TypeScript/JavaScript transformation
|
|
79
|
+
const esbuild = await import('esbuild');
|
|
80
|
+
const result = await esbuild.transform(code, {
|
|
81
|
+
loader: options.loader,
|
|
82
|
+
target: 'es2020',
|
|
83
|
+
sourcemap: options.sourcemap,
|
|
84
|
+
tsconfigRaw: {
|
|
85
|
+
compilerOptions: {
|
|
86
|
+
experimentalDecorators: options.typescript.experimentalDecorators,
|
|
87
|
+
useDefineForClassFields: options.typescript.useDefineForClassFields,
|
|
88
|
+
target: 'ES2020',
|
|
89
|
+
module: 'ESNext'
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
return result.code;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.warn('[nuclie-lit] Transform failed:', error);
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function generateSourceMap(originalCode, transformedCode, id) {
|
|
101
|
+
return {
|
|
102
|
+
version: 3,
|
|
103
|
+
file: path.basename(id),
|
|
104
|
+
sources: [id],
|
|
105
|
+
sourcesContent: [originalCode],
|
|
106
|
+
mappings: ''
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// Export helper for use in config
|
|
110
|
+
export function litPreset(options = {}) {
|
|
111
|
+
return [
|
|
112
|
+
nuclieLit(options)
|
|
113
|
+
];
|
|
114
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nuclie/react - Production-Grade React Plugin
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Graph-derived HMR (no heuristics)
|
|
6
|
+
* - Fast Refresh integration
|
|
7
|
+
* - CSS dependency tracking
|
|
8
|
+
* - Zero global state
|
|
9
|
+
* - Production optimizations
|
|
10
|
+
*/
|
|
11
|
+
import { Plugin } from '../index.js';
|
|
12
|
+
export interface ReactPluginOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Enable Fast Refresh for HMR
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
17
|
+
fastRefresh?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Development mode
|
|
20
|
+
* @default process.env.NODE_ENV !== 'production'
|
|
21
|
+
*/
|
|
22
|
+
development?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Include source maps
|
|
25
|
+
* @default true in development
|
|
26
|
+
*/
|
|
27
|
+
sourceMaps?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Babel preset options
|
|
30
|
+
*/
|
|
31
|
+
babel?: {
|
|
32
|
+
runtime?: 'automatic' | 'classic';
|
|
33
|
+
importSource?: string;
|
|
34
|
+
development?: boolean;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export declare function nuclieReact(options?: ReactPluginOptions): Plugin;
|
|
38
|
+
export declare function reactPreset(options?: ReactPluginOptions): Plugin[];
|