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.
Files changed (779) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +516 -0
  3. package/dist/ai/analyzer.d.ts +29 -0
  4. package/dist/ai/analyzer.js +202 -0
  5. package/dist/ai/chat/cli.d.ts +3 -0
  6. package/dist/ai/chat/cli.js +38 -0
  7. package/dist/ai/client.d.ts +17 -0
  8. package/dist/ai/client.js +68 -0
  9. package/dist/ai/cloud/api.d.ts +28 -0
  10. package/dist/ai/cloud/api.js +118 -0
  11. package/dist/ai/cloud/modelSync.d.ts +18 -0
  12. package/dist/ai/cloud/modelSync.js +104 -0
  13. package/dist/ai/cloud/telemetry.d.ts +14 -0
  14. package/dist/ai/cloud/telemetry.js +23 -0
  15. package/dist/ai/config.d.ts +14 -0
  16. package/dist/ai/config.js +9 -0
  17. package/dist/ai/core/errorMemory.d.ts +14 -0
  18. package/dist/ai/core/errorMemory.js +36 -0
  19. package/dist/ai/dashboard/cli.d.ts +3 -0
  20. package/dist/ai/dashboard/cli.js +32 -0
  21. package/dist/ai/healer/applier.d.ts +9 -0
  22. package/dist/ai/healer/applier.js +74 -0
  23. package/dist/ai/healer/cli.d.ts +3 -0
  24. package/dist/ai/healer/cli.js +57 -0
  25. package/dist/ai/healer/collector.d.ts +16 -0
  26. package/dist/ai/healer/collector.js +41 -0
  27. package/dist/ai/healer/fixer.d.ts +12 -0
  28. package/dist/ai/healer/fixer.js +40 -0
  29. package/dist/ai/healer/llm.d.ts +9 -0
  30. package/dist/ai/healer/llm.js +20 -0
  31. package/dist/ai/healer/parser.d.ts +16 -0
  32. package/dist/ai/healer/parser.js +67 -0
  33. package/dist/ai/learning/evolver.d.ts +8 -0
  34. package/dist/ai/learning/evolver.js +24 -0
  35. package/dist/ai/llm/fixGenerator.d.ts +9 -0
  36. package/dist/ai/llm/fixGenerator.js +21 -0
  37. package/dist/ai/llm/ollama.d.ts +10 -0
  38. package/dist/ai/llm/ollama.js +56 -0
  39. package/dist/ai/local/fixStore.d.ts +19 -0
  40. package/dist/ai/local/fixStore.js +105 -0
  41. package/dist/ai/optimizer/analyzer.d.ts +9 -0
  42. package/dist/ai/optimizer/analyzer.js +65 -0
  43. package/dist/ai/optimizer/engine.d.ts +16 -0
  44. package/dist/ai/optimizer/engine.js +51 -0
  45. package/dist/ai/optimizer/llm.d.ts +8 -0
  46. package/dist/ai/optimizer/llm.js +14 -0
  47. package/dist/ai/optimizer/profiler.d.ts +11 -0
  48. package/dist/ai/optimizer/profiler.js +111 -0
  49. package/dist/ai/optimizer/rules.d.ts +12 -0
  50. package/dist/ai/optimizer/rules.js +37 -0
  51. package/dist/ai/patterns/common.d.ts +8 -0
  52. package/dist/ai/patterns/common.js +181 -0
  53. package/dist/ai/reporter/assembler.d.ts +11 -0
  54. package/dist/ai/reporter/assembler.js +10 -0
  55. package/dist/ai/reporter/generator.d.ts +4 -0
  56. package/dist/ai/reporter/generator.js +42 -0
  57. package/dist/ai/reporter/narrator.d.ts +8 -0
  58. package/dist/ai/reporter/narrator.js +29 -0
  59. package/dist/ai/schema.d.ts +104 -0
  60. package/dist/ai/schema.js +45 -0
  61. package/dist/ai/telemetry.d.ts +14 -0
  62. package/dist/ai/telemetry.js +96 -0
  63. package/dist/audit/a11y.d.ts +5 -0
  64. package/dist/audit/a11y.js +123 -0
  65. package/dist/audit/best-practices.d.ts +5 -0
  66. package/dist/audit/best-practices.js +68 -0
  67. package/dist/audit/build-integration.d.ts +59 -0
  68. package/dist/audit/build-integration.js +138 -0
  69. package/dist/audit/core.d.ts +62 -0
  70. package/dist/audit/core.js +327 -0
  71. package/dist/audit/index.d.ts +4 -0
  72. package/dist/audit/index.js +60 -0
  73. package/dist/audit/perf.d.ts +5 -0
  74. package/dist/audit/perf.js +69 -0
  75. package/dist/audit/seo.d.ts +5 -0
  76. package/dist/audit/seo.js +63 -0
  77. package/dist/audit/types.d.ts +35 -0
  78. package/dist/audit/types.js +1 -0
  79. package/dist/audit-stub/types.d.ts +25 -0
  80. package/dist/audit-stub/types.js +1 -0
  81. package/dist/build/bundle-stats.d.ts +2 -0
  82. package/dist/build/bundle-stats.js +42 -0
  83. package/dist/build/bundler.d.ts +46 -0
  84. package/dist/build/bundler.js +31 -0
  85. package/dist/build/index.d.ts +36 -0
  86. package/dist/build/index.js +69 -0
  87. package/dist/build/pipeline.d.ts +31 -0
  88. package/dist/build/pipeline.js +68 -0
  89. package/dist/builder/server.d.ts +11 -0
  90. package/dist/builder/server.js +253 -0
  91. package/dist/cache/incremental.d.ts +75 -0
  92. package/dist/cache/incremental.js +200 -0
  93. package/dist/cache/index.d.ts +17 -0
  94. package/dist/cache/index.js +186 -0
  95. package/dist/cache/rocksdb.d.ts +18 -0
  96. package/dist/cache/rocksdb.js +63 -0
  97. package/dist/cli/css-cli.d.ts +5 -0
  98. package/dist/cli/css-cli.js +112 -0
  99. package/dist/cli/inspect.d.ts +1 -0
  100. package/dist/cli/inspect.js +94 -0
  101. package/dist/cli.d.ts +2 -0
  102. package/dist/cli.js +586 -0
  103. package/dist/commands/analyze.d.ts +1 -0
  104. package/dist/commands/analyze.js +295 -0
  105. package/dist/commands/doctor.d.ts +21 -0
  106. package/dist/commands/doctor.js +364 -0
  107. package/dist/commands/ssr.d.ts +12 -0
  108. package/dist/commands/ssr.js +30 -0
  109. package/dist/commands/verify.d.ts +38 -0
  110. package/dist/commands/verify.js +459 -0
  111. package/dist/config/index.d.ts +145 -0
  112. package/dist/config/index.js +227 -0
  113. package/dist/config/live-config.d.ts +22 -0
  114. package/dist/config/live-config.js +88 -0
  115. package/dist/core/__tests__/permissions.test.d.ts +1 -0
  116. package/dist/core/__tests__/permissions.test.js +16 -0
  117. package/dist/core/__tests__/universal-transformer.test.d.ts +1 -0
  118. package/dist/core/__tests__/universal-transformer.test.js +27 -0
  119. package/dist/core/build/globalOptimizer.d.ts +8 -0
  120. package/dist/core/build/globalOptimizer.js +21 -0
  121. package/dist/core/build/incremental.d.ts +13 -0
  122. package/dist/core/build/incremental.js +29 -0
  123. package/dist/core/bundler-rolldown.d.ts +42 -0
  124. package/dist/core/bundler-rolldown.js +100 -0
  125. package/dist/core/cache/lazy-init.d.ts +50 -0
  126. package/dist/core/cache/lazy-init.js +153 -0
  127. package/dist/core/cache-manager.d.ts +51 -0
  128. package/dist/core/cache-manager.js +149 -0
  129. package/dist/core/css/engine.d.ts +37 -0
  130. package/dist/core/css/engine.js +113 -0
  131. package/dist/core/css-framework-detector.d.ts +10 -0
  132. package/dist/core/css-framework-detector.js +169 -0
  133. package/dist/core/detection/files.d.ts +2 -0
  134. package/dist/core/detection/files.js +77 -0
  135. package/dist/core/detection/index.d.ts +8 -0
  136. package/dist/core/detection/index.js +39 -0
  137. package/dist/core/detection/resolver.d.ts +2 -0
  138. package/dist/core/detection/resolver.js +116 -0
  139. package/dist/core/detection/scanner.d.ts +4 -0
  140. package/dist/core/detection/scanner.js +145 -0
  141. package/dist/core/detection/types.d.ts +33 -0
  142. package/dist/core/detection/types.js +12 -0
  143. package/dist/core/engine/cache.d.ts +18 -0
  144. package/dist/core/engine/cache.js +72 -0
  145. package/dist/core/engine/config.d.ts +11 -0
  146. package/dist/core/engine/config.js +158 -0
  147. package/dist/core/engine/emit.d.ts +8 -0
  148. package/dist/core/engine/emit.js +60 -0
  149. package/dist/core/engine/events.d.ts +13 -0
  150. package/dist/core/engine/events.js +35 -0
  151. package/dist/core/engine/execute.d.ts +5 -0
  152. package/dist/core/engine/execute.js +226 -0
  153. package/dist/core/engine/hash.d.ts +8 -0
  154. package/dist/core/engine/hash.js +39 -0
  155. package/dist/core/engine/index.d.ts +49 -0
  156. package/dist/core/engine/index.js +156 -0
  157. package/dist/core/engine/optimize.d.ts +2 -0
  158. package/dist/core/engine/optimize.js +99 -0
  159. package/dist/core/engine/plan.d.ts +9 -0
  160. package/dist/core/engine/plan.js +196 -0
  161. package/dist/core/engine/types.d.ts +120 -0
  162. package/dist/core/engine/types.js +1 -0
  163. package/dist/core/errors/hero-errors.d.ts +57 -0
  164. package/dist/core/errors/hero-errors.js +269 -0
  165. package/dist/core/framework-detector.d.ts +20 -0
  166. package/dist/core/framework-detector.js +148 -0
  167. package/dist/core/graph/js-graph-analyzer.d.ts +51 -0
  168. package/dist/core/graph/js-graph-analyzer.js +178 -0
  169. package/dist/core/graph/serializer.d.ts +7 -0
  170. package/dist/core/graph/serializer.js +24 -0
  171. package/dist/core/interop/analyze.d.ts +8 -0
  172. package/dist/core/interop/analyze.js +82 -0
  173. package/dist/core/interop/analyze_ast.d.ts +9 -0
  174. package/dist/core/interop/analyze_ast.js +174 -0
  175. package/dist/core/interop/index.d.ts +19 -0
  176. package/dist/core/interop/index.js +36 -0
  177. package/dist/core/interop/resolve.d.ts +9 -0
  178. package/dist/core/interop/resolve.js +55 -0
  179. package/dist/core/interop/types.d.ts +28 -0
  180. package/dist/core/interop/types.js +2 -0
  181. package/dist/core/interop/wrapper.d.ts +11 -0
  182. package/dist/core/interop/wrapper.js +50 -0
  183. package/dist/core/parser-bun.d.ts +54 -0
  184. package/dist/core/parser-bun.js +86 -0
  185. package/dist/core/permissions.d.ts +16 -0
  186. package/dist/core/permissions.js +47 -0
  187. package/dist/core/pipeline/framework-pipeline.d.ts +71 -0
  188. package/dist/core/pipeline/framework-pipeline.js +113 -0
  189. package/dist/core/plugins/index.d.ts +5 -0
  190. package/dist/core/plugins/index.js +5 -0
  191. package/dist/core/plugins/manager.d.ts +30 -0
  192. package/dist/core/plugins/manager.js +123 -0
  193. package/dist/core/plugins/sandbox_js.d.ts +9 -0
  194. package/dist/core/plugins/sandbox_js.js +37 -0
  195. package/dist/core/plugins/sandbox_wasm.d.ts +10 -0
  196. package/dist/core/plugins/sandbox_wasm.js +68 -0
  197. package/dist/core/plugins/types.d.ts +37 -0
  198. package/dist/core/plugins/types.js +2 -0
  199. package/dist/core/plugins/validation.d.ts +8 -0
  200. package/dist/core/plugins/validation.js +30 -0
  201. package/dist/core/sandbox.d.ts +9 -0
  202. package/dist/core/sandbox.js +79 -0
  203. package/dist/core/steps/css-optimization.d.ts +65 -0
  204. package/dist/core/steps/css-optimization.js +318 -0
  205. package/dist/core/steps.d.ts +7 -0
  206. package/dist/core/steps.js +17 -0
  207. package/dist/core/transform/batchTransformer.d.ts +12 -0
  208. package/dist/core/transform/batchTransformer.js +24 -0
  209. package/dist/core/transform/transformer.d.ts +9 -0
  210. package/dist/core/transform/transformer.js +189 -0
  211. package/dist/core/universal-transformer.d.ts +81 -0
  212. package/dist/core/universal-transformer.js +780 -0
  213. package/dist/create/index.d.ts +25 -0
  214. package/dist/create/index.js +584 -0
  215. package/dist/create/ui.d.ts +13 -0
  216. package/dist/create/ui.js +218 -0
  217. package/dist/create-nuclie/cli.d.ts +7 -0
  218. package/dist/create-nuclie/cli.js +73 -0
  219. package/dist/create-nuclie/templates.d.ts +18 -0
  220. package/dist/create-nuclie/templates.js +73 -0
  221. package/dist/create-nuclie.d.ts +2 -0
  222. package/dist/create-nuclie.js +7 -0
  223. package/dist/dashboard/metrics.d.ts +31 -0
  224. package/dist/dashboard/metrics.js +59 -0
  225. package/dist/dashboard/server/router.d.ts +52 -0
  226. package/dist/dashboard/server/router.js +36 -0
  227. package/dist/dev/__tests__/preBundler.test.d.ts +1 -0
  228. package/dist/dev/__tests__/preBundler.test.js +51 -0
  229. package/dist/dev/configWatcher.d.ts +10 -0
  230. package/dist/dev/configWatcher.js +42 -0
  231. package/dist/dev/devServer.d.ts +2 -0
  232. package/dist/dev/devServer.js +1398 -0
  233. package/dist/dev/devServer.minimal.d.ts +8 -0
  234. package/dist/dev/devServer.minimal.js +122 -0
  235. package/dist/dev/federation-dev.d.ts +14 -0
  236. package/dist/dev/federation-dev.js +69 -0
  237. package/dist/dev/hmr-engine.d.ts +12 -0
  238. package/dist/dev/hmr-engine.js +66 -0
  239. package/dist/dev/hmr-v2.d.ts +40 -0
  240. package/dist/dev/hmr-v2.js +87 -0
  241. package/dist/dev/hmrThrottle.d.ts +13 -0
  242. package/dist/dev/hmrThrottle.js +56 -0
  243. package/dist/dev/overlay/overlay-client.d.ts +7 -0
  244. package/dist/dev/overlay/overlay-client.js +53 -0
  245. package/dist/dev/overlay/overlay-ui.d.ts +17 -0
  246. package/dist/dev/overlay/overlay-ui.js +133 -0
  247. package/dist/dev/preBundler.d.ts +17 -0
  248. package/dist/dev/preBundler.js +343 -0
  249. package/dist/dev/statusHandler.d.ts +11 -0
  250. package/dist/dev/statusHandler.js +44 -0
  251. package/dist/dev/types.d.ts +30 -0
  252. package/dist/dev/types.js +1 -0
  253. package/dist/dev/watcher.d.ts +11 -0
  254. package/dist/dev/watcher.js +40 -0
  255. package/dist/dev-server-manual.d.ts +5 -0
  256. package/dist/dev-server-manual.js +24 -0
  257. package/dist/dev-server.d.ts +25 -0
  258. package/dist/dev-server.js +255 -0
  259. package/dist/env/api.d.ts +27 -0
  260. package/dist/env/api.js +36 -0
  261. package/dist/fix/ast-transforms.d.ts +81 -0
  262. package/dist/fix/ast-transforms.js +449 -0
  263. package/dist/hmr/classifier.d.ts +51 -0
  264. package/dist/hmr/classifier.js +232 -0
  265. package/dist/hmr/index.d.ts +5 -0
  266. package/dist/hmr/index.js +5 -0
  267. package/dist/hmr/overlay.d.ts +39 -0
  268. package/dist/hmr/overlay.js +285 -0
  269. package/dist/index.d.ts +46 -0
  270. package/dist/index.js +57 -0
  271. package/dist/init/bootstrap.d.ts +1 -0
  272. package/dist/init/bootstrap.js +106 -0
  273. package/dist/init/index.d.ts +1 -0
  274. package/dist/init/index.js +74 -0
  275. package/dist/init/templates.d.ts +2 -0
  276. package/dist/init/templates.js +227 -0
  277. package/dist/main.d.ts +1 -0
  278. package/dist/main.js +3 -0
  279. package/dist/marketplace/client.d.ts +25 -0
  280. package/dist/marketplace/client.js +73 -0
  281. package/dist/marketplace/db.d.ts +24 -0
  282. package/dist/marketplace/db.js +57 -0
  283. package/dist/marketplace/plugin-adapter.d.ts +14 -0
  284. package/dist/marketplace/plugin-adapter.js +85 -0
  285. package/dist/marketplace/server.d.ts +66 -0
  286. package/dist/marketplace/server.js +97 -0
  287. package/dist/meta-frameworks/base-router.d.ts +63 -0
  288. package/dist/meta-frameworks/base-router.js +259 -0
  289. package/dist/meta-frameworks/index.d.ts +8 -0
  290. package/dist/meta-frameworks/index.js +8 -0
  291. package/dist/meta-frameworks/nextjs/router.d.ts +35 -0
  292. package/dist/meta-frameworks/nextjs/router.js +176 -0
  293. package/dist/meta-frameworks/nuxt/router.d.ts +22 -0
  294. package/dist/meta-frameworks/nuxt/router.js +84 -0
  295. package/dist/meta-frameworks/remix/router.d.ts +28 -0
  296. package/dist/meta-frameworks/remix/router.js +136 -0
  297. package/dist/meta-frameworks/ssr/react-renderer.d.ts +24 -0
  298. package/dist/meta-frameworks/ssr/react-renderer.js +53 -0
  299. package/dist/meta-frameworks/ssr/server.d.ts +92 -0
  300. package/dist/meta-frameworks/ssr/server.js +312 -0
  301. package/dist/meta-frameworks/ssr/vue-renderer.d.ts +11 -0
  302. package/dist/meta-frameworks/ssr/vue-renderer.js +35 -0
  303. package/dist/meta-frameworks/types.d.ts +76 -0
  304. package/dist/meta-frameworks/types.js +5 -0
  305. package/dist/migrate/analyzer.d.ts +46 -0
  306. package/dist/migrate/analyzer.js +254 -0
  307. package/dist/migrate/cli.d.ts +10 -0
  308. package/dist/migrate/cli.js +63 -0
  309. package/dist/migrate/generator.d.ts +32 -0
  310. package/dist/migrate/generator.js +214 -0
  311. package/dist/native/cache.d.ts +86 -0
  312. package/dist/native/cache.js +154 -0
  313. package/dist/native/index.d.ts +4 -0
  314. package/dist/native/index.js +56 -0
  315. package/dist/native/orchestrator.d.ts +78 -0
  316. package/dist/native/orchestrator.js +107 -0
  317. package/dist/native/wasm.d.ts +22 -0
  318. package/dist/native/wasm.js +33 -0
  319. package/dist/nuclie_native.node +0 -0
  320. package/dist/plugins/assets.d.ts +2 -0
  321. package/dist/plugins/assets.js +50 -0
  322. package/dist/plugins/compat/adapter.d.ts +33 -0
  323. package/dist/plugins/compat/adapter.js +102 -0
  324. package/dist/plugins/compat/deferred.d.ts +17 -0
  325. package/dist/plugins/compat/deferred.js +28 -0
  326. package/dist/plugins/compat/index.d.ts +11 -0
  327. package/dist/plugins/compat/index.js +11 -0
  328. package/dist/plugins/compat/rollup.d.ts +19 -0
  329. package/dist/plugins/compat/rollup.js +76 -0
  330. package/dist/plugins/compat/tier-a.d.ts +60 -0
  331. package/dist/plugins/compat/tier-a.js +132 -0
  332. package/dist/plugins/compat/tier-b.d.ts +34 -0
  333. package/dist/plugins/compat/tier-b.js +90 -0
  334. package/dist/plugins/compat/tier-c.d.ts +48 -0
  335. package/dist/plugins/compat/tier-c.js +49 -0
  336. package/dist/plugins/compat/webpack.d.ts +26 -0
  337. package/dist/plugins/compat/webpack.js +77 -0
  338. package/dist/plugins/core/linker.d.ts +8 -0
  339. package/dist/plugins/core/linker.js +51 -0
  340. package/dist/plugins/css/bootstrap.d.ts +25 -0
  341. package/dist/plugins/css/bootstrap.js +110 -0
  342. package/dist/plugins/css/bulma.d.ts +23 -0
  343. package/dist/plugins/css/bulma.js +75 -0
  344. package/dist/plugins/css/css-modules.d.ts +19 -0
  345. package/dist/plugins/css/css-modules.js +96 -0
  346. package/dist/plugins/css/css-optimizer.d.ts +43 -0
  347. package/dist/plugins/css/css-optimizer.js +155 -0
  348. package/dist/plugins/css/emotion.d.ts +35 -0
  349. package/dist/plugins/css/emotion.js +109 -0
  350. package/dist/plugins/css/less.d.ts +6 -0
  351. package/dist/plugins/css/less.js +33 -0
  352. package/dist/plugins/css/material.d.ts +24 -0
  353. package/dist/plugins/css/material.js +97 -0
  354. package/dist/plugins/css/postcss.d.ts +2 -0
  355. package/dist/plugins/css/postcss.js +96 -0
  356. package/dist/plugins/css/sass.d.ts +6 -0
  357. package/dist/plugins/css/sass.js +36 -0
  358. package/dist/plugins/css/styled-components.d.ts +33 -0
  359. package/dist/plugins/css/styled-components.js +94 -0
  360. package/dist/plugins/css/stylus.d.ts +6 -0
  361. package/dist/plugins/css/stylus.js +41 -0
  362. package/dist/plugins/css/tailwind.d.ts +9 -0
  363. package/dist/plugins/css/tailwind.js +132 -0
  364. package/dist/plugins/css-in-js.d.ts +10 -0
  365. package/dist/plugins/css-in-js.js +24 -0
  366. package/dist/plugins/edge.d.ts +7 -0
  367. package/dist/plugins/edge.js +38 -0
  368. package/dist/plugins/esbuildAdapter.d.ts +3 -0
  369. package/dist/plugins/esbuildAdapter.js +77 -0
  370. package/dist/plugins/federation_next.d.ts +16 -0
  371. package/dist/plugins/federation_next.js +78 -0
  372. package/dist/plugins/framework-plugins.d.ts +3 -0
  373. package/dist/plugins/framework-plugins.js +40 -0
  374. package/dist/plugins/frameworks/index.d.ts +8 -0
  375. package/dist/plugins/frameworks/index.js +10 -0
  376. package/dist/plugins/frameworks/lit.d.ts +36 -0
  377. package/dist/plugins/frameworks/lit.js +114 -0
  378. package/dist/plugins/frameworks/react.d.ts +38 -0
  379. package/dist/plugins/frameworks/react.js +144 -0
  380. package/dist/plugins/frameworks/solid.d.ts +36 -0
  381. package/dist/plugins/frameworks/solid.js +108 -0
  382. package/dist/plugins/frameworks/svelte.d.ts +43 -0
  383. package/dist/plugins/frameworks/svelte.js +144 -0
  384. package/dist/plugins/frameworks/vue.d.ts +43 -0
  385. package/dist/plugins/frameworks/vue.js +240 -0
  386. package/dist/plugins/governance.d.ts +36 -0
  387. package/dist/plugins/governance.js +50 -0
  388. package/dist/plugins/html.d.ts +2 -0
  389. package/dist/plugins/html.js +49 -0
  390. package/dist/plugins/implementations/analytics.d.ts +7 -0
  391. package/dist/plugins/implementations/analytics.js +15 -0
  392. package/dist/plugins/implementations/apollo.d.ts +7 -0
  393. package/dist/plugins/implementations/apollo.js +15 -0
  394. package/dist/plugins/implementations/audit.d.ts +7 -0
  395. package/dist/plugins/implementations/audit.js +30 -0
  396. package/dist/plugins/implementations/auto-fix.d.ts +7 -0
  397. package/dist/plugins/implementations/auto-fix.js +15 -0
  398. package/dist/plugins/implementations/avif.d.ts +7 -0
  399. package/dist/plugins/implementations/avif.js +27 -0
  400. package/dist/plugins/implementations/babel.d.ts +7 -0
  401. package/dist/plugins/implementations/babel.js +15 -0
  402. package/dist/plugins/implementations/bundle-analyzer.d.ts +7 -0
  403. package/dist/plugins/implementations/bundle-analyzer.js +21 -0
  404. package/dist/plugins/implementations/bundle-size.d.ts +7 -0
  405. package/dist/plugins/implementations/bundle-size.js +21 -0
  406. package/dist/plugins/implementations/checker.d.ts +7 -0
  407. package/dist/plugins/implementations/checker.js +15 -0
  408. package/dist/plugins/implementations/chromatic.d.ts +7 -0
  409. package/dist/plugins/implementations/chromatic.js +15 -0
  410. package/dist/plugins/implementations/cloudflare.d.ts +7 -0
  411. package/dist/plugins/implementations/cloudflare.js +15 -0
  412. package/dist/plugins/implementations/code-split.d.ts +7 -0
  413. package/dist/plugins/implementations/code-split.js +21 -0
  414. package/dist/plugins/implementations/compression.d.ts +7 -0
  415. package/dist/plugins/implementations/compression.js +21 -0
  416. package/dist/plugins/implementations/copy.d.ts +7 -0
  417. package/dist/plugins/implementations/copy.js +15 -0
  418. package/dist/plugins/implementations/critical-css.d.ts +7 -0
  419. package/dist/plugins/implementations/critical-css.js +25 -0
  420. package/dist/plugins/implementations/crypto-sign.d.ts +7 -0
  421. package/dist/plugins/implementations/crypto-sign.js +30 -0
  422. package/dist/plugins/implementations/css-framework.d.ts +7 -0
  423. package/dist/plugins/implementations/css-framework.js +25 -0
  424. package/dist/plugins/implementations/css.d.ts +7 -0
  425. package/dist/plugins/implementations/css.js +25 -0
  426. package/dist/plugins/implementations/cypress.d.ts +7 -0
  427. package/dist/plugins/implementations/cypress.js +15 -0
  428. package/dist/plugins/implementations/determinism.d.ts +7 -0
  429. package/dist/plugins/implementations/determinism.js +21 -0
  430. package/dist/plugins/implementations/edge.d.ts +8 -0
  431. package/dist/plugins/implementations/edge.js +35 -0
  432. package/dist/plugins/implementations/env-validation.d.ts +7 -0
  433. package/dist/plugins/implementations/env-validation.js +30 -0
  434. package/dist/plugins/implementations/eslint.d.ts +7 -0
  435. package/dist/plugins/implementations/eslint.js +15 -0
  436. package/dist/plugins/implementations/federation.d.ts +7 -0
  437. package/dist/plugins/implementations/federation.js +15 -0
  438. package/dist/plugins/implementations/file.d.ts +7 -0
  439. package/dist/plugins/implementations/file.js +27 -0
  440. package/dist/plugins/implementations/font-subset.d.ts +7 -0
  441. package/dist/plugins/implementations/font-subset.js +27 -0
  442. package/dist/plugins/implementations/fonts.d.ts +7 -0
  443. package/dist/plugins/implementations/fonts.js +27 -0
  444. package/dist/plugins/implementations/formatjs.d.ts +7 -0
  445. package/dist/plugins/implementations/formatjs.js +18 -0
  446. package/dist/plugins/implementations/graphql.d.ts +7 -0
  447. package/dist/plugins/implementations/graphql.js +15 -0
  448. package/dist/plugins/implementations/hmr-classify.d.ts +7 -0
  449. package/dist/plugins/implementations/hmr-classify.js +21 -0
  450. package/dist/plugins/implementations/html.d.ts +7 -0
  451. package/dist/plugins/implementations/html.js +15 -0
  452. package/dist/plugins/implementations/i18n.d.ts +7 -0
  453. package/dist/plugins/implementations/i18n.js +15 -0
  454. package/dist/plugins/implementations/icon.d.ts +7 -0
  455. package/dist/plugins/implementations/icon.js +27 -0
  456. package/dist/plugins/implementations/imagemin.d.ts +7 -0
  457. package/dist/plugins/implementations/imagemin.js +27 -0
  458. package/dist/plugins/implementations/inspect.d.ts +7 -0
  459. package/dist/plugins/implementations/inspect.js +15 -0
  460. package/dist/plugins/implementations/jest.d.ts +7 -0
  461. package/dist/plugins/implementations/jest.js +19 -0
  462. package/dist/plugins/implementations/jotai.d.ts +8 -0
  463. package/dist/plugins/implementations/jotai.js +35 -0
  464. package/dist/plugins/implementations/lazy-load.d.ts +7 -0
  465. package/dist/plugins/implementations/lazy-load.js +21 -0
  466. package/dist/plugins/implementations/legacy.d.ts +7 -0
  467. package/dist/plugins/implementations/legacy.js +15 -0
  468. package/dist/plugins/implementations/lighthouse.d.ts +7 -0
  469. package/dist/plugins/implementations/lighthouse.js +21 -0
  470. package/dist/plugins/implementations/manifest.d.ts +7 -0
  471. package/dist/plugins/implementations/manifest.js +15 -0
  472. package/dist/plugins/implementations/markdown.d.ts +7 -0
  473. package/dist/plugins/implementations/markdown.js +15 -0
  474. package/dist/plugins/implementations/md.d.ts +7 -0
  475. package/dist/plugins/implementations/md.js +15 -0
  476. package/dist/plugins/implementations/mdx.d.ts +7 -0
  477. package/dist/plugins/implementations/mdx.js +15 -0
  478. package/dist/plugins/implementations/meta-tags.d.ts +7 -0
  479. package/dist/plugins/implementations/meta-tags.js +15 -0
  480. package/dist/plugins/implementations/mini-css-extract-plugin.d.ts +7 -0
  481. package/dist/plugins/implementations/mini-css-extract-plugin.js +25 -0
  482. package/dist/plugins/implementations/mobx.d.ts +8 -0
  483. package/dist/plugins/implementations/mobx.js +35 -0
  484. package/dist/plugins/implementations/mock.d.ts +7 -0
  485. package/dist/plugins/implementations/mock.js +15 -0
  486. package/dist/plugins/implementations/msw.d.ts +7 -0
  487. package/dist/plugins/implementations/msw.js +19 -0
  488. package/dist/plugins/implementations/nanostores.d.ts +7 -0
  489. package/dist/plugins/implementations/nanostores.js +18 -0
  490. package/dist/plugins/implementations/netlify.d.ts +7 -0
  491. package/dist/plugins/implementations/netlify.js +15 -0
  492. package/dist/plugins/implementations/observability.d.ts +7 -0
  493. package/dist/plugins/implementations/observability.js +15 -0
  494. package/dist/plugins/implementations/og-image.d.ts +7 -0
  495. package/dist/plugins/implementations/og-image.js +15 -0
  496. package/dist/plugins/implementations/pages.d.ts +7 -0
  497. package/dist/plugins/implementations/pages.js +15 -0
  498. package/dist/plugins/implementations/pinia.d.ts +8 -0
  499. package/dist/plugins/implementations/pinia.js +35 -0
  500. package/dist/plugins/implementations/plausible.d.ts +7 -0
  501. package/dist/plugins/implementations/plausible.js +18 -0
  502. package/dist/plugins/implementations/playwright.d.ts +7 -0
  503. package/dist/plugins/implementations/playwright.js +15 -0
  504. package/dist/plugins/implementations/postcss.d.ts +7 -0
  505. package/dist/plugins/implementations/postcss.js +25 -0
  506. package/dist/plugins/implementations/posthog.d.ts +7 -0
  507. package/dist/plugins/implementations/posthog.js +18 -0
  508. package/dist/plugins/implementations/prebundle.d.ts +7 -0
  509. package/dist/plugins/implementations/prebundle.js +21 -0
  510. package/dist/plugins/implementations/prefetch.d.ts +7 -0
  511. package/dist/plugins/implementations/prefetch.js +21 -0
  512. package/dist/plugins/implementations/preload.d.ts +7 -0
  513. package/dist/plugins/implementations/preload.js +21 -0
  514. package/dist/plugins/implementations/prisma.d.ts +7 -0
  515. package/dist/plugins/implementations/prisma.js +15 -0
  516. package/dist/plugins/implementations/pwa.d.ts +7 -0
  517. package/dist/plugins/implementations/pwa.js +15 -0
  518. package/dist/plugins/implementations/qr-code.d.ts +7 -0
  519. package/dist/plugins/implementations/qr-code.js +19 -0
  520. package/dist/plugins/implementations/razorpay.d.ts +7 -0
  521. package/dist/plugins/implementations/razorpay.js +19 -0
  522. package/dist/plugins/implementations/react-i18next.d.ts +7 -0
  523. package/dist/plugins/implementations/react-i18next.js +18 -0
  524. package/dist/plugins/implementations/react-query.d.ts +8 -0
  525. package/dist/plugins/implementations/react-query.js +35 -0
  526. package/dist/plugins/implementations/react.d.ts +8 -0
  527. package/dist/plugins/implementations/react.js +35 -0
  528. package/dist/plugins/implementations/recoil.d.ts +8 -0
  529. package/dist/plugins/implementations/recoil.js +35 -0
  530. package/dist/plugins/implementations/redux.d.ts +8 -0
  531. package/dist/plugins/implementations/redux.js +35 -0
  532. package/dist/plugins/implementations/relay.d.ts +7 -0
  533. package/dist/plugins/implementations/relay.js +15 -0
  534. package/dist/plugins/implementations/repro.d.ts +7 -0
  535. package/dist/plugins/implementations/repro.js +15 -0
  536. package/dist/plugins/implementations/robots.d.ts +7 -0
  537. package/dist/plugins/implementations/robots.js +15 -0
  538. package/dist/plugins/implementations/root-cause.d.ts +7 -0
  539. package/dist/plugins/implementations/root-cause.js +15 -0
  540. package/dist/plugins/implementations/rss.d.ts +7 -0
  541. package/dist/plugins/implementations/rss.js +15 -0
  542. package/dist/plugins/implementations/sass.d.ts +7 -0
  543. package/dist/plugins/implementations/sass.js +25 -0
  544. package/dist/plugins/implementations/sentry.d.ts +7 -0
  545. package/dist/plugins/implementations/sentry.js +15 -0
  546. package/dist/plugins/implementations/sitemap.d.ts +7 -0
  547. package/dist/plugins/implementations/sitemap.js +15 -0
  548. package/dist/plugins/implementations/solid.d.ts +8 -0
  549. package/dist/plugins/implementations/solid.js +35 -0
  550. package/dist/plugins/implementations/sprite.d.ts +7 -0
  551. package/dist/plugins/implementations/sprite.js +27 -0
  552. package/dist/plugins/implementations/ssr.d.ts +8 -0
  553. package/dist/plugins/implementations/ssr.js +35 -0
  554. package/dist/plugins/implementations/storybook.d.ts +7 -0
  555. package/dist/plugins/implementations/storybook.js +15 -0
  556. package/dist/plugins/implementations/stripe.d.ts +7 -0
  557. package/dist/plugins/implementations/stripe.js +19 -0
  558. package/dist/plugins/implementations/style.d.ts +7 -0
  559. package/dist/plugins/implementations/style.js +25 -0
  560. package/dist/plugins/implementations/svelte.d.ts +8 -0
  561. package/dist/plugins/implementations/svelte.js +35 -0
  562. package/dist/plugins/implementations/tailwind.d.ts +7 -0
  563. package/dist/plugins/implementations/tailwind.js +25 -0
  564. package/dist/plugins/implementations/tanstack-query.d.ts +7 -0
  565. package/dist/plugins/implementations/tanstack-query.js +18 -0
  566. package/dist/plugins/implementations/terser.d.ts +7 -0
  567. package/dist/plugins/implementations/terser.js +21 -0
  568. package/dist/plugins/implementations/testing-library-react.d.ts +7 -0
  569. package/dist/plugins/implementations/testing-library-react.js +19 -0
  570. package/dist/plugins/implementations/testing-library.d.ts +7 -0
  571. package/dist/plugins/implementations/testing-library.js +15 -0
  572. package/dist/plugins/implementations/tree-shake.d.ts +7 -0
  573. package/dist/plugins/implementations/tree-shake.js +21 -0
  574. package/dist/plugins/implementations/trpc.d.ts +7 -0
  575. package/dist/plugins/implementations/trpc.js +15 -0
  576. package/dist/plugins/implementations/ts.d.ts +7 -0
  577. package/dist/plugins/implementations/ts.js +15 -0
  578. package/dist/plugins/implementations/typescript.d.ts +7 -0
  579. package/dist/plugins/implementations/typescript.js +15 -0
  580. package/dist/plugins/implementations/unocss.d.ts +7 -0
  581. package/dist/plugins/implementations/unocss.js +25 -0
  582. package/dist/plugins/implementations/upi-payment.d.ts +7 -0
  583. package/dist/plugins/implementations/upi-payment.js +19 -0
  584. package/dist/plugins/implementations/url.d.ts +7 -0
  585. package/dist/plugins/implementations/url.js +27 -0
  586. package/dist/plugins/implementations/vercel.d.ts +7 -0
  587. package/dist/plugins/implementations/vercel.js +15 -0
  588. package/dist/plugins/implementations/visualizer.d.ts +7 -0
  589. package/dist/plugins/implementations/visualizer.js +15 -0
  590. package/dist/plugins/implementations/vite-svg-loader.d.ts +7 -0
  591. package/dist/plugins/implementations/vite-svg-loader.js +27 -0
  592. package/dist/plugins/implementations/vitest.d.ts +7 -0
  593. package/dist/plugins/implementations/vitest.js +15 -0
  594. package/dist/plugins/implementations/vue-i18n-next.d.ts +7 -0
  595. package/dist/plugins/implementations/vue-i18n-next.js +18 -0
  596. package/dist/plugins/implementations/vue-i18n.d.ts +7 -0
  597. package/dist/plugins/implementations/vue-i18n.js +15 -0
  598. package/dist/plugins/implementations/vue-layouts.d.ts +8 -0
  599. package/dist/plugins/implementations/vue-layouts.js +35 -0
  600. package/dist/plugins/implementations/vue.d.ts +8 -0
  601. package/dist/plugins/implementations/vue.js +35 -0
  602. package/dist/plugins/implementations/vuex.d.ts +8 -0
  603. package/dist/plugins/implementations/vuex.js +35 -0
  604. package/dist/plugins/implementations/wasm-sandbox.d.ts +7 -0
  605. package/dist/plugins/implementations/wasm-sandbox.js +30 -0
  606. package/dist/plugins/implementations/webp.d.ts +7 -0
  607. package/dist/plugins/implementations/webp.js +27 -0
  608. package/dist/plugins/implementations/windicss.d.ts +7 -0
  609. package/dist/plugins/implementations/windicss.js +25 -0
  610. package/dist/plugins/implementations/workbox.d.ts +7 -0
  611. package/dist/plugins/implementations/workbox.js +15 -0
  612. package/dist/plugins/implementations/xstate.d.ts +7 -0
  613. package/dist/plugins/implementations/xstate.js +18 -0
  614. package/dist/plugins/implementations/zod.d.ts +7 -0
  615. package/dist/plugins/implementations/zod.js +15 -0
  616. package/dist/plugins/implementations/zustand-devtools.d.ts +7 -0
  617. package/dist/plugins/implementations/zustand-devtools.js +18 -0
  618. package/dist/plugins/implementations/zustand.d.ts +8 -0
  619. package/dist/plugins/implementations/zustand.js +35 -0
  620. package/dist/plugins/index.d.ts +49 -0
  621. package/dist/plugins/index.js +117 -0
  622. package/dist/plugins/js-transform.d.ts +2 -0
  623. package/dist/plugins/js-transform.js +49 -0
  624. package/dist/plugins/json.d.ts +2 -0
  625. package/dist/plugins/json.js +34 -0
  626. package/dist/plugins/pluginWorker.mjs +95 -0
  627. package/dist/plugins/ported/adapter.d.ts +92 -0
  628. package/dist/plugins/ported/adapter.js +226 -0
  629. package/dist/plugins/registry.d.ts +51 -0
  630. package/dist/plugins/registry.js +151 -0
  631. package/dist/plugins/reporter.d.ts +5 -0
  632. package/dist/plugins/reporter.js +47 -0
  633. package/dist/plugins/samplePlugin.mjs +4 -0
  634. package/dist/plugins/sandbox.d.ts +12 -0
  635. package/dist/plugins/sandbox.js +126 -0
  636. package/dist/plugins/signer.d.ts +53 -0
  637. package/dist/plugins/signer.js +109 -0
  638. package/dist/plugins/static.d.ts +2 -0
  639. package/dist/plugins/static.js +47 -0
  640. package/dist/plugins/svelte.d.ts +7 -0
  641. package/dist/plugins/svelte.js +27 -0
  642. package/dist/plugins/testSandbox.d.ts +1 -0
  643. package/dist/plugins/testSandbox.js +14 -0
  644. package/dist/plugins/verify.d.ts +3 -0
  645. package/dist/plugins/verify.js +113 -0
  646. package/dist/plugins/vue.d.ts +7 -0
  647. package/dist/plugins/vue.js +86 -0
  648. package/dist/plugins/wasm-runtime.d.ts +15 -0
  649. package/dist/plugins/wasm-runtime.js +33 -0
  650. package/dist/plugins/wasm.d.ts +5 -0
  651. package/dist/plugins/wasm.js +44 -0
  652. package/dist/polyfills/corejs.d.ts +9 -0
  653. package/dist/polyfills/corejs.js +18 -0
  654. package/dist/presets/core.d.ts +111 -0
  655. package/dist/presets/core.js +239 -0
  656. package/dist/presets/frameworks.d.ts +34 -0
  657. package/dist/presets/frameworks.js +270 -0
  658. package/dist/presets/index.d.ts +8 -0
  659. package/dist/presets/index.js +3 -0
  660. package/dist/presets/infrastructure.d.ts +2 -0
  661. package/dist/presets/infrastructure.js +33 -0
  662. package/dist/presets/spa.d.ts +2 -0
  663. package/dist/presets/spa.js +15 -0
  664. package/dist/presets/ssg.d.ts +2 -0
  665. package/dist/presets/ssg.js +9 -0
  666. package/dist/presets/ssr.d.ts +2 -0
  667. package/dist/presets/ssr.js +13 -0
  668. package/dist/repro/dashboard.d.ts +83 -0
  669. package/dist/repro/dashboard.js +251 -0
  670. package/dist/repro/github.d.ts +26 -0
  671. package/dist/repro/github.js +73 -0
  672. package/dist/resolve/css-precedence.d.ts +16 -0
  673. package/dist/resolve/css-precedence.js +56 -0
  674. package/dist/resolve/graph.d.ts +48 -0
  675. package/dist/resolve/graph.js +232 -0
  676. package/dist/resolve/utils.d.ts +13 -0
  677. package/dist/resolve/utils.js +53 -0
  678. package/dist/runtime/client.d.ts +9 -0
  679. package/dist/runtime/client.js +218 -0
  680. package/dist/runtime/error-overlay.d.ts +15 -0
  681. package/dist/runtime/error-overlay.js +327 -0
  682. package/dist/runtime/federation-fallback.d.ts +67 -0
  683. package/dist/runtime/federation-fallback.js +225 -0
  684. package/dist/runtime/federation.d.ts +27 -0
  685. package/dist/runtime/federation.js +210 -0
  686. package/dist/runtime/federation_runtime.js +90 -0
  687. package/dist/runtime/hmr-client.d.ts +5 -0
  688. package/dist/runtime/hmr-client.js +70 -0
  689. package/dist/security/anomaly.d.ts +41 -0
  690. package/dist/security/anomaly.js +77 -0
  691. package/dist/server/security-headers.d.ts +37 -0
  692. package/dist/server/security-headers.js +110 -0
  693. package/dist/ssr/adapters/edge.d.ts +12 -0
  694. package/dist/ssr/adapters/edge.js +26 -0
  695. package/dist/ssr/adapters/index.d.ts +23 -0
  696. package/dist/ssr/adapters/index.js +58 -0
  697. package/dist/ssr/app-router.d.ts +24 -0
  698. package/dist/ssr/app-router.js +70 -0
  699. package/dist/ssr/edge/handlers.d.ts +24 -0
  700. package/dist/ssr/edge/handlers.js +48 -0
  701. package/dist/ssr/image.d.ts +24 -0
  702. package/dist/ssr/image.js +38 -0
  703. package/dist/ssr/isr.d.ts +14 -0
  704. package/dist/ssr/isr.js +29 -0
  705. package/dist/ssr/rsc.d.ts +19 -0
  706. package/dist/ssr/rsc.js +33 -0
  707. package/dist/ssr/streaming.d.ts +31 -0
  708. package/dist/ssr/streaming.js +78 -0
  709. package/dist/ssr/universal-engine.d.ts +36 -0
  710. package/dist/ssr/universal-engine.js +139 -0
  711. package/dist/templates/manager.d.ts +28 -0
  712. package/dist/templates/manager.js +162 -0
  713. package/dist/templates/starters/angular-spa.d.ts +6 -0
  714. package/dist/templates/starters/angular-spa.js +149 -0
  715. package/dist/templates/starters/edge.d.ts +6 -0
  716. package/dist/templates/starters/edge.js +93 -0
  717. package/dist/templates/starters/fintech.d.ts +6 -0
  718. package/dist/templates/starters/fintech.js +211 -0
  719. package/dist/templates/starters/monorepo.d.ts +6 -0
  720. package/dist/templates/starters/monorepo.js +133 -0
  721. package/dist/templates/starters/nextjs-app.d.ts +13 -0
  722. package/dist/templates/starters/nextjs-app.js +116 -0
  723. package/dist/templates/starters/preact-spa.d.ts +6 -0
  724. package/dist/templates/starters/preact-spa.js +97 -0
  725. package/dist/templates/starters/premium-dashboard.d.ts +6 -0
  726. package/dist/templates/starters/premium-dashboard.js +762 -0
  727. package/dist/templates/starters/react-spa.d.ts +6 -0
  728. package/dist/templates/starters/react-spa.js +152 -0
  729. package/dist/templates/starters/react-ssr.d.ts +6 -0
  730. package/dist/templates/starters/react-ssr.js +190 -0
  731. package/dist/templates/starters/remix-app.d.ts +12 -0
  732. package/dist/templates/starters/remix-app.js +108 -0
  733. package/dist/templates/starters/solid-spa.d.ts +6 -0
  734. package/dist/templates/starters/solid-spa.js +158 -0
  735. package/dist/templates/starters/svelte-spa.d.ts +6 -0
  736. package/dist/templates/starters/svelte-spa.js +147 -0
  737. package/dist/templates/starters/vue-spa.d.ts +6 -0
  738. package/dist/templates/starters/vue-spa.js +136 -0
  739. package/dist/test/api.d.ts +58 -0
  740. package/dist/test/api.js +154 -0
  741. package/dist/test/coverage.d.ts +1 -0
  742. package/dist/test/coverage.js +134 -0
  743. package/dist/test/determinism.d.ts +1 -0
  744. package/dist/test/determinism.js +122 -0
  745. package/dist/test/regression.d.ts +1 -0
  746. package/dist/test/regression.js +30 -0
  747. package/dist/test/runner.d.ts +1 -0
  748. package/dist/test/runner.js +159 -0
  749. package/dist/test-server.d.ts +1 -0
  750. package/dist/test-server.js +22 -0
  751. package/dist/ui/terminal-warnings.d.ts +10 -0
  752. package/dist/ui/terminal-warnings.js +26 -0
  753. package/dist/ui/types.d.ts +13 -0
  754. package/dist/ui/types.js +5 -0
  755. package/dist/ui/warning-detector.d.ts +46 -0
  756. package/dist/ui/warning-detector.js +178 -0
  757. package/dist/ui/warning-library.d.ts +51 -0
  758. package/dist/ui/warning-library.js +283 -0
  759. package/dist/utils/interactive.d.ts +2 -0
  760. package/dist/utils/interactive.js +37 -0
  761. package/dist/utils/logger.d.ts +26 -0
  762. package/dist/utils/logger.js +130 -0
  763. package/dist/utils/path-normalize.d.ts +24 -0
  764. package/dist/utils/path-normalize.js +37 -0
  765. package/dist/visual/chart-generator.d.ts +11 -0
  766. package/dist/visual/chart-generator.js +30 -0
  767. package/dist/visual/client/renderer.d.ts +31 -0
  768. package/dist/visual/client/renderer.js +98 -0
  769. package/dist/visual/federation-editor.d.ts +1 -0
  770. package/dist/visual/federation-editor.js +231 -0
  771. package/dist/visual/graph-engine.d.ts +38 -0
  772. package/dist/visual/graph-engine.js +64 -0
  773. package/dist/visual/graph-ui.d.ts +2 -0
  774. package/dist/visual/graph-ui.js +119 -0
  775. package/dist/visual/graph-visualizer.d.ts +69 -0
  776. package/dist/visual/graph-visualizer.js +282 -0
  777. package/dist/visual/root-cause.d.ts +83 -0
  778. package/dist/visual/root-cause.js +265 -0
  779. package/package.json +169 -0
