@iconify/tools 4.2.0 → 5.0.0-beta.2

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 (534) hide show
  1. package/lib/colors/attribs.d.ts +2 -4
  2. package/lib/colors/attribs.js +33 -0
  3. package/lib/colors/detect.d.ts +2 -10
  4. package/lib/colors/detect.js +36 -0
  5. package/lib/colors/parse.d.ts +12 -19
  6. package/lib/colors/parse.js +241 -0
  7. package/lib/colors/validate.d.ts +3 -13
  8. package/lib/colors/validate.js +31 -0
  9. package/lib/css/parse.d.ts +1 -2
  10. package/lib/css/parse.js +18 -0
  11. package/lib/css/parser/error.d.ts +6 -7
  12. package/lib/css/parser/error.js +24 -0
  13. package/lib/css/parser/export.d.ts +2 -4
  14. package/lib/css/parser/export.js +34 -0
  15. package/lib/css/parser/strings.d.ts +2 -4
  16. package/lib/css/parser/strings.js +66 -0
  17. package/lib/css/parser/text.d.ts +2 -4
  18. package/lib/css/parser/text.js +103 -0
  19. package/lib/css/parser/tokens.d.ts +3 -5
  20. package/lib/css/parser/tokens.js +169 -0
  21. package/lib/css/parser/tree.d.ts +2 -4
  22. package/lib/css/parser/tree.js +35 -0
  23. package/lib/css/parser/types.d.ts +21 -22
  24. package/lib/css/parser/types.js +1 -0
  25. package/lib/download/api/cache.d.ts +2 -4
  26. package/lib/download/api/cache.js +84 -0
  27. package/lib/download/api/config.d.ts +6 -8
  28. package/lib/download/api/config.js +10 -0
  29. package/lib/download/api/download.d.ts +2 -4
  30. package/lib/download/api/download.js +26 -0
  31. package/lib/download/api/fetch.d.ts +1 -2
  32. package/lib/download/api/fetch.js +15 -0
  33. package/lib/download/api/index.d.ts +2 -4
  34. package/lib/download/api/index.js +50 -0
  35. package/lib/download/api/queue.d.ts +9 -10
  36. package/lib/download/api/queue.js +94 -0
  37. package/lib/download/api/types.d.ts +6 -7
  38. package/lib/download/api/types.js +1 -0
  39. package/lib/download/git/branch.d.ts +2 -4
  40. package/lib/download/git/branch.js +15 -0
  41. package/lib/download/git/hash.d.ts +2 -4
  42. package/lib/download/git/hash.js +10 -0
  43. package/lib/download/git/index.d.ts +10 -12
  44. package/lib/download/git/index.js +39 -0
  45. package/lib/download/git/reset.d.ts +1 -2
  46. package/lib/download/git/reset.js +12 -0
  47. package/lib/download/github/hash.d.ts +2 -4
  48. package/lib/download/github/hash.js +20 -0
  49. package/lib/download/github/index.d.ts +12 -14
  50. package/lib/download/github/index.js +66 -0
  51. package/lib/download/github/types.d.ts +5 -6
  52. package/lib/download/github/types.js +1 -0
  53. package/lib/download/gitlab/hash.d.ts +2 -4
  54. package/lib/download/gitlab/hash.js +19 -0
  55. package/lib/download/gitlab/index.d.ts +12 -14
  56. package/lib/download/gitlab/index.js +64 -0
  57. package/lib/download/gitlab/types.d.ts +5 -6
  58. package/lib/download/gitlab/types.js +6 -0
  59. package/lib/download/helpers/untar.d.ts +1 -2
  60. package/lib/download/helpers/untar.js +13 -0
  61. package/lib/download/helpers/unzip.d.ts +1 -2
  62. package/lib/download/helpers/unzip.js +39 -0
  63. package/lib/download/index.d.ts +15 -20
  64. package/lib/download/index.js +19 -0
  65. package/lib/download/npm/index.d.ts +11 -13
  66. package/lib/download/npm/index.js +51 -0
  67. package/lib/download/npm/types.d.ts +3 -4
  68. package/lib/download/npm/types.js +1 -0
  69. package/lib/download/npm/version.d.ts +4 -6
  70. package/lib/download/npm/version.js +23 -0
  71. package/lib/download/types/modified.d.ts +1 -2
  72. package/lib/download/types/modified.js +1 -0
  73. package/lib/download/types/sources.d.ts +2 -3
  74. package/lib/download/types/sources.js +1 -0
  75. package/lib/export/directory.d.ts +7 -15
  76. package/lib/export/directory.js +37 -0
  77. package/lib/export/helpers/custom-files.d.ts +2 -3
  78. package/lib/export/helpers/custom-files.js +23 -0
  79. package/lib/export/helpers/prepare.d.ts +3 -4
  80. package/lib/export/helpers/prepare.js +31 -0
  81. package/lib/export/helpers/types-version.d.ts +1 -2
  82. package/lib/export/helpers/types-version.js +19 -0
  83. package/lib/export/icon-package.d.ts +8 -15
  84. package/lib/export/icon-package.js +55 -0
  85. package/lib/export/json-package.d.ts +7 -14
  86. package/lib/export/json-package.js +129 -0
  87. package/lib/icon-set/index.d.ts +144 -147
  88. package/lib/icon-set/index.js +595 -0
  89. package/lib/icon-set/match.d.ts +3 -11
  90. package/lib/icon-set/match.js +45 -0
  91. package/lib/icon-set/merge.d.ts +2 -10
  92. package/lib/icon-set/merge.js +68 -0
  93. package/lib/icon-set/modified.d.ts +2 -10
  94. package/lib/icon-set/modified.js +20 -0
  95. package/lib/icon-set/props.d.ts +2 -5
  96. package/lib/icon-set/props.js +19 -0
  97. package/lib/icon-set/tags.d.ts +7 -15
  98. package/lib/icon-set/tags.js +53 -0
  99. package/lib/icon-set/types.d.ts +16 -21
  100. package/lib/icon-set/types.js +1 -0
  101. package/lib/import/directory.d.ts +11 -20
  102. package/lib/import/directory.js +101 -0
  103. package/lib/import/figma/index.d.ts +4 -15
  104. package/lib/import/figma/index.js +61 -0
  105. package/lib/import/figma/nodes.d.ts +4 -14
  106. package/lib/import/figma/nodes.js +80 -0
  107. package/lib/import/figma/query.d.ts +9 -19
  108. package/lib/import/figma/query.js +183 -0
  109. package/lib/import/figma/types/api.d.ts +26 -27
  110. package/lib/import/figma/types/api.js +1 -0
  111. package/lib/import/figma/types/nodes.d.ts +12 -21
  112. package/lib/import/figma/types/nodes.js +1 -0
  113. package/lib/import/figma/types/options.d.ts +23 -32
  114. package/lib/import/figma/types/options.js +1 -0
  115. package/lib/import/figma/types/result.d.ts +16 -24
  116. package/lib/import/figma/types/result.js +1 -0
  117. package/lib/index.d.ts +55 -80
  118. package/lib/index.js +56 -0
  119. package/lib/misc/bump-version.d.ts +1 -2
  120. package/lib/misc/bump-version.js +13 -0
  121. package/lib/misc/compare-dirs.d.ts +4 -5
  122. package/lib/misc/compare-dirs.js +65 -0
  123. package/lib/misc/exec.d.ts +4 -6
  124. package/lib/misc/exec.js +23 -0
  125. package/lib/misc/keyword.d.ts +1 -2
  126. package/lib/misc/keyword.js +12 -0
  127. package/lib/misc/scan.d.ts +2 -4
  128. package/lib/misc/scan.js +87 -0
  129. package/lib/misc/write-json.d.ts +1 -2
  130. package/lib/misc/write-json.js +10 -0
  131. package/lib/optimise/figma.d.ts +2 -7
  132. package/lib/optimise/figma.js +189 -0
  133. package/lib/optimise/flags.d.ts +2 -7
  134. package/lib/optimise/flags.js +231 -0
  135. package/lib/optimise/global-style.d.ts +2 -7
  136. package/lib/optimise/global-style.js +114 -0
  137. package/lib/optimise/mask.d.ts +9 -14
  138. package/lib/optimise/mask.js +83 -0
  139. package/lib/optimise/origin.d.ts +2 -7
  140. package/lib/optimise/origin.js +22 -0
  141. package/lib/optimise/scale.d.ts +2 -7
  142. package/lib/optimise/scale.js +24 -0
  143. package/lib/optimise/svgo.d.ts +10 -15
  144. package/lib/optimise/svgo.js +90 -0
  145. package/lib/optimise/unwrap.d.ts +2 -7
  146. package/lib/optimise/unwrap.js +25 -0
  147. package/lib/svg/analyse/error.d.ts +2 -7
  148. package/lib/svg/analyse/error.js +12 -0
  149. package/lib/svg/analyse/types.d.ts +31 -35
  150. package/lib/svg/analyse/types.js +1 -0
  151. package/lib/svg/analyse.d.ts +3 -10
  152. package/lib/svg/analyse.js +256 -0
  153. package/lib/svg/cleanup/attribs.d.ts +2 -7
  154. package/lib/svg/cleanup/attribs.js +37 -0
  155. package/lib/svg/cleanup/bad-tags.d.ts +3 -8
  156. package/lib/svg/cleanup/bad-tags.js +57 -0
  157. package/lib/svg/cleanup/inline-style.d.ts +2 -7
  158. package/lib/svg/cleanup/inline-style.js +80 -0
  159. package/lib/svg/cleanup/root-style.d.ts +4 -9
  160. package/lib/svg/cleanup/root-style.js +27 -0
  161. package/lib/svg/cleanup/root-svg.d.ts +2 -7
  162. package/lib/svg/cleanup/root-svg.js +73 -0
  163. package/lib/svg/cleanup/svgo-style.d.ts +2 -7
  164. package/lib/svg/cleanup/svgo-style.js +24 -0
  165. package/lib/svg/cleanup.d.ts +3 -8
  166. package/lib/svg/cleanup.js +20 -0
  167. package/lib/svg/data/attributes.d.ts +1 -2
  168. package/lib/svg/data/attributes.js +451 -0
  169. package/lib/svg/data/tags.d.ts +1 -2
  170. package/lib/svg/data/tags.js +182 -0
  171. package/lib/svg/index.d.ts +38 -47
  172. package/lib/svg/index.js +117 -0
  173. package/lib/svg/parse-style.d.ts +21 -28
  174. package/lib/svg/parse-style.js +199 -0
  175. package/lib/svg/parse.d.ts +8 -16
  176. package/lib/svg/parse.js +32 -0
  177. package/package.json +116 -222
  178. package/lib/colors/attribs.cjs +0 -33
  179. package/lib/colors/attribs.d.cts +0 -27
  180. package/lib/colors/attribs.d.mts +0 -27
  181. package/lib/colors/attribs.mjs +0 -26
  182. package/lib/colors/detect.cjs +0 -66
  183. package/lib/colors/detect.d.cts +0 -16
  184. package/lib/colors/detect.d.mts +0 -16
  185. package/lib/colors/detect.mjs +0 -64
  186. package/lib/colors/parse.cjs +0 -300
  187. package/lib/colors/parse.d.cts +0 -61
  188. package/lib/colors/parse.d.mts +0 -61
  189. package/lib/colors/parse.mjs +0 -297
  190. package/lib/colors/validate.cjs +0 -56
  191. package/lib/colors/validate.d.cts +0 -21
  192. package/lib/colors/validate.d.mts +0 -21
  193. package/lib/colors/validate.mjs +0 -54
  194. package/lib/css/parse.cjs +0 -24
  195. package/lib/css/parse.d.cts +0 -6
  196. package/lib/css/parse.d.mts +0 -6
  197. package/lib/css/parse.mjs +0 -22
  198. package/lib/css/parser/error.cjs +0 -23
  199. package/lib/css/parser/error.d.cts +0 -13
  200. package/lib/css/parser/error.d.mts +0 -13
  201. package/lib/css/parser/error.mjs +0 -21
  202. package/lib/css/parser/export.cjs +0 -37
  203. package/lib/css/parser/export.d.cts +0 -8
  204. package/lib/css/parser/export.d.mts +0 -8
  205. package/lib/css/parser/export.mjs +0 -35
  206. package/lib/css/parser/strings.cjs +0 -83
  207. package/lib/css/parser/strings.d.cts +0 -16
  208. package/lib/css/parser/strings.d.mts +0 -16
  209. package/lib/css/parser/strings.mjs +0 -80
  210. package/lib/css/parser/text.cjs +0 -114
  211. package/lib/css/parser/text.d.cts +0 -20
  212. package/lib/css/parser/text.d.mts +0 -20
  213. package/lib/css/parser/text.mjs +0 -109
  214. package/lib/css/parser/tokens.cjs +0 -206
  215. package/lib/css/parser/tokens.d.cts +0 -9
  216. package/lib/css/parser/tokens.d.mts +0 -9
  217. package/lib/css/parser/tokens.mjs +0 -204
  218. package/lib/css/parser/tree.cjs +0 -40
  219. package/lib/css/parser/tree.d.cts +0 -8
  220. package/lib/css/parser/tree.d.mts +0 -8
  221. package/lib/css/parser/tree.mjs +0 -38
  222. package/lib/css/parser/types.cjs +0 -2
  223. package/lib/css/parser/types.d.cts +0 -52
  224. package/lib/css/parser/types.d.mts +0 -52
  225. package/lib/css/parser/types.mjs +0 -1
  226. package/lib/download/api/cache.cjs +0 -91
  227. package/lib/download/api/cache.d.cts +0 -20
  228. package/lib/download/api/cache.d.mts +0 -20
  229. package/lib/download/api/cache.mjs +0 -86
  230. package/lib/download/api/config.cjs +0 -11
  231. package/lib/download/api/config.d.cts +0 -18
  232. package/lib/download/api/config.d.mts +0 -18
  233. package/lib/download/api/config.mjs +0 -8
  234. package/lib/download/api/download.cjs +0 -26
  235. package/lib/download/api/download.d.cts +0 -8
  236. package/lib/download/api/download.d.mts +0 -8
  237. package/lib/download/api/download.mjs +0 -24
  238. package/lib/download/api/fetch.cjs +0 -12
  239. package/lib/download/api/fetch.d.cts +0 -10
  240. package/lib/download/api/fetch.d.mts +0 -10
  241. package/lib/download/api/fetch.mjs +0 -9
  242. package/lib/download/api/index.cjs +0 -57
  243. package/lib/download/api/index.d.cts +0 -8
  244. package/lib/download/api/index.d.mts +0 -8
  245. package/lib/download/api/index.mjs +0 -55
  246. package/lib/download/api/queue.cjs +0 -104
  247. package/lib/download/api/queue.d.cts +0 -32
  248. package/lib/download/api/queue.d.mts +0 -32
  249. package/lib/download/api/queue.mjs +0 -101
  250. package/lib/download/api/types.cjs +0 -2
  251. package/lib/download/api/types.d.cts +0 -17
  252. package/lib/download/api/types.d.mts +0 -17
  253. package/lib/download/api/types.mjs +0 -1
  254. package/lib/download/git/branch.cjs +0 -19
  255. package/lib/download/git/branch.d.cts +0 -8
  256. package/lib/download/git/branch.d.mts +0 -8
  257. package/lib/download/git/branch.mjs +0 -17
  258. package/lib/download/git/hash.cjs +0 -14
  259. package/lib/download/git/hash.d.cts +0 -8
  260. package/lib/download/git/hash.d.mts +0 -8
  261. package/lib/download/git/hash.mjs +0 -12
  262. package/lib/download/git/index.cjs +0 -76
  263. package/lib/download/git/index.d.cts +0 -29
  264. package/lib/download/git/index.d.mts +0 -29
  265. package/lib/download/git/index.mjs +0 -74
  266. package/lib/download/git/reset.cjs +0 -36
  267. package/lib/download/git/reset.d.cts +0 -6
  268. package/lib/download/git/reset.d.mts +0 -6
  269. package/lib/download/git/reset.mjs +0 -34
  270. package/lib/download/github/hash.cjs +0 -31
  271. package/lib/download/github/hash.d.cts +0 -8
  272. package/lib/download/github/hash.d.mts +0 -8
  273. package/lib/download/github/hash.mjs +0 -29
  274. package/lib/download/github/index.cjs +0 -105
  275. package/lib/download/github/index.d.cts +0 -31
  276. package/lib/download/github/index.d.mts +0 -31
  277. package/lib/download/github/index.mjs +0 -103
  278. package/lib/download/github/types.cjs +0 -2
  279. package/lib/download/github/types.d.cts +0 -11
  280. package/lib/download/github/types.d.mts +0 -11
  281. package/lib/download/github/types.mjs +0 -1
  282. package/lib/download/gitlab/hash.cjs +0 -33
  283. package/lib/download/gitlab/hash.d.cts +0 -8
  284. package/lib/download/gitlab/hash.d.mts +0 -8
  285. package/lib/download/gitlab/hash.mjs +0 -31
  286. package/lib/download/gitlab/index.cjs +0 -105
  287. package/lib/download/gitlab/index.d.cts +0 -31
  288. package/lib/download/gitlab/index.d.mts +0 -31
  289. package/lib/download/gitlab/index.mjs +0 -103
  290. package/lib/download/gitlab/types.cjs +0 -5
  291. package/lib/download/gitlab/types.d.cts +0 -15
  292. package/lib/download/gitlab/types.d.mts +0 -15
  293. package/lib/download/gitlab/types.mjs +0 -3
  294. package/lib/download/helpers/untar.cjs +0 -12
  295. package/lib/download/helpers/untar.d.cts +0 -6
  296. package/lib/download/helpers/untar.d.mts +0 -6
  297. package/lib/download/helpers/untar.mjs +0 -10
  298. package/lib/download/helpers/unzip.cjs +0 -17
  299. package/lib/download/helpers/unzip.d.cts +0 -6
  300. package/lib/download/helpers/unzip.d.mts +0 -6
  301. package/lib/download/helpers/unzip.mjs +0 -11
  302. package/lib/download/index.cjs +0 -64
  303. package/lib/download/index.d.cts +0 -48
  304. package/lib/download/index.d.mts +0 -48
  305. package/lib/download/index.mjs +0 -62
  306. package/lib/download/npm/index.cjs +0 -85
  307. package/lib/download/npm/index.d.cts +0 -30
  308. package/lib/download/npm/index.d.mts +0 -30
  309. package/lib/download/npm/index.mjs +0 -83
  310. package/lib/download/npm/types.cjs +0 -2
  311. package/lib/download/npm/types.d.cts +0 -9
  312. package/lib/download/npm/types.d.mts +0 -9
  313. package/lib/download/npm/types.mjs +0 -1
  314. package/lib/download/npm/version.cjs +0 -29
  315. package/lib/download/npm/version.d.cts +0 -16
  316. package/lib/download/npm/version.d.mts +0 -16
  317. package/lib/download/npm/version.mjs +0 -26
  318. package/lib/download/types/modified.cjs +0 -2
  319. package/lib/download/types/modified.d.cts +0 -6
  320. package/lib/download/types/modified.d.mts +0 -6
  321. package/lib/download/types/modified.mjs +0 -1
  322. package/lib/download/types/sources.cjs +0 -2
  323. package/lib/download/types/sources.d.cts +0 -12
  324. package/lib/download/types/sources.d.mts +0 -12
  325. package/lib/download/types/sources.mjs +0 -1
  326. package/lib/export/directory.cjs +0 -43
  327. package/lib/export/directory.d.cts +0 -26
  328. package/lib/export/directory.d.mts +0 -26
  329. package/lib/export/directory.mjs +0 -41
  330. package/lib/export/helpers/custom-files.cjs +0 -26
  331. package/lib/export/helpers/custom-files.d.cts +0 -12
  332. package/lib/export/helpers/custom-files.d.mts +0 -12
  333. package/lib/export/helpers/custom-files.mjs +0 -24
  334. package/lib/export/helpers/prepare.cjs +0 -34
  335. package/lib/export/helpers/prepare.d.cts +0 -19
  336. package/lib/export/helpers/prepare.d.mts +0 -19
  337. package/lib/export/helpers/prepare.mjs +0 -31
  338. package/lib/export/helpers/types-version.cjs +0 -12
  339. package/lib/export/helpers/types-version.d.cts +0 -6
  340. package/lib/export/helpers/types-version.d.mts +0 -6
  341. package/lib/export/helpers/types-version.mjs +0 -10
  342. package/lib/export/icon-package.cjs +0 -56
  343. package/lib/export/icon-package.d.cts +0 -26
  344. package/lib/export/icon-package.d.mts +0 -26
  345. package/lib/export/icon-package.mjs +0 -54
  346. package/lib/export/json-package.cjs +0 -144
  347. package/lib/export/json-package.d.cts +0 -25
  348. package/lib/export/json-package.d.mts +0 -25
  349. package/lib/export/json-package.mjs +0 -142
  350. package/lib/icon-set/index.cjs +0 -720
  351. package/lib/icon-set/index.d.cts +0 -162
  352. package/lib/icon-set/index.d.mts +0 -162
  353. package/lib/icon-set/index.mjs +0 -716
  354. package/lib/icon-set/match.cjs +0 -56
  355. package/lib/icon-set/match.d.cts +0 -15
  356. package/lib/icon-set/match.d.mts +0 -15
  357. package/lib/icon-set/match.mjs +0 -54
  358. package/lib/icon-set/merge.cjs +0 -87
  359. package/lib/icon-set/merge.d.cts +0 -14
  360. package/lib/icon-set/merge.d.mts +0 -14
  361. package/lib/icon-set/merge.mjs +0 -85
  362. package/lib/icon-set/modified.cjs +0 -25
  363. package/lib/icon-set/modified.d.cts +0 -16
  364. package/lib/icon-set/modified.d.mts +0 -16
  365. package/lib/icon-set/modified.mjs +0 -23
  366. package/lib/icon-set/props.cjs +0 -16
  367. package/lib/icon-set/props.d.cts +0 -13
  368. package/lib/icon-set/props.d.mts +0 -13
  369. package/lib/icon-set/props.mjs +0 -13
  370. package/lib/icon-set/tags.cjs +0 -95
  371. package/lib/icon-set/tags.d.cts +0 -25
  372. package/lib/icon-set/tags.d.mts +0 -25
  373. package/lib/icon-set/tags.mjs +0 -91
  374. package/lib/icon-set/types.cjs +0 -2
  375. package/lib/icon-set/types.d.cts +0 -75
  376. package/lib/icon-set/types.d.mts +0 -75
  377. package/lib/icon-set/types.mjs +0 -1
  378. package/lib/import/directory.cjs +0 -169
  379. package/lib/import/directory.d.cts +0 -52
  380. package/lib/import/directory.d.mts +0 -52
  381. package/lib/import/directory.mjs +0 -166
  382. package/lib/import/figma/index.cjs +0 -115
  383. package/lib/import/figma/index.d.cts +0 -20
  384. package/lib/import/figma/index.d.mts +0 -20
  385. package/lib/import/figma/index.mjs +0 -113
  386. package/lib/import/figma/nodes.cjs +0 -90
  387. package/lib/import/figma/nodes.d.cts +0 -18
  388. package/lib/import/figma/nodes.d.mts +0 -18
  389. package/lib/import/figma/nodes.mjs +0 -88
  390. package/lib/import/figma/query.cjs +0 -260
  391. package/lib/import/figma/query.d.cts +0 -42
  392. package/lib/import/figma/query.d.mts +0 -42
  393. package/lib/import/figma/query.mjs +0 -256
  394. package/lib/import/figma/types/api.cjs +0 -2
  395. package/lib/import/figma/types/api.d.cts +0 -53
  396. package/lib/import/figma/types/api.d.mts +0 -53
  397. package/lib/import/figma/types/api.mjs +0 -1
  398. package/lib/import/figma/types/nodes.cjs +0 -2
  399. package/lib/import/figma/types/nodes.d.cts +0 -44
  400. package/lib/import/figma/types/nodes.d.mts +0 -44
  401. package/lib/import/figma/types/nodes.mjs +0 -1
  402. package/lib/import/figma/types/options.cjs +0 -2
  403. package/lib/import/figma/types/options.d.cts +0 -59
  404. package/lib/import/figma/types/options.d.mts +0 -59
  405. package/lib/import/figma/types/options.mjs +0 -1
  406. package/lib/import/figma/types/result.cjs +0 -2
  407. package/lib/import/figma/types/result.d.cts +0 -44
  408. package/lib/import/figma/types/result.d.mts +0 -44
  409. package/lib/import/figma/types/result.mjs +0 -1
  410. package/lib/index.cjs +0 -157
  411. package/lib/index.d.cts +0 -80
  412. package/lib/index.d.mts +0 -80
  413. package/lib/index.mjs +0 -91
  414. package/lib/misc/bump-version.cjs +0 -15
  415. package/lib/misc/bump-version.d.cts +0 -6
  416. package/lib/misc/bump-version.d.mts +0 -6
  417. package/lib/misc/bump-version.mjs +0 -13
  418. package/lib/misc/cheerio.cjs +0 -2
  419. package/lib/misc/cheerio.d.cts +0 -10
  420. package/lib/misc/cheerio.d.mts +0 -10
  421. package/lib/misc/cheerio.d.ts +0 -10
  422. package/lib/misc/cheerio.mjs +0 -1
  423. package/lib/misc/compare-dirs.cjs +0 -75
  424. package/lib/misc/compare-dirs.d.cts +0 -11
  425. package/lib/misc/compare-dirs.d.mts +0 -11
  426. package/lib/misc/compare-dirs.mjs +0 -73
  427. package/lib/misc/exec.cjs +0 -27
  428. package/lib/misc/exec.d.cts +0 -12
  429. package/lib/misc/exec.d.mts +0 -12
  430. package/lib/misc/exec.mjs +0 -25
  431. package/lib/misc/keyword.cjs +0 -20
  432. package/lib/misc/keyword.d.cts +0 -6
  433. package/lib/misc/keyword.d.mts +0 -6
  434. package/lib/misc/keyword.mjs +0 -18
  435. package/lib/misc/scan.cjs +0 -114
  436. package/lib/misc/scan.d.cts +0 -33
  437. package/lib/misc/scan.d.mts +0 -33
  438. package/lib/misc/scan.mjs +0 -111
  439. package/lib/misc/write-json.cjs +0 -9
  440. package/lib/misc/write-json.d.cts +0 -6
  441. package/lib/misc/write-json.d.mts +0 -6
  442. package/lib/misc/write-json.mjs +0 -7
  443. package/lib/optimise/figma.cjs +0 -232
  444. package/lib/optimise/figma.d.cts +0 -14
  445. package/lib/optimise/figma.d.mts +0 -14
  446. package/lib/optimise/figma.mjs +0 -230
  447. package/lib/optimise/flags.cjs +0 -256
  448. package/lib/optimise/flags.d.cts +0 -11
  449. package/lib/optimise/flags.d.mts +0 -11
  450. package/lib/optimise/flags.mjs +0 -254
  451. package/lib/optimise/global-style.cjs +0 -158
  452. package/lib/optimise/global-style.d.cts +0 -11
  453. package/lib/optimise/global-style.d.mts +0 -11
  454. package/lib/optimise/global-style.mjs +0 -156
  455. package/lib/optimise/mask.cjs +0 -110
  456. package/lib/optimise/mask.d.cts +0 -24
  457. package/lib/optimise/mask.d.mts +0 -24
  458. package/lib/optimise/mask.mjs +0 -108
  459. package/lib/optimise/origin.cjs +0 -23
  460. package/lib/optimise/origin.d.cts +0 -11
  461. package/lib/optimise/origin.d.mts +0 -11
  462. package/lib/optimise/origin.mjs +0 -21
  463. package/lib/optimise/scale.cjs +0 -27
  464. package/lib/optimise/scale.d.cts +0 -11
  465. package/lib/optimise/scale.d.mts +0 -11
  466. package/lib/optimise/scale.mjs +0 -25
  467. package/lib/optimise/svgo.cjs +0 -107
  468. package/lib/optimise/svgo.d.cts +0 -37
  469. package/lib/optimise/svgo.d.mts +0 -37
  470. package/lib/optimise/svgo.mjs +0 -104
  471. package/lib/optimise/unwrap.cjs +0 -31
  472. package/lib/optimise/unwrap.d.cts +0 -11
  473. package/lib/optimise/unwrap.d.mts +0 -11
  474. package/lib/optimise/unwrap.mjs +0 -29
  475. package/lib/svg/analyse/error.cjs +0 -16
  476. package/lib/svg/analyse/error.d.cts +0 -11
  477. package/lib/svg/analyse/error.d.mts +0 -11
  478. package/lib/svg/analyse/error.mjs +0 -14
  479. package/lib/svg/analyse/types.cjs +0 -2
  480. package/lib/svg/analyse/types.d.cts +0 -93
  481. package/lib/svg/analyse/types.d.mts +0 -93
  482. package/lib/svg/analyse/types.mjs +0 -1
  483. package/lib/svg/analyse.cjs +0 -303
  484. package/lib/svg/analyse.d.cts +0 -16
  485. package/lib/svg/analyse.d.mts +0 -16
  486. package/lib/svg/analyse.mjs +0 -301
  487. package/lib/svg/cleanup/attribs.cjs +0 -39
  488. package/lib/svg/cleanup/attribs.d.cts +0 -11
  489. package/lib/svg/cleanup/attribs.d.mts +0 -11
  490. package/lib/svg/cleanup/attribs.mjs +0 -37
  491. package/lib/svg/cleanup/bad-tags.cjs +0 -69
  492. package/lib/svg/cleanup/bad-tags.d.cts +0 -17
  493. package/lib/svg/cleanup/bad-tags.d.mts +0 -17
  494. package/lib/svg/cleanup/bad-tags.mjs +0 -67
  495. package/lib/svg/cleanup/inline-style.cjs +0 -97
  496. package/lib/svg/cleanup/inline-style.d.cts +0 -11
  497. package/lib/svg/cleanup/inline-style.d.mts +0 -11
  498. package/lib/svg/cleanup/inline-style.mjs +0 -95
  499. package/lib/svg/cleanup/root-style.cjs +0 -34
  500. package/lib/svg/cleanup/root-style.d.cts +0 -17
  501. package/lib/svg/cleanup/root-style.d.mts +0 -17
  502. package/lib/svg/cleanup/root-style.mjs +0 -32
  503. package/lib/svg/cleanup/root-svg.cjs +0 -84
  504. package/lib/svg/cleanup/root-svg.d.cts +0 -11
  505. package/lib/svg/cleanup/root-svg.d.mts +0 -11
  506. package/lib/svg/cleanup/root-svg.mjs +0 -82
  507. package/lib/svg/cleanup/svgo-style.cjs +0 -43
  508. package/lib/svg/cleanup/svgo-style.d.cts +0 -11
  509. package/lib/svg/cleanup/svgo-style.d.mts +0 -11
  510. package/lib/svg/cleanup/svgo-style.mjs +0 -41
  511. package/lib/svg/cleanup.cjs +0 -33
  512. package/lib/svg/cleanup.d.cts +0 -16
  513. package/lib/svg/cleanup.d.mts +0 -16
  514. package/lib/svg/cleanup.mjs +0 -31
  515. package/lib/svg/data/attributes.cjs +0 -373
  516. package/lib/svg/data/attributes.d.cts +0 -77
  517. package/lib/svg/data/attributes.d.mts +0 -77
  518. package/lib/svg/data/attributes.mjs +0 -346
  519. package/lib/svg/data/tags.cjs +0 -141
  520. package/lib/svg/data/tags.d.cts +0 -95
  521. package/lib/svg/data/tags.d.mts +0 -95
  522. package/lib/svg/data/tags.mjs +0 -117
  523. package/lib/svg/index.cjs +0 -178
  524. package/lib/svg/index.d.cts +0 -52
  525. package/lib/svg/index.d.mts +0 -52
  526. package/lib/svg/index.mjs +0 -162
  527. package/lib/svg/parse-style.cjs +0 -243
  528. package/lib/svg/parse-style.d.cts +0 -59
  529. package/lib/svg/parse-style.d.mts +0 -59
  530. package/lib/svg/parse-style.mjs +0 -241
  531. package/lib/svg/parse.cjs +0 -46
  532. package/lib/svg/parse.d.cts +0 -31
  533. package/lib/svg/parse.d.mts +0 -31
  534. package/lib/svg/parse.mjs +0 -44
