@sudosandwich/limps-headless 0.1.3

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 (335) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +339 -0
  3. package/bin/limps-headless +2 -0
  4. package/dist/analysis/index.d.ts +6 -0
  5. package/dist/analysis/index.d.ts.map +1 -0
  6. package/dist/analysis/index.js +6 -0
  7. package/dist/analysis/index.js.map +1 -0
  8. package/dist/analysis/ir/build-ir.d.ts +10 -0
  9. package/dist/analysis/ir/build-ir.d.ts.map +1 -0
  10. package/dist/analysis/ir/build-ir.js +102 -0
  11. package/dist/analysis/ir/build-ir.js.map +1 -0
  12. package/dist/analysis/ir/types.d.ts +44 -0
  13. package/dist/analysis/ir/types.d.ts.map +1 -0
  14. package/dist/analysis/ir/types.js +2 -0
  15. package/dist/analysis/ir/types.js.map +1 -0
  16. package/dist/analysis/module-graph.d.ts +20 -0
  17. package/dist/analysis/module-graph.d.ts.map +1 -0
  18. package/dist/analysis/module-graph.js +104 -0
  19. package/dist/analysis/module-graph.js.map +1 -0
  20. package/dist/analysis/passes/behavior-evidence.d.ts +9 -0
  21. package/dist/analysis/passes/behavior-evidence.d.ts.map +1 -0
  22. package/dist/analysis/passes/behavior-evidence.js +80 -0
  23. package/dist/analysis/passes/behavior-evidence.js.map +1 -0
  24. package/dist/analysis/passes/import-evidence.d.ts +3 -0
  25. package/dist/analysis/passes/import-evidence.d.ts.map +1 -0
  26. package/dist/analysis/passes/import-evidence.js +58 -0
  27. package/dist/analysis/passes/import-evidence.js.map +1 -0
  28. package/dist/analysis/passes/index.d.ts +15 -0
  29. package/dist/analysis/passes/index.d.ts.map +1 -0
  30. package/dist/analysis/passes/index.js +21 -0
  31. package/dist/analysis/passes/index.js.map +1 -0
  32. package/dist/analysis/passes/jsx-evidence.d.ts +8 -0
  33. package/dist/analysis/passes/jsx-evidence.d.ts.map +1 -0
  34. package/dist/analysis/passes/jsx-evidence.js +149 -0
  35. package/dist/analysis/passes/jsx-evidence.js.map +1 -0
  36. package/dist/analysis/ts-program.d.ts +12 -0
  37. package/dist/analysis/ts-program.d.ts.map +1 -0
  38. package/dist/analysis/ts-program.js +59 -0
  39. package/dist/analysis/ts-program.js.map +1 -0
  40. package/dist/analyzer/disambiguator.d.ts +20 -0
  41. package/dist/analyzer/disambiguator.d.ts.map +1 -0
  42. package/dist/analyzer/disambiguator.js +83 -0
  43. package/dist/analyzer/disambiguator.js.map +1 -0
  44. package/dist/analyzer/index.d.ts +26 -0
  45. package/dist/analyzer/index.d.ts.map +1 -0
  46. package/dist/analyzer/index.js +68 -0
  47. package/dist/analyzer/index.js.map +1 -0
  48. package/dist/analyzer/parser.d.ts +23 -0
  49. package/dist/analyzer/parser.d.ts.map +1 -0
  50. package/dist/analyzer/parser.js +58 -0
  51. package/dist/analyzer/parser.js.map +1 -0
  52. package/dist/analyzer/patterns.d.ts +42 -0
  53. package/dist/analyzer/patterns.d.ts.map +1 -0
  54. package/dist/analyzer/patterns.js +206 -0
  55. package/dist/analyzer/patterns.js.map +1 -0
  56. package/dist/analyzer/props.d.ts +16 -0
  57. package/dist/analyzer/props.d.ts.map +1 -0
  58. package/dist/analyzer/props.js +235 -0
  59. package/dist/analyzer/props.js.map +1 -0
  60. package/dist/analyzer/rules/checkbox-switch-toggle.d.ts +10 -0
  61. package/dist/analyzer/rules/checkbox-switch-toggle.d.ts.map +1 -0
  62. package/dist/analyzer/rules/checkbox-switch-toggle.js +26 -0
  63. package/dist/analyzer/rules/checkbox-switch-toggle.js.map +1 -0
  64. package/dist/analyzer/rules/dialog-popover.d.ts +10 -0
  65. package/dist/analyzer/rules/dialog-popover.d.ts.map +1 -0
  66. package/dist/analyzer/rules/dialog-popover.js +25 -0
  67. package/dist/analyzer/rules/dialog-popover.js.map +1 -0
  68. package/dist/analyzer/rules/index.d.ts +24 -0
  69. package/dist/analyzer/rules/index.d.ts.map +1 -0
  70. package/dist/analyzer/rules/index.js +51 -0
  71. package/dist/analyzer/rules/index.js.map +1 -0
  72. package/dist/analyzer/rules/tooltip-hovercard.d.ts +10 -0
  73. package/dist/analyzer/rules/tooltip-hovercard.d.ts.map +1 -0
  74. package/dist/analyzer/rules/tooltip-hovercard.js +21 -0
  75. package/dist/analyzer/rules/tooltip-hovercard.js.map +1 -0
  76. package/dist/analyzer/scorer.d.ts +12 -0
  77. package/dist/analyzer/scorer.d.ts.map +1 -0
  78. package/dist/analyzer/scorer.js +171 -0
  79. package/dist/analyzer/scorer.js.map +1 -0
  80. package/dist/analyzer/weights.d.ts +28 -0
  81. package/dist/analyzer/weights.d.ts.map +1 -0
  82. package/dist/analyzer/weights.js +40 -0
  83. package/dist/analyzer/weights.js.map +1 -0
  84. package/dist/audit/analyses/migration.d.ts +42 -0
  85. package/dist/audit/analyses/migration.d.ts.map +1 -0
  86. package/dist/audit/analyses/migration.js +91 -0
  87. package/dist/audit/analyses/migration.js.map +1 -0
  88. package/dist/audit/discover-components.d.ts +7 -0
  89. package/dist/audit/discover-components.d.ts.map +1 -0
  90. package/dist/audit/discover-components.js +486 -0
  91. package/dist/audit/discover-components.js.map +1 -0
  92. package/dist/audit/generate-report.d.ts +28 -0
  93. package/dist/audit/generate-report.d.ts.map +1 -0
  94. package/dist/audit/generate-report.js +333 -0
  95. package/dist/audit/generate-report.js.map +1 -0
  96. package/dist/audit/index.d.ts +8 -0
  97. package/dist/audit/index.d.ts.map +1 -0
  98. package/dist/audit/index.js +8 -0
  99. package/dist/audit/index.js.map +1 -0
  100. package/dist/audit/run-audit.d.ts +33 -0
  101. package/dist/audit/run-audit.d.ts.map +1 -0
  102. package/dist/audit/run-audit.js +287 -0
  103. package/dist/audit/run-audit.js.map +1 -0
  104. package/dist/audit/types.d.ts +135 -0
  105. package/dist/audit/types.d.ts.map +1 -0
  106. package/dist/audit/types.js +5 -0
  107. package/dist/audit/types.js.map +1 -0
  108. package/dist/cache/index.d.ts +110 -0
  109. package/dist/cache/index.d.ts.map +1 -0
  110. package/dist/cache/index.js +176 -0
  111. package/dist/cache/index.js.map +1 -0
  112. package/dist/cache/storage.d.ts +73 -0
  113. package/dist/cache/storage.d.ts.map +1 -0
  114. package/dist/cache/storage.js +176 -0
  115. package/dist/cache/storage.js.map +1 -0
  116. package/dist/cache/ttl.d.ts +62 -0
  117. package/dist/cache/ttl.d.ts.map +1 -0
  118. package/dist/cache/ttl.js +96 -0
  119. package/dist/cache/ttl.js.map +1 -0
  120. package/dist/cli/commands/analyze.d.ts +6 -0
  121. package/dist/cli/commands/analyze.d.ts.map +1 -0
  122. package/dist/cli/commands/analyze.js +43 -0
  123. package/dist/cli/commands/analyze.js.map +1 -0
  124. package/dist/cli/commands/audit.d.ts +6 -0
  125. package/dist/cli/commands/audit.d.ts.map +1 -0
  126. package/dist/cli/commands/audit.js +73 -0
  127. package/dist/cli/commands/audit.js.map +1 -0
  128. package/dist/cli/commands/check-updates.d.ts +6 -0
  129. package/dist/cli/commands/check-updates.d.ts.map +1 -0
  130. package/dist/cli/commands/check-updates.js +34 -0
  131. package/dist/cli/commands/check-updates.js.map +1 -0
  132. package/dist/cli/commands/diff.d.ts +7 -0
  133. package/dist/cli/commands/diff.d.ts.map +1 -0
  134. package/dist/cli/commands/diff.js +48 -0
  135. package/dist/cli/commands/diff.js.map +1 -0
  136. package/dist/cli/commands/extract.d.ts +6 -0
  137. package/dist/cli/commands/extract.d.ts.map +1 -0
  138. package/dist/cli/commands/extract.js +42 -0
  139. package/dist/cli/commands/extract.js.map +1 -0
  140. package/dist/cli/commands/list.d.ts +6 -0
  141. package/dist/cli/commands/list.d.ts.map +1 -0
  142. package/dist/cli/commands/list.js +33 -0
  143. package/dist/cli/commands/list.js.map +1 -0
  144. package/dist/cli/flags.d.ts +9 -0
  145. package/dist/cli/flags.d.ts.map +1 -0
  146. package/dist/cli/flags.js +22 -0
  147. package/dist/cli/flags.js.map +1 -0
  148. package/dist/cli/index.d.ts +5 -0
  149. package/dist/cli/index.d.ts.map +1 -0
  150. package/dist/cli/index.js +40 -0
  151. package/dist/cli/index.js.map +1 -0
  152. package/dist/config.d.ts +19 -0
  153. package/dist/config.d.ts.map +1 -0
  154. package/dist/config.js +23 -0
  155. package/dist/config.js.map +1 -0
  156. package/dist/differ/hints.d.ts +21 -0
  157. package/dist/differ/hints.d.ts.map +1 -0
  158. package/dist/differ/hints.js +105 -0
  159. package/dist/differ/hints.js.map +1 -0
  160. package/dist/differ/index.d.ts +25 -0
  161. package/dist/differ/index.d.ts.map +1 -0
  162. package/dist/differ/index.js +115 -0
  163. package/dist/differ/index.js.map +1 -0
  164. package/dist/differ/props.d.ts +36 -0
  165. package/dist/differ/props.d.ts.map +1 -0
  166. package/dist/differ/props.js +210 -0
  167. package/dist/differ/props.js.map +1 -0
  168. package/dist/differ/severity.d.ts +31 -0
  169. package/dist/differ/severity.d.ts.map +1 -0
  170. package/dist/differ/severity.js +65 -0
  171. package/dist/differ/severity.js.map +1 -0
  172. package/dist/differ/types.d.ts +109 -0
  173. package/dist/differ/types.d.ts.map +1 -0
  174. package/dist/differ/types.js +5 -0
  175. package/dist/differ/types.js.map +1 -0
  176. package/dist/extractor/classifier.d.ts +30 -0
  177. package/dist/extractor/classifier.d.ts.map +1 -0
  178. package/dist/extractor/classifier.js +150 -0
  179. package/dist/extractor/classifier.js.map +1 -0
  180. package/dist/extractor/forward-ref.d.ts +28 -0
  181. package/dist/extractor/forward-ref.d.ts.map +1 -0
  182. package/dist/extractor/forward-ref.js +134 -0
  183. package/dist/extractor/forward-ref.js.map +1 -0
  184. package/dist/extractor/index.d.ts +25 -0
  185. package/dist/extractor/index.d.ts.map +1 -0
  186. package/dist/extractor/index.js +43 -0
  187. package/dist/extractor/index.js.map +1 -0
  188. package/dist/extractor/interface.d.ts +40 -0
  189. package/dist/extractor/interface.d.ts.map +1 -0
  190. package/dist/extractor/interface.js +233 -0
  191. package/dist/extractor/interface.js.map +1 -0
  192. package/dist/extractor/jsdoc.d.ts +24 -0
  193. package/dist/extractor/jsdoc.d.ts.map +1 -0
  194. package/dist/extractor/jsdoc.js +74 -0
  195. package/dist/extractor/jsdoc.js.map +1 -0
  196. package/dist/extractor/project.d.ts +17 -0
  197. package/dist/extractor/project.d.ts.map +1 -0
  198. package/dist/extractor/project.js +33 -0
  199. package/dist/extractor/project.js.map +1 -0
  200. package/dist/extractor/props.d.ts +24 -0
  201. package/dist/extractor/props.d.ts.map +1 -0
  202. package/dist/extractor/props.js +78 -0
  203. package/dist/extractor/props.js.map +1 -0
  204. package/dist/extractor/type-resolver.d.ts +32 -0
  205. package/dist/extractor/type-resolver.d.ts.map +1 -0
  206. package/dist/extractor/type-resolver.js +129 -0
  207. package/dist/extractor/type-resolver.js.map +1 -0
  208. package/dist/fetcher/index.d.ts +7 -0
  209. package/dist/fetcher/index.d.ts.map +1 -0
  210. package/dist/fetcher/index.js +7 -0
  211. package/dist/fetcher/index.js.map +1 -0
  212. package/dist/fetcher/npm-registry.d.ts +45 -0
  213. package/dist/fetcher/npm-registry.d.ts.map +1 -0
  214. package/dist/fetcher/npm-registry.js +217 -0
  215. package/dist/fetcher/npm-registry.js.map +1 -0
  216. package/dist/fetcher/unified-package.d.ts +27 -0
  217. package/dist/fetcher/unified-package.d.ts.map +1 -0
  218. package/dist/fetcher/unified-package.js +99 -0
  219. package/dist/fetcher/unified-package.js.map +1 -0
  220. package/dist/fetcher/unpkg.d.ts +20 -0
  221. package/dist/fetcher/unpkg.d.ts.map +1 -0
  222. package/dist/fetcher/unpkg.js +58 -0
  223. package/dist/fetcher/unpkg.js.map +1 -0
  224. package/dist/index.d.ts +18 -0
  225. package/dist/index.d.ts.map +1 -0
  226. package/dist/index.js +41 -0
  227. package/dist/index.js.map +1 -0
  228. package/dist/providers/base.d.ts +10 -0
  229. package/dist/providers/base.d.ts.map +1 -0
  230. package/dist/providers/base.js +80 -0
  231. package/dist/providers/base.js.map +1 -0
  232. package/dist/providers/index.d.ts +10 -0
  233. package/dist/providers/index.d.ts.map +1 -0
  234. package/dist/providers/index.js +10 -0
  235. package/dist/providers/index.js.map +1 -0
  236. package/dist/providers/interface.d.ts +56 -0
  237. package/dist/providers/interface.d.ts.map +1 -0
  238. package/dist/providers/interface.js +5 -0
  239. package/dist/providers/interface.js.map +1 -0
  240. package/dist/providers/radix-backend.d.ts +11 -0
  241. package/dist/providers/radix-backend.d.ts.map +1 -0
  242. package/dist/providers/radix-backend.js +107 -0
  243. package/dist/providers/radix-backend.js.map +1 -0
  244. package/dist/providers/radix.d.ts +6 -0
  245. package/dist/providers/radix.d.ts.map +1 -0
  246. package/dist/providers/radix.js +21 -0
  247. package/dist/providers/radix.js.map +1 -0
  248. package/dist/providers/registry.d.ts +17 -0
  249. package/dist/providers/registry.d.ts.map +1 -0
  250. package/dist/providers/registry.js +55 -0
  251. package/dist/providers/registry.js.map +1 -0
  252. package/dist/rules/engine.d.ts +4 -0
  253. package/dist/rules/engine.d.ts.map +1 -0
  254. package/dist/rules/engine.js +37 -0
  255. package/dist/rules/engine.js.map +1 -0
  256. package/dist/rules/index.d.ts +6 -0
  257. package/dist/rules/index.d.ts.map +1 -0
  258. package/dist/rules/index.js +6 -0
  259. package/dist/rules/index.js.map +1 -0
  260. package/dist/rules/predicates.d.ts +10 -0
  261. package/dist/rules/predicates.d.ts.map +1 -0
  262. package/dist/rules/predicates.js +93 -0
  263. package/dist/rules/predicates.js.map +1 -0
  264. package/dist/rules/rulesets/base-ui.d.ts +3 -0
  265. package/dist/rules/rulesets/base-ui.d.ts.map +1 -0
  266. package/dist/rules/rulesets/base-ui.js +65 -0
  267. package/dist/rules/rulesets/base-ui.js.map +1 -0
  268. package/dist/rules/rulesets/radix-legacy.d.ts +3 -0
  269. package/dist/rules/rulesets/radix-legacy.d.ts.map +1 -0
  270. package/dist/rules/rulesets/radix-legacy.js +38 -0
  271. package/dist/rules/rulesets/radix-legacy.js.map +1 -0
  272. package/dist/rules/types.d.ts +57 -0
  273. package/dist/rules/types.d.ts.map +1 -0
  274. package/dist/rules/types.js +2 -0
  275. package/dist/rules/types.js.map +1 -0
  276. package/dist/signatures/disambiguation.d.ts +30 -0
  277. package/dist/signatures/disambiguation.d.ts.map +1 -0
  278. package/dist/signatures/disambiguation.js +99 -0
  279. package/dist/signatures/disambiguation.js.map +1 -0
  280. package/dist/signatures/distinguishing.d.ts +29 -0
  281. package/dist/signatures/distinguishing.d.ts.map +1 -0
  282. package/dist/signatures/distinguishing.js +108 -0
  283. package/dist/signatures/distinguishing.js.map +1 -0
  284. package/dist/signatures/generator.d.ts +20 -0
  285. package/dist/signatures/generator.d.ts.map +1 -0
  286. package/dist/signatures/generator.js +147 -0
  287. package/dist/signatures/generator.js.map +1 -0
  288. package/dist/signatures/index.d.ts +10 -0
  289. package/dist/signatures/index.d.ts.map +1 -0
  290. package/dist/signatures/index.js +10 -0
  291. package/dist/signatures/index.js.map +1 -0
  292. package/dist/signatures/inference.d.ts +37 -0
  293. package/dist/signatures/inference.d.ts.map +1 -0
  294. package/dist/signatures/inference.js +132 -0
  295. package/dist/signatures/inference.js.map +1 -0
  296. package/dist/tools/analyze-component.d.ts +41 -0
  297. package/dist/tools/analyze-component.d.ts.map +1 -0
  298. package/dist/tools/analyze-component.js +274 -0
  299. package/dist/tools/analyze-component.js.map +1 -0
  300. package/dist/tools/check-updates.d.ts +33 -0
  301. package/dist/tools/check-updates.d.ts.map +1 -0
  302. package/dist/tools/check-updates.js +81 -0
  303. package/dist/tools/check-updates.js.map +1 -0
  304. package/dist/tools/diff-versions.d.ts +39 -0
  305. package/dist/tools/diff-versions.d.ts.map +1 -0
  306. package/dist/tools/diff-versions.js +78 -0
  307. package/dist/tools/diff-versions.js.map +1 -0
  308. package/dist/tools/extract-primitive.d.ts +50 -0
  309. package/dist/tools/extract-primitive.d.ts.map +1 -0
  310. package/dist/tools/extract-primitive.js +145 -0
  311. package/dist/tools/extract-primitive.js.map +1 -0
  312. package/dist/tools/generate-report.d.ts +29 -0
  313. package/dist/tools/generate-report.d.ts.map +1 -0
  314. package/dist/tools/generate-report.js +36 -0
  315. package/dist/tools/generate-report.js.map +1 -0
  316. package/dist/tools/index.d.ts +11 -0
  317. package/dist/tools/index.d.ts.map +1 -0
  318. package/dist/tools/index.js +11 -0
  319. package/dist/tools/index.js.map +1 -0
  320. package/dist/tools/list-primitives.d.ts +41 -0
  321. package/dist/tools/list-primitives.d.ts.map +1 -0
  322. package/dist/tools/list-primitives.js +74 -0
  323. package/dist/tools/list-primitives.js.map +1 -0
  324. package/dist/tools/run-audit.d.ts +43 -0
  325. package/dist/tools/run-audit.d.ts.map +1 -0
  326. package/dist/tools/run-audit.js +60 -0
  327. package/dist/tools/run-audit.js.map +1 -0
  328. package/dist/types/index.d.ts +143 -0
  329. package/dist/types/index.d.ts.map +1 -0
  330. package/dist/types/index.js +5 -0
  331. package/dist/types/index.js.map +1 -0
  332. package/docs/architecture.md +88 -0
  333. package/docs/providers.md +47 -0
  334. package/docs/tools.md +143 -0
  335. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa;IAC5C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAW3B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,gIAAgI,CACjI;SACA,QAAQ,CAAC,QAAQ,EAAE,gDAAgD,CAAC;SACpE,MAAM,CAAC,yBAAyB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;SAC/E,MAAM,CAAC,0BAA0B,EAAE,8BAA8B,EAAE,IAAI,CAAC;SACxE,MAAM,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,OAAO,CAAC;SAC1E,MAAM,CACL,qBAAqB,EACrB,mDAAmD,EACnD,SAAS,CACV;SACA,MAAM,CAAC,oBAAoB,EAAE,wCAAwC,EAAE,SAAS,CAAC;SACjF,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC;YAC5C,QAAQ;YACR,YAAY,EAAE,OAAO,CAAC,OAAO;YAC7B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;QAC/C,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CLI command for running a full headless UI audit (analysis + diff + report).