@@ -0,0 +1,42 @@
1
+ export class ReportGenerator {
2
+ static generate(session) {
3
+ const status = session.success ? '✅ SUCCESS' : '❌ FAILED';
4
+ const duration = (session.duration / 1000).toFixed(2);
5
+ const date = new Date(session.timestamp).toLocaleString();
6
+ let report = `# Build Report\n\n`;
7
+ report += `**Status**: ${status}\n`;
8
+ report += `**Date**: ${date}\n`;
9
+ report += `**Duration**: ${duration}s\n\n`;
10
+ // Metrics
11
+ if (session.metrics) {
12
+ report += `## Metrics\n`;
13
+ if (session.metrics.modules)
14
+ report += `- **Modules**: ${session.metrics.modules}\n`;
15
+ if (session.metrics.bundleSize)
16
+ report += `- **Bundle Size**: ${(session.metrics.bundleSize / 1024).toFixed(2)} KB\n`;
17
+ if (session.metrics.cacheHits)
18
+ report += `- **Cache Hits**: ${session.metrics.cacheHits}\n`;
19
+ report += `\n`;
20
+ }
21
+ // Errors
22
+ if (session.errors && session.errors.length > 0) {
23
+ report += `## Errors\n`;
24
+ session.errors.forEach(err => {
25
+ report += `> 🔴 ${err}\n`;
26
+ });
27
+ report += `\n`;
28
+ }
29
+ // Insights (Simple heuristics for now, LLM later)
30
+ report += `## Insights\n`;
31
+ if (session.duration > 5000) {
32
+ report += `- 🐢 Build took longer than 5s. Consider enabling code splitting or caching.\n`;
33
+ }
34
+ else {
35
+ report += `- ⚡ Fast build! Keep it up.\n`;
36
+ }
37
+ if (session.metrics?.bundleSize && session.metrics.bundleSize > 1024 * 1024) {
38
+ report += `- 📦 Bundle is large (>1MB). Run \`nuclie optimize\` to analyze.\n`;
39
+ }
40
+ return report;
41
+ }
42
+ }
@@ -0,0 +1,8 @@
1
+ import { FullBuildReport } from './assembler.js';
2
+ import { AIConfig } from '../config.js';
3
+ export declare class LLMNarrator {
4
+ private config;
5
+ constructor(config: AIConfig);
6
+ narrate(report: FullBuildReport): Promise<string>;
7
+ private generateLocalSummary;
8
+ }
@@ -0,0 +1,29 @@
1
+ export class LLMNarrator {
2
+ constructor(config) {
3
+ this.config = config;
4
+ }
5
+ async narrate(report) {
6
+ if (!this.config.enabled || this.config.provider === 'local') {
7
+ return this.generateLocalSummary(report);
8
+ }
9
+ // TODO: Call Cloud LLM
10
+ return this.generateLocalSummary(report);
11
+ }
12
+ generateLocalSummary(report) {
13
+ const { session, trends, audits } = report;
14
+ let summary = `Build ${session.success ? 'Succeeded' : 'Failed'} in ${(session.duration / 1000).toFixed(2)}s.`;
15
+ if (trends) {
16
+ if (trends.durationDelta < 0)
17
+ summary += ` 🚀 Faster by ${Math.abs(trends.durationDelta / 1000).toFixed(2)}s.`;
18
+ if (trends.sizeDelta < 0)
19
+ summary += ` 📉 Bundle size decreased by ${(Math.abs(trends.sizeDelta) / 1024).toFixed(2)}KB.`;
20
+ }
21
+ if (audits) {
22
+ const score = ((audits.groups.a11y?.score || 0) +
23
+ (audits.groups.perf?.score || 0) +
24
+ (audits.groups.seo?.score || 0)) / 3;
25
+ summary += `\nAudit Score: ${score.toFixed(0)}/100.`;
26
+ }
27
+ return summary;
28
+ }
29
+ }
@@ -0,0 +1,104 @@
1
+ import { z } from 'zod';
2
+ export declare const ProjectProfileSchema: z.ZodObject<{
3
+ framework: z.ZodOptional<z.ZodString>;
4
+ cssFramework: z.ZodOptional<z.ZodString>;
5
+ language: z.ZodOptional<z.ZodEnum<{
6
+ typescript: "typescript";
7
+ javascript: "javascript";
8
+ }>>;
9
+ packageManager: z.ZodOptional<z.ZodEnum<{
10
+ bun: "bun";
11
+ npm: "npm";
12
+ yarn: "yarn";
13
+ pnpm: "pnpm";
14
+ }>>;
15
+ dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
16
+ devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
17
+ configSummary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
18
+ size: z.ZodOptional<z.ZodObject<{
19
+ totalJs: z.ZodOptional<z.ZodNumber>;
20
+ vendorChunk: z.ZodOptional<z.ZodNumber>;
21
+ }, z.core.$strip>>;
22
+ entries: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ cache: z.ZodOptional<z.ZodObject<{
24
+ hitRate: z.ZodOptional<z.ZodNumber>;
25
+ }, z.core.$strip>>;
26
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
27
+ }, z.core.$strip>;
28
+ export type ProjectProfile = z.infer<typeof ProjectProfileSchema>;
29
+ export declare const BuildSessionSchema: z.ZodObject<{
30
+ id: z.ZodString;
31
+ timestamp: z.ZodNumber;
32
+ duration: z.ZodNumber;
33
+ success: z.ZodBoolean;
34
+ errors: z.ZodOptional<z.ZodArray<z.ZodString>>;
35
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
36
+ metrics: z.ZodOptional<z.ZodObject<{
37
+ modules: z.ZodOptional<z.ZodNumber>;
38
+ bundleSize: z.ZodOptional<z.ZodNumber>;
39
+ cacheHits: z.ZodOptional<z.ZodNumber>;
40
+ }, z.core.$strip>>;
41
+ }, z.core.$strip>;
42
+ export type BuildSession = z.infer<typeof BuildSessionSchema>;
43
+ export declare const AIRequestSchema: z.ZodObject<{
44
+ type: z.ZodEnum<{
45
+ optimize: "optimize";
46
+ fix: "fix";
47
+ report: "report";
48
+ chat: "chat";
49
+ }>;
50
+ context: z.ZodObject<{
51
+ project: z.ZodOptional<z.ZodObject<{
52
+ framework: z.ZodOptional<z.ZodString>;
53
+ cssFramework: z.ZodOptional<z.ZodString>;
54
+ language: z.ZodOptional<z.ZodEnum<{
55
+ typescript: "typescript";
56
+ javascript: "javascript";
57
+ }>>;
58
+ packageManager: z.ZodOptional<z.ZodEnum<{
59
+ bun: "bun";
60
+ npm: "npm";
61
+ yarn: "yarn";
62
+ pnpm: "pnpm";
63
+ }>>;
64
+ dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
65
+ devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
66
+ configSummary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
67
+ size: z.ZodOptional<z.ZodObject<{
68
+ totalJs: z.ZodOptional<z.ZodNumber>;
69
+ vendorChunk: z.ZodOptional<z.ZodNumber>;
70
+ }, z.core.$strip>>;
71
+ entries: z.ZodOptional<z.ZodArray<z.ZodString>>;
72
+ cache: z.ZodOptional<z.ZodObject<{
73
+ hitRate: z.ZodOptional<z.ZodNumber>;
74
+ }, z.core.$strip>>;
75
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
76
+ }, z.core.$strip>>;
77
+ session: z.ZodOptional<z.ZodObject<{
78
+ id: z.ZodString;
79
+ timestamp: z.ZodNumber;
80
+ duration: z.ZodNumber;
81
+ success: z.ZodBoolean;
82
+ errors: z.ZodOptional<z.ZodArray<z.ZodString>>;
83
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
84
+ metrics: z.ZodOptional<z.ZodObject<{
85
+ modules: z.ZodOptional<z.ZodNumber>;
86
+ bundleSize: z.ZodOptional<z.ZodNumber>;
87
+ cacheHits: z.ZodOptional<z.ZodNumber>;
88
+ }, z.core.$strip>>;
89
+ }, z.core.$strip>>;
90
+ files: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
91
+ query: z.ZodOptional<z.ZodString>;
92
+ }, z.core.$strip>;
93
+ preferences: z.ZodOptional<z.ZodObject<{
94
+ model: z.ZodDefault<z.ZodEnum<{
95
+ cloud: "cloud";
96
+ local: "local";
97
+ }>>;
98
+ privacy: z.ZodDefault<z.ZodEnum<{
99
+ low: "low";
100
+ high: "high";
101
+ }>>;
102
+ }, z.core.$strip>>;
103
+ }, z.core.$strip>;
104
+ export type AIRequest = z.infer<typeof AIRequestSchema>;
@@ -0,0 +1,45 @@
1
+ import { z } from 'zod';
2
+ export const ProjectProfileSchema = z.object({
3
+ framework: z.string().optional(),
4
+ cssFramework: z.string().optional(),
5
+ language: z.enum(['typescript', 'javascript']).optional(),
6
+ packageManager: z.enum(['npm', 'yarn', 'pnpm', 'bun']).optional(),
7
+ dependencies: z.record(z.string(), z.string()).optional(),
8
+ devDependencies: z.record(z.string(), z.string()).optional(),
9
+ configSummary: z.record(z.string(), z.any()).optional(),
10
+ size: z.object({
11
+ totalJs: z.number().optional(),
12
+ vendorChunk: z.number().optional(),
13
+ }).optional(),
14
+ entries: z.array(z.string()).optional(),
15
+ cache: z.object({
16
+ hitRate: z.number().optional(),
17
+ }).optional(),
18
+ warnings: z.array(z.string()).optional(),
19
+ });
20
+ export const BuildSessionSchema = z.object({
21
+ id: z.string(),
22
+ timestamp: z.number(),
23
+ duration: z.number(),
24
+ success: z.boolean(),
25
+ errors: z.array(z.string()).optional(),
26
+ warnings: z.array(z.string()).optional(),
27
+ metrics: z.object({
28
+ modules: z.number().optional(),
29
+ bundleSize: z.number().optional(),
30
+ cacheHits: z.number().optional(),
31
+ }).optional(),
32
+ });
33
+ export const AIRequestSchema = z.object({
34
+ type: z.enum(['fix', 'optimize', 'report', 'chat']),
35
+ context: z.object({
36
+ project: ProjectProfileSchema.optional(),
37
+ session: BuildSessionSchema.optional(),
38
+ files: z.record(z.string(), z.string()).optional(), // filename -> content snippet
39
+ query: z.string().optional(),
40
+ }),
41
+ preferences: z.object({
42
+ model: z.enum(['cloud', 'local']).default('cloud'),
43
+ privacy: z.enum(['high', 'low']).default('high'),
44
+ }).optional(),
45
+ });
@@ -0,0 +1,14 @@
1
+ import { BuildSession } from './schema.js';
2
+ export declare class Telemetry {
3
+ private session;
4
+ private telemetryDir;
5
+ constructor(rootDir: string);
6
+ init(): Promise<void>;
7
+ start(): void;
8
+ stop(success: boolean, metrics?: BuildSession['metrics'], errors?: string[]): Promise<void>;
9
+ private save;
10
+ static anonymize(text: string, root: string): string;
11
+ static getLatestSession(rootDir: string): Promise<BuildSession | null>;
12
+ static getSessions(rootDir: string, limit?: number): Promise<BuildSession[]>;
13
+ static getTrends(rootDir: string, currentSession: BuildSession): Promise<any>;
14
+ }
@@ -0,0 +1,96 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import crypto from 'crypto';
4
+ import { log } from '../utils/logger.js';
5
+ export class Telemetry {
6
+ constructor(rootDir) {
7
+ this.telemetryDir = path.join(rootDir, '.nuclie', 'telemetry');
8
+ this.session = {
9
+ id: crypto.randomUUID(),
10
+ timestamp: Date.now(),
11
+ duration: 0,
12
+ success: false,
13
+ metrics: {}
14
+ };
15
+ }
16
+ async init() {
17
+ await fs.mkdir(this.telemetryDir, { recursive: true });
18
+ }
19
+ start() {
20
+ this.session.timestamp = Date.now();
21
+ }
22
+ async stop(success, metrics = {}, errors = []) {
23
+ this.session.duration = Date.now() - this.session.timestamp;
24
+ this.session.success = success;
25
+ this.session.metrics = metrics;
26
+ this.session.errors = errors;
27
+ await this.save();
28
+ }
29
+ async save() {
30
+ try {
31
+ const filename = `session-${this.session.timestamp}.json`;
32
+ const filePath = path.join(this.telemetryDir, filename);
33
+ await fs.writeFile(filePath, JSON.stringify(this.session, null, 2));
34
+ log.debug(`Telemetry saved to ${filename}`, { category: 'ai' });
35
+ }
36
+ catch (e) {
37
+ log.warn('Failed to save telemetry', { error: e });
38
+ }
39
+ }
40
+ // Helper to anonymize paths
41
+ static anonymize(text, root) {
42
+ return text.replace(new RegExp(root, 'g'), '<PROJECT_ROOT>');
43
+ }
44
+ static async getLatestSession(rootDir) {
45
+ const telemetryDir = path.join(rootDir, '.nuclie', 'telemetry');
46
+ try {
47
+ const files = await fs.readdir(telemetryDir);
48
+ if (files.length === 0)
49
+ return null;
50
+ // Sort by timestamp (filename has timestamp)
51
+ files.sort().reverse();
52
+ const latest = files[0];
53
+ const content = await fs.readFile(path.join(telemetryDir, latest), 'utf-8');
54
+ return JSON.parse(content);
55
+ }
56
+ catch (e) {
57
+ return null;
58
+ }
59
+ }
60
+ static async getSessions(rootDir, limit = 10) {
61
+ const telemetryDir = path.join(rootDir, '.nuclie', 'telemetry');
62
+ try {
63
+ const files = await fs.readdir(telemetryDir);
64
+ if (files.length === 0)
65
+ return [];
66
+ // Sort by timestamp (filename has timestamp)
67
+ files.sort().reverse();
68
+ const recent = files.slice(0, limit);
69
+ const sessions = [];
70
+ for (const file of recent) {
71
+ const content = await fs.readFile(path.join(telemetryDir, file), 'utf-8');
72
+ sessions.push(JSON.parse(content));
73
+ }
74
+ return sessions;
75
+ }
76
+ catch (e) {
77
+ return [];
78
+ }
79
+ }
80
+ static async getTrends(rootDir, currentSession) {
81
+ const sessions = await Telemetry.getSessions(rootDir, 5);
82
+ if (sessions.length === 0)
83
+ return null;
84
+ // Filter out the current session if it's in the list (unlikely if we just started, but good safety)
85
+ const previousSessions = sessions.filter(s => s.id !== currentSession.id);
86
+ if (previousSessions.length === 0)
87
+ return null;
88
+ const last = previousSessions[0];
89
+ return {
90
+ durationDelta: currentSession.duration - last.duration,
91
+ sizeDelta: (currentSession.metrics?.bundleSize || 0) - (last.metrics?.bundleSize || 0),
92
+ modulesDelta: (currentSession.metrics?.modules || 0) - (last.metrics?.modules || 0),
93
+ successRate: previousSessions.filter(s => s.success).length / previousSessions.length
94
+ };
95
+ }
96
+ }
@@ -0,0 +1,5 @@
1
+ import { Page } from 'puppeteer';
2
+ import { AuditGroup, AuditContext } from './types.js';
3
+ export declare class AccessibilityAudit {
4
+ static run(page: Page, context?: AuditContext): Promise<AuditGroup>;
5
+ }
@@ -0,0 +1,123 @@
1
+ import axe from 'axe-core';
2
+ import path from 'path';
3
+ export class AccessibilityAudit {
4
+ static async run(page, context) {
5
+ const results = [];
6
+ // Inject axe-core into the page
7
+ try {
8
+ await page.addScriptTag({
9
+ path: path.join(process.cwd(), 'node_modules/axe-core/axe.min.js')
10
+ });
11
+ // Run axe-core automated tests
12
+ const axeResults = await page.evaluate(async () => {
13
+ // @ts-ignore - axe is injected
14
+ return await axe.run({
15
+ runOnly: {
16
+ type: 'tag',
17
+ values: ['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa', 'best-practice']
18
+ }
19
+ });
20
+ });
21
+ // Process axe-core violations
22
+ for (const violation of axeResults.violations) {
23
+ const severity = violation.impact === 'critical' || violation.impact === 'serious' ? 'FAIL' : 'WARN';
24
+ const score = severity === 'FAIL' ? 0 : 50;
25
+ results.push({
26
+ id: `axe-${violation.id}`,
27
+ title: violation.help,
28
+ status: severity,
29
+ score,
30
+ details: `${violation.description}\nAffected elements: ${violation.nodes.length}\n${violation.nodes.slice(0, 3).map((n) => n.html).join('\n')}`,
31
+ fix: violation.helpUrl
32
+ });
33
+ }
34
+ }
35
+ catch (error) {
36
+ // If axe-core fails, continue with basic checks
37
+ console.warn('axe-core integration failed:', error.message);
38
+ }
39
+ // 1. HTML Lang Attribute
40
+ const lang = await page.$eval('html', el => el.getAttribute('lang')).catch(() => null);
41
+ results.push({
42
+ id: 'html-lang',
43
+ title: 'HTML has lang attribute',
44
+ status: lang ? 'PASS' : 'FAIL',
45
+ score: lang ? 100 : 0,
46
+ details: lang ? `Lang attribute found: "${lang}"` : 'Missing lang attribute on <html>',
47
+ fix: 'Add lang="en" (or appropriate language code) to <html> tag'
48
+ });
49
+ // 2. Images have alt text
50
+ const failingImages = await page.$$eval('img', els => {
51
+ return els
52
+ .filter(el => !el.hasAttribute('alt') || el.getAttribute('alt') === '')
53
+ .map(el => {
54
+ const src = el.getAttribute('src') || 'unknown';
55
+ const snippet = el.outerHTML.substring(0, 50) + '...';
56
+ return `Image: ${src} (Snippet: ${snippet})`;
57
+ })
58
+ .slice(0, 5);
59
+ });
60
+ results.push({
61
+ id: 'img-alt',
62
+ title: 'Images have alt text',
63
+ status: failingImages.length === 0 ? 'PASS' : 'WARN',
64
+ score: failingImages.length === 0 ? 100 : 50,
65
+ details: failingImages.length === 0
66
+ ? 'All images have alt text'
67
+ : `Found images missing alt text:\n ` + failingImages.join('\n '),
68
+ fix: 'Add descriptive alt="" attributes to all <img> tags'
69
+ });
70
+ // 3. Buttons have name/label
71
+ const failingButtons = await page.$$eval('button', els => {
72
+ return els.filter(el => {
73
+ const text = el.innerText.trim();
74
+ const ariaLabel = el.getAttribute('aria-label');
75
+ const ariaLabelledBy = el.getAttribute('aria-labelledby');
76
+ return !text && !ariaLabel && !ariaLabelledBy;
77
+ }).map(el => {
78
+ const id = el.id ? `#${el.id}` : '';
79
+ const cls = el.className ? `.${el.className.split(' ').join('.')}` : '';
80
+ return `Button: ${el.tagName.toLowerCase()}${id}${cls} (Snippet: ${el.outerHTML.substring(0, 50)}...)`;
81
+ }).slice(0, 5);
82
+ });
83
+ results.push({
84
+ id: 'button-name',
85
+ title: 'Buttons have discernible text',
86
+ status: failingButtons.length === 0 ? 'PASS' : 'FAIL',
87
+ score: failingButtons.length === 0 ? 100 : 0,
88
+ details: failingButtons.length === 0
89
+ ? 'All buttons have text or aria-labels'
90
+ : `Found buttons missing text/label:\n ` + failingButtons.join('\n '),
91
+ fix: 'Add text content or aria-label to all <button> elements'
92
+ });
93
+ // 4. Form inputs have labels
94
+ const failingInputs = await page.evaluate(() => {
95
+ const inputs = Array.from(document.querySelectorAll('input:not([type="hidden"]):not([type="submit"]):not([type="button"])'));
96
+ return inputs.filter(input => {
97
+ const id = input.id;
98
+ const hasLabel = id && document.querySelector(`label[for="${id}"]`);
99
+ const hasAria = input.hasAttribute('aria-label') || input.hasAttribute('aria-labelledby');
100
+ return !hasLabel && !hasAria;
101
+ }).map(input => {
102
+ const i = input;
103
+ return `Input: type="${i.type}" name="${i.name}" id="${i.id}"`;
104
+ }).slice(0, 5);
105
+ });
106
+ results.push({
107
+ id: 'input-label',
108
+ title: 'Form elements have labels',
109
+ status: failingInputs.length === 0 ? 'PASS' : 'WARN',
110
+ score: failingInputs.length === 0 ? 100 : 50,
111
+ details: failingInputs.length === 0
112
+ ? 'All inputs have associated labels'
113
+ : `Found inputs missing labels:\n ` + failingInputs.join('\n '),
114
+ fix: 'Add <label for="input-id"> or aria-label to all form inputs'
115
+ });
116
+ const score = Math.round(results.reduce((acc, r) => acc + r.score, 0) / results.length);
117
+ return {
118
+ name: 'Accessibility',
119
+ results,
120
+ score
121
+ };
122
+ }
123
+ }
@@ -0,0 +1,5 @@
1
+ import { Page } from 'puppeteer';
2
+ import { AuditGroup, AuditContext } from './types.js';
3
+ export declare class BestPracticesAudit {
4
+ static run(page: Page, context?: AuditContext): Promise<AuditGroup>;
5
+ }
@@ -0,0 +1,68 @@
1
+ export class BestPracticesAudit {
2
+ static async run(page, context) {
3
+ const results = [];
4
+ // 1. Doctype
5
+ const hasDoctype = await page.evaluate(() => document.doctype !== null);
6
+ results.push({
7
+ id: 'doctype',
8
+ title: 'Uses HTML5 Doctype',
9
+ status: hasDoctype ? 'PASS' : 'FAIL',
10
+ score: hasDoctype ? 100 : 0,
11
+ details: hasDoctype ? 'Page has a DOCTYPE' : 'Missing DOCTYPE'
12
+ });
13
+ // 2. HTTPS (Skip for localhost)
14
+ const url = page.url();
15
+ const isLocal = url.includes('localhost') || url.includes('127.0.0.1');
16
+ const isHttps = url.startsWith('https:');
17
+ results.push({
18
+ id: 'https',
19
+ title: 'Uses HTTPS',
20
+ status: isHttps || isLocal ? 'PASS' : 'WARN',
21
+ score: isHttps || isLocal ? 100 : 50,
22
+ details: isHttps ? 'Secure (HTTPS)' : isLocal ? 'Localhost (HTTP allowed)' : 'Insecure (HTTP)'
23
+ });
24
+ // 3. Safe External Links
25
+ // Check a[target="_blank"] for rel="noopener" or "noreferrer"
26
+ const unsafeLinks = await page.$$eval('a[target="_blank"]', els => {
27
+ return els.filter(el => {
28
+ const rel = el.getAttribute('rel') || '';
29
+ return !rel.includes('noopener') && !rel.includes('noreferrer');
30
+ }).map(el => {
31
+ return `Link: ${el.innerText.substring(0, 20)} -> ${el.getAttribute('href')}`;
32
+ }).slice(0, 5);
33
+ });
34
+ results.push({
35
+ id: 'safe-links',
36
+ title: 'Safe External Links',
37
+ status: unsafeLinks.length === 0 ? 'PASS' : 'WARN',
38
+ score: unsafeLinks.length === 0 ? 100 : 50,
39
+ details: unsafeLinks.length === 0
40
+ ? 'All external links are safe'
41
+ : `Unsafe links (missing rel="noopener"):\n ` + unsafeLinks.join('\n ')
42
+ });
43
+ // 4. Image Aspect Ratio
44
+ const invalidImages = await page.$$eval('img', els => {
45
+ return els.filter(el => !el.hasAttribute('width') || !el.hasAttribute('height'))
46
+ .map(el => {
47
+ const src = el.getAttribute('src');
48
+ return `Image: ${src}`;
49
+ })
50
+ .slice(0, 5);
51
+ });
52
+ results.push({
53
+ id: 'image-dimensions',
54
+ title: 'Image Dimensions',
55
+ status: invalidImages.length === 0 ? 'PASS' : 'WARN',
56
+ score: invalidImages.length === 0 ? 100 : 70,
57
+ details: invalidImages.length === 0
58
+ ? 'All images have width/height'
59
+ : `Images missing dimensions:\n ` + invalidImages.join('\n ')
60
+ });
61
+ const score = Math.round(results.reduce((acc, r) => acc + r.score, 0) / results.length);
62
+ return {
63
+ name: 'Best Practices',
64
+ results,
65
+ score
66
+ };
67
+ }
68
+ }
@@ -0,0 +1,59 @@
1
+ import type { BuildContext } from '../core/engine/types.js';
2
+ import type { Warning } from '../ui/types.js';
3
+ /**
4
+ * Build-Time Integration
5
+ * Integrates auditing, warnings, and auto-fixes into the build pipeline
6
+ */
7
+ export interface BuildIntegrationConfig {
8
+ enableWarnings: boolean;
9
+ enableAutoFix: boolean;
10
+ enableIncrementalAudit: boolean;
11
+ autoFixThreshold: number;
12
+ ciThresholds?: {
13
+ criticalMax: number;
14
+ warningMax: number;
15
+ failOnCritical: boolean;
16
+ };
17
+ skipAudit?: boolean;
18
+ forceAudit?: boolean;
19
+ }
20
+ export interface AuditResult {
21
+ warnings: Warning[];
22
+ fixesApplied: number;
23
+ buildTime: number;
24
+ cacheHits: number;
25
+ }
26
+ export declare class BuildIntegration {
27
+ private config;
28
+ private warningDetector;
29
+ private autoFixEngine;
30
+ private auditCache;
31
+ constructor(config?: Partial<BuildIntegrationConfig>);
32
+ /**
33
+ * Run audit pipeline hook
34
+ */
35
+ runAuditPipeline(ctx: BuildContext): Promise<AuditResult>;
36
+ /**
37
+ * Check if warnings exceed CI thresholds
38
+ */
39
+ private checkCIThresholds;
40
+ /**
41
+ * Incremental audit for changed files
42
+ */
43
+ incrementalAudit(ctx: BuildContext, changedFiles: string[]): Promise<AuditResult>;
44
+ /**
45
+ * Generate cache key for audit results
46
+ */
47
+ private generateCacheKey;
48
+ /**
49
+ * Clear audit cache
50
+ */
51
+ clearCache(): void;
52
+ /**
53
+ * Get cache statistics
54
+ */
55
+ getCacheStats(): {
56
+ size: number;
57
+ hitRate: number;
58
+ };
59
+ }