@@ -0,0 +1,13 @@
1
+ import { unpackTar } from "modern-tar/fs";
2
+ import { createReadStream } from "node:fs";
3
+ import { createGunzip } from "node:zlib";
4
+ import { pipeline } from "node:stream/promises";
5
+
6
+ /**
7
+ * Unpack .tgz archive
8
+ */
9
+ async function untar(file, path) {
10
+ await pipeline(createReadStream(file, { highWaterMark: 256 * 1024 }), createGunzip(), unpackTar(path));
11
+ }
12
+
13
+ export { untar };
@@ -2,5 +2,4 @@
2
2
  * Unzip archive
3
3
  */
4
4
  declare function unzip(source: string, path: string): Promise<void>;
5
-
6
- export { unzip };
5
+ export { unzip };
@@ -0,0 +1,39 @@
1
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
2
+ import { dirname, join, normalize } from "pathe";
3
+ import { unzip as unzip$1 } from "fflate";
4
+
5
+ /**
6
+ * Unzip archive
7
+ */
8
+ async function unzip(source, path) {
9
+ const dir = normalize(path);
10
+ const data = await readFile(source);
11
+ async function writeFiles(data$1) {
12
+ const createdDirs = /* @__PURE__ */ new Set();
13
+ for (const name in data$1) {
14
+ const filePath = normalize(join(dir, name));
15
+ if (filePath.startsWith("/") || filePath.includes("..") || filePath.includes(":")) throw new Error("Invalid file path in zip: " + filePath);
16
+ if (filePath.includes("/._")) continue;
17
+ const isDir = filePath.endsWith("/");
18
+ const fileDir = isDir ? filePath.slice(0, filePath.length - 1) : dirname(filePath);
19
+ if (!createdDirs.has(fileDir)) {
20
+ createdDirs.add(fileDir);
21
+ try {
22
+ await mkdir(fileDir, { recursive: true });
23
+ } catch {}
24
+ }
25
+ if (!isDir) await writeFile(filePath, data$1[name]);
26
+ }
27
+ }
28
+ return new Promise((resolve$1, reject) => {
29
+ unzip$1(data, (err, unzipped) => {
30
+ if (err) {
31
+ reject(err);
32
+ return;
33
+ }
34
+ writeFiles(unzipped).then(() => resolve$1()).catch((err$1) => reject(err$1));
35
+ });
36
+ });
37
+ }
38
+
39
+ export { unzip };
@@ -1,31 +1,27 @@
1
- import { DownloadGitHubRepoOptions, DownloadGitHubRepoResult } from './github/index.js';
2
- import { DownloadGitRepoOptions, DownloadGitRepoResult } from './git/index.js';
3
- import { DownloadNPMPackageOptions, DownloadNPMPackageResult } from './npm/index.js';
4
- import { DocumentNotModified } from './types/modified.js';
5
- import { DownloadSourceType, DownloadSourceMixin } from './types/sources.js';
6
- import { DownloadGitLabRepoOptions, DownloadGitLabRepoResult } from './gitlab/index.js';
7
- import '../export/helpers/prepare.js';
8
- import './github/types.js';
9
- import './gitlab/types.js';
10
-
1
+ import { DocumentNotModified } from "./types/modified.js";
2
+ import { DownloadSourceMixin, DownloadSourceType } from "./types/sources.js";
3
+ import { DownloadGitRepoOptions, DownloadGitRepoResult } from "./git/index.js";
4
+ import { DownloadGitHubRepoOptions, DownloadGitHubRepoResult } from "./github/index.js";
5
+ import { DownloadGitLabRepoOptions, DownloadGitLabRepoResult } from "./gitlab/index.js";
6
+ import { DownloadNPMPackageOptions, DownloadNPMPackageResult } from "./npm/index.js";
11
7
  /**
12
8
  * Options and result combinations
13
9
  */
