svger-cli 3.1.1 → 4.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 (724) hide show
  1. package/CHANGELOG.md +332 -0
  2. package/README.md +432 -25
  3. package/SECURITY.md +3 -3
  4. package/assets/svges/500px.svg +3 -0
  5. package/assets/svges/adobe.svg +3 -0
  6. package/assets/svges/adonis.svg +3 -0
  7. package/assets/svges/aeroplane-1.svg +3 -0
  8. package/assets/svges/agenda.svg +3 -0
  9. package/assets/svges/airbnb.svg +3 -0
  10. package/assets/svges/airtable.svg +3 -0
  11. package/assets/svges/alarm-1.svg +7 -0
  12. package/assets/svges/align-text-center.svg +6 -0
  13. package/assets/svges/align-text-left.svg +6 -0
  14. package/assets/svges/align-text-right.svg +6 -0
  15. package/assets/svges/alpinejs.svg +4 -0
  16. package/assets/svges/amazon-original.svg +5 -0
  17. package/assets/svges/amazon-pay.svg +7 -0
  18. package/assets/svges/amazon.svg +10 -0
  19. package/assets/svges/ambulance-1.svg +4 -0
  20. package/assets/svges/amd.svg +3 -0
  21. package/assets/svges/amex.svg +4 -0
  22. package/assets/svges/anchor.svg +3 -0
  23. package/assets/svges/android-old.svg +3 -0
  24. package/assets/svges/android.svg +3 -0
  25. package/assets/svges/angellist.svg +3 -0
  26. package/assets/svges/angle-double-down.svg +4 -0
  27. package/assets/svges/angle-double-left.svg +4 -0
  28. package/assets/svges/angle-double-right.svg +4 -0
  29. package/assets/svges/angle-double-up.svg +4 -0
  30. package/assets/svges/angular.svg +3 -0
  31. package/assets/svges/app-store.svg +3 -0
  32. package/assets/svges/apple-brand.svg +3 -0
  33. package/assets/svges/apple-music-alt.svg +3 -0
  34. package/assets/svges/apple-music.svg +3 -0
  35. package/assets/svges/apple-pay.svg +3 -0
  36. package/assets/svges/arc-browser.svg +6 -0
  37. package/assets/svges/arrow-all-direction.svg +6 -0
  38. package/assets/svges/arrow-angular-top-left.svg +3 -0
  39. package/assets/svges/arrow-angular-top-right.svg +3 -0
  40. package/assets/svges/arrow-both-direction-horizontal-1.svg +3 -0
  41. package/assets/svges/arrow-both-direction-vertical-1.svg +3 -0
  42. package/assets/svges/arrow-downward.svg +3 -0
  43. package/assets/svges/arrow-left-circle.svg +4 -0
  44. package/assets/svges/arrow-left.svg +3 -0
  45. package/assets/svges/arrow-right-circle.svg +4 -0
  46. package/assets/svges/arrow-right.svg +3 -0
  47. package/assets/svges/arrow-upward.svg +3 -0
  48. package/assets/svges/asana.svg +3 -0
  49. package/assets/svges/astro.svg +4 -0
  50. package/assets/svges/atlassian.svg +3 -0
  51. package/assets/svges/audi-alt.svg +3 -0
  52. package/assets/svges/audi.svg +3 -0
  53. package/assets/svges/aws.svg +3 -0
  54. package/assets/svges/azure.svg +3 -0
  55. package/assets/svges/badge-decagram-percent.svg +6 -0
  56. package/assets/svges/balloons.svg +3 -0
  57. package/assets/svges/ban-2.svg +3 -0
  58. package/assets/svges/bar-chart-4.svg +6 -0
  59. package/assets/svges/bar-chart-dollar.svg +6 -0
  60. package/assets/svges/basket-shopping-3.svg +5 -0
  61. package/assets/svges/beat.svg +3 -0
  62. package/assets/svges/behance.svg +5 -0
  63. package/assets/svges/bell-1.svg +3 -0
  64. package/assets/svges/bike.svg +6 -0
  65. package/assets/svges/bing.svg +5 -0
  66. package/assets/svges/bitbucket.svg +5 -0
  67. package/assets/svges/bitcoin.svg +5 -0
  68. package/assets/svges/bittorrent.svg +6 -0
  69. package/assets/svges/blogger-alt.svg +3 -0
  70. package/assets/svges/blogger.svg +3 -0
  71. package/assets/svges/bluetooth-logo.svg +3 -0
  72. package/assets/svges/bluetooth.svg +3 -0
  73. package/assets/svges/bmw.svg +7 -0
  74. package/assets/svges/board-writing-3.svg +3 -0
  75. package/assets/svges/bold.svg +3 -0
  76. package/assets/svges/bolt-2.svg +3 -0
  77. package/assets/svges/bolt-3.svg +3 -0
  78. package/assets/svges/book-1.svg +4 -0
  79. package/assets/svges/bookmark-1.svg +3 -0
  80. package/assets/svges/bookmark-circle.svg +4 -0
  81. package/assets/svges/books-2.svg +3 -0
  82. package/assets/svges/bootstrap-5-square.svg +3 -0
  83. package/assets/svges/bootstrap-5.svg +3 -0
  84. package/assets/svges/box-archive-1.svg +4 -0
  85. package/assets/svges/box-closed.svg +3 -0
  86. package/assets/svges/box-gift-1.svg +3 -0
  87. package/assets/svges/brave.svg +3 -0
  88. package/assets/svges/bricks.svg +3 -0
  89. package/assets/svges/bridge-3.svg +3 -0
  90. package/assets/svges/briefcase-1.svg +3 -0
  91. package/assets/svges/briefcase-2.svg +3 -0
  92. package/assets/svges/briefcase-plus-1.svg +4 -0
  93. package/assets/svges/brush-1-rotated.svg +3 -0
  94. package/assets/svges/brush-2.svg +3 -0
  95. package/assets/svges/btc.svg +3 -0
  96. package/assets/svges/bug-1.svg +3 -0
  97. package/assets/svges/buildings-1.svg +5 -0
  98. package/assets/svges/bulb-2.svg +3 -0
  99. package/assets/svges/bulb-4.svg +9 -0
  100. package/assets/svges/burger-1.svg +3 -0
  101. package/assets/svges/burger-drink.svg +4 -0
  102. package/assets/svges/bus-1.svg +5 -0
  103. package/assets/svges/busket-ball.svg +3 -0
  104. package/assets/svges/cake-1.svg +3 -0
  105. package/assets/svges/calculator-1.svg +8 -0
  106. package/assets/svges/calculator-2.svg +13 -0
  107. package/assets/svges/calendar-days.svg +9 -0
  108. package/assets/svges/camera-1.svg +4 -0
  109. package/assets/svges/camera-movie-1.svg +3 -0
  110. package/assets/svges/candy-cane-2.svg +3 -0
  111. package/assets/svges/candy-round-1.svg +3 -0
  112. package/assets/svges/canva.svg +3 -0
  113. package/assets/svges/capsule-1.svg +3 -0
  114. package/assets/svges/car-2.svg +5 -0
  115. package/assets/svges/car-4.svg +3 -0
  116. package/assets/svges/car-6.svg +5 -0
  117. package/assets/svges/caravan-1.svg +3 -0
  118. package/assets/svges/cart-1.svg +5 -0
  119. package/assets/svges/cart-2.svg +5 -0
  120. package/assets/svges/cash-app.svg +3 -0
  121. package/assets/svges/certificate-badge-1.svg +6 -0
  122. package/assets/svges/chat-bubble-2.svg +5 -0
  123. package/assets/svges/check-circle-1.svg +4 -0
  124. package/assets/svges/check-square-2.svg +4 -0
  125. package/assets/svges/check.svg +3 -0
  126. package/assets/svges/chevron-down-circle.svg +4 -0
  127. package/assets/svges/chevron-down.svg +3 -0
  128. package/assets/svges/chevron-left-circle.svg +4 -0
  129. package/assets/svges/chevron-left.svg +3 -0
  130. package/assets/svges/chevron-right-circle.svg +4 -0
  131. package/assets/svges/chevron-up-circle.svg +4 -0
  132. package/assets/svges/chevron-up.svg +3 -0
  133. package/assets/svges/chrome.svg +6 -0
  134. package/assets/svges/chromecast.svg +3 -0
  135. package/assets/svges/cisco.svg +3 -0
  136. package/assets/svges/claude.svg +3 -0
  137. package/assets/svges/clickup.svg +4 -0
  138. package/assets/svges/clipboard.svg +3 -0
  139. package/assets/svges/cloud-2.svg +3 -0
  140. package/assets/svges/cloud-bolt-1.svg +4 -0
  141. package/assets/svges/cloud-bolt-2.svg +4 -0
  142. package/assets/svges/cloud-check-circle.svg +5 -0
  143. package/assets/svges/cloud-download.svg +5 -0
  144. package/assets/svges/cloud-iot-2.svg +3 -0
  145. package/assets/svges/cloud-rain.svg +6 -0
  146. package/assets/svges/cloud-refresh-clockwise.svg +5 -0
  147. package/assets/svges/cloud-sun.svg +9 -0
  148. package/assets/svges/cloud-upload.svg +5 -0
  149. package/assets/svges/cloudflare.svg +3 -0
  150. package/assets/svges/code-1.svg +5 -0
  151. package/assets/svges/code-s.svg +5 -0
  152. package/assets/svges/codepen.svg +3 -0
  153. package/assets/svges/coffee-cup-2.svg +6 -0
  154. package/assets/svges/coinbase.svg +10 -0
  155. package/assets/svges/colour-palette-3.svg +7 -0
  156. package/assets/svges/comment-1-share.svg +4 -0
  157. package/assets/svges/comment-1-text.svg +5 -0
  158. package/assets/svges/comment-1.svg +3 -0
  159. package/assets/svges/compass-drafting-2.svg +3 -0
  160. package/assets/svges/connectdevelop.svg +3 -0
  161. package/assets/svges/copilot.svg +8 -0
  162. package/assets/svges/coral.svg +3 -0
  163. package/assets/svges/cpanel.svg +3 -0
  164. package/assets/svges/crane-4.svg +3 -0
  165. package/assets/svges/creative-commons.svg +4 -0
  166. package/assets/svges/credit-card-multiple.svg +3 -0
  167. package/assets/svges/crop-2.svg +3 -0
  168. package/assets/svges/crown-3.svg +3 -0
  169. package/assets/svges/css3.svg +3 -0
  170. package/assets/svges/dashboard-square-1.svg +6 -0
  171. package/assets/svges/database-2.svg +3 -0
  172. package/assets/svges/deno.svg +4 -0
  173. package/assets/svges/dev.svg +3 -0
  174. package/assets/svges/dialogflow.svg +4 -0
  175. package/assets/svges/diamonds-1.svg +3 -0
  176. package/assets/svges/diamonds-2.svg +3 -0
  177. package/assets/svges/digitalocean.svg +3 -0
  178. package/assets/svges/diners-club.svg +38 -0
  179. package/assets/svges/direction-ltr.svg +4 -0
  180. package/assets/svges/direction-rtl.svg +4 -0
  181. package/assets/svges/discord-chat.svg +5 -0
  182. package/assets/svges/discord.svg +3 -0
  183. package/assets/svges/discover.svg +3 -0
  184. package/assets/svges/docker.svg +3 -0
  185. package/assets/svges/dollar-circle.svg +4 -0
  186. package/assets/svges/dollar.svg +3 -0
  187. package/assets/svges/double-quotes-end-1.svg +4 -0
  188. package/assets/svges/download-1.svg +4 -0
  189. package/assets/svges/download-circle-1.svg +4 -0
  190. package/assets/svges/dribbble-symbol.svg +3 -0
  191. package/assets/svges/dribbble.svg +3 -0
  192. package/assets/svges/drizzle.svg +6 -0
  193. package/assets/svges/dropbox.svg +7 -0
  194. package/assets/svges/drupal.svg +3 -0
  195. package/assets/svges/dumbbell-1.svg +3 -0
  196. package/assets/svges/edge.svg +3 -0
  197. package/assets/svges/emoji-expressionless-flat-eyes.svg +6 -0
  198. package/assets/svges/emoji-expressionless.svg +6 -0
  199. package/assets/svges/emoji-grin.svg +6 -0
  200. package/assets/svges/emoji-sad.svg +6 -0
  201. package/assets/svges/emoji-smile-side.svg +6 -0
  202. package/assets/svges/emoji-smile-sunglass.svg +5 -0
  203. package/assets/svges/emoji-smile-tongue.svg +3 -0
  204. package/assets/svges/emoji-smile.svg +6 -0
  205. package/assets/svges/enter-down.svg +4 -0
  206. package/assets/svges/enter.svg +4 -0
  207. package/assets/svges/envato.svg +4 -0
  208. package/assets/svges/envelope-1.svg +3 -0
  209. package/assets/svges/eraser-1.svg +4 -0
  210. package/assets/svges/ethereum-logo.svg +4 -0
  211. package/assets/svges/euro.svg +3 -0
  212. package/assets/svges/exit-up.svg +4 -0
  213. package/assets/svges/exit.svg +4 -0
  214. package/assets/svges/expand-arrow-1.svg +3 -0
  215. package/assets/svges/expand-square-4.svg +6 -0
  216. package/assets/svges/expressjs.svg +4 -0
  217. package/assets/svges/eye.svg +4 -0
  218. package/assets/svges/facebook-messenger.svg +3 -0
  219. package/assets/svges/facebook-rounded.svg +4 -0
  220. package/assets/svges/facebook-square.svg +3 -0
  221. package/assets/svges/facebook.svg +3 -0
  222. package/assets/svges/facetime.svg +3 -0
  223. package/assets/svges/figma.svg +3 -0
  224. package/assets/svges/file-format-zip.svg +4 -0
  225. package/assets/svges/file-multiple.svg +4 -0
  226. package/assets/svges/file-pencil.svg +4 -0
  227. package/assets/svges/file-plus-circle.svg +5 -0
  228. package/assets/svges/file-question.svg +5 -0
  229. package/assets/svges/file-xmark.svg +4 -0
  230. package/assets/svges/firebase.svg +3 -0
  231. package/assets/svges/firefox.svg +3 -0
  232. package/assets/svges/firework-rocket-4.svg +3 -0
  233. package/assets/svges/fitbit.svg +3 -0
  234. package/assets/svges/flag-1.svg +3 -0
  235. package/assets/svges/flag-2.svg +3 -0
  236. package/assets/svges/flickr.svg +4 -0
  237. package/assets/svges/floppy-disk-1.svg +3 -0
  238. package/assets/svges/flower-2.svg +3 -0
  239. package/assets/svges/flutter.svg +3 -0
  240. package/assets/svges/folder-1.svg +3 -0
  241. package/assets/svges/ford.svg +3 -0
  242. package/assets/svges/framer.svg +3 -0
  243. package/assets/svges/funnel-1.svg +3 -0
  244. package/assets/svges/gallery.svg +4 -0
  245. package/assets/svges/game-pad-modern-1.svg +6 -0
  246. package/assets/svges/gatsby.svg +3 -0
  247. package/assets/svges/gauge-1.svg +5 -0
  248. package/assets/svges/gear-1.svg +4 -0
  249. package/assets/svges/gears-3.svg +6 -0
  250. package/assets/svges/gemini.svg +3 -0
  251. package/assets/svges/git.svg +3 -0
  252. package/assets/svges/github.svg +3 -0
  253. package/assets/svges/glass-juice-1.svg +3 -0
  254. package/assets/svges/globe-1.svg +3 -0
  255. package/assets/svges/globe-stand.svg +4 -0
  256. package/assets/svges/go.svg +7 -0
  257. package/assets/svges/goodreads.svg +3 -0
  258. package/assets/svges/google-cloud.svg +3 -0
  259. package/assets/svges/google-drive.svg +3 -0
  260. package/assets/svges/google-meet.svg +3 -0
  261. package/assets/svges/google-pay.svg +3 -0
  262. package/assets/svges/google-wallet.svg +3 -0
  263. package/assets/svges/google.svg +3 -0
  264. package/assets/svges/graduation-cap-1.svg +3 -0
  265. package/assets/svges/grammarly.svg +3 -0
  266. package/assets/svges/hacker-news.svg +3 -0
  267. package/assets/svges/hammer-1.svg +3 -0
  268. package/assets/svges/hammer-2.svg +3 -0
  269. package/assets/svges/hand-mic.svg +3 -0
  270. package/assets/svges/hand-shake.svg +3 -0
  271. package/assets/svges/hand-stop.svg +3 -0
  272. package/assets/svges/hand-taking-dollar.svg +4 -0
  273. package/assets/svges/hand-taking-leaf-1.svg +5 -0
  274. package/assets/svges/hand-taking-user.svg +5 -0
  275. package/assets/svges/hashnode.svg +3 -0
  276. package/assets/svges/hat-chef-3.svg +3 -0
  277. package/assets/svges/headphone-1.svg +3 -0
  278. package/assets/svges/heart.svg +3 -0
  279. package/assets/svges/helicopter-2.svg +4 -0
  280. package/assets/svges/helmet-safety-1.svg +3 -0
  281. package/assets/svges/hierarchy-1.svg +9 -0
  282. package/assets/svges/highlighter-1.svg +3 -0
  283. package/assets/svges/highlighter-2.svg +3 -0
  284. package/assets/svges/home-2.svg +3 -0
  285. package/assets/svges/hospital-2.svg +4 -0
  286. package/assets/svges/hourglass.svg +3 -0
  287. package/assets/svges/html5.svg +4 -0
  288. package/assets/svges/ibm.svg +3 -0
  289. package/assets/svges/id-card.svg +7 -0
  290. package/assets/svges/imdb.svg +7 -0
  291. package/assets/svges/indent.svg +8 -0
  292. package/assets/svges/info.svg +4 -0
  293. package/assets/svges/injection-1.svg +3 -0
  294. package/assets/svges/instagram-logotype.svg +3 -0
  295. package/assets/svges/instagram.svg +4 -0
  296. package/assets/svges/intel.svg +4 -0
  297. package/assets/svges/ios.svg +3 -0
  298. package/assets/svges/island-2.svg +4 -0
  299. package/assets/svges/jaguar.svg +3 -0
  300. package/assets/svges/jamstack.svg +3 -0
  301. package/assets/svges/java.svg +3 -0
  302. package/assets/svges/javascript.svg +3 -0
  303. package/assets/svges/jcb.svg +3 -0
  304. package/assets/svges/joomla.svg +6 -0
  305. package/assets/svges/jsfiddle.svg +4 -0
  306. package/assets/svges/key-1.svg +3 -0
  307. package/assets/svges/keyboard.svg +12 -0
  308. package/assets/svges/knife-fork-1.svg +5 -0
  309. package/assets/svges/kubernetes.svg +11 -0
  310. package/assets/svges/label-dollar-2.svg +4 -0
  311. package/assets/svges/laptop-2.svg +3 -0
  312. package/assets/svges/laptop-phone.svg +5 -0
  313. package/assets/svges/laravel.svg +3 -0
  314. package/assets/svges/layers-1.svg +4 -0
  315. package/assets/svges/layout-26.svg +3 -0
  316. package/assets/svges/layout-9.svg +3 -0
  317. package/assets/svges/leaf-1.svg +3 -0
  318. package/assets/svges/leaf-6.svg +4 -0
  319. package/assets/svges/lemon-squeezy.svg +6 -0
  320. package/assets/svges/life-guard-tube-1.svg +3 -0
  321. package/assets/svges/line-dashed.svg +5 -0
  322. package/assets/svges/line-dotted.svg +8 -0
  323. package/assets/svges/line-height.svg +7 -0
  324. package/assets/svges/line.svg +3 -0
  325. package/assets/svges/lineicons.svg +6 -0
  326. package/assets/svges/link-2-angular-right.svg +3 -0
  327. package/assets/svges/linkedin.svg +3 -0
  328. package/assets/svges/location-arrow-right.svg +3 -0
  329. package/assets/svges/locked-1.svg +4 -0
  330. package/assets/svges/locked-2.svg +4 -0
  331. package/assets/svges/loom.svg +3 -0
  332. package/assets/svges/magento.svg +4 -0
  333. package/assets/svges/magnet.svg +3 -0
  334. package/assets/svges/mailchimp.svg +3 -0
  335. package/assets/svges/map-marker-1.svg +6 -0
  336. package/assets/svges/map-marker-5.svg +4 -0
  337. package/assets/svges/map-pin-5.svg +3 -0
  338. package/assets/svges/markdown.svg +5 -0
  339. package/assets/svges/mastercard.svg +7 -0
  340. package/assets/svges/medium-alt.svg +3 -0
  341. package/assets/svges/medium.svg +3 -0
  342. package/assets/svges/megaphone-1.svg +3 -0
  343. package/assets/svges/menu-cheesburger.svg +8 -0
  344. package/assets/svges/menu-hamburger-1.svg +5 -0
  345. package/assets/svges/menu-meatballs-1.svg +5 -0
  346. package/assets/svges/menu-meatballs-2.svg +5 -0
  347. package/assets/svges/mercedes.svg +3 -0
  348. package/assets/svges/message-2-question.svg +5 -0
  349. package/assets/svges/message-2.svg +3 -0
  350. package/assets/svges/message-3-text.svg +5 -0
  351. package/assets/svges/meta-alt.svg +3 -0
  352. package/assets/svges/meta.svg +7 -0
  353. package/assets/svges/microphone-1.svg +4 -0
  354. package/assets/svges/microscope.svg +3 -0
  355. package/assets/svges/microsoft-edge.svg +5 -0
  356. package/assets/svges/microsoft-teams.svg +6 -0
  357. package/assets/svges/microsoft.svg +6 -0
  358. package/assets/svges/minus-circle.svg +4 -0
  359. package/assets/svges/minus.svg +3 -0
  360. package/assets/svges/mongodb.svg +3 -0
  361. package/assets/svges/monitor-code.svg +5 -0
  362. package/assets/svges/monitor-mac.svg +3 -0
  363. package/assets/svges/monitor.svg +3 -0
  364. package/assets/svges/moon-half-right-5.svg +3 -0
  365. package/assets/svges/mountains-2.svg +3 -0
  366. package/assets/svges/mouse-2.svg +3 -0
  367. package/assets/svges/mushroom-1.svg +3 -0
  368. package/assets/svges/mushroom-5.svg +6 -0
  369. package/assets/svges/music.svg +3 -0
  370. package/assets/svges/mysql.svg +3 -0
  371. package/assets/svges/nasa.svg +3 -0
  372. package/assets/svges/netflix.svg +3 -0
  373. package/assets/svges/netlify.svg +3 -0
  374. package/assets/svges/next-step-2.svg +3 -0
  375. package/assets/svges/nextjs.svg +3 -0
  376. package/assets/svges/nike.svg +3 -0
  377. package/assets/svges/nissan.svg +3 -0
  378. package/assets/svges/nodejs-alt.svg +3 -0
  379. package/assets/svges/nodejs.svg +3 -0
  380. package/assets/svges/notebook-1.svg +3 -0
  381. package/assets/svges/notion.svg +3 -0
  382. package/assets/svges/npm.svg +3 -0
  383. package/assets/svges/nuxt.svg +3 -0
  384. package/assets/svges/nvidia.svg +3 -0
  385. package/assets/svges/oculus.svg +4 -0
  386. package/assets/svges/open-ai.svg +3 -0
  387. package/assets/svges/opera-mini.svg +3 -0
  388. package/assets/svges/oracle.svg +3 -0
  389. package/assets/svges/outdent.svg +8 -0
  390. package/assets/svges/paddle.svg +3 -0
  391. package/assets/svges/page-break-1.svg +7 -0
  392. package/assets/svges/pagination.svg +7 -0
  393. package/assets/svges/paint-bucket.svg +3 -0
  394. package/assets/svges/paint-roller-1.svg +3 -0
  395. package/assets/svges/paperclip-1.svg +3 -0
  396. package/assets/svges/party-flags.svg +3 -0
  397. package/assets/svges/party-spray.svg +3 -0
  398. package/assets/svges/patreon.svg +3 -0
  399. package/assets/svges/pause.svg +4 -0
  400. package/assets/svges/payoneer.svg +4 -0
  401. package/assets/svges/paypal.svg +4 -0
  402. package/assets/svges/pen-to-square.svg +4 -0
  403. package/assets/svges/pencil-1.svg +3 -0
  404. package/assets/svges/pepsi.svg +4 -0
  405. package/assets/svges/phone.svg +4 -0
  406. package/assets/svges/photos.svg +4 -0
  407. package/assets/svges/php.svg +3 -0
  408. package/assets/svges/pie-chart-2.svg +3 -0
  409. package/assets/svges/pilcrow.svg +3 -0
  410. package/assets/svges/pimjo-logo.svg +9 -0
  411. package/assets/svges/pimjo-symbol.svg +3 -0
  412. package/assets/svges/pinterest.svg +3 -0
  413. package/assets/svges/pizza-2.svg +6 -0
  414. package/assets/svges/placeholder-dollar.svg +4 -0
  415. package/assets/svges/plantscale.svg +3 -0
  416. package/assets/svges/play-store.svg +3 -0
  417. package/assets/svges/play.svg +3 -0
  418. package/assets/svges/playstation.svg +5 -0
  419. package/assets/svges/plug-1.svg +3 -0
  420. package/assets/svges/plus-circle.svg +4 -0
  421. package/assets/svges/plus.svg +3 -0
  422. package/assets/svges/pnpm.svg +10 -0
  423. package/assets/svges/postgresql.svg +3 -0
  424. package/assets/svges/postman.svg +3 -0
  425. package/assets/svges/pound.svg +3 -0
  426. package/assets/svges/power-button.svg +4 -0
  427. package/assets/svges/previous-step-2.svg +3 -0
  428. package/assets/svges/printer.svg +3 -0
  429. package/assets/svges/prisma.svg +3 -0
  430. package/assets/svges/producthunt.svg +4 -0
  431. package/assets/svges/proton-mail-logo.svg +3 -0
  432. package/assets/svges/proton-mail-symbol.svg +3 -0
  433. package/assets/svges/python.svg +3 -0
  434. package/assets/svges/question-mark-circle.svg +5 -0
  435. package/assets/svges/question-mark.svg +4 -0
  436. package/assets/svges/quora.svg +4 -0
  437. package/assets/svges/radis.svg +3 -0
  438. package/assets/svges/react.svg +3 -0
  439. package/assets/svges/reddit.svg +6 -0
  440. package/assets/svges/refresh-circle-1-clockwise.svg +4 -0
  441. package/assets/svges/refresh-dollar-1.svg +5 -0
  442. package/assets/svges/refresh-user-1.svg +6 -0
  443. package/assets/svges/remix-js.svg +4 -0
  444. package/assets/svges/road-1.svg +6 -0
  445. package/assets/svges/rocket-5.svg +5 -0
  446. package/assets/svges/route-1.svg +7 -0
  447. package/assets/svges/rss-right.svg +6 -0
  448. package/assets/svges/ruler-1.svg +3 -0
  449. package/assets/svges/ruler-pen.svg +4 -0
  450. package/assets/svges/rupee.svg +3 -0
  451. package/assets/svges/safari.svg +35 -0
  452. package/assets/svges/sanity.svg +20 -0
  453. package/assets/svges/school-bench-1.svg +4 -0
  454. package/assets/svges/school-bench-2.svg +4 -0
  455. package/assets/svges/scissors-1-vertical.svg +4 -0
  456. package/assets/svges/scoter.svg +8 -0
  457. package/assets/svges/scroll-down-2.svg +6 -0
  458. package/assets/svges/search-1.svg +3 -0
  459. package/assets/svges/search-2.svg +4 -0
  460. package/assets/svges/search-minus.svg +4 -0
  461. package/assets/svges/search-plus.svg +4 -0
  462. package/assets/svges/search-text.svg +5 -0
  463. package/assets/svges/select-cursor-1.svg +10 -0
  464. package/assets/svges/seo-monitor.svg +6 -0
  465. package/assets/svges/service-bell-1.svg +3 -0
  466. package/assets/svges/share-1-circle.svg +4 -0
  467. package/assets/svges/share-1.svg +3 -0
  468. package/assets/svges/share-2.svg +4 -0
  469. package/assets/svges/shield-2-check.svg +4 -0
  470. package/assets/svges/shield-2.svg +3 -0
  471. package/assets/svges/shield-dollar.svg +4 -0
  472. package/assets/svges/shift-left.svg +4 -0
  473. package/assets/svges/shift-right.svg +4 -0
  474. package/assets/svges/ship-1.svg +5 -0
  475. package/assets/svges/shirt-1.svg +3 -0
  476. package/assets/svges/shopify.svg +3 -0
  477. package/assets/svges/shovel.svg +3 -0
  478. package/assets/svges/shuffle.svg +3 -0
  479. package/assets/svges/sign-post-left.svg +3 -0
  480. package/assets/svges/signal-app.svg +3 -0
  481. package/assets/svges/signs-post-2.svg +3 -0
  482. package/assets/svges/sketch.svg +3 -0
  483. package/assets/svges/skype.svg +3 -0
  484. package/assets/svges/slack.svg +10 -0
  485. package/assets/svges/slice-2.svg +3 -0
  486. package/assets/svges/sliders-horizontal-square-2.svg +7 -0
  487. package/assets/svges/slideshare.svg +5 -0
  488. package/assets/svges/snapchat.svg +3 -0
  489. package/assets/svges/sort-alphabetical.svg +5 -0
  490. package/assets/svges/sort-high-to-low.svg +7 -0
  491. package/assets/svges/soundcloud.svg +3 -0
  492. package/assets/svges/spacex.svg +4 -0
  493. package/assets/svges/spellcheck.svg +4 -0
  494. package/assets/svges/spinner-2-sacle.svg +10 -0
  495. package/assets/svges/spinner-3.svg +3 -0
  496. package/assets/svges/sports.svg +3 -0
  497. package/assets/svges/spotify-alt.svg +6 -0
  498. package/assets/svges/spotify.svg +3 -0
  499. package/assets/svges/squarespace.svg +3 -0
  500. package/assets/svges/stackoverflow.svg +8 -0
  501. package/assets/svges/stamp.svg +3 -0
  502. package/assets/svges/star-fat-half-2.svg +4 -0
  503. package/assets/svges/star-fat.svg +3 -0
  504. package/assets/svges/star-sharp-disabled.svg +4 -0
  505. package/assets/svges/statista.svg +3 -0
  506. package/assets/svges/steam.svg +5 -0
  507. package/assets/svges/stethoscope-1.svg +3 -0
  508. package/assets/svges/stopwatch.svg +5 -0
  509. package/assets/svges/storage-hdd-2.svg +4 -0
  510. package/assets/svges/strikethrough-1.svg +5 -0
  511. package/assets/svges/stripe.svg +9 -0
  512. package/assets/svges/stumbleupon.svg +3 -0
  513. package/assets/svges/sun-1.svg +11 -0
  514. package/assets/svges/supabase.svg +5 -0
  515. package/assets/svges/surfboard-2.svg +3 -0
  516. package/assets/svges/svelte.svg +3 -0
  517. package/assets/svges/swift.svg +3 -0
  518. package/assets/svges/tab.svg +4 -0
  519. package/assets/svges/tailwindcss.svg +3 -0
  520. package/assets/svges/target-user.svg +5 -0
  521. package/assets/svges/telegram.svg +3 -0
  522. package/assets/svges/telephone-1.svg +4 -0
  523. package/assets/svges/telephone-3.svg +5 -0
  524. package/assets/svges/tesla.svg +3 -0
  525. package/assets/svges/text-format-remove.svg +5 -0
  526. package/assets/svges/text-format.svg +5 -0
  527. package/assets/svges/text-paragraph.svg +6 -0
  528. package/assets/svges/thumbs-down-3.svg +3 -0
  529. package/assets/svges/thumbs-up-3.svg +3 -0
  530. package/assets/svges/ticket-1.svg +3 -0
  531. package/assets/svges/tickets-3.svg +7 -0
  532. package/assets/svges/tiktok-alt.svg +3 -0
  533. package/assets/svges/tiktok.svg +3 -0
  534. package/assets/svges/tower-broadcast-1.svg +7 -0
  535. package/assets/svges/toyota.svg +4 -0
  536. package/assets/svges/train-1.svg +4 -0
  537. package/assets/svges/train-3.svg +5 -0
  538. package/assets/svges/trash-3.svg +5 -0
  539. package/assets/svges/tree-2.svg +3 -0
  540. package/assets/svges/trees-3.svg +3 -0
  541. package/assets/svges/trello.svg +3 -0
  542. package/assets/svges/trend-down-1.svg +3 -0
  543. package/assets/svges/trend-up-1.svg +3 -0
  544. package/assets/svges/trophy-1.svg +3 -0
  545. package/assets/svges/trowel-1.svg +3 -0
  546. package/assets/svges/truck-delivery-1.svg +3 -0
  547. package/assets/svges/tumblr.svg +3 -0
  548. package/assets/svges/turborepo.svg +4 -0
  549. package/assets/svges/twitch.svg +3 -0
  550. package/assets/svges/twitter-old.svg +3 -0
  551. package/assets/svges/typescript.svg +3 -0
  552. package/assets/svges/uber-symbol.svg +3 -0
  553. package/assets/svges/uber.svg +3 -0
  554. package/assets/svges/ubuntu.svg +3 -0
  555. package/assets/svges/underline.svg +4 -0
  556. package/assets/svges/unlink-2-angular-eft.svg +8 -0
  557. package/assets/svges/unlocked-2.svg +4 -0
  558. package/assets/svges/unsplash.svg +4 -0
  559. package/assets/svges/upload-1.svg +4 -0
  560. package/assets/svges/upload-circle-1.svg +4 -0
  561. package/assets/svges/user-4.svg +4 -0
  562. package/assets/svges/user-multiple-4.svg +6 -0
  563. package/assets/svges/vector-nodes-6.svg +3 -0
  564. package/assets/svges/vector-nodes-7.svg +3 -0
  565. package/assets/svges/vercel.svg +3 -0
  566. package/assets/svges/vimeo.svg +3 -0
  567. package/assets/svges/visa.svg +3 -0
  568. package/assets/svges/vite.svg +6 -0
  569. package/assets/svges/vk.svg +3 -0
  570. package/assets/svges/vmware.svg +4 -0
  571. package/assets/svges/volkswagen.svg +8 -0
  572. package/assets/svges/volume-1.svg +5 -0
  573. package/assets/svges/volume-high.svg +6 -0
  574. package/assets/svges/volume-low.svg +4 -0
  575. package/assets/svges/volume-mute.svg +6 -0
  576. package/assets/svges/volume-off.svg +3 -0
  577. package/assets/svges/vs-code.svg +3 -0
  578. package/assets/svges/vuejs.svg +3 -0
  579. package/assets/svges/wallet-1.svg +3 -0
  580. package/assets/svges/watch-beat-1.svg +4 -0
  581. package/assets/svges/water-drop-1.svg +4 -0
  582. package/assets/svges/webflow.svg +3 -0
  583. package/assets/svges/webhooks.svg +3 -0
  584. package/assets/svges/wechat.svg +4 -0
  585. package/assets/svges/weight-machine-1.svg +4 -0
  586. package/assets/svges/whatsapp.svg +3 -0
  587. package/assets/svges/wheelbarrow-empty.svg +3 -0
  588. package/assets/svges/wheelchair-1.svg +3 -0
  589. package/assets/svges/windows.svg +6 -0
  590. package/assets/svges/wise.svg +3 -0
  591. package/assets/svges/wordpress.svg +3 -0
  592. package/assets/svges/www-cursor.svg +5 -0
  593. package/assets/svges/www.svg +4 -0
  594. package/assets/svges/x.svg +3 -0
  595. package/assets/svges/xampp.svg +5 -0
  596. package/assets/svges/xbox.svg +6 -0
  597. package/assets/svges/xmark-circle.svg +4 -0
  598. package/assets/svges/xmark.svg +3 -0
  599. package/assets/svges/xrp.svg +3 -0
  600. package/assets/svges/yahoo.svg +3 -0
  601. package/assets/svges/yarn.svg +4 -0
  602. package/assets/svges/ycombinator.svg +3 -0
  603. package/assets/svges/yen.svg +3 -0
  604. package/assets/svges/youtube-kids.svg +3 -0
  605. package/assets/svges/youtube-music.svg +4 -0
  606. package/assets/svges/youtube.svg +3 -0
  607. package/assets/svges/zapier.svg +3 -0
  608. package/assets/svges/zero-size.svg +6 -0
  609. package/assets/svges/zoom.svg +4 -0
  610. package/bin/test-svger.js +163 -0
  611. package/dist/__tests__/__mocks__/visual-diff.d.ts +7 -0
  612. package/dist/__tests__/__mocks__/visual-diff.js +13 -0
  613. package/dist/__tests__/fixtures.js +18 -18
  614. package/dist/cli.js +148 -2
  615. package/dist/config.js +4 -1
  616. package/dist/core/enhanced-plugin-manager.d.ts +107 -0
  617. package/dist/core/enhanced-plugin-manager.js +315 -0
  618. package/dist/core/error-handler.d.ts +1 -1
  619. package/dist/core/error-handler.js +14 -17
  620. package/dist/core/framework-templates.js +37 -47
  621. package/dist/core/logger.js +0 -1
  622. package/dist/core/performance-engine.js +10 -15
  623. package/dist/core/plugin-manager.js +4 -4
  624. package/dist/core/style-compiler.d.ts +0 -1
  625. package/dist/core/style-compiler.js +3 -6
  626. package/dist/index.d.ts +4 -0
  627. package/dist/index.js +4 -0
  628. package/dist/integrations/babel.d.ts +1 -1
  629. package/dist/integrations/babel.js +1 -1
  630. package/dist/integrations/jest-preset.js +1 -1
  631. package/dist/optimizers/advanced-stages.d.ts +40 -0
  632. package/dist/optimizers/advanced-stages.js +297 -0
  633. package/dist/optimizers/basic-cleaner.d.ts +68 -0
  634. package/dist/optimizers/basic-cleaner.js +198 -0
  635. package/dist/optimizers/collapse-useless-groups.d.ts +26 -0
  636. package/dist/optimizers/collapse-useless-groups.js +104 -0
  637. package/dist/optimizers/command-optimizer.d.ts +48 -0
  638. package/dist/optimizers/command-optimizer.js +299 -0
  639. package/dist/optimizers/index.d.ts +14 -0
  640. package/dist/optimizers/index.js +15 -0
  641. package/dist/optimizers/move-attrs-to-parent.d.ts +31 -0
  642. package/dist/optimizers/move-attrs-to-parent.js +115 -0
  643. package/dist/optimizers/numeric-optimizer.d.ts +43 -0
  644. package/dist/optimizers/numeric-optimizer.js +383 -0
  645. package/dist/optimizers/optimizer-pipeline.d.ts +39 -0
  646. package/dist/optimizers/optimizer-pipeline.js +81 -0
  647. package/dist/optimizers/path-deduplicator.d.ts +37 -0
  648. package/dist/optimizers/path-deduplicator.js +406 -0
  649. package/dist/optimizers/path-parser.d.ts +60 -0
  650. package/dist/optimizers/path-parser.js +428 -0
  651. package/dist/optimizers/path-shortener.d.ts +41 -0
  652. package/dist/optimizers/path-shortener.js +274 -0
  653. package/dist/optimizers/path-simplifier.d.ts +30 -0
  654. package/dist/optimizers/path-simplifier.js +326 -0
  655. package/dist/optimizers/remove-hidden-empty.d.ts +29 -0
  656. package/dist/optimizers/remove-hidden-empty.js +130 -0
  657. package/dist/optimizers/remove-unused-defs.d.ts +24 -0
  658. package/dist/optimizers/remove-unused-defs.js +132 -0
  659. package/dist/optimizers/shape-conversion.d.ts +74 -0
  660. package/dist/optimizers/shape-conversion.js +277 -0
  661. package/dist/optimizers/style-optimizer.d.ts +30 -0
  662. package/dist/optimizers/style-optimizer.js +324 -0
  663. package/dist/optimizers/svg-tree-parser.d.ts +55 -0
  664. package/dist/optimizers/svg-tree-parser.js +352 -0
  665. package/dist/optimizers/transform-collapsing.d.ts +38 -0
  666. package/dist/optimizers/transform-collapsing.js +444 -0
  667. package/dist/optimizers/transform-optimizer.d.ts +65 -0
  668. package/dist/optimizers/transform-optimizer.js +320 -0
  669. package/dist/optimizers/tree-serializer.d.ts +46 -0
  670. package/dist/optimizers/tree-serializer.js +190 -0
  671. package/dist/optimizers/tree-stages.d.ts +27 -0
  672. package/dist/optimizers/tree-stages.js +141 -0
  673. package/dist/optimizers/types.d.ts +207 -0
  674. package/dist/optimizers/types.js +122 -0
  675. package/dist/plugins/color-replacer.d.ts +39 -0
  676. package/dist/plugins/color-replacer.js +126 -0
  677. package/dist/plugins/gradient-optimizer.d.ts +33 -0
  678. package/dist/plugins/gradient-optimizer.js +197 -0
  679. package/dist/plugins/stroke-normalizer.d.ts +33 -0
  680. package/dist/plugins/stroke-normalizer.js +166 -0
  681. package/dist/plugins/watermark-remover.d.ts +32 -0
  682. package/dist/plugins/watermark-remover.js +133 -0
  683. package/dist/processors/svg-processor.d.ts +17 -2
  684. package/dist/processors/svg-processor.js +108 -32
  685. package/dist/services/config.d.ts +4 -0
  686. package/dist/services/config.js +62 -1
  687. package/dist/services/file-watcher.d.ts +1 -1
  688. package/dist/services/file-watcher.js +1 -1
  689. package/dist/services/svg-service.d.ts +4 -0
  690. package/dist/services/svg-service.js +41 -7
  691. package/dist/types/index.d.ts +1 -0
  692. package/dist/types/plugin-system.d.ts +153 -0
  693. package/dist/types/plugin-system.js +5 -0
  694. package/dist/utils/visual-diff.d.ts +150 -0
  695. package/dist/utils/visual-diff.js +247 -0
  696. package/dist/watch.js +0 -2
  697. package/docs/COMPLETE-ACHIEVEMENT-SUMMARY.md +401 -0
  698. package/docs/MIGRATION-4.0.0.md +271 -0
  699. package/docs/PIPELINE-INTEGRATION.md +406 -0
  700. package/docs/PLUGIN-DEVELOPMENT-GUIDE.md +807 -0
  701. package/docs/QUICK-REFERENCE.md +176 -0
  702. package/docs/SAMPLE-SVGS-TESTING.md +276 -0
  703. package/docs/archive/PHASE-1-ARCHITECTURE.md +345 -0
  704. package/docs/archive/PHASE-1-IMPLEMENTATION.md +307 -0
  705. package/docs/archive/PHASE-1-SUMMARY.md +298 -0
  706. package/docs/archive/PHASE-2-COMPLETE.md +207 -0
  707. package/docs/archive/PHASE-3-SUMMARY.md +149 -0
  708. package/docs/archive/PHASE-4.3-COMMAND-OPTIMIZER.md +323 -0
  709. package/docs/archive/PHASE-4.4-PATH-SIMPLIFICATION.md +81 -0
  710. package/docs/archive/PHASE-4.5-PATH-DEDUPLICATION.md +449 -0
  711. package/docs/archive/PHASE-5.1-SUCCESS-REPORT.md +207 -0
  712. package/docs/archive/PHASE-5.1-TRANSFORM-COLLAPSING.md +362 -0
  713. package/docs/archive/PHASE-6.1-SHAPE-CONVERSION-DESIGN.md +518 -0
  714. package/docs/archive/PHASE-6.2-PLUGIN-SYSTEM-STATUS.md +403 -0
  715. package/docs/archive/PHASE-6.3-FINAL-STATUS.md +193 -0
  716. package/docs/archive/PHASE-6.3-VALIDATION-PROGRESS.md +345 -0
  717. package/docs/archive/PHASE-6.3-VISUAL-DIFF-DESIGN.md +553 -0
  718. package/docs/archive/PHASE-6.3-VISUAL-DIFF-SUMMARY.md +367 -0
  719. package/docs/archive/PHASE-6.3-XML-SERIALIZATION-FIX.md +210 -0
  720. package/docs/archive/RELEASE-NOTES-3.2.0.md +344 -0
  721. package/docs/archive/RELEASE-PREP-3.2.0.md +376 -0
  722. package/docs/performance/PERFORMANCE-RESULTS.md +31 -0
  723. package/docs/performance/REAL-WORLD-BENCHMARKS.md +159 -0
  724. package/package.json +16 -6
