@iconify/tools 4.1.5 → 5.0.0-beta.1

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 (526) 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 +7 -9
  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 +9 -0
  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 +23 -35
  110. package/lib/import/figma/types/nodes.d.ts +12 -21
  111. package/lib/import/figma/types/options.d.ts +23 -32
  112. package/lib/import/figma/types/result.d.ts +16 -24
  113. package/lib/index.d.ts +55 -79
  114. package/lib/index.js +56 -0
  115. package/lib/misc/bump-version.d.ts +1 -2
  116. package/lib/misc/bump-version.js +13 -0
  117. package/lib/misc/compare-dirs.d.ts +4 -5
  118. package/lib/misc/compare-dirs.js +65 -0
  119. package/lib/misc/exec.d.ts +4 -6
  120. package/lib/misc/exec.js +23 -0
  121. package/lib/misc/keyword.d.ts +1 -2
  122. package/lib/misc/keyword.js +12 -0
  123. package/lib/misc/scan.d.ts +4 -6
  124. package/lib/misc/scan.js +87 -0
  125. package/lib/misc/write-json.d.ts +1 -2
  126. package/lib/misc/write-json.js +10 -0
  127. package/lib/optimise/figma.d.ts +2 -7
  128. package/lib/optimise/figma.js +189 -0
  129. package/lib/optimise/flags.d.ts +2 -7
  130. package/lib/optimise/flags.js +231 -0
  131. package/lib/optimise/global-style.d.ts +2 -7
  132. package/lib/optimise/global-style.js +114 -0
  133. package/lib/optimise/mask.d.ts +9 -14
  134. package/lib/optimise/mask.js +83 -0
  135. package/lib/optimise/origin.d.ts +2 -7
  136. package/lib/optimise/origin.js +22 -0
  137. package/lib/optimise/scale.d.ts +2 -7
  138. package/lib/optimise/scale.js +24 -0
  139. package/lib/optimise/svgo.d.ts +10 -15
  140. package/lib/optimise/svgo.js +90 -0
  141. package/lib/optimise/unwrap.d.ts +2 -7
  142. package/lib/optimise/unwrap.js +25 -0
  143. package/lib/svg/analyse/error.d.ts +2 -7
  144. package/lib/svg/analyse/error.js +12 -0
  145. package/lib/svg/analyse/types.d.ts +31 -35
  146. package/lib/svg/analyse/types.js +1 -0
  147. package/lib/svg/analyse.d.ts +3 -10
  148. package/lib/svg/analyse.js +256 -0
  149. package/lib/svg/cleanup/attribs.d.ts +2 -7
  150. package/lib/svg/cleanup/attribs.js +37 -0
  151. package/lib/svg/cleanup/bad-tags.d.ts +3 -8
  152. package/lib/svg/cleanup/bad-tags.js +57 -0
  153. package/lib/svg/cleanup/inline-style.d.ts +2 -7
  154. package/lib/svg/cleanup/inline-style.js +80 -0
  155. package/lib/svg/cleanup/root-style.d.ts +4 -9
  156. package/lib/svg/cleanup/root-style.js +27 -0
  157. package/lib/svg/cleanup/root-svg.d.ts +2 -7
  158. package/lib/svg/cleanup/root-svg.js +73 -0
  159. package/lib/svg/cleanup/svgo-style.d.ts +2 -7
  160. package/lib/svg/cleanup/svgo-style.js +24 -0
  161. package/lib/svg/cleanup.d.ts +3 -8
  162. package/lib/svg/cleanup.js +20 -0
  163. package/lib/svg/data/attributes.d.ts +1 -2
  164. package/lib/svg/data/attributes.js +451 -0
  165. package/lib/svg/data/tags.d.ts +1 -2
  166. package/lib/svg/data/tags.js +182 -0
  167. package/lib/svg/index.d.ts +38 -47
  168. package/lib/svg/index.js +117 -0
  169. package/lib/svg/parse-style.d.ts +21 -28
  170. package/lib/svg/parse-style.js +199 -0
  171. package/lib/svg/parse.d.ts +8 -16
  172. package/lib/svg/parse.js +32 -0
  173. package/package.json +126 -227
  174. package/lib/colors/attribs.cjs +0 -33
  175. package/lib/colors/attribs.d.cts +0 -27
  176. package/lib/colors/attribs.d.mts +0 -27
  177. package/lib/colors/attribs.mjs +0 -26
  178. package/lib/colors/detect.cjs +0 -66
  179. package/lib/colors/detect.d.cts +0 -16
  180. package/lib/colors/detect.d.mts +0 -16
  181. package/lib/colors/detect.mjs +0 -64
  182. package/lib/colors/parse.cjs +0 -300
  183. package/lib/colors/parse.d.cts +0 -61
  184. package/lib/colors/parse.d.mts +0 -61
  185. package/lib/colors/parse.mjs +0 -297
  186. package/lib/colors/validate.cjs +0 -56
  187. package/lib/colors/validate.d.cts +0 -21
  188. package/lib/colors/validate.d.mts +0 -21
  189. package/lib/colors/validate.mjs +0 -54
  190. package/lib/css/parse.cjs +0 -24
  191. package/lib/css/parse.d.cts +0 -6
  192. package/lib/css/parse.d.mts +0 -6
  193. package/lib/css/parse.mjs +0 -22
  194. package/lib/css/parser/error.cjs +0 -23
  195. package/lib/css/parser/error.d.cts +0 -13
  196. package/lib/css/parser/error.d.mts +0 -13
  197. package/lib/css/parser/error.mjs +0 -21
  198. package/lib/css/parser/export.cjs +0 -37
  199. package/lib/css/parser/export.d.cts +0 -8
  200. package/lib/css/parser/export.d.mts +0 -8
  201. package/lib/css/parser/export.mjs +0 -35
  202. package/lib/css/parser/strings.cjs +0 -83
  203. package/lib/css/parser/strings.d.cts +0 -16
  204. package/lib/css/parser/strings.d.mts +0 -16
  205. package/lib/css/parser/strings.mjs +0 -80
  206. package/lib/css/parser/text.cjs +0 -114
  207. package/lib/css/parser/text.d.cts +0 -20
  208. package/lib/css/parser/text.d.mts +0 -20
  209. package/lib/css/parser/text.mjs +0 -109
  210. package/lib/css/parser/tokens.cjs +0 -206
  211. package/lib/css/parser/tokens.d.cts +0 -9
  212. package/lib/css/parser/tokens.d.mts +0 -9
  213. package/lib/css/parser/tokens.mjs +0 -204
  214. package/lib/css/parser/tree.cjs +0 -40
  215. package/lib/css/parser/tree.d.cts +0 -8
  216. package/lib/css/parser/tree.d.mts +0 -8
  217. package/lib/css/parser/tree.mjs +0 -38
  218. package/lib/css/parser/types.cjs +0 -2
  219. package/lib/css/parser/types.d.cts +0 -52
  220. package/lib/css/parser/types.d.mts +0 -52
  221. package/lib/css/parser/types.mjs +0 -1
  222. package/lib/download/api/cache.cjs +0 -91
  223. package/lib/download/api/cache.d.cts +0 -20
  224. package/lib/download/api/cache.d.mts +0 -20
  225. package/lib/download/api/cache.mjs +0 -86
  226. package/lib/download/api/config.cjs +0 -11
  227. package/lib/download/api/config.d.cts +0 -18
  228. package/lib/download/api/config.d.mts +0 -18
  229. package/lib/download/api/config.mjs +0 -8
  230. package/lib/download/api/download.cjs +0 -30
  231. package/lib/download/api/download.d.cts +0 -8
  232. package/lib/download/api/download.d.mts +0 -8
  233. package/lib/download/api/download.mjs +0 -24
  234. package/lib/download/api/index.cjs +0 -60
  235. package/lib/download/api/index.d.cts +0 -8
  236. package/lib/download/api/index.d.mts +0 -8
  237. package/lib/download/api/index.mjs +0 -54
  238. package/lib/download/api/queue.cjs +0 -104
  239. package/lib/download/api/queue.d.cts +0 -32
  240. package/lib/download/api/queue.d.mts +0 -32
  241. package/lib/download/api/queue.mjs +0 -101
  242. package/lib/download/api/types.cjs +0 -2
  243. package/lib/download/api/types.d.cts +0 -17
  244. package/lib/download/api/types.d.mts +0 -17
  245. package/lib/download/api/types.mjs +0 -1
  246. package/lib/download/git/branch.cjs +0 -19
  247. package/lib/download/git/branch.d.cts +0 -8
  248. package/lib/download/git/branch.d.mts +0 -8
  249. package/lib/download/git/branch.mjs +0 -17
  250. package/lib/download/git/hash.cjs +0 -14
  251. package/lib/download/git/hash.d.cts +0 -8
  252. package/lib/download/git/hash.d.mts +0 -8
  253. package/lib/download/git/hash.mjs +0 -12
  254. package/lib/download/git/index.cjs +0 -77
  255. package/lib/download/git/index.d.cts +0 -29
  256. package/lib/download/git/index.d.mts +0 -29
  257. package/lib/download/git/index.mjs +0 -75
  258. package/lib/download/git/reset.cjs +0 -37
  259. package/lib/download/git/reset.d.cts +0 -6
  260. package/lib/download/git/reset.d.mts +0 -6
  261. package/lib/download/git/reset.mjs +0 -35
  262. package/lib/download/github/hash.cjs +0 -31
  263. package/lib/download/github/hash.d.cts +0 -8
  264. package/lib/download/github/hash.d.mts +0 -8
  265. package/lib/download/github/hash.mjs +0 -29
  266. package/lib/download/github/index.cjs +0 -105
  267. package/lib/download/github/index.d.cts +0 -31
  268. package/lib/download/github/index.d.mts +0 -31
  269. package/lib/download/github/index.mjs +0 -103
  270. package/lib/download/github/types.cjs +0 -2
  271. package/lib/download/github/types.d.cts +0 -11
  272. package/lib/download/github/types.d.mts +0 -11
  273. package/lib/download/github/types.mjs +0 -1
  274. package/lib/download/gitlab/hash.cjs +0 -33
  275. package/lib/download/gitlab/hash.d.cts +0 -8
  276. package/lib/download/gitlab/hash.d.mts +0 -8
  277. package/lib/download/gitlab/hash.mjs +0 -31
  278. package/lib/download/gitlab/index.cjs +0 -105
  279. package/lib/download/gitlab/index.d.cts +0 -31
  280. package/lib/download/gitlab/index.d.mts +0 -31
  281. package/lib/download/gitlab/index.mjs +0 -103
  282. package/lib/download/gitlab/types.cjs +0 -5
  283. package/lib/download/gitlab/types.d.cts +0 -15
  284. package/lib/download/gitlab/types.d.mts +0 -15
  285. package/lib/download/gitlab/types.mjs +0 -3
  286. package/lib/download/helpers/untar.cjs +0 -12
  287. package/lib/download/helpers/untar.d.cts +0 -6
  288. package/lib/download/helpers/untar.d.mts +0 -6
  289. package/lib/download/helpers/untar.mjs +0 -10
  290. package/lib/download/helpers/unzip.cjs +0 -17
  291. package/lib/download/helpers/unzip.d.cts +0 -6
  292. package/lib/download/helpers/unzip.d.mts +0 -6
  293. package/lib/download/helpers/unzip.mjs +0 -11
  294. package/lib/download/index.cjs +0 -64
  295. package/lib/download/index.d.cts +0 -48
  296. package/lib/download/index.d.mts +0 -48
  297. package/lib/download/index.mjs +0 -62
  298. package/lib/download/npm/index.cjs +0 -85
  299. package/lib/download/npm/index.d.cts +0 -30
  300. package/lib/download/npm/index.d.mts +0 -30
  301. package/lib/download/npm/index.mjs +0 -83
  302. package/lib/download/npm/types.cjs +0 -2
  303. package/lib/download/npm/types.d.cts +0 -9
  304. package/lib/download/npm/types.d.mts +0 -9
  305. package/lib/download/npm/types.mjs +0 -1
  306. package/lib/download/npm/version.cjs +0 -29
  307. package/lib/download/npm/version.d.cts +0 -16
  308. package/lib/download/npm/version.d.mts +0 -16
  309. package/lib/download/npm/version.mjs +0 -26
  310. package/lib/download/types/modified.cjs +0 -2
  311. package/lib/download/types/modified.d.cts +0 -6
  312. package/lib/download/types/modified.d.mts +0 -6
  313. package/lib/download/types/modified.mjs +0 -1
  314. package/lib/download/types/sources.cjs +0 -2
  315. package/lib/download/types/sources.d.cts +0 -12
  316. package/lib/download/types/sources.d.mts +0 -12
  317. package/lib/download/types/sources.mjs +0 -1
  318. package/lib/export/directory.cjs +0 -43
  319. package/lib/export/directory.d.cts +0 -26
  320. package/lib/export/directory.d.mts +0 -26
  321. package/lib/export/directory.mjs +0 -41
  322. package/lib/export/helpers/custom-files.cjs +0 -26
  323. package/lib/export/helpers/custom-files.d.cts +0 -12
  324. package/lib/export/helpers/custom-files.d.mts +0 -12
  325. package/lib/export/helpers/custom-files.mjs +0 -24
  326. package/lib/export/helpers/prepare.cjs +0 -34
  327. package/lib/export/helpers/prepare.d.cts +0 -19
  328. package/lib/export/helpers/prepare.d.mts +0 -19
  329. package/lib/export/helpers/prepare.mjs +0 -31
  330. package/lib/export/helpers/types-version.cjs +0 -12
  331. package/lib/export/helpers/types-version.d.cts +0 -6
  332. package/lib/export/helpers/types-version.d.mts +0 -6
  333. package/lib/export/helpers/types-version.mjs +0 -10
  334. package/lib/export/icon-package.cjs +0 -56
  335. package/lib/export/icon-package.d.cts +0 -26
  336. package/lib/export/icon-package.d.mts +0 -26
  337. package/lib/export/icon-package.mjs +0 -54
  338. package/lib/export/json-package.cjs +0 -144
  339. package/lib/export/json-package.d.cts +0 -25
  340. package/lib/export/json-package.d.mts +0 -25
  341. package/lib/export/json-package.mjs +0 -142
  342. package/lib/icon-set/index.cjs +0 -720
  343. package/lib/icon-set/index.d.cts +0 -162
  344. package/lib/icon-set/index.d.mts +0 -162
  345. package/lib/icon-set/index.mjs +0 -716
  346. package/lib/icon-set/match.cjs +0 -56
  347. package/lib/icon-set/match.d.cts +0 -15
  348. package/lib/icon-set/match.d.mts +0 -15
  349. package/lib/icon-set/match.mjs +0 -54
  350. package/lib/icon-set/merge.cjs +0 -87
  351. package/lib/icon-set/merge.d.cts +0 -14
  352. package/lib/icon-set/merge.d.mts +0 -14
  353. package/lib/icon-set/merge.mjs +0 -85
  354. package/lib/icon-set/modified.cjs +0 -25
  355. package/lib/icon-set/modified.d.cts +0 -16
  356. package/lib/icon-set/modified.d.mts +0 -16
  357. package/lib/icon-set/modified.mjs +0 -23
  358. package/lib/icon-set/props.cjs +0 -16
  359. package/lib/icon-set/props.d.cts +0 -13
  360. package/lib/icon-set/props.d.mts +0 -13
  361. package/lib/icon-set/props.mjs +0 -13
  362. package/lib/icon-set/tags.cjs +0 -95
  363. package/lib/icon-set/tags.d.cts +0 -25
  364. package/lib/icon-set/tags.d.mts +0 -25
  365. package/lib/icon-set/tags.mjs +0 -91
  366. package/lib/icon-set/types.cjs +0 -2
  367. package/lib/icon-set/types.d.cts +0 -75
  368. package/lib/icon-set/types.d.mts +0 -75
  369. package/lib/icon-set/types.mjs +0 -1
  370. package/lib/import/directory.cjs +0 -169
  371. package/lib/import/directory.d.cts +0 -52
  372. package/lib/import/directory.d.mts +0 -52
  373. package/lib/import/directory.mjs +0 -166
  374. package/lib/import/figma/index.cjs +0 -115
  375. package/lib/import/figma/index.d.cts +0 -20
  376. package/lib/import/figma/index.d.mts +0 -20
  377. package/lib/import/figma/index.mjs +0 -113
  378. package/lib/import/figma/nodes.cjs +0 -90
  379. package/lib/import/figma/nodes.d.cts +0 -18
  380. package/lib/import/figma/nodes.d.mts +0 -18
  381. package/lib/import/figma/nodes.mjs +0 -88
  382. package/lib/import/figma/query.cjs +0 -260
  383. package/lib/import/figma/query.d.cts +0 -42
  384. package/lib/import/figma/query.d.mts +0 -42
  385. package/lib/import/figma/query.mjs +0 -256
  386. package/lib/import/figma/types/api.cjs +0 -2
  387. package/lib/import/figma/types/api.d.cts +0 -53
  388. package/lib/import/figma/types/api.d.mts +0 -53
  389. package/lib/import/figma/types/api.mjs +0 -1
  390. package/lib/import/figma/types/nodes.cjs +0 -2
  391. package/lib/import/figma/types/nodes.d.cts +0 -44
  392. package/lib/import/figma/types/nodes.d.mts +0 -44
  393. package/lib/import/figma/types/nodes.mjs +0 -1
  394. package/lib/import/figma/types/options.cjs +0 -2
  395. package/lib/import/figma/types/options.d.cts +0 -59
  396. package/lib/import/figma/types/options.d.mts +0 -59
  397. package/lib/import/figma/types/options.mjs +0 -1
  398. package/lib/import/figma/types/result.cjs +0 -2
  399. package/lib/import/figma/types/result.d.cts +0 -44
  400. package/lib/import/figma/types/result.d.mts +0 -44
  401. package/lib/import/figma/types/result.mjs +0 -1
  402. package/lib/index.cjs +0 -156
  403. package/lib/index.d.cts +0 -79
  404. package/lib/index.d.mts +0 -79
  405. package/lib/index.mjs +0 -91
  406. package/lib/misc/bump-version.cjs +0 -15
  407. package/lib/misc/bump-version.d.cts +0 -6
  408. package/lib/misc/bump-version.d.mts +0 -6
  409. package/lib/misc/bump-version.mjs +0 -13
  410. package/lib/misc/cheerio.cjs +0 -2
  411. package/lib/misc/cheerio.d.cts +0 -10
  412. package/lib/misc/cheerio.d.mts +0 -10
  413. package/lib/misc/cheerio.d.ts +0 -10
  414. package/lib/misc/cheerio.mjs +0 -1
  415. package/lib/misc/compare-dirs.cjs +0 -75
  416. package/lib/misc/compare-dirs.d.cts +0 -11
  417. package/lib/misc/compare-dirs.d.mts +0 -11
  418. package/lib/misc/compare-dirs.mjs +0 -73
  419. package/lib/misc/exec.cjs +0 -27
  420. package/lib/misc/exec.d.cts +0 -12
  421. package/lib/misc/exec.d.mts +0 -12
  422. package/lib/misc/exec.mjs +0 -25
  423. package/lib/misc/keyword.cjs +0 -20
  424. package/lib/misc/keyword.d.cts +0 -6
  425. package/lib/misc/keyword.d.mts +0 -6
  426. package/lib/misc/keyword.mjs +0 -18
  427. package/lib/misc/scan.cjs +0 -114
  428. package/lib/misc/scan.d.cts +0 -33
  429. package/lib/misc/scan.d.mts +0 -33
  430. package/lib/misc/scan.mjs +0 -111
  431. package/lib/misc/write-json.cjs +0 -9
  432. package/lib/misc/write-json.d.cts +0 -6
  433. package/lib/misc/write-json.d.mts +0 -6
  434. package/lib/misc/write-json.mjs +0 -7
  435. package/lib/optimise/figma.cjs +0 -232
  436. package/lib/optimise/figma.d.cts +0 -14
  437. package/lib/optimise/figma.d.mts +0 -14
  438. package/lib/optimise/figma.mjs +0 -230
  439. package/lib/optimise/flags.cjs +0 -256
  440. package/lib/optimise/flags.d.cts +0 -11
  441. package/lib/optimise/flags.d.mts +0 -11
  442. package/lib/optimise/flags.mjs +0 -254
  443. package/lib/optimise/global-style.cjs +0 -158
  444. package/lib/optimise/global-style.d.cts +0 -11
  445. package/lib/optimise/global-style.d.mts +0 -11
  446. package/lib/optimise/global-style.mjs +0 -156
  447. package/lib/optimise/mask.cjs +0 -110
  448. package/lib/optimise/mask.d.cts +0 -24
  449. package/lib/optimise/mask.d.mts +0 -24
  450. package/lib/optimise/mask.mjs +0 -108
  451. package/lib/optimise/origin.cjs +0 -23
  452. package/lib/optimise/origin.d.cts +0 -11
  453. package/lib/optimise/origin.d.mts +0 -11
  454. package/lib/optimise/origin.mjs +0 -21
  455. package/lib/optimise/scale.cjs +0 -27
  456. package/lib/optimise/scale.d.cts +0 -11
  457. package/lib/optimise/scale.d.mts +0 -11
  458. package/lib/optimise/scale.mjs +0 -25
  459. package/lib/optimise/svgo.cjs +0 -107
  460. package/lib/optimise/svgo.d.cts +0 -37
  461. package/lib/optimise/svgo.d.mts +0 -37
  462. package/lib/optimise/svgo.mjs +0 -104
  463. package/lib/optimise/unwrap.cjs +0 -31
  464. package/lib/optimise/unwrap.d.cts +0 -11
  465. package/lib/optimise/unwrap.d.mts +0 -11
  466. package/lib/optimise/unwrap.mjs +0 -29
  467. package/lib/svg/analyse/error.cjs +0 -16
  468. package/lib/svg/analyse/error.d.cts +0 -11
  469. package/lib/svg/analyse/error.d.mts +0 -11
  470. package/lib/svg/analyse/error.mjs +0 -14
  471. package/lib/svg/analyse/types.cjs +0 -2
  472. package/lib/svg/analyse/types.d.cts +0 -93
  473. package/lib/svg/analyse/types.d.mts +0 -93
  474. package/lib/svg/analyse/types.mjs +0 -1
  475. package/lib/svg/analyse.cjs +0 -303
  476. package/lib/svg/analyse.d.cts +0 -16
  477. package/lib/svg/analyse.d.mts +0 -16
  478. package/lib/svg/analyse.mjs +0 -301
  479. package/lib/svg/cleanup/attribs.cjs +0 -39
  480. package/lib/svg/cleanup/attribs.d.cts +0 -11
  481. package/lib/svg/cleanup/attribs.d.mts +0 -11
  482. package/lib/svg/cleanup/attribs.mjs +0 -37
  483. package/lib/svg/cleanup/bad-tags.cjs +0 -69
  484. package/lib/svg/cleanup/bad-tags.d.cts +0 -17
  485. package/lib/svg/cleanup/bad-tags.d.mts +0 -17
  486. package/lib/svg/cleanup/bad-tags.mjs +0 -67
  487. package/lib/svg/cleanup/inline-style.cjs +0 -97
  488. package/lib/svg/cleanup/inline-style.d.cts +0 -11
  489. package/lib/svg/cleanup/inline-style.d.mts +0 -11
  490. package/lib/svg/cleanup/inline-style.mjs +0 -95
  491. package/lib/svg/cleanup/root-style.cjs +0 -34
  492. package/lib/svg/cleanup/root-style.d.cts +0 -17
  493. package/lib/svg/cleanup/root-style.d.mts +0 -17
  494. package/lib/svg/cleanup/root-style.mjs +0 -32
  495. package/lib/svg/cleanup/root-svg.cjs +0 -84
  496. package/lib/svg/cleanup/root-svg.d.cts +0 -11
  497. package/lib/svg/cleanup/root-svg.d.mts +0 -11
  498. package/lib/svg/cleanup/root-svg.mjs +0 -82
  499. package/lib/svg/cleanup/svgo-style.cjs +0 -43
  500. package/lib/svg/cleanup/svgo-style.d.cts +0 -11
  501. package/lib/svg/cleanup/svgo-style.d.mts +0 -11
  502. package/lib/svg/cleanup/svgo-style.mjs +0 -41
  503. package/lib/svg/cleanup.cjs +0 -33
  504. package/lib/svg/cleanup.d.cts +0 -16
  505. package/lib/svg/cleanup.d.mts +0 -16
  506. package/lib/svg/cleanup.mjs +0 -31
  507. package/lib/svg/data/attributes.cjs +0 -373
  508. package/lib/svg/data/attributes.d.cts +0 -77
  509. package/lib/svg/data/attributes.d.mts +0 -77
  510. package/lib/svg/data/attributes.mjs +0 -346
  511. package/lib/svg/data/tags.cjs +0 -141
  512. package/lib/svg/data/tags.d.cts +0 -95
  513. package/lib/svg/data/tags.d.mts +0 -95
  514. package/lib/svg/data/tags.mjs +0 -117
  515. package/lib/svg/index.cjs +0 -178
  516. package/lib/svg/index.d.cts +0 -52
  517. package/lib/svg/index.d.mts +0 -52
  518. package/lib/svg/index.mjs +0 -162
  519. package/lib/svg/parse-style.cjs +0 -243
  520. package/lib/svg/parse-style.d.cts +0 -59
  521. package/lib/svg/parse-style.d.mts +0 -59
  522. package/lib/svg/parse-style.mjs +0 -241
  523. package/lib/svg/parse.cjs +0 -46
  524. package/lib/svg/parse.d.cts +0 -31
  525. package/lib/svg/parse.d.mts +0 -31
  526. 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 };