14
10
  interface DownloadGitRepo {
15
- options: DownloadGitRepoOptions & DownloadSourceMixin<'git'>;
16
- result: DownloadGitRepoResult;
11
+ options: DownloadGitRepoOptions & DownloadSourceMixin<'git'>;
12
+ result: DownloadGitRepoResult;
17
13
  }
18
14
  interface DownloadGitHubRepo {
19
- options: DownloadGitHubRepoOptions & DownloadSourceMixin<'github'>;
20
- result: DownloadGitHubRepoResult;
15
+ options: DownloadGitHubRepoOptions & DownloadSourceMixin<'github'>;
16
+ result: DownloadGitHubRepoResult;
21
17
  }
22
18
  interface DownloadGitLabRepo {
23
- options: DownloadGitLabRepoOptions & DownloadSourceMixin<'gitlab'>;
24
- result: DownloadGitLabRepoResult;
19
+ options: DownloadGitLabRepoOptions & DownloadSourceMixin<'gitlab'>;
20
+ result: DownloadGitLabRepoResult;
25
21
  }
26
22
  interface DownloadNPMPackage {
27
- options: DownloadNPMPackageOptions & DownloadSourceMixin<'npm'>;
28
- result: DownloadNPMPackageResult;
23
+ options: DownloadNPMPackageOptions & DownloadSourceMixin<'npm'>;
24
+ result: DownloadNPMPackageResult;
29
25
  }