@@ -0,0 +1,176 @@
1
+ # Quick Reference: Optimization Pipeline
2
+
3
+ ## 🎯 Achievement: 57.77% Reduction at MAXIMUM Level
4
+
5
+ ---
6
+
7
+ ## Usage Examples
8
+
9
+ ### Basic Usage (Recommended)
10
+ ```typescript
11
+ import { SVGProcessor, OptLevel } from 'svger-cli';
12
+
13
+ const processor = SVGProcessor.getInstance();
14
+ processor.setOptimizationLevel(OptLevel.BALANCED);
15
+
16
+ const optimized = await processor.cleanSVGContent(svgString);
17
+ // Result: 43.33% reduction (safe + fast)
18
+ ```
19
+
20
+ ### Maximum Compression
21
+ ```typescript
22
+ processor.setOptimizationLevel(OptLevel.MAXIMUM);
23
+ const optimized = await processor.cleanSVGContent(svgString);
24
+ // Result: 57.77% reduction (everything enabled)
25
+ ```
26
+
27
+ ### Custom Configuration
28
+ ```typescript
29
+ import { svgProcessor } from 'svger-cli';
30
+
31
+ const result = await svgProcessor.cleanSVGContent(svgString, {
32
+ optimizationLevel: OptLevel.AGGRESSIVE,
33
+ precision: 1,
34
+ enablePathOptimization: true,
35
+ enableTransformCollapsing: true,
36
+ curveTolerance: 0.5,
37
+ });
38
+ ```
39
+
40
+ ---
41
+
42
+ ## Optimization Levels
43
+
44
+ | Level | Reduction | Speed | Safety | Use Case |
45
+ |-------|-----------|-------|--------|----------|
46
+ | **BALANCED** | 43.33% | Fast | High | Development (recommended) |
47
+ | **AGGRESSIVE** | 48.91% | Medium | Medium | CI/CD builds |
48
+ | **MAXIMUM** | 57.77% | Slower | Lower | Production bundles |
49
+
50
+ ---
51
+
52
+ ## Optimizer Breakdown
53
+
54
+ ### Phase 3: Attributes (BALANCED+)
55
+ - ✅ Numeric: Decimal precision, coordinates
56
+ - ✅ Style: Colors, units, defaults
57
+ - ✅ Transform: Matrix simplification (AGGRESSIVE+)
58
+
59
+ ### Phase 4: Paths (AGGRESSIVE+)
60
+ - ✅ Parser: Tokenization, abs/rel conversion
61
+ - ✅ Shortener: Command merging, H/V
62
+ - ✅ **Commands: C→S, C→Q, Q→T, C/Q→L** 🆕
63
+ - ⏳ Simplifier: Douglas-Peucker (Phase 4.4)
64
+ - ⏳ Merger: Repeated shapes (Phase 4.5)
65
+
66
+ ### Phase 5: Transforms (MAXIMUM only)
67
+ - ✅ **Collapsing: Propagate, bake, unwrap** 🆕
68
+
69
+ ---
70
+
71
+ ## Test Results
72
+
73
+ ### Command Optimizer (Phase 4.3)
74
+ ```
75
+ C→S: 25.68% | C→Q: 29.23% | Q→T: 32.76%
76
+ C→L: 27.54% | Q→L: 31.67% | Overall: 23.44%
77
+ ```
78
+
79
+ ### Transform Collapsing (Phase 5.1)
80
+ ```
81
+ Nested Groups: 50.75% | Illustrator: 49.76%
82
+ Average: 42.42% across 8 tests
83
+ ```
84
+
85
+ ### Complete Pipeline
86
+ ```
87
+ 824 bytes → 348 bytes (57.77% reduction)
88
+ ```
89
+
90
+ ---
91
+
92
+ ## Config Options
93
+
94
+ ```typescript
95
+ interface OptConfig {
96
+ // Level
97
+ optimizationLevel: 'BALANCED' | 'AGGRESSIVE' | 'MAXIMUM';
98
+
99
+ // Precision (0=aggressive, 3=conservative)
100
+ precision: number;
101
+
102
+ // Phase 3 (BALANCED+)
103
+ enableNumericOptimization: boolean;
104
+ enableStyleOptimization: boolean;
105
+ enableTransformOptimization: boolean; // AGGRESSIVE+
106
+
107
+ // Phase 4 (AGGRESSIVE+)
108
+ enablePathOptimization: boolean;
109
+ curveTolerance: number; // 0.5 recommended
110
+
111
+ // Phase 5 (MAXIMUM only)
112
+ enableTransformCollapsing: boolean;
113
+ }
114
+ ```
115
+
116
+ ---
117
+
118
+ ## File Structure
119
+
120
+ ```
121
+ src/optimizers/
122
+ ├── types.ts # OptLevel enum, OptConfig
123
+ ├── optimizer-pipeline.ts # Pipeline architecture
124
+ ├── advanced-stages.ts # Phase 3-5 wrappers
125
+
126
+ ├── numeric-optimizer.ts # Phase 3.1
127
+ ├── style-optimizer.ts # Phase 3.2
128
+ ├── transform-optimizer.ts # Phase 3.3
129
+
130
+ ├── path-parser.ts # Phase 4.1 (480 lines)
131
+ ├── path-shortener.ts # Phase 4.2 (320 lines)
132
+ ├── command-optimizer.ts # Phase 4.3 (434 lines) 🆕
133
+
134
+ └── transform-collapsing.ts # Phase 5.1 (540 lines) 🆕
135
+ ```
136
+
137
+ ---
138
+
139
+ ## Performance
140
+
141
+ ### Time Complexity: O(n)
142
+ - Small (<10KB): <10ms
143
+ - Medium (10-100KB): 10-50ms
144
+ - Large (100KB-1MB): 50-200ms
145
+
146
+ ### Real-World Impact
147
+ - Material Icons: 15-25%
148
+ - Illustrator exports: **40-50%** 🎯
149
+ - Hand-drawn: 20-30%
150
+ - Icon libraries: 30-40%
151
+
152
+ ---
153
+
154
+ ## Next Steps
155
+
156
+ ### Phase 4.4: Path Simplification
157
+ - Douglas-Peucker algorithm
158
+ - Visvalingam-Whyatt algorithm
159
+ - Expected: +5-10% on complex paths
160
+
161
+ ### Phase 4.5: Path Merging
162
+ - Repeated shape detection
163
+ - `<defs>` + `<use>` extraction
164
+ - Expected: +30-60% on icon sets
165
+
166
+ ---
167
+
168
+ ## Status: ✅ Production Ready
169
+
170
+ All tests passing: **32/32 (100%)**
171
+ - Framework: 11/11
172
+ - Config: 6/6
173
+ - E2E: 8/8
174
+ - Integration: 7/7
175
+
176
+ **Latest Achievement**: Phase 4.3 complete (23.44% reduction) 🎉
@@ -0,0 +1,276 @@
1
+ # 🧪 Interactive Testing with Sample SVGs
2
+
3
+ This package includes **500+ sample SVG files** and an interactive test utility to help you quickly evaluate svger-cli with real-world icons and logos.
4
+
5
+ ## 📦 What's Included
6
+
7
+ The `assets/svges/` directory contains:
8
+ - **500+ popular brand logos** (Google, Facebook, GitHub, etc.)
9
+ - **Common UI icons** (home, user, settings, etc.)
10
+ - **Various SVG complexity levels** (simple shapes to complex paths)
11
+ - **Real-world test cases** (different SVG structures and attributes)
12
+
13
+ ## 🚀 Quick Start
14
+
15
+ ### Method 1: CLI Test Utility (Recommended)
16
+
17
+ After installing the package, you can run the interactive test utility:
18
+
19
+ ```bash
20
+ # Install globally
21
+ npm install -g svger-cli
22
+
23
+ # Run test with default settings (React, 10 files)
24
+ test-svger
25
+
26
+ # Test with Vue and TypeScript
27
+ test-svger --framework=vue --typescript
28
+
29
+ # Test with Angular, processing 20 files
30
+ test-svger --framework=angular --count=20
31
+
32
+ # Process all available SVGs
33
+ test-svger --count=999
34
+ ```
35
+
36
+ **Output:**
37
+ ```
38
+ ╔════════════════════════════════════════════════════════════════╗
39
+ ║ SVGER-CLI Test Utility ║
40
+ ║ Quick Test with Sample SVGs ║
41
+ ╚════════════════════════════════════════════════════════════════╝
42
+
43
+ ✓ Found 500+ sample SVG files
44
+
45
+ Sample SVGs (showing first 10):
46
+ 1. google.svg
47
+ 2. facebook.svg
48
+ 3. github.svg
49
+ 4. home.svg
50
+ 5. user.svg
51
+ ... and 495+ more
52
+
53
+ Test Configuration:
54
+ Framework: react
55
+ Files to process: 10
56
+ TypeScript: No
57
+ Output directory: ./svger-test-output
58
+
59
+ Running command:
60
+ svger-cli --input assets/svges --output ./svger-test-output --framework react
61
+
62
+ ✓ Test completed successfully!
63
+ Duration: 234ms
64
+ Output: ./svger-test-output
65
+ ```
66
+
67
+ ### Method 2: Direct CLI Usage
68
+
69
+ Use the sample SVGs directly with svger-cli:
70
+
71
+ ```bash
72
+ # Find the assets directory in your node_modules
73
+ svger-cli --input ./node_modules/svger-cli/assets/svges --output ./my-components
74
+
75
+ # Or if installed globally (location varies by system)
76
+ svger-cli --input $(npm root -g)/svger-cli/assets/svges --output ./my-components
77
+ ```
78
+
79
+ ### Method 3: Online Interactive Demo (No Install Required)
80
+
81
+ Try the **Live Benchmarking Tool** in your browser:
82
+
83
+ 🌐 **[https://faezemohades.github.io/svger-cli/#live-benchmark](https://faezemohades.github.io/svger-cli/#live-benchmark)**
84
+
85
+ Features:
86
+ - ✅ Test with 10 pre-loaded sample SVGs
87
+ - ✅ Upload your own SVG files (drag & drop)
88
+ - ✅ Switch between frameworks (React, Vue, Angular, Svelte)
89
+ - ✅ Real-time performance metrics
90
+ - ✅ Export results as JSON
91
+ - ✅ See generated component code
92
+ - ✅ No installation required!
93
+
94
+ ## 📚 Test Utility Options
95
+
96
+ ```bash
97
+ test-svger [options]
98
+ ```
99
+
100
+ | Option | Description | Default |
101
+ |--------|-------------|---------|
102
+ | `--framework=<name>` | Framework to use (react, vue, angular, svelte, solid, lit, preact, react-native, vanilla) | `react` |
103
+ | `--count=<number>` | Number of SVG files to process | `10` |
104
+ | `--typescript` | Generate TypeScript components | `false` |
105
+ | `--help, -h` | Show help message | - |
106
+
107
+ ## 🎯 Use Cases
108
+
109
+ ### 1. **Quick Evaluation**
110
+ ```bash
111
+ # Test before committing to use svger-cli
112
+ test-svger --count=5
113
+ ```
114
+
115
+ ### 2. **Framework Comparison**
116
+ ```bash
117
+ # Compare output across frameworks
118
+ test-svger --framework=react --count=10
119
+ test-svger --framework=vue --count=10
120
+ test-svger --framework=angular --count=10
121
+ ```
122
+
123
+ ### 3. **Performance Benchmarking**
124
+ ```bash
125
+ # Test with large batches
126
+ time test-svger --count=100
127
+ time test-svger --count=500
128
+ ```
129
+
130
+ ### 4. **TypeScript Generation**
131
+ ```bash
132
+ # Test TypeScript output quality
133
+ test-svger --framework=react --typescript --count=20
134
+ ```
135
+
136
+ ### 5. **Integration Testing**
137
+ ```bash
138
+ # Use in CI/CD pipelines
139
+ test-svger --count=50 && echo "✓ Integration test passed"
140
+ ```
141
+
142
+ ## 📁 Package Structure
143
+
144
+ ```
145
+ svger-cli/
146
+ ├── bin/
147
+ │ ├── svg-tool.js # Main CLI
148
+ │ └── test-svger.js # Test utility (NEW!)
149
+ ├── assets/
150
+ │ └── svges/ # 500+ sample SVGs (NEW!)
151
+ │ ├── google.svg
152
+ │ ├── facebook.svg
153
+ │ ├── github.svg
154
+ │ └── ... 500+ more
155
+ ├── dist/ # Compiled code
156
+ └── package.json
157
+ ```
158
+
159
+ ## 💡 Tips
160
+
161
+ ### Finding Sample SVGs Location
162
+
163
+ ```bash
164
+ # If installed globally
165
+ npm root -g
166
+
167
+ # If installed locally
168
+ npm root
169
+
170
+ # Then navigate to svger-cli/assets/svges
171
+ ```
172
+
173
+ ### Using Specific SVGs
174
+
175
+ ```bash
176
+ # Test with only brand logos
177
+ svger-cli --input ./node_modules/svger-cli/assets/svges --include="google|facebook|github" --output ./brands
178
+
179
+ # Test with specific file patterns
180
+ svger-cli --input ./node_modules/svger-cli/assets/svges --include=".*icon.*" --output ./icons
181
+ ```
182
+
183
+ ### Copying Sample SVGs
184
+
185
+ ```bash
186
+ # Copy to your project for customization
187
+ cp -r ./node_modules/svger-cli/assets/svges ./my-test-svgs
188
+ svger-cli --input ./my-test-svgs --output ./components
189
+ ```
190
+
191
+ ## 🌐 Online Demo vs CLI Test
192
+
193
+ | Feature | Online Demo | CLI Test Utility |
194
+ |---------|-------------|------------------|
195
+ | **Installation** | None required | npm install needed |
196
+ | **Speed** | In-browser (slower) | Native (faster) |
197
+ | **File Count** | 10 samples or upload | 500+ included |
198
+ | **Frameworks** | 4 options | 9+ options |
199
+ | **Output** | View only | Real files |
200
+ | **Customization** | Limited | Full CLI options |
201
+ | **Use Case** | Quick preview | Development & testing |
202
+
203
+ **Recommendation:**
204
+ - 🌐 Use **Online Demo** for quick evaluation
205
+ - 💻 Use **CLI Test Utility** for serious testing
206
+
207
+ ## 🎓 Example Workflow
208
+
209
+ ```bash
210
+ # 1. Try online demo first
211
+ open https://faezemohades.github.io/svger-cli/#live-benchmark
212
+
213
+ # 2. Install if you like what you see
214
+ npm install -g svger-cli
215
+
216
+ # 3. Run quick test
217
+ test-svger
218
+
219
+ # 4. Check the output
220
+ cd svger-test-output
221
+ ls -la
222
+
223
+ # 5. Test with your framework
224
+ test-svger --framework=vue --typescript
225
+
226
+ # 6. Use with your real SVGs
227
+ svger-cli --input ./my-svgs --output ./components --framework=vue --typescript
228
+ ```
229
+
230
+ ## 📊 Sample SVGs Categories
231
+
232
+ The included SVGs cover various categories:
233
+
234
+ - **Brands**: Google, Facebook, GitHub, Twitter, LinkedIn, etc. (200+)
235
+ - **UI Icons**: Home, User, Settings, Search, etc. (100+)
236
+ - **Shapes**: Circles, Squares, Triangles, etc. (50+)
237
+ - **Tech Logos**: React, Vue, Angular, Docker, AWS, etc. (100+)
238
+ - **Misc**: Flags, Emojis, Symbols, etc. (50+)
239
+
240
+ ## 🚨 Important Notes
241
+
242
+ 1. **Sample SVGs are for testing only** - They are publicly available icons and logos. Check licensing before using in production.
243
+
244
+ 2. **Not all SVGs may work perfectly** - Some complex SVGs might need manual adjustment. This is intentional to provide realistic test cases.
245
+
246
+ 3. **Output directory** - The test utility creates `svger-test-output` in your current directory. You can delete it after testing.
247
+
248
+ 4. **Package size** - Including 500+ SVGs adds ~2-3MB to the package. This is acceptable for a testing utility but be aware if disk space is critical.
249
+
250
+ ## 🤝 Contributing
251
+
252
+ Have interesting SVG test cases? Contribute them!
253
+
254
+ ```bash
255
+ # Fork the repo
256
+ git clone https://github.com/faezemohades/svger-cli
257
+ cd svger-cli
258
+
259
+ # Add your SVG to assets/svges/
260
+ cp your-test.svg assets/svges/
261
+
262
+ # Submit PR
263
+ git add assets/svges/your-test.svg
264
+ git commit -m "Add your-test.svg for testing"
265
+ git push
266
+ ```
267
+
268
+ ## 📖 More Information
269
+
270
+ - **Documentation**: [https://github.com/faezemohades/svger-cli](https://github.com/faezemohades/svger-cli)
271
+ - **Live Demo**: [https://faezemohades.github.io/svger-cli/#live-benchmark](https://faezemohades.github.io/svger-cli/#live-benchmark)
272
+ - **Issues**: [https://github.com/faezemohades/svger-cli/issues](https://github.com/faezemohades/svger-cli/issues)
273
+
274
+ ---
275
+
276
+ **Happy Testing!** 🎉