3
+ */
4
+ import type { Command } from 'commander';
5
+ export declare function registerAuditCommand(program: Command): void;
6
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiG3D"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * CLI command for running a full headless UI audit (analysis + diff + report).
3
+ */
4
+ import { runAudit } from '../../audit/run-audit.js';
5
+ import { parseBackendMode, parseMigrationThreshold, DEFAULT_RUN_AUDIT_OPTIONS, } from '../flags.js';
6
+ export function registerAuditCommand(program) {
7
+ program
8
+ .command('audit')
9
+ .description('Run full audit: optionally analyze files, diff versions, check updates; writes report to .limps-headless/reports (run from project dir)')
10
+ .option('-f, --files <paths...>', 'Component file paths to analyze (relative to cwd)')
11
+ .option('--root-dir <dir>', 'Root directory for component discovery')
12
+ .option('-o, --output-dir <dir>', 'Output directory', '.limps-headless/reports')
13
+ .option('--format <format>', 'Report format: json, markdown, or both', 'both')
14
+ .option('--json', 'Output summary as JSON only')
15
+ .option('--backend <mode>', 'Backend policy: auto, base, or radix-legacy', DEFAULT_RUN_AUDIT_OPTIONS.backendMode)
16
+ .option('--ruleset <ruleset>', 'Ruleset selection: base-ui, radix-legacy, or both', 'base-ui')
17
+ .option('--evidence <level>', 'Evidence verbosity: summary or verbose', 'summary')
18
+ .option('--debug-ir', 'Write IR dump to output directory')
19
+ .option('--migration-threshold <level>', 'Fail if migration issues >= level: low, medium, high', DEFAULT_RUN_AUDIT_OPTIONS.migrationThreshold)
20
+ .option('--fail-on-mixed', 'Exit non-zero when Radix and Base are mixed')
21
+ .option('--no-include-legacy', 'Disallow Radix (enforce base-only when --backend=base)')
22
+ .action(async (options) => {
23
+ const files = options.files
24
+ ? (Array.isArray(options.files) ? options.files : [options.files]).flat()
25
+ : [];
26
+ const result = await runAudit({
27
+ scope: files.length > 0 ? { files } : undefined,
28
+ discovery: options.rootDir ? { rootDir: options.rootDir } : undefined,
29
+ outputDir: options.outputDir,
30
+ format: options.format === 'json' ? 'json' : options.format === 'markdown' ? 'markdown' : 'both',
31
+ ruleset: options.ruleset,
32
+ evidence: options.evidence,
33
+ debugIr: Boolean(options.debugIr),
34
+ policy: {
35
+ backendMode: parseBackendMode(options.backend ?? 'auto'),
36
+ migrationThreshold: parseMigrationThreshold(options.migrationThreshold ?? 'medium'),
37
+ failOnMixed: Boolean(options.failOnMixed),
38
+ includeLegacy: options.includeLegacy !== false,
39
+ },
40
+ });
41
+ if (options.json) {
42
+ console.log(JSON.stringify({
43
+ outputDir: result.outputDir,
44
+ jsonPath: result.jsonPath,
45
+ markdownPath: result.markdownPath,
46
+ analysisPath: result.analysisPath,
47
+ irPath: result.irPath,
48
+ diffPath: result.diffPath,
49
+ updatesPath: result.updatesPath,
50
+ summary: result.report.summary,
51
+ }, null, 2));
52
+ return;
53
+ }
54
+ console.log('Audit complete.');
55
+ console.log(`Output dir: ${result.outputDir}`);
56
+ if (result.markdownPath) {
57
+ console.log(`Report: ${result.markdownPath}`);
58
+ }
59
+ if (result.jsonPath) {
60
+ console.log(`JSON: ${result.jsonPath}`);
61
+ }
62
+ console.log(`Analysis: ${result.analysisPath}`);
63
+ if (result.irPath) {
64
+ console.log(`IR: ${result.irPath}`);
65
+ }
66
+ console.log(`Diff: ${result.diffPath}`);
67
+ console.log(`Updates: ${result.updatesPath}`);
68
+ console.log('');
69
+ const s = result.report.summary;
70
+ console.log(`Summary: ${s.totalComponents} components, ${s.contraventions} contraventions, issues: ${s.issuesByPriority.critical ?? 0} critical / ${s.issuesByPriority.high ?? 0} high / ${s.issuesByPriority.medium ?? 0} medium / ${s.issuesByPriority.low ?? 0} low`);
71
+ });
72
+ }
73
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CLI command for checking Radix updates.
3
+ */
4
+ import type { Command } from 'commander';
5
+ export declare function registerCheckUpdatesCommand(program: Command): void;
6
+ //# sourceMappingURL=check-updates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-updates.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check-updates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAelE"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * CLI command for checking Radix updates.
3
+ */
4
+ import { handleCheckUpdates } from '../../tools/check-updates.js';
5
+ function printJson(text, json) {
6
+ if (json) {
7
+ console.log(text);
8
+ return;
9
+ }
10
+ const data = JSON.parse(text);
11
+ console.log(`Current: ${data.currentVersion}`);
12
+ console.log(`Latest: ${data.latestVersion}`);
13
+ console.log(`Update: ${data.hasUpdate ? 'available' : 'none'}`);
14
+ if (data.diff) {
15
+ console.log(`Changes: ${data.diff.summary.totalChanges} total`);
16
+ }
17
+ }
18
+ export function registerCheckUpdatesCommand(program) {
19
+ program
20
+ .command('check-updates')
21
+ .description('Check for new Radix releases')
22
+ .option('--refresh', 'Refresh cached data')
23
+ .option('-p, --provider <provider>', 'Component library provider', 'radix')
24
+ .option('--json', 'Output raw JSON')
25
+ .action(async (options) => {
26
+ const response = await handleCheckUpdates({
27
+ refreshCache: Boolean(options.refresh),
28
+ provider: options.provider,
29
+ });
30
+ const text = response.content[0]?.text ?? '{}';
31
+ printJson(text, Boolean(options.json));
32
+ });
33
+ }
34
+ //# sourceMappingURL=check-updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-updates.js","sourceRoot":"","sources":["../../../src/cli/commands/check-updates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa;IAC5C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAK3B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,QAAQ,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC1C,MAAM,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,OAAO,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;YACxC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;QAC/C,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * CLI command: diff two Radix versions to see what breaks when upgrading
3
+ * (e.g. diff 1.0.0 --to latest).
4
+ */
5
+ import type { Command } from 'commander';
6
+ export declare function registerDiffCommand(program: Command): void;
7
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/diff.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2B1D"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * CLI command: diff two Radix versions to see what breaks when upgrading
3
+ * (e.g. diff 1.0.0 --to latest).
4
+ */
5
+ import { handleDiffVersions } from '../../tools/diff-versions.js';
6
+ function printJson(text, json) {
7
+ if (json) {
8
+ console.log(text);
9
+ return;
10
+ }
11
+ const data = JSON.parse(text);
12
+ console.log(`${data.fromVersion} → ${data.toVersion}`);
13
+ console.log(`Breaking changes: ${data.hasBreakingChanges ? 'yes' : 'no'}`);
14
+ console.log(`Summary: ${data.summary.totalChanges} total (${data.summary.breaking} breaking, ${data.summary.warnings} warnings, ${data.summary.info} info)`);
15
+ console.log('');
16
+ for (const change of data.changes) {
17
+ console.log(`[${change.severity}] ${change.description}`);
18
+ }
19
+ }
20
+ export function registerDiffCommand(program) {
21
+ program
22
+ .command('diff')
23
+ .description('Diff two Radix versions (from → to); not your code vs Radix')
24
+ .argument('<from-version>', 'From Radix version (e.g. your current)')
25
+ .option('-t, --to <version>', 'To Radix version (e.g. latest)', 'latest')
26
+ .option('-p, --primitives <list>', 'Comma-separated primitives')
27
+ .option('--breaking-only', 'Show only breaking changes')
28
+ .option('--provider <provider>', 'Component library provider', 'radix')
29
+ .option('--json', 'Output raw JSON')
30
+ .action(async (fromVersion, options) => {
31
+ const primitives = options.primitives
32
+ ? String(options.primitives)
33
+ .split(',')
34
+ .map((p) => p.trim())
35
+ .filter(Boolean)
36
+ : undefined;
37
+ const response = await handleDiffVersions({
38
+ fromVersion,
39
+ toVersion: options.to,
40
+ primitives,
41
+ breakingOnly: Boolean(options.breakingOnly),
42
+ provider: options.provider,
43
+ });
44
+ const text = response.content[0]?.text ?? '{}';
45
+ printJson(text, Boolean(options.json));
46
+ });
47
+ }
48
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/cli/commands/diff.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa;IAC5C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAM3B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CACT,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,cAAc,IAAI,CAAC,OAAO,CAAC,QAAQ,cAAc,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAChJ,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6DAA6D,CAAC;SAC1E,QAAQ,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SACpE,MAAM,CAAC,oBAAoB,EAAE,gCAAgC,EAAE,QAAQ,CAAC;SACxE,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC;SAC/D,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;SACvD,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,EAAE,OAAO,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;YACnC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;iBACvB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAC5B,MAAM,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;YACxC,WAAW;YACX,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,UAAU;YACV,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;YAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;QAC/C,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CLI command for extracting primitive contracts.
3
+ */
4
+ import type { Command } from 'commander';
5
+ export declare function registerExtractCommand(program: Command): void;
6
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiB7D"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * CLI command for extracting primitive contracts.
3
+ */
4
+ import { handleExtractPrimitive } from '../../tools/extract-primitive.js';
5
+ function printJson(text, json) {
6
+ if (json) {
7
+ console.log(text);
8
+ return;
9
+ }
10
+ const data = JSON.parse(text);
11
+ console.log(`${data.primitive} (${data.package}) @ ${data.version}`);
12
+ console.log(`State: ${data.behavior.statePattern}`);
13
+ console.log(`Composition: ${data.behavior.compositionPattern}`);
14
+ console.log(`Rendering: ${data.behavior.renderingPattern}`);
15
+ console.log('');
16
+ console.log('Sub-components:');
17
+ for (const sub of data.subComponents) {
18
+ console.log(`- ${sub.name}`);
19
+ for (const prop of sub.props) {
20
+ console.log(` - ${prop.name}: ${prop.type}`);
21
+ }
22
+ }
23
+ }
24
+ export function registerExtractCommand(program) {
25
+ program
26
+ .command('extract')
27
+ .description('Extract a primitive contract')
28
+ .argument('<primitive>', 'Primitive name (e.g., dialog)')
29
+ .option('-v, --version <version>', 'Version to query', 'latest')
30
+ .option('-p, --provider <provider>', 'Component library provider', 'radix')
31
+ .option('--json', 'Output raw JSON')
32
+ .action(async (primitive, options) => {
33
+ const response = await handleExtractPrimitive({
34
+ primitive,
35
+ version: options.version,
36
+ provider: options.provider,
37
+ });
38
+ const text = response.content[0]?.text ?? '{}';
39
+ printJson(text, Boolean(options.json));
40
+ });
41
+ }
42
+ //# sourceMappingURL=extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../src/cli/commands/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa;IAC5C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAU3B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,QAAQ,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACxD,MAAM,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,QAAQ,CAAC;SAC/D,MAAM,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,OAAO,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC;YAC5C,SAAS;YACT,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;QAC/C,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CLI command for listing primitives.
3
+ */
4
+ import type { Command } from 'commander';
5
+ export declare function registerListCommand(program: Command): void;
6
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe1D"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * CLI command for listing primitives.
3
+ */
4
+ import { handleListPrimitives } from '../../tools/list-primitives.js';
5
+ function printJson(text, json) {
6
+ if (json) {
7
+ console.log(text);
8
+ return;
9
+ }
10
+ const data = JSON.parse(text);
11
+ console.log(`Version: ${data.version}`);
12
+ for (const primitive of data.primitives) {
13
+ const description = primitive.description ? ` - ${primitive.description}` : '';
14
+ console.log(`- ${primitive.name} (${primitive.package})${description}`);
15
+ }
16
+ }
17
+ export function registerListCommand(program) {
18
+ program
19
+ .command('list')
20
+ .description('List available primitives')
21
+ .option('-v, --version <version>', 'Version to query', 'latest')
22
+ .option('-p, --provider <provider>', 'Component library provider', 'radix')
23
+ .option('--json', 'Output raw JSON')
24
+ .action(async (options) => {
25
+ const response = await handleListPrimitives({
26
+ version: options.version,
27
+ provider: options.provider,
28
+ });
29
+ const text = response.content[0]?.text ?? '{}';
30
+ printJson(text, Boolean(options.json));
31
+ });
32
+ }
33
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,SAAS,SAAS,CAAC,IAAY,EAAE,IAAa;IAC5C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAG3B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,QAAQ,CAAC;SAC/D,MAAM,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,OAAO,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;QAC/C,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CLI policy flags for Agent 0 #5. Types live in audit/types.ts to avoid circular deps.
3
+ */
4
+ import type { BackendMode, MigrationThreshold, RunAuditOptions } from '../audit/types.js';
5
+ export type { BackendMode, MigrationThreshold, RunAuditOptions };
6
+ export declare const DEFAULT_RUN_AUDIT_OPTIONS: RunAuditOptions;
7
+ export declare function parseBackendMode(value: string): BackendMode;
8
+ export declare function parseMigrationThreshold(value: string): MigrationThreshold;
9
+ //# sourceMappingURL=flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/cli/flags.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1F,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;AAEjE,eAAO,MAAM,yBAAyB,EAAE,eAKvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAI3D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAIzE"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * CLI policy flags for Agent 0 #5. Types live in audit/types.ts to avoid circular deps.
3
+ */
4
+ export const DEFAULT_RUN_AUDIT_OPTIONS = {
5
+ backendMode: 'auto',
6
+ migrationThreshold: 'medium',
7
+ failOnMixed: false,
8
+ includeLegacy: true,
9
+ };
10
+ export function parseBackendMode(value) {
11
+ const v = value?.toLowerCase();
12
+ if (v === 'base' || v === 'radix-legacy' || v === 'auto')
13
+ return v;
14
+ return 'auto';
15
+ }
16
+ export function parseMigrationThreshold(value) {
17
+ const v = value?.toLowerCase();
18
+ if (v === 'low' || v === 'medium' || v === 'high')
19
+ return v;
20
+ return 'medium';
21
+ }
22
+ //# sourceMappingURL=flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/cli/flags.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,CAAC,MAAM,yBAAyB,GAAoB;IACxD,WAAW,EAAE,MAAM;IACnB,kBAAkB,EAAE,QAAQ;IAC5B,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * CLI entry point for limps-headless.
3
+ */
4
+ export declare function runCli(): Promise<void>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwBH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB5C"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * CLI entry point for limps-headless.
3
+ */
4
+ import { Command } from 'commander';
5
+ import { registerAnalyzeCommand } from './commands/analyze.js';
6
+ import { registerAuditCommand } from './commands/audit.js';
7
+ import { registerCheckUpdatesCommand } from './commands/check-updates.js';
8
+ import { registerDiffCommand } from './commands/diff.js';
9
+ import { registerExtractCommand } from './commands/extract.js';
10
+ import { registerListCommand } from './commands/list.js';
11
+ import { readFileSync } from 'node:fs';
12
+ import { fileURLToPath } from 'node:url';
13
+ import { dirname, join } from 'node:path';
14
+ function getPackageVersion() {
15
+ try {
16
+ const currentDir = dirname(fileURLToPath(import.meta.url));
17
+ const packagePath = join(currentDir, '../../package.json');
18
+ const pkg = JSON.parse(readFileSync(packagePath, 'utf-8'));
19
+ return pkg.version ?? '0.0.0';
20
+ }
21
+ catch {
22
+ return '0.0.0';
23
+ }
24
+ }
25
+ export async function runCli() {
26
+ const program = new Command();
27
+ program
28
+ .name('limps-headless')
29
+ .description('Headless UI contract extraction and drift detection CLI')
30
+ .version(getPackageVersion(), '-V, --cli-version', 'output the CLI version');
31
+ registerListCommand(program);
32
+ registerExtractCommand(program);
33
+ registerAnalyzeCommand(program);
34
+ registerAuditCommand(program);
35
+ registerDiffCommand(program);
36
+ registerCheckUpdatesCommand(program);
37
+ await program.parseAsync(process.argv);
38
+ }
39
+ void runCli();
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAyB,CAAC;QACnF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,gBAAgB,CAAC;SACtB,WAAW,CAAC,yDAAyD,CAAC;SACtE,OAAO,CAAC,iBAAiB,EAAE,EAAE,mBAAmB,EAAE,wBAAwB,CAAC,CAAC;IAE/E,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAErC,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,KAAK,MAAM,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Config and defaults for limps-headless (Agent 0).
3
+ * Merges with limps root config when used as extension; used as defaults for standalone CLI.
4
+ */
5
+ import type { RunAuditOptions } from './audit/types.js';
6
+ export interface HeadlessConfig {
7
+ /** Base directory for cache (e.g. ~/.limps-headless) */
8
+ cacheDir?: string;
9
+ /** Policy options for audit */
10
+ audit?: Partial<RunAuditOptions>;
11
+ }
12
+ /**
13
+ * Resolve headless config: merge optional file/config with defaults.
14
+ * Does not read from disk; callers pass in parsed config if needed.
15
+ */
16
+ export declare function resolveHeadlessConfig(overrides?: HeadlessConfig | null): HeadlessConfig;
17
+ export { DEFAULT_RUN_AUDIT_OPTIONS } from './cli/flags.js';
18
+ export type { RunAuditOptions } from './audit/types.js';
19
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CAClC;AAMD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,cAAc,CAOvF;AAED,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/config.js ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Config and defaults for limps-headless (Agent 0).
3
+ * Merges with limps root config when used as extension; used as defaults for standalone CLI.
4
+ */
5
+ import { DEFAULT_RUN_AUDIT_OPTIONS } from './cli/flags.js';
6
+ const DEFAULTS = {
7
+ audit: DEFAULT_RUN_AUDIT_OPTIONS,
8
+ };
9
+ /**
10
+ * Resolve headless config: merge optional file/config with defaults.
11
+ * Does not read from disk; callers pass in parsed config if needed.
12
+ */
13
+ export function resolveHeadlessConfig(overrides) {
14
+ if (!overrides)
15
+ return { ...DEFAULTS };
16
+ return {
17
+ ...DEFAULTS,
18
+ ...overrides,
19
+ audit: { ...DEFAULTS.audit, ...overrides.audit },
20
+ };
21
+ }
22
+ export { DEFAULT_RUN_AUDIT_OPTIONS } from './cli/flags.js';
23
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAS3D,MAAM,QAAQ,GAAmB;IAC/B,KAAK,EAAE,yBAAyB;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAiC;IACrE,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvC,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,SAAS;QACZ,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE;KACjD,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Migration hints for contract changes.
3
+ */
4
+ import type { ChangeType } from './types.js';
5
+ interface HintContext {
6
+ target: string;
7
+ before?: string | null;
8
+ after?: string | null;
9
+ primitive?: string;
10
+ subComponent?: string;
11
+ }
12
+ /**
13
+ * Generate a migration hint for a change.
14
+ */
15
+ export declare function generateHint(changeType: ChangeType, context: HintContext): string;
16
+ /**
17
+ * Generate a description for a change.
18
+ */
19
+ export declare function generateDescription(changeType: ChangeType, context: HintContext): string;
20
+ export {};
21
+ //# sourceMappingURL=hints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hints.d.ts","sourceRoot":"","sources":["../../src/differ/hints.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2D7C,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAyBjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,WAAW,GACnB,MAAM,CA+BR"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Migration hints for contract changes.
3
+ */
4
+ /**
5
+ * Template-based migration hints for different change types.
6
+ */
7
+ const HINT_TEMPLATES = {
8
+ prop_removed: 'Remove usage of the "{target}" prop. {extra}',
9
+ prop_required: 'The "{target}" prop is now required. Add an explicit value for this prop.',
10
+ subcomponent_removed: 'The "{target}" sub-component has been removed. {extra}',
11
+ type_narrowed: 'The type for "{target}" has been narrowed from "{before}" to "{after}". Update values to match the new type.',
12
+ prop_deprecated: 'The "{target}" prop is deprecated. {extra}',
13
+ type_changed: 'The type for "{target}" has changed from "{before}" to "{after}". Review and update values accordingly.',
14
+ default_changed: 'The default value for "{target}" has changed from "{before}" to "{after}". Verify behavior is still as expected.',
15
+ prop_added: 'New prop "{target}" is available with type "{after}".',
16
+ subcomponent_added: 'New sub-component "{target}" is now available.',
17
+ type_widened: 'The type for "{target}" has been widened from "{before}" to "{after}". No changes required.',
18
+ };
19
+ /**
20
+ * Special case hints for known prop changes.
21
+ */
22
+ const KNOWN_PROP_HINTS = {
23
+ // Dialog-specific hints
24
+ allowPinchZoom: {
25
+ prop_removed: 'Use CSS touch-action property instead.',
26
+ },
27
+ // Popover/Tooltip positioning
28
+ side: {
29
+ type_narrowed: 'If using a removed side value, choose from the available options.',
30
+ },
31
+ align: {
32
+ type_narrowed: 'If using a removed align value, choose from the available options.',
33
+ },
34
+ // Common deprecations
35
+ asChild: {
36
+ prop_deprecated: 'Consider migrating to the new composition pattern if available.',
37
+ },
38
+ };
39
+ /**
40
+ * Hints for removed sub-components.
41
+ */
42
+ const SUBCOMPONENT_HINTS = {
43
+ Portal: 'Portaling behavior may have changed. Check the component documentation.',
44
+ Overlay: 'Consider using the Content component with overlay styling.',
45
+ Close: 'Use the onOpenChange callback to handle closing behavior.',
46
+ };
47
+ /**
48
+ * Generate a migration hint for a change.
49
+ */
50
+ export function generateHint(changeType, context) {
51
+ const template = HINT_TEMPLATES[changeType];
52
+ // Check for known prop-specific hints
53
+ const propHints = KNOWN_PROP_HINTS[context.target];
54
+ const specificHint = propHints?.[changeType];
55
+ // For sub-component changes, check subcomponent hints
56
+ let extra = '';
57
+ if ((changeType === 'subcomponent_removed' || changeType === 'prop_removed') &&
58
+ SUBCOMPONENT_HINTS[context.target]) {
59
+ extra = SUBCOMPONENT_HINTS[context.target];
60
+ }
61
+ else if (specificHint) {
62
+ extra = specificHint;
63
+ }
64
+ // Replace template variables
65
+ return template
66
+ .replace('{target}', context.target)
67
+ .replace('{before}', context.before ?? '')
68
+ .replace('{after}', context.after ?? '')
69
+ .replace('{extra}', extra)
70
+ .replace(/\s+$/, ''); // Trim trailing space if no extra
71
+ }
72
+ /**
73
+ * Generate a description for a change.
74
+ */
75
+ export function generateDescription(changeType, context) {
76
+ const location = context.subComponent
77
+ ? `${context.primitive}.${context.subComponent}`
78
+ : context.primitive || '';
79
+ const prefix = location ? `[${location}] ` : '';
80
+ switch (changeType) {
81
+ case 'prop_removed':
82
+ return `${prefix}Prop '${context.target}' was removed`;
83
+ case 'prop_required':
84
+ return `${prefix}Prop '${context.target}' is now required (was optional)`;
85
+ case 'subcomponent_removed':
86
+ return `${prefix}Sub-component '${context.target}' was removed`;
87
+ case 'type_narrowed':
88
+ return `${prefix}Type for '${context.target}' was narrowed from '${context.before}' to '${context.after}'`;
89
+ case 'prop_deprecated':
90
+ return `${prefix}Prop '${context.target}' is deprecated`;
91
+ case 'type_changed':
92
+ return `${prefix}Type for '${context.target}' changed from '${context.before}' to '${context.after}'`;
93
+ case 'default_changed':
94
+ return `${prefix}Default value for '${context.target}' changed from '${context.before}' to '${context.after}'`;
95
+ case 'prop_added':
96
+ return `${prefix}New prop '${context.target}' was added`;
97
+ case 'subcomponent_added':
98
+ return `${prefix}New sub-component '${context.target}' was added`;
99
+ case 'type_widened':
100
+ return `${prefix}Type for '${context.target}' was widened from '${context.before}' to '${context.after}'`;
101
+ default:
102
+ return `${prefix}Unknown change to '${context.target}'`;
103
+ }
104
+ }
105
+ //# sourceMappingURL=hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hints.js","sourceRoot":"","sources":["../../src/differ/hints.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,cAAc,GAA+B;IACjD,YAAY,EAAE,8CAA8C;IAC5D,aAAa,EACX,2EAA2E;IAC7E,oBAAoB,EAClB,wDAAwD;IAC1D,aAAa,EACX,8GAA8G;IAChH,eAAe,EACb,4CAA4C;IAC9C,YAAY,EACV,yGAAyG;IAC3G,eAAe,EACb,kHAAkH;IACpH,UAAU,EAAE,uDAAuD;IACnE,kBAAkB,EAAE,gDAAgD;IACpE,YAAY,EACV,6FAA6F;CAChG,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAA2C;IAC/D,wBAAwB;IACxB,cAAc,EAAE;QACd,YAAY,EAAE,wCAAwC;KACvD;IACD,8BAA8B;IAC9B,IAAI,EAAE;QACJ,aAAa,EACX,mEAAmE;KACtE;IACD,KAAK,EAAE;QACL,aAAa,EACX,oEAAoE;KACvE;IACD,sBAAsB;IACtB,OAAO,EAAE;QACP,eAAe,EACb,iEAAiE;KACpE;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAA2B;IACjD,MAAM,EACJ,yEAAyE;IAC3E,OAAO,EAAE,4DAA4D;IACrE,KAAK,EAAE,2DAA2D;CACnE,CAAC;AAUF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,UAAsB,EAAE,OAAoB;IACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAE5C,sCAAsC;IACtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC;IAE7C,sDAAsD;IACtD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IACE,CAAC,UAAU,KAAK,sBAAsB,IAAI,UAAU,KAAK,cAAc,CAAC;QACxE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAClC,CAAC;QACD,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,KAAK,GAAG,YAAY,CAAC;IACvB,CAAC;IAED,6BAA6B;IAC7B,OAAO,QAAQ;SACZ,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;SACnC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;SACzC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACvC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;SACzB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAkC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAsB,EACtB,OAAoB;IAEpB,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY;QACnC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,EAAE;QAChD,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAE5B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,GAAG,MAAM,SAAS,OAAO,CAAC,MAAM,eAAe,CAAC;QACzD,KAAK,eAAe;YAClB,OAAO,GAAG,MAAM,SAAS,OAAO,CAAC,MAAM,kCAAkC,CAAC;QAC5E,KAAK,sBAAsB;YACzB,OAAO,GAAG,MAAM,kBAAkB,OAAO,CAAC,MAAM,eAAe,CAAC;QAClE,KAAK,eAAe;YAClB,OAAO,GAAG,MAAM,aAAa,OAAO,CAAC,MAAM,wBAAwB,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,KAAK,GAAG,CAAC;QAC7G,KAAK,iBAAiB;YACpB,OAAO,GAAG,MAAM,SAAS,OAAO,CAAC,MAAM,iBAAiB,CAAC;QAC3D,KAAK,cAAc;YACjB,OAAO,GAAG,MAAM,aAAa,OAAO,CAAC,MAAM,mBAAmB,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,KAAK,GAAG,CAAC;QACxG,KAAK,iBAAiB;YACpB,OAAO,GAAG,MAAM,sBAAsB,OAAO,CAAC,MAAM,mBAAmB,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,KAAK,GAAG,CAAC;QACjH,KAAK,YAAY;YACf,OAAO,GAAG,MAAM,aAAa,OAAO,CAAC,MAAM,aAAa,CAAC;QAC3D,KAAK,oBAAoB;YACvB,OAAO,GAAG,MAAM,sBAAsB,OAAO,CAAC,MAAM,aAAa,CAAC;QACpE,KAAK,cAAc;YACjB,OAAO,GAAG,MAAM,aAAa,OAAO,CAAC,MAAM,uBAAuB,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,KAAK,GAAG,CAAC;QAC5G;YACE,OAAO,GAAG,MAAM,sBAAsB,OAAO,CAAC,MAAM,GAAG,CAAC;IAC5D,CAAC;AACH,CAAC"}