30
26
  /**
31
27
  * Combinations based on type
@@ -44,5 +40,4 @@ declare function downloadPackage<T extends 'git'>(options: DownloadOptions<T>):
44
40
  declare function downloadPackage<T extends 'github'>(options: DownloadOptions<T>): DownloadResult<T>;
45
41
  declare function downloadPackage<T extends 'gitlab'>(options: DownloadOptions<T>): DownloadResult<T>;
46
42
  declare function downloadPackage<T extends 'npm'>(options: DownloadOptions<T>): DownloadResult<T>;
47
-
48
- export { type DownloadParams, type DownloadParamsMixin, downloadPackage };
43
+ export { DownloadParams, DownloadParamsMixin, downloadPackage };
@@ -0,0 +1,19 @@
1
+ import { downloadGitRepo } from "./git/index.js";
2
+ import { downloadGitHubRepo } from "./github/index.js";
3
+ import { downloadGitLabRepo } from "./gitlab/index.js";
4
+ import { downloadNPMPackage } from "./npm/index.js";
5
+
6
+ function assertNever(v) {}
7
+ function downloadPackage(options) {
8
+ switch (options.downloadType) {
9
+ case "git": return downloadGitRepo(options);
10
+ case "github": return downloadGitHubRepo(options);
11
+ case "gitlab": return downloadGitLabRepo(options);
12
+ case "npm": return downloadNPMPackage(options);
13
+ default:
14
+ assertNever(options);
15
+ throw new Error(`Invalid download type: ${options.downloadType}`);
16
+ }
17
+ }
18
+
19
+ export { downloadPackage };
@@ -1,30 +1,28 @@
1
- import { ExportTargetOptions } from '../../export/helpers/prepare.js';
2
- import { DocumentNotModified } from '../types/modified.js';
3
- import { DownloadSourceMixin } from '../types/sources.js';
4
-
1
+ import { ExportTargetOptions } from "../../export/helpers/prepare.js";
2
+ import { DocumentNotModified } from "../types/modified.js";
3
+ import { DownloadSourceMixin } from "../types/sources.js";
5
4
  interface IfModifiedSinceOption {
6
- ifModifiedSince: string | true | DownloadNPMPackageResult;
5
+ ifModifiedSince: string | true | DownloadNPMPackageResult;
7
6
  }
8
7
  /**
9
8
  * Options for downloadNPMPackage()
10
9
  */
