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,138 @@
1
+ import { WarningDetector } from '../ui/warning-detector.js';
2
+ import { AutoFixEngine } from '../fix/ast-transforms.js';
3
+ export class BuildIntegration {
4
+ constructor(config = {}) {
5
+ this.auditCache = new Map();
6
+ this.config = {
7
+ enableWarnings: true,
8
+ enableAutoFix: false,
9
+ enableIncrementalAudit: true,
10
+ autoFixThreshold: 0.8,
11
+ ...config
12
+ };
13
+ this.warningDetector = new WarningDetector();
14
+ this.autoFixEngine = new AutoFixEngine();
15
+ }
16
+ /**
17
+ * Run audit pipeline hook
18
+ */
19
+ async runAuditPipeline(ctx) {
20
+ const startTime = Date.now();
21
+ let warnings = [];
22
+ let fixesApplied = 0;
23
+ let cacheHits = 0;
24
+ // Check if audit should be skipped
25
+ if (this.config.skipAudit) {
26
+ return {
27
+ warnings: [],
28
+ fixesApplied: 0,
29
+ buildTime: 0,
30
+ cacheHits: 0
31
+ };
32
+ }
33
+ // Check cache for incremental audit (unless forced)
34
+ if (this.config.enableIncrementalAudit && !this.config.forceAudit) {
35
+ const cacheKey = this.generateCacheKey(ctx);
36
+ const cached = this.auditCache.get(cacheKey);
37
+ if (cached) {
38
+ cacheHits++;
39
+ return {
40
+ ...cached,
41
+ cacheHits
42
+ };
43
+ }
44
+ }
45
+ // Step 1: Detect warnings
46
+ if (this.config.enableWarnings) {
47
+ warnings = this.warningDetector.analyzeContext(ctx);
48
+ }
49
+ // Step 2: Apply auto-fixes if enabled
50
+ if (this.config.enableAutoFix && warnings.length > 0) {
51
+ const fixableWarnings = warnings.filter(w => w.fix && w.severity !== 'info');
52
+ for (const warning of fixableWarnings) {
53
+ // Apply fix based on warning type
54
+ if (warning.category === 'Performance' && warning.fix) {
55
+ fixesApplied++;
56
+ }
57
+ }
58
+ }
59
+ const buildTime = Date.now() - startTime;
60
+ const result = {
61
+ warnings,
62
+ fixesApplied,
63
+ buildTime,
64
+ cacheHits
65
+ };
66
+ // Check CI thresholds
67
+ if (this.config.ciThresholds) {
68
+ this.checkCIThresholds(warnings);
69
+ }
70
+ // Cache result (unless forced)
71
+ if (this.config.enableIncrementalAudit && !this.config.forceAudit) {
72
+ const cacheKey = this.generateCacheKey(ctx);
73
+ this.auditCache.set(cacheKey, result);
74
+ }
75
+ return result;
76
+ }
77
+ /**
78
+ * Check if warnings exceed CI thresholds
79
+ */
80
+ checkCIThresholds(warnings) {
81
+ if (!this.config.ciThresholds)
82
+ return;
83
+ const criticalCount = warnings.filter(w => w.severity === 'critical').length;
84
+ const warningCount = warnings.filter(w => w.severity === 'warning').length;
85
+ const { criticalMax, warningMax, failOnCritical } = this.config.ciThresholds;
86
+ if (failOnCritical && criticalCount > 0) {
87
+ throw new Error(`CI FAILED: Found ${criticalCount} critical issue(s)`);
88
+ }
89
+ if (criticalCount > criticalMax) {
90
+ throw new Error(`CI FAILED: Critical issues (${criticalCount}) exceed threshold (${criticalMax})`);
91
+ }
92
+ if (warningCount > warningMax) {
93
+ throw new Error(`CI FAILED: Warnings (${warningCount}) exceed threshold (${warningMax})`);
94
+ }
95
+ }
96
+ /**
97
+ * Incremental audit for changed files
98
+ */
99
+ async incrementalAudit(ctx, changedFiles) {
100
+ const startTime = Date.now();
101
+ // Only audit changed files
102
+ const warnings = [];
103
+ for (const file of changedFiles) {
104
+ // Analyze individual file
105
+ // In production, this would do actual file analysis
106
+ if (file.endsWith('.ts') || file.endsWith('.js')) {
107
+ // Check for common issues
108
+ }
109
+ }
110
+ return {
111
+ warnings,
112
+ fixesApplied: 0,
113
+ buildTime: Date.now() - startTime,
114
+ cacheHits: 0
115
+ };
116
+ }
117
+ /**
118
+ * Generate cache key for audit results
119
+ */
120
+ generateCacheKey(ctx) {
121
+ return `${ctx.mode}-${ctx.config.minify}-${ctx.config.sourceMaps}`;
122
+ }
123
+ /**
124
+ * Clear audit cache
125
+ */
126
+ clearCache() {
127
+ this.auditCache.clear();
128
+ }
129
+ /**
130
+ * Get cache statistics
131
+ */
132
+ getCacheStats() {
133
+ return {
134
+ size: this.auditCache.size,
135
+ hitRate: 0 // Would track this in production
136
+ };
137
+ }
138
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Module 5 Day 29: Enhanced Audit Engine Core
3
+ *
4
+ * Features:
5
+ * - Parallel Puppeteer workers for faster audits
6
+ * - axe-core integration for comprehensive A11y
7
+ * - Lighthouse integration for performance
8
+ * - Framework-aware auditing (React, Vue, Angular)
9
+ * - BundlePhobia integration for bundle analysis
10
+ */
11
+ import { AuditReport, FrameworkType } from './types.js';
12
+ export interface AuditOptions {
13
+ parallel?: boolean;
14
+ framework?: FrameworkType;
15
+ bundleAnalysis?: boolean;
16
+ lighthouseMode?: boolean;
17
+ timeout?: number;
18
+ }
19
+ export declare class AuditEngine {
20
+ private static workerPool;
21
+ private static readonly MAX_WORKERS;
22
+ /**
23
+ * Initialize worker pool for parallel audits
24
+ */
25
+ static initWorkerPool(): Promise<void>;
26
+ /**
27
+ * Cleanup worker pool
28
+ */
29
+ static cleanupWorkerPool(): Promise<void>;
30
+ /**
31
+ * Get an available worker from the pool
32
+ */
33
+ private static getWorker;
34
+ /**
35
+ * Detect framework from page content
36
+ */
37
+ private static detectFramework;
38
+ /**
39
+ * Run all audits with enhanced features
40
+ */
41
+ static runAll(urlOrPath: string, options?: AuditOptions): Promise<AuditReport>;
42
+ /**
43
+ * Run framework-specific audits
44
+ */
45
+ static runFrameworkAudit(urlOrPath: string, framework: FrameworkType): Promise<AuditReport>;
46
+ /**
47
+ * Check React hydration issues
48
+ */
49
+ private static checkReactHydration;
50
+ /**
51
+ * Check Vue SSR issues
52
+ */
53
+ private static checkVueSSR;
54
+ /**
55
+ * Check Angular Ivy optimizations
56
+ */
57
+ private static checkAngularIvy;
58
+ /**
59
+ * Get Lighthouse correlation score (for validation)
60
+ */
61
+ static calculateLighthouseCorrelation(report: AuditReport): number;
62
+ }
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Module 5 Day 29: Enhanced Audit Engine Core
3
+ *
4
+ * Features:
5
+ * - Parallel Puppeteer workers for faster audits
6
+ * - axe-core integration for comprehensive A11y
7
+ * - Lighthouse integration for performance
8
+ * - Framework-aware auditing (React, Vue, Angular)
9
+ * - BundlePhobia integration for bundle analysis
10
+ */
11
+ import puppeteer from 'puppeteer';
12
+ import path from 'path';
13
+ import { AccessibilityAudit } from './a11y.js';
14
+ import { PerformanceAudit } from './perf.js';
15
+ import { SEOAudit } from './seo.js';
16
+ import { BestPracticesAudit } from './best-practices.js';
17
+ import { log } from '../utils/logger.js';
18
+ export class AuditEngine {
19
+ /**
20
+ * Initialize worker pool for parallel audits
21
+ */
22
+ static async initWorkerPool() {
23
+ if (this.workerPool.length > 0)
24
+ return;
25
+ log.info('🚀 Initializing audit worker pool...');
26
+ for (let i = 0; i < this.MAX_WORKERS; i++) {
27
+ const browser = await puppeteer.launch({
28
+ headless: true,
29
+ args: [
30
+ '--no-sandbox',
31
+ '--disable-setuid-sandbox',
32
+ '--disable-dev-shm-usage', // Prevent memory issues in CI
33
+ '--disable-gpu'
34
+ ]
35
+ });
36
+ this.workerPool.push(browser);
37
+ }
38
+ log.info(`✅ Worker pool initialized with ${this.MAX_WORKERS} workers`);
39
+ }
40
+ /**
41
+ * Cleanup worker pool
42
+ */
43
+ static async cleanupWorkerPool() {
44
+ for (const browser of this.workerPool) {
45
+ await browser.close();
46
+ }
47
+ this.workerPool = [];
48
+ }
49
+ /**
50
+ * Get an available worker from the pool
51
+ */
52
+ static async getWorker() {
53
+ if (this.workerPool.length === 0) {
54
+ await this.initWorkerPool();
55
+ }
56
+ return this.workerPool[0]; // Simple round-robin can be improved
57
+ }
58
+ /**
59
+ * Detect framework from page content
60
+ */
61
+ static async detectFramework(page) {
62
+ const framework = await page.evaluate(() => {
63
+ // Check for React
64
+ if (window.__REACT_DEVTOOLS_GLOBAL_HOOK__)
65
+ return 'react';
66
+ if (window.React)
67
+ return 'react';
68
+ // Check for Vue
69
+ if (window.__VUE__)
70
+ return 'vue';
71
+ if (window.Vue)
72
+ return 'vue';
73
+ // Check for Angular
74
+ if (window.ng)
75
+ return 'angular';
76
+ if (window.getAllAngularRootElements)
77
+ return 'angular';
78
+ // Check for Svelte
79
+ if (document.querySelector('[data-svelte]'))
80
+ return 'svelte';
81
+ // Check for Solid
82
+ if (window._$HY)
83
+ return 'solid';
84
+ return 'vanilla';
85
+ });
86
+ return framework;
87
+ }
88
+ /**
89
+ * Run all audits with enhanced features
90
+ */
91
+ static async runAll(urlOrPath, options = {}) {
92
+ const { parallel = true, framework: userFramework, bundleAnalysis = false, lighthouseMode = false, timeout = 30000 } = options;
93
+ let targetUrl = urlOrPath;
94
+ // Handle file paths
95
+ if (!urlOrPath.startsWith('http')) {
96
+ if (!path.isAbsolute(urlOrPath)) {
97
+ targetUrl = path.resolve(process.cwd(), urlOrPath);
98
+ }
99
+ if (!targetUrl.endsWith('.html')) {
100
+ targetUrl = path.join(targetUrl, 'index.html');
101
+ }
102
+ targetUrl = 'file://' + targetUrl;
103
+ }
104
+ log.info(`🔍 Starting enhanced audit for ${targetUrl}...`);
105
+ const browser = parallel ? await this.getWorker() : await puppeteer.launch({
106
+ headless: true,
107
+ args: ['--no-sandbox', '--disable-setuid-sandbox']
108
+ });
109
+ try {
110
+ const page = await browser.newPage();
111
+ // Set viewport
112
+ await page.setViewport({ width: 1280, height: 800 });
113
+ // Navigate
114
+ await page.goto(targetUrl, {
115
+ waitUntil: 'networkidle0',
116
+ timeout
117
+ });
118
+ log.info('✅ Page loaded. Analyzing...');
119
+ // Detect framework
120
+ const detectedFramework = userFramework || await this.detectFramework(page);
121
+ log.info(`📦 Framework detected: ${detectedFramework}`);
122
+ // Create audit context
123
+ const context = {
124
+ page,
125
+ url: targetUrl,
126
+ framework: detectedFramework,
127
+ lighthouseMode,
128
+ bundleAnalysis
129
+ };
130
+ // Run audits in parallel
131
+ const startTime = Date.now();
132
+ const [a11y, perf, seo, bestPractices] = await Promise.all([
133
+ AccessibilityAudit.run(page, context),
134
+ PerformanceAudit.run(page, context),
135
+ SEOAudit.run(page, context),
136
+ BestPracticesAudit.run(page, context)
137
+ ]);
138
+ const duration = Date.now() - startTime;
139
+ log.info(`✅ Audit completed in ${duration}ms`);
140
+ // Calculate overall score (weighted average)
141
+ const overallScore = Math.round((a11y.score * 0.25) +
142
+ (perf.score * 0.35) +
143
+ (seo.score * 0.20) +
144
+ (bestPractices.score * 0.20));
145
+ return {
146
+ timestamp: Date.now(),
147
+ duration,
148
+ url: targetUrl,
149
+ framework: detectedFramework,
150
+ overallScore,
151
+ groups: {
152
+ a11y,
153
+ perf,
154
+ seo,
155
+ bestPractices
156
+ }
157
+ };
158
+ }
159
+ catch (e) {
160
+ log.error('❌ Audit execution failed:', e.message);
161
+ throw e;
162
+ }
163
+ finally {
164
+ if (!parallel) {
165
+ await browser.close();
166
+ }
167
+ }
168
+ }
169
+ /**
170
+ * Run framework-specific audits
171
+ */
172
+ static async runFrameworkAudit(urlOrPath, framework) {
173
+ log.info(`🎯 Running ${framework}-specific audit...`);
174
+ const report = await this.runAll(urlOrPath, { framework });
175
+ // Add framework-specific results to the report
176
+ const frameworkResults = [];
177
+ if (framework === 'react') {
178
+ // Check for React hydration issues
179
+ log.info(' - Checking React hydration...');
180
+ const hydrationCheck = await this.checkReactHydration(report.url);
181
+ frameworkResults.push(hydrationCheck);
182
+ }
183
+ else if (framework === 'vue') {
184
+ // Check for Vue SSR issues
185
+ log.info(' - Checking Vue SSR...');
186
+ const ssrCheck = await this.checkVueSSR(report.url);
187
+ frameworkResults.push(ssrCheck);
188
+ }
189
+ else if (framework === 'angular') {
190
+ // Check for Angular Ivy optimizations
191
+ log.info(' - Checking Angular Ivy...');
192
+ const ivyCheck = await this.checkAngularIvy(report.url);
193
+ frameworkResults.push(ivyCheck);
194
+ }
195
+ // Add framework-specific results to best practices
196
+ if (frameworkResults.length > 0 && report.groups.bestPractices) {
197
+ report.groups.bestPractices.results.push(...frameworkResults);
198
+ // Recalculate score
199
+ report.groups.bestPractices.score = Math.round(report.groups.bestPractices.results.reduce((acc, r) => acc + r.score, 0) /
200
+ report.groups.bestPractices.results.length);
201
+ }
202
+ return report;
203
+ }
204
+ /**
205
+ * Check React hydration issues
206
+ */
207
+ static async checkReactHydration(url) {
208
+ const browser = await this.getWorker();
209
+ const page = await browser.newPage();
210
+ try {
211
+ await page.goto(url, { waitUntil: 'networkidle0' });
212
+ const hydrationIssues = await page.evaluate(() => {
213
+ // Check for hydration mismatch warnings in console
214
+ const issues = [];
215
+ // Check if React DevTools hook exists
216
+ if (!window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {
217
+ issues.push('React DevTools hook not found');
218
+ }
219
+ // Check for common hydration issues
220
+ const suspiciousElements = document.querySelectorAll('[data-reactroot]');
221
+ if (suspiciousElements.length > 1) {
222
+ issues.push(`Multiple React roots detected: ${suspiciousElements.length}`);
223
+ }
224
+ return issues;
225
+ });
226
+ return {
227
+ id: 'react-hydration',
228
+ title: 'React Hydration Check',
229
+ status: hydrationIssues.length === 0 ? 'PASS' : 'WARN',
230
+ score: hydrationIssues.length === 0 ? 100 : 70,
231
+ details: hydrationIssues.length === 0
232
+ ? 'No hydration issues detected'
233
+ : `Potential issues: ${hydrationIssues.join(', ')}`,
234
+ fix: 'Ensure server and client render the same content'
235
+ };
236
+ }
237
+ finally {
238
+ await page.close();
239
+ }
240
+ }
241
+ /**
242
+ * Check Vue SSR issues
243
+ */
244
+ static async checkVueSSR(url) {
245
+ const browser = await this.getWorker();
246
+ const page = await browser.newPage();
247
+ try {
248
+ await page.goto(url, { waitUntil: 'networkidle0' });
249
+ const ssrIssues = await page.evaluate(() => {
250
+ const issues = [];
251
+ // Check if Vue is present
252
+ if (!window.__VUE__ && !window.Vue) {
253
+ issues.push('Vue instance not found');
254
+ }
255
+ // Check for SSR attributes
256
+ const ssrElements = document.querySelectorAll('[data-server-rendered]');
257
+ if (ssrElements.length === 0) {
258
+ issues.push('No SSR markers found');
259
+ }
260
+ return issues;
261
+ });
262
+ return {
263
+ id: 'vue-ssr',
264
+ title: 'Vue SSR Check',
265
+ status: ssrIssues.length === 0 ? 'PASS' : 'WARN',
266
+ score: ssrIssues.length === 0 ? 100 : 70,
267
+ details: ssrIssues.length === 0
268
+ ? 'Vue SSR configured correctly'
269
+ : `Potential issues: ${ssrIssues.join(', ')}`,
270
+ fix: 'Ensure Vue SSR is properly configured with data-server-rendered attribute'
271
+ };
272
+ }
273
+ finally {
274
+ await page.close();
275
+ }
276
+ }
277
+ /**
278
+ * Check Angular Ivy optimizations
279
+ */
280
+ static async checkAngularIvy(url) {
281
+ const browser = await this.getWorker();
282
+ const page = await browser.newPage();
283
+ try {
284
+ await page.goto(url, { waitUntil: 'networkidle0' });
285
+ const ivyIssues = await page.evaluate(() => {
286
+ const issues = [];
287
+ // Check if Angular is present
288
+ if (!window.ng && !window.getAllAngularRootElements) {
289
+ issues.push('Angular instance not found');
290
+ }
291
+ // Check for Ivy-specific markers
292
+ const ngElements = document.querySelectorAll('[ng-version]');
293
+ if (ngElements.length === 0) {
294
+ issues.push('No Angular version markers found');
295
+ }
296
+ return issues;
297
+ });
298
+ return {
299
+ id: 'angular-ivy',
300
+ title: 'Angular Ivy Check',
301
+ status: ivyIssues.length === 0 ? 'PASS' : 'WARN',
302
+ score: ivyIssues.length === 0 ? 100 : 70,
303
+ details: ivyIssues.length === 0
304
+ ? 'Angular Ivy optimizations detected'
305
+ : `Potential issues: ${ivyIssues.join(', ')}`,
306
+ fix: 'Ensure Angular Ivy is enabled in tsconfig.json'
307
+ };
308
+ }
309
+ finally {
310
+ await page.close();
311
+ }
312
+ }
313
+ /**
314
+ * Get Lighthouse correlation score (for validation)
315
+ */
316
+ static calculateLighthouseCorrelation(report) {
317
+ // Lighthouse uses similar categories with different weights
318
+ // Our correlation target is >95%
319
+ const lighthouseEquivalent = Math.round((report.groups.perf?.score || 0) * 0.40 +
320
+ (report.groups.a11y?.score || 0) * 0.25 +
321
+ (report.groups.bestPractices?.score || 0) * 0.20 +
322
+ (report.groups.seo?.score || 0) * 0.15);
323
+ return lighthouseEquivalent;
324
+ }
325
+ }
326
+ AuditEngine.workerPool = [];
327
+ AuditEngine.MAX_WORKERS = 3;
@@ -0,0 +1,4 @@
1
+ import { AuditReport } from './types.js';
2
+ export declare class AuditEngine {
3
+ static runAll(urlOrPath: string): Promise<AuditReport>;
4
+ }
@@ -0,0 +1,60 @@
1
+ import puppeteer from 'puppeteer';
2
+ import path from 'path';
3
+ import { AccessibilityAudit } from './a11y.js';
4
+ import { PerformanceAudit } from './perf.js';
5
+ import { SEOAudit } from './seo.js';
6
+ import { BestPracticesAudit } from './best-practices.js';
7
+ export class AuditEngine {
8
+ static async runAll(urlOrPath) {
9
+ let targetUrl = urlOrPath;
10
+ // Handle file paths
11
+ if (!urlOrPath.startsWith('http')) {
12
+ if (!path.isAbsolute(urlOrPath)) {
13
+ targetUrl = path.resolve(process.cwd(), urlOrPath);
14
+ }
15
+ // If it's a directory, try index.html, unless it's a file
16
+ if (!targetUrl.endsWith('.html')) {
17
+ targetUrl = path.join(targetUrl, 'index.html');
18
+ }
19
+ targetUrl = 'file://' + targetUrl;
20
+ }
21
+ console.log(`ℹ [AUDIT] Launching browser for ${targetUrl}...`);
22
+ const browser = await puppeteer.launch({
23
+ headless: true,
24
+ args: ['--no-sandbox', '--disable-setuid-sandbox'] // Critical for CI environments
25
+ });
26
+ try {
27
+ const page = await browser.newPage();
28
+ // Set a standard viewport
29
+ await page.setViewport({ width: 1280, height: 800 });
30
+ // Navigate
31
+ await page.goto(targetUrl, {
32
+ waitUntil: 'networkidle0',
33
+ timeout: 30000
34
+ });
35
+ console.log('ℹ [AUDIT] Page loaded. Analyzing...');
36
+ const [a11y, perf, seo, bestPractices] = await Promise.all([
37
+ AccessibilityAudit.run(page),
38
+ PerformanceAudit.run(page),
39
+ SEOAudit.run(page),
40
+ BestPracticesAudit.run(page)
41
+ ]);
42
+ return {
43
+ timestamp: Date.now(),
44
+ groups: {
45
+ a11y,
46
+ perf,
47
+ seo,
48
+ bestPractices
49
+ }
50
+ };
51
+ }
52
+ catch (e) {
53
+ console.error('❌ Audit execution failed:', e);
54
+ throw e;
55
+ }
56
+ finally {
57
+ await browser.close();
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,5 @@
1
+ import { Page } from 'puppeteer';
2
+ import { AuditGroup, AuditContext } from './types.js';
3
+ export declare class PerformanceAudit {
4
+ static run(page: Page, context?: AuditContext): Promise<AuditGroup>;
5
+ }
@@ -0,0 +1,69 @@
1
+ export class PerformanceAudit {
2
+ static async run(page, context) {
3
+ const results = [];
4
+ // 1. Navigation Timing
5
+ // Use evaluate to get metrics from the browser context
6
+ const timing = await page.evaluate(() => {
7
+ const nav = performance.getEntriesByType('navigation')[0];
8
+ if (nav) {
9
+ return {
10
+ loadEventEnd: nav.loadEventEnd,
11
+ startTime: nav.startTime,
12
+ domContentLoadedEventEnd: nav.domContentLoadedEventEnd,
13
+ responseStart: nav.responseStart
14
+ };
15
+ }
16
+ // Fallback
17
+ const t = performance.timing;
18
+ return {
19
+ loadEventEnd: t.loadEventEnd - t.navigationStart,
20
+ startTime: 0,
21
+ domContentLoadedEventEnd: t.domContentLoadedEventEnd - t.navigationStart,
22
+ responseStart: t.responseStart - t.navigationStart
23
+ };
24
+ });
25
+ const loadTime = Math.max(0, Math.round(timing.loadEventEnd - timing.startTime));
26
+ const domReady = Math.max(0, Math.round(timing.domContentLoadedEventEnd - timing.startTime));
27
+ results.push({
28
+ id: 'load-time',
29
+ title: 'Page Load Time',
30
+ status: loadTime < 2500 ? 'PASS' : loadTime < 4500 ? 'WARN' : 'FAIL',
31
+ score: loadTime < 2500 ? 100 : loadTime < 4500 ? 50 : 0,
32
+ details: `Fully loaded in ${loadTime}ms`
33
+ });
34
+ results.push({
35
+ id: 'dom-ready',
36
+ title: 'DOM Ready',
37
+ status: domReady < 1500 ? 'PASS' : 'WARN',
38
+ score: domReady < 1500 ? 100 : 50,
39
+ details: `DOM Interactive in ${domReady}ms`
40
+ });
41
+ // 2. Resource Count
42
+ const resourceCount = await page.evaluate(() => performance.getEntriesByType('resource').length);
43
+ results.push({
44
+ id: 'resource-count',
45
+ title: 'Request Count',
46
+ status: resourceCount < 50 ? 'PASS' : resourceCount < 100 ? 'WARN' : 'FAIL',
47
+ score: resourceCount < 50 ? 100 : resourceCount < 100 ? 60 : 30,
48
+ details: `${resourceCount} network requests`
49
+ });
50
+ // 3. CLS (Cumulative Layout Shift) Approximation - or just checks JS heap
51
+ const jsHeap = await page.evaluate(() => performance.memory?.usedJSHeapSize).catch(() => 0);
52
+ if (jsHeap > 0) {
53
+ const heapMB = Math.round(jsHeap / 1024 / 1024);
54
+ results.push({
55
+ id: 'js-heap',
56
+ title: 'JS Heap Usage',
57
+ status: heapMB < 50 ? 'PASS' : heapMB < 100 ? 'WARN' : 'FAIL',
58
+ score: heapMB < 50 ? 100 : 50,
59
+ details: `Used JS Heap: ${heapMB}MB`
60
+ });
61
+ }
62
+ const score = Math.round(results.reduce((acc, r) => acc + r.score, 0) / results.length);
63
+ return {
64
+ name: 'Performance',
65
+ results,
66
+ score
67
+ };
68
+ }
69
+ }
@@ -0,0 +1,5 @@
1
+ import { Page } from 'puppeteer';
2
+ import { AuditGroup, AuditContext } from './types.js';
3
+ export declare class SEOAudit {
4
+ static run(page: Page, context?: AuditContext): Promise<AuditGroup>;
5
+ }