11
10
  interface DownloadNPMPackageOptions extends ExportTargetOptions, Partial<IfModifiedSinceOption> {
12
- package: string;
13
- tag?: string;
14
- log?: boolean;
11
+ package: string;
12
+ tag?: string;
13
+ log?: boolean;
15
14
  }
16
15
  /**
17
16
  * Result
18
17
  */
19
18
  interface DownloadNPMPackageResult extends DownloadSourceMixin<'npm'> {
20
- rootDir: string;
21
- contentsDir: string;
22
- version: string;
19
+ rootDir: string;
20
+ contentsDir: string;
21
+ version: string;
23
22
  }
24
23
  /**
25
24
  * Download NPM package
26
25
  */
27
26
  declare function downloadNPMPackage<T extends IfModifiedSinceOption & DownloadNPMPackageOptions>(options: T): Promise<DownloadNPMPackageResult | DocumentNotModified>;
28
27
  declare function downloadNPMPackage(options: DownloadNPMPackageOptions): Promise<DownloadNPMPackageResult>;
29
-
30
- export { type DownloadNPMPackageOptions, type DownloadNPMPackageResult, downloadNPMPackage };
28
+ export { DownloadNPMPackageOptions, DownloadNPMPackageResult, downloadNPMPackage };
@@ -0,0 +1,51 @@
1
+ import { normalizeDir, prepareDirectoryForExport } from "../../export/helpers/prepare.js";
2
+ import { downloadFile } from "../api/download.js";
3
+ import { untar } from "../helpers/untar.js";
4
+ import { getNPMVersion, getPackageVersion } from "./version.js";
5
+ import { promises } from "fs";
6
+
7
+ async function downloadNPMPackage(options) {
8
+ const rootDir = options.target = normalizeDir(options.target);
9
+ const contentsDir = rootDir + "/package";
10
+ const versionInfo = await getNPMVersion(options);
11
+ const version = versionInfo.version;
12
+ const ifModifiedSince = options.ifModifiedSince;
13
+ if (ifModifiedSince) try {
14
+ let expectedVersion;
15
+ if (typeof ifModifiedSince === "object") if (ifModifiedSince.downloadType === "npm" && ifModifiedSince.rootDir === rootDir && ifModifiedSince.contentsDir === contentsDir) expectedVersion = ifModifiedSince.version;
16
+ else expectedVersion = null;
17
+ else expectedVersion = ifModifiedSince === true ? await getPackageVersion(contentsDir) : ifModifiedSince;
18
+ if (version === expectedVersion) return "not_modified";
19
+ } catch (err) {
20
+ options.cleanup = true;
21
+ }
22
+ const archiveURL = versionInfo.file;
23
+ if (!archiveURL) throw new Error(`NPM registry did not provide link to package archive.`);
24
+ const archiveTarget = rootDir + "/" + version + ".tgz";
25
+ await prepareDirectoryForExport(options);
26
+ let archiveExists = false;
27
+ try {
28
+ archiveExists = (await promises.stat(archiveTarget)).isFile();
29
+ } catch (err) {}
30
+ if (!archiveExists) {
31
+ if (options.log) console.log(`Downloading ${archiveURL}`);
32
+ await downloadFile({
33
+ uri: archiveURL,
34
+ headers: { Accept: "application/tar+gzip" }
35
+ }, archiveTarget);
36
+ }
37
+ await prepareDirectoryForExport({
38
+ target: contentsDir,
39
+ cleanup: true
40
+ });
41
+ if (options.log) console.log(`Unpacking ${archiveTarget}`);
42
+ await untar(archiveTarget, rootDir);
43
+ return {
44
+ downloadType: "npm",
45
+ rootDir,
46
+ contentsDir,
47
+ version
48
+ };
49
+ }
50
+
51
+ export { downloadNPMPackage };
@@ -2,8 +2,7 @@
2
2
  * Package options
3
3
  */
4
4
  interface NPMPackageOptions {
5
- package: string;
6
- tag?: string;
5
+ package: string;
6
+ tag?: string;
7
7
  }
8
-
9
- export type { NPMPackageOptions };
8
+ export { NPMPackageOptions };
@@ -0,0 +1 @@
1
+ export { };
@@ -1,8 +1,7 @@
1
- import { NPMPackageOptions } from './types.js';
2
-
1
+ import { NPMPackageOptions } from "./types.js";
3
2
  interface GetNPMVersionResult {
4
- version: string;
5
- file?: string;
3
+ version: string;
4
+ file?: string;
6
5
  }
7
6
  /**
8
7
  * Get version of package from NPM registry
@@ -12,5 +11,4 @@ declare function getNPMVersion(options: NPMPackageOptions): Promise<GetNPMVersio
12
11
  * Get version of package from filename
13
12
  */
14
13
  declare function getPackageVersion(target: string): Promise<string>;
15
-
16
- export { type GetNPMVersionResult, getNPMVersion, getPackageVersion };
14
+ export { GetNPMVersionResult, getNPMVersion, getPackageVersion };
@@ -0,0 +1,23 @@
1
+ import { execAsync } from "../../misc/exec.js";
2
+ import { promises } from "fs";
3
+
4
+ /**
5
+ * Get version of package from NPM registry
6
+ */
7
+ async function getNPMVersion(options) {
8
+ const tag = options.tag || "latest";
9
+ const result = await execAsync(`npm view ${options.package}@${tag} --json`, { maxBuffer: 1024 * 1024 * 8 });
10
+ const data = JSON.parse(result.stdout);
11
+ return {
12
+ version: data.version,
13
+ file: data.dist?.tarball
14
+ };
15
+ }
16
+ /**
17
+ * Get version of package from filename
18
+ */
19
+ async function getPackageVersion(target) {
20
+ return JSON.parse(await promises.readFile(target + "/package.json", "utf8")).version;
21
+ }
22
+
23
+ export { getNPMVersion, getPackageVersion };
@@ -2,5 +2,4 @@
2
2
  * Document wasn't modified
3
3
  */
4
4
  type DocumentNotModified = 'not_modified';
5
-
6
- export type { DocumentNotModified };
5
+ export { DocumentNotModified };
@@ -0,0 +1 @@
1
+ export { };
@@ -6,7 +6,6 @@ type DownloadSourceType = 'git' | 'github' | 'gitlab' | 'npm';
6
6
  * Type in other objects
7
7
  */
8
8
  interface DownloadSourceMixin<T extends DownloadSourceType> {
9
- downloadType: T;
9
+ downloadType: T;
10
10
  }
11
-
12
- export type { DownloadSourceMixin, DownloadSourceType };
11
+ export { DownloadSourceMixin, DownloadSourceType };
@@ -0,0 +1 @@
1
+ export { };
@@ -1,20 +1,13 @@
1
- import { IconSet } from '../icon-set/index.js';
2
- import { ExportTargetOptions } from './helpers/prepare.js';
3
- import '@iconify/types';
4
- import '@iconify/utils/lib/customisations/defaults';
5
- import '../icon-set/types.js';
6
- import '../svg/index.js';
7
- import 'cheerio';
8
- import '@iconify/utils/lib/icon-set/tree';
9
-
1
+ import { IconSet } from "../icon-set/index.js";
2
+ import { ExportTargetOptions } from "./helpers/prepare.js";
10
3
  /**
11
4
  * Options
12
5
  */
13
6
  interface ExportToDirectoryOptions extends ExportTargetOptions {
14
- autoHeight?: boolean;
15
- includeAliases?: boolean;
16
- includeChars?: boolean;
17
- log?: boolean;
7
+ autoHeight?: boolean;
8
+ includeAliases?: boolean;
9
+ includeChars?: boolean;
10
+ log?: boolean;
18
11
  }
19
12
  /**
20
13
  * Export icon set to directory
@@ -22,5 +15,4 @@ interface ExportToDirectoryOptions extends ExportTargetOptions {
22
15
  * Returns list of stored files
23
16
  */
24
17
  declare function exportToDirectory(iconSet: IconSet, options: ExportToDirectoryOptions): Promise<string[]>;
25
-
26
- export { type ExportToDirectoryOptions, exportToDirectory };
18
+ export { ExportToDirectoryOptions, exportToDirectory };
@@ -0,0 +1,37 @@
1
+ import { prepareDirectoryForExport } from "./helpers/prepare.js";
2
+ import { promises } from "fs";
3
+
4
+ /**
5
+ * Export icon set to directory
6
+ *
7
+ * Returns list of stored files
8
+ */
9
+ async function exportToDirectory(iconSet, options) {
10
+ const dir = await prepareDirectoryForExport(options);
11
+ const storedFiles = /* @__PURE__ */ new Set();
12
+ const customisations = options.autoHeight === false ? { height: "1em" } : {
13
+ width: "auto",
14
+ height: "auto"
15
+ };
16
+ const store = async (name, target) => {
17
+ const svg = iconSet.toString(name, customisations);
18
+ if (!svg) return;
19
+ await promises.writeFile(target, svg, "utf8");
20
+ storedFiles.add(target);
21
+ if (options.log) console.log(`Saved ${target} (${svg.length} bytes)`);
22
+ };
23
+ if (options.includeChars) {
24
+ const chars = iconSet.chars();
25
+ for (const char in chars) {
26
+ const name = chars[char];
27
+ await store(name, `${dir}/${char}.svg`);
28
+ }
29
+ }
30
+ await iconSet.forEach(async (name, type) => {
31
+ if (type === "alias" && options.includeAliases === false) return;
32
+ await store(name, `${dir}/${name}.svg`);
33
+ });
34
+ return Array.from(storedFiles);
35
+ }
36
+
37
+ export { exportToDirectory };
@@ -2,11 +2,10 @@
2
2
  * Options
3
3
  */
4
4
  interface ExportOptionsWithCustomFiles {
5
- customFiles?: Record<string, string | Record<string, unknown> | null>;
5
+ customFiles?: Record<string, string | Record<string, unknown> | null>;
6
6
  }
7
7
  /**
8
8
  * Write custom files
9
9
  */
10
10
  declare function exportCustomFiles(dir: string, options: ExportOptionsWithCustomFiles, result?: Set<string>): Promise<void>;
11
-
12
- export { type ExportOptionsWithCustomFiles, exportCustomFiles };
11
+ export { ExportOptionsWithCustomFiles, exportCustomFiles };
@@ -0,0 +1,23 @@
1
+ import { writeJSONFile } from "../../misc/write-json.js";
2
+ import { promises } from "fs";
3
+
4
+ /**
5
+ * Write custom files
6
+ */
7
+ async function exportCustomFiles(dir, options, result) {
8
+ const customFiles = options.customFiles || {};
9
+ for (const filename in customFiles) {
10
+ const content = customFiles[filename];
11
+ if (content === null) {
12
+ try {
13
+ await promises.unlink(dir + "/" + filename);
14
+ } catch (err) {}
15
+ continue;
16
+ }
17
+ if (typeof content === "string") await promises.writeFile(dir + "/" + filename, content, "utf8");
18
+ else if (typeof content === "object") await writeJSONFile(dir + "/" + filename, content);
19
+ result?.add(filename);
20
+ }
21
+ }
22
+
23
+ export { exportCustomFiles };
@@ -2,8 +2,8 @@
2
2
  * Common options for all functions that export to directory
3
3
  */
4
4
  interface ExportTargetOptions {
5
- target: string;
6
- cleanup?: boolean;
5
+ target: string;
6
+ cleanup?: boolean;
7
7
  }
8
8
  /**
9
9
  * Normalize directory
@@ -15,5 +15,4 @@ declare function normalizeDir(dir: string): string;
15
15
  * Also normalizes directory and returns normalized value
16
16
  */
17
17
  declare function prepareDirectoryForExport(options: ExportTargetOptions): Promise<string>;
18
-
19
- export { type ExportTargetOptions, normalizeDir, prepareDirectoryForExport };
18
+ export { ExportTargetOptions, normalizeDir, prepareDirectoryForExport };
@@ -0,0 +1,31 @@
1
+ import { mkdir, rm } from "node:fs/promises";
2
+ import { normalize } from "pathe";
3
+
4
+ /**
5
+ * Normalize directory
6
+ */
7
+ function normalizeDir(dir) {
8
+ dir = normalize(dir);
9
+ if (dir.slice(-1) === "/") dir = dir.slice(0, -1);
10
+ return dir;
11
+ }
12
+ /**
13
+ * Prepare directory for export
14
+ *
15
+ * Also normalizes directory and returns normalized value
16
+ */
17
+ async function prepareDirectoryForExport(options) {
18
+ const dir = normalizeDir(options.target);
19
+ if (options.cleanup) try {
20
+ await rm(dir, {
21
+ recursive: true,
22
+ force: true
23
+ });
24
+ } catch {}
25
+ try {
26
+ await mkdir(dir, { recursive: true });
27
+ } catch {}
28
+ return dir;
29
+ }
30
+
31
+ export { normalizeDir, prepareDirectoryForExport };
@@ -2,5 +2,4 @@
2
2
  * Get current version of Iconify Types package
3
3
  */
4
4
  declare function getTypesVersion(): Promise<string>;
5
-
6
- export { getTypesVersion };
5
+ export { getTypesVersion };
@@ -0,0 +1,19 @@
1
+ import { uniquePromise } from "@cyberalien/svg-utils";
2
+ import { readFile } from "node:fs/promises";
3
+
4
+ let cache;
5
+ async function getVersion() {
6
+ const packageName = "@iconify/types/package.json";
7
+ return cache = (await uniquePromise(packageName, async () => {
8
+ const filename = import.meta.resolve(packageName);
9
+ return JSON.parse(await readFile(filename.replace("file://", ""), "utf8"));
10
+ })).version;
11
+ }
12
+ /**
13
+ * Get current version of Iconify Types package
14
+ */
15
+ async function getTypesVersion() {
16
+ return cache || await getVersion();
17
+ }
18
+
19
+ export { getTypesVersion };
@@ -1,20 +1,14 @@
1
- import { IconSet } from '../icon-set/index.js';
2
- import { ExportTargetOptions } from './helpers/prepare.js';
3
- import { ExportOptionsWithCustomFiles } from './helpers/custom-files.js';
4
- import '@iconify/types';
5
- import '@iconify/utils/lib/customisations/defaults';
6
- import '../icon-set/types.js';
7
- import '../svg/index.js';
8
- import 'cheerio';
9
- import '@iconify/utils/lib/icon-set/tree';
10
-
1
+ import { IconSet } from "../icon-set/index.js";
2
+ import { ExportTargetOptions } from "./helpers/prepare.js";
3
+ import { ExportOptionsWithCustomFiles } from "./helpers/custom-files.js";
11
4
  /**
12
5
  * Options
13
6
  */
14
7
  interface ExportIconPackageOptions extends ExportTargetOptions, ExportOptionsWithCustomFiles {
15
- package?: Record<string, unknown>;
16
- module?: boolean;
17
- typesContent?: string;
8
+ package?: Record<string, unknown>;
9
+ module?: boolean;
10
+ typesContent?: string;
11
+ wildcardTypesVersion?: boolean;
18
12
  }
19
13
  /**
20
14
  * Export icon set as single icon packages
@@ -22,5 +16,4 @@ interface ExportIconPackageOptions extends ExportTargetOptions, ExportOptionsWit
22
16
  * Was used for exporting `@iconify-icons/{prefix}` packages
23
17
  */
24
18
  declare function exportIconPackage(iconSet: IconSet, options: ExportIconPackageOptions): Promise<string[]>;
25
-
26
- export { type ExportIconPackageOptions, exportIconPackage };
19
+ export { ExportIconPackageOptions, exportIconPackage };
@@ -0,0 +1,55 @@
1
+ import { prepareDirectoryForExport } from "./helpers/prepare.js";
2
+ import { writeJSONFile } from "../misc/write-json.js";
3
+ import { exportCustomFiles } from "./helpers/custom-files.js";
4
+ import { getTypesVersion } from "./helpers/types-version.js";
5
+ import { promises } from "fs";
6
+
7
+ /**
8
+ * Content for .d.ts files
9
+ */
10
+ const defaultTypesContent = `import type { IconifyIcon } from '@iconify/types';
11
+ declare const data: IconifyIcon;
12
+ export default data;
13
+ `;
14
+ /**
15
+ * Export icon set as single icon packages
16
+ *
17
+ * Was used for exporting `@iconify-icons/{prefix}` packages
18
+ */
19
+ async function exportIconPackage(iconSet, options) {
20
+ const files = /* @__PURE__ */ new Set();
21
+ const esm = options.module !== false;
22
+ const dir = await prepareDirectoryForExport(options);
23
+ const typesContent = options.typesContent || defaultTypesContent;
24
+ await iconSet.forEach(async (name$1) => {
25
+ const data = iconSet.resolve(name$1, false);
26
+ if (!data) return;
27
+ const typesFilename = name$1 + ".d.ts";
28
+ await promises.writeFile(`${dir}/${typesFilename}`, typesContent, "utf8");
29
+ files.add(typesFilename);
30
+ let content = `const data = ` + JSON.stringify(data, null, " ") + ";\n";
31
+ if (!esm) content += "exports.__esModule = true;\nexports.default = data;\n";
32
+ else content += "export default data;\n";
33
+ const contentFilename = name$1 + ".js";
34
+ await promises.writeFile(`${dir}/${contentFilename}`, content, "utf8");
35
+ files.add(contentFilename);
36
+ });
37
+ await exportCustomFiles(dir, options, files);
38
+ const typesVersion = options.wildcardTypesVersion === false ? "^" + await getTypesVersion() : "*";
39
+ const info = iconSet.info;
40
+ const { name, description, version, dependencies, ...customPackageProps } = options.package || {};
41
+ const packageJSON = {
42
+ name: name || (esm ? `@iconify-icons/${iconSet.prefix}` : `@iconify/icons-${iconSet.prefix}`),
43
+ description: description || `Iconify icon components for ${info ? info.name : iconSet.prefix}`,
44
+ version,
45
+ type: esm ? "module" : void 0,
46
+ iconSetInfo: info,
47
+ ...customPackageProps,
48
+ dependencies: dependencies || { "@iconify/types": typesVersion }
49
+ };
50
+ await writeJSONFile(dir + "/package.json", packageJSON);
51
+ files.add("package.json");
52
+ return Array.from(files);
53
+ }
54
+
55
+ export { exportIconPackage };
@@ -1,19 +1,13 @@
1
- import { IconSet } from '../icon-set/index.js';
2
- import { ExportTargetOptions } from './helpers/prepare.js';
3
- import { ExportOptionsWithCustomFiles } from './helpers/custom-files.js';
4
- import '@iconify/types';
5
- import '@iconify/utils/lib/customisations/defaults';
6
- import '../icon-set/types.js';
7
- import '../svg/index.js';
8
- import 'cheerio';
9
- import '@iconify/utils/lib/icon-set/tree';
10
-
1
+ import { IconSet } from "../icon-set/index.js";
2
+ import { ExportTargetOptions } from "./helpers/prepare.js";
3
+ import { ExportOptionsWithCustomFiles } from "./helpers/custom-files.js";
11
4
  /**
12
5
  * Options
13
6
  */
14
7
  interface ExportJSONPackageOptions extends ExportTargetOptions, ExportOptionsWithCustomFiles {
15
- package?: Record<string, unknown>;
16
- customisePackage?: (contents: Record<string, unknown>) => void;
8
+ package?: Record<string, unknown>;
9
+ customisePackage?: (contents: Record<string, unknown>) => void;
10
+ wildcardTypesVersion?: boolean;
17
11
  }
18
12
  /**
19
13
  * Export icon set as JSON package
@@ -21,5 +15,4 @@ interface ExportJSONPackageOptions extends ExportTargetOptions, ExportOptionsWit
21
15
  * Used for exporting `@iconify-json/{prefix}` packages
22
16
  */
23
17
  declare function exportJSONPackage(iconSet: IconSet, options: ExportJSONPackageOptions): Promise<string[]>;
24
-
25
- export { type ExportJSONPackageOptions, exportJSONPackage };
18
+ export { ExportJSONPackageOptions, exportJSONPackage };