@koda-sl/baker-cli 0.553.0 → 0.555.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (857) hide show
  1. package/README.md +8 -4
  2. package/dist/account-H5CL6KUY.js +82 -0
  3. package/dist/account-assets-QMKT5AT7.js +290 -0
  4. package/dist/account-level-BELF6JHB.js +611 -0
  5. package/dist/account-reads-T6GTSAXE.js +219 -0
  6. package/dist/account-users-ZGJCVGX4.js +64 -0
  7. package/dist/accounts-EXQNPSYH.js +701 -0
  8. package/dist/accounts-GNVLFZ3X.js +80 -0
  9. package/dist/actions-Q2BMP27K.js +55 -0
  10. package/dist/activecampaign-SJO2YK6M.js +938 -0
  11. package/dist/add-Q3FGYX5Q.js +305 -0
  12. package/dist/add-YGQBSEVK.js +107 -0
  13. package/dist/ads-7QKQEHKT.js +48 -0
  14. package/dist/ads-H5AEYIY3.js +120 -0
  15. package/dist/adsets-BUIT7HF2.js +182 -0
  16. package/dist/advertisers-ZAHXMIAT.js +123 -0
  17. package/dist/analytics-B6ER4TQ7.js +2437 -0
  18. package/dist/analytics-QW5ZXDJR.js +447 -0
  19. package/dist/animate-Q43SOWB4.js +480 -0
  20. package/dist/asset-writes-JVFE457M.js +50 -0
  21. package/dist/assign-HJ2NXW4W.js +80 -0
  22. package/dist/audience-size-IM3N6W7C.js +76 -0
  23. package/dist/audience-writes-DWSCHYQF.js +327 -0
  24. package/dist/audiences-PYBJU2GV.js +106 -0
  25. package/dist/audit-N3LAQMD4.js +154 -0
  26. package/dist/autocomplete-FBTPT5MA.js +114 -0
  27. package/dist/avatars-Y3DALQIU.js +38 -0
  28. package/dist/bid-pricing-UUAC4GTQ.js +103 -0
  29. package/dist/brand-IZYD5SBJ.js +22 -0
  30. package/dist/brief-NA3E2W4P.js +543 -0
  31. package/dist/campaign-groups-3IUOLEK2.js +99 -0
  32. package/dist/campaign-writes-Y7QNFOE7.js +168 -0
  33. package/dist/campaigns-2Z6WXIVA.js +130 -0
  34. package/dist/campaigns-B2AUW4TV.js +111 -0
  35. package/dist/campaigns-IDEA3LOK.js +113 -0
  36. package/dist/canvas-WHFDCHUP.js +46 -0
  37. package/dist/capabilities-FVMMLKPY.js +147 -0
  38. package/dist/catalog-URTZYAPU.js +66 -0
  39. package/dist/catalogs-OEUNVE4N.js +782 -0
  40. package/dist/chatgpt-YBHXCXWZ.js +47 -0
  41. package/dist/chats-EENMDXWZ.js +449 -0
  42. package/dist/check-7735BPTR.js +107 -0
  43. package/dist/chunk-2QGGI7MF.js +831 -0
  44. package/dist/chunk-3HKZU3Y5.js +19 -0
  45. package/dist/chunk-3OMFSYQ3.js +344 -0
  46. package/dist/chunk-4N3Y5QWW.js +29 -0
  47. package/dist/chunk-4N3Y5QWW.js.map +1 -0
  48. package/dist/chunk-65CQYRMK.js +98 -0
  49. package/dist/chunk-6MZFOMLU.js +225 -0
  50. package/dist/chunk-6PT22YSR.js +91 -0
  51. package/dist/chunk-6WVYBY2G.js +8954 -0
  52. package/dist/chunk-757ZFIL4.js +910 -0
  53. package/dist/chunk-75HAGIH6.js +61 -0
  54. package/dist/chunk-7BVRFQN4.js +430 -0
  55. package/dist/chunk-7TDJCDKT.js +163 -0
  56. package/dist/chunk-AL4MRNYI.js +709 -0
  57. package/dist/chunk-BMNOMOWP.js +156 -0
  58. package/dist/chunk-BS2MC62Y.js +203 -0
  59. package/dist/chunk-C6PWVZQE.js +103 -0
  60. package/dist/chunk-CDTAKCJR.js +178 -0
  61. package/dist/chunk-CH44XVPE.js +142 -0
  62. package/dist/chunk-CJWLDKFO.js +494 -0
  63. package/dist/chunk-DAMC4FKK.js +224 -0
  64. package/dist/chunk-DSDI5DY3.js +115 -0
  65. package/dist/chunk-DSDI5DY3.js.map +1 -0
  66. package/dist/chunk-DWPOAU4Z.js +5471 -0
  67. package/dist/chunk-EENYLJUN.js +225 -0
  68. package/dist/chunk-EJBLF2LI.js +167 -0
  69. package/dist/chunk-EJMPKO6V.js +287 -0
  70. package/dist/chunk-EKXLJRO3.js +197 -0
  71. package/dist/chunk-EL3TDR5S.js +1744 -0
  72. package/dist/chunk-GRDZWZKQ.js +249 -0
  73. package/dist/chunk-GVUBRSD3.js +51 -0
  74. package/dist/chunk-GYREQDTJ.js +392 -0
  75. package/dist/chunk-HBRXFQQV.js +3510 -0
  76. package/dist/chunk-HLHR3EK2.js +23 -0
  77. package/dist/chunk-IMFIRELA.js +547 -0
  78. package/dist/chunk-IOKD77L2.js +89 -0
  79. package/dist/chunk-KDAINT54.js +131 -0
  80. package/dist/chunk-KKKZRQFY.js +297 -0
  81. package/dist/chunk-KOEXPN3G.js +2209 -0
  82. package/dist/chunk-KT5JVIPZ.js +91 -0
  83. package/dist/chunk-LC6PVPJX.js +76 -0
  84. package/dist/chunk-LETR3RQE.js +275 -0
  85. package/dist/chunk-MKLAZD23.js +7857 -0
  86. package/dist/chunk-MKLAZD23.js.map +1 -0
  87. package/dist/chunk-N3PASNUA.js +136 -0
  88. package/dist/chunk-NL77JRKE.js +170 -0
  89. package/dist/chunk-OBQ5YUOZ.js +1902 -0
  90. package/dist/chunk-OTFHIGEO.js +207 -0
  91. package/dist/chunk-PCUWBZM3.js +169 -0
  92. package/dist/chunk-PNWXTOQ4.js +455 -0
  93. package/dist/chunk-PQFTKHDA.js +479 -0
  94. package/dist/chunk-Q5DFEVLE.js +148 -0
  95. package/dist/chunk-QXCGWAC6.js +399 -0
  96. package/dist/chunk-RKDMYL4A.js +438 -0
  97. package/dist/chunk-SCBSAIVV.js +392 -0
  98. package/dist/chunk-SPBUE7R4.js +685 -0
  99. package/dist/chunk-TWFZIHKK.js +219 -0
  100. package/dist/chunk-U6G6ALXP.js +66 -0
  101. package/dist/chunk-UCJAPB5Y.js +334 -0
  102. package/dist/chunk-VFDWUIGR.js +57 -0
  103. package/dist/chunk-WC3YSN7L.js +604 -0
  104. package/dist/chunk-WIOPEK7K.js +930 -0
  105. package/dist/chunk-X3GWGFZP.js +5368 -0
  106. package/dist/chunk-X6U3B6YK.js +343 -0
  107. package/dist/chunk-X6U3B6YK.js.map +1 -0
  108. package/dist/chunk-XYKODRQR.js +191 -0
  109. package/dist/chunk-XZAVBONI.js +64 -0
  110. package/dist/chunk-Y5PNLB24.js +84 -0
  111. package/dist/claim-PGDIRXIC.js +200 -0
  112. package/dist/cli.js +34 -34
  113. package/dist/companies-WTPKGEB3.js +198 -0
  114. package/dist/company-6H2H73YP.js +308 -0
  115. package/dist/complete-2QBC3POO.js +84 -0
  116. package/dist/connect-35YPFAUL.js +45 -0
  117. package/dist/conversation-YZFNEWDV.js +96 -0
  118. package/dist/conversion-upload-command-J2FIO74Y.js +439 -0
  119. package/dist/conversions-ZFDBD3OU.js +140 -0
  120. package/dist/copy-writes-2B36QJUY.js +170 -0
  121. package/dist/create-3H67EUTO.js +62 -0
  122. package/dist/create-ALTOBDP4.js +239 -0
  123. package/dist/create-C3MWUYX2.js +210 -0
  124. package/dist/create-WHTT6IXY.js +135 -0
  125. package/dist/creatives-22BYP5VN.js +118 -0
  126. package/dist/creatives-LTIV3XPT.js +58 -0
  127. package/dist/creatives-Y2WLGDJW.js +223 -0
  128. package/dist/credentials-J5DMQJWN.js +290 -0
  129. package/dist/critique-RFTS2I46.js +232 -0
  130. package/dist/critique-X6XVPIUG.js +1451 -0
  131. package/dist/crm-LWRGJYHW.js +227 -0
  132. package/dist/crm-RUNEJY2R.js +323 -0
  133. package/dist/crop-4V4P3SKI.js +113 -0
  134. package/dist/custom-conversions-V7QPZIB4.js +128 -0
  135. package/dist/customers-IDB6NLQ6.js +65 -0
  136. package/dist/delete-2QKVUKKB.js +67 -0
  137. package/dist/delete-B7BKF24X.js +57 -0
  138. package/dist/delete-HBRYUWAA.js +69 -0
  139. package/dist/demographics-JHB3NFLU.js +141 -0
  140. package/dist/dimensions-KI3OENZD.js +101 -0
  141. package/dist/discard-FEJ6YL22.js +69 -0
  142. package/dist/domain-JYWNXBKS.js +101 -0
  143. package/dist/download-H3ZDQTFG.js +337 -0
  144. package/dist/download-H3ZDQTFG.js.map +1 -0
  145. package/dist/download-LOBPOIU5.js +172 -0
  146. package/dist/draft-2JVWCYRF.js +134 -0
  147. package/dist/draft-2JVWCYRF.js.map +1 -0
  148. package/dist/draft-4WMYCA7I.js +315 -0
  149. package/dist/draft-4WMYCA7I.js.map +1 -0
  150. package/dist/draft-7VGBJIJU.js +260 -0
  151. package/dist/draft-7VGBJIJU.js.map +1 -0
  152. package/dist/draft-DR5BJK7V.js +138 -0
  153. package/dist/draft-DR5BJK7V.js.map +1 -0
  154. package/dist/draft-EB5ZFDVN.js +557 -0
  155. package/dist/draft-EB5ZFDVN.js.map +1 -0
  156. package/dist/draft-I2FLECEX.js +220 -0
  157. package/dist/draft-N56HPS36.js +374 -0
  158. package/dist/draft-N56HPS36.js.map +1 -0
  159. package/dist/draft-ZLZRTPY6.js +332 -0
  160. package/dist/draft-ZLZRTPY6.js.map +1 -0
  161. package/dist/engine/index.js +5 -5
  162. package/dist/experiments-WVTBHD6G.js +236 -0
  163. package/dist/extract-UELZV3NI.js +142 -0
  164. package/dist/extract-UELZV3NI.js.map +1 -0
  165. package/dist/facets-V2ITIUKD.js +117 -0
  166. package/dist/feedback-PXWPR3NZ.js +136 -0
  167. package/dist/feedback-QSIPSNAL.js +115 -0
  168. package/dist/feedback-record-DJHJWJAF.js +269 -0
  169. package/dist/fetch-QVOOC3FA.js +204 -0
  170. package/dist/fit-REGMM46H.js +65 -0
  171. package/dist/flows-EZV3KCV6.js +250 -0
  172. package/dist/fonts-NUX66HEI.js +39 -0
  173. package/dist/forecast-W6HKYVX5.js +121 -0
  174. package/dist/forecast-XDRKCR65.js +169 -0
  175. package/dist/funnel-3YABA3G2.js +397 -0
  176. package/dist/ga4-IJ2UUICC.js +55 -0
  177. package/dist/generate-22HT24SA.js +263 -0
  178. package/dist/get-GQQLBE5C.js +82 -0
  179. package/dist/get-NL3YZFUJ.js +62 -0
  180. package/dist/google-BPB5JLJG.js +162 -0
  181. package/dist/google-BPB5JLJG.js.map +1 -0
  182. package/dist/google-UJ4YJGTJ.js +3285 -0
  183. package/dist/google-ads-RRKKSKDD.js +198 -0
  184. package/dist/history-2UANIBRN.js +102 -0
  185. package/dist/history-YZ727ZRG.js +153 -0
  186. package/dist/hubspot-KWLXJ6QD.js +782 -0
  187. package/dist/ideas-ZO533P5Y.js +45 -0
  188. package/dist/images-VUWUKGD6.js +92 -0
  189. package/dist/ingest-C2HJ5LUY.js +27 -0
  190. package/dist/ingest-H53JR4GK.js +123 -0
  191. package/dist/inspect-BM6GJHQV.js +192 -0
  192. package/dist/instant-experiences-U6U3FYIH.js +264 -0
  193. package/dist/keyword-metrics-R2QCEDYW.js +200 -0
  194. package/dist/keywords-for-site-NBV72C3W.js +131 -0
  195. package/dist/landing-L3WDTW4D.js +28 -0
  196. package/dist/leads-6PF7ZWCH.js +115 -0
  197. package/dist/leads-IG3IIHXG.js +541 -0
  198. package/dist/learn-V2LIBEEY.js +207 -0
  199. package/dist/line-item-writes-GMNWL4DI.js +211 -0
  200. package/dist/line-items-KPIKXLG4.js +107 -0
  201. package/dist/link-X7IYKR5V.js +67 -0
  202. package/dist/linkedin-RONIUYLJ.js +1330 -0
  203. package/dist/linkedin-RONIUYLJ.js.map +1 -0
  204. package/dist/linkedin-person-47XFTBIN.js +139 -0
  205. package/dist/list-PHNA7QIF.js +154 -0
  206. package/dist/list-QF3BANBM.js +306 -0
  207. package/dist/list-SB3SUTH6.js +67 -0
  208. package/dist/log-JFLSSUJ6.js +95 -0
  209. package/dist/make-ZIJQZD5K.js +1367 -0
  210. package/dist/map-NYJT2MGI.js +436 -0
  211. package/dist/mcp-ABQEICYR.js +729 -0
  212. package/dist/media-AT3VV3PU.js +18 -0
  213. package/dist/media-sources-L4BI7HFL.js +35 -0
  214. package/dist/members-BX37KHKO.js +47 -0
  215. package/dist/meta-2GJZPVKM.js +122 -0
  216. package/dist/normalize-M3VMWF4W.js +806 -0
  217. package/dist/normalize-MA2FBBIV.js +144 -0
  218. package/dist/options-NMWWF2HN.js +125 -0
  219. package/dist/organization-GRAA6ZXU.js +949 -0
  220. package/dist/page-photos-ABK4CJME.js +118 -0
  221. package/dist/performance-MQLRSH44.js +5565 -0
  222. package/dist/performance-RUBIGEAQ.js +27 -0
  223. package/dist/promoted-tweet-writes-3P6QFGLN.js +183 -0
  224. package/dist/promoted-tweets-TGFPH7UI.js +119 -0
  225. package/dist/publish-OUVO65Z5.js +344 -0
  226. package/dist/reddit-HWQCUSEM.js +29 -0
  227. package/dist/refresh-ENQDQGTK.js +97 -0
  228. package/dist/release-ZTVXLUQS.js +63 -0
  229. package/dist/remove-XAFRT7O7.js +53 -0
  230. package/dist/reopen-SWSZHXJZ.js +66 -0
  231. package/dist/rerun-MA2GB6WL.js +96 -0
  232. package/dist/research-TDH4OBX6.js +265 -0
  233. package/dist/research-WWJUNYSJ.js +75 -0
  234. package/dist/reset-34HTKUBQ.js +57 -0
  235. package/dist/reset-KMMGLM7W.js +57 -0
  236. package/dist/resolve-2CIIKADD.js +124 -0
  237. package/dist/retry-V7KZIZKR.js +63 -0
  238. package/dist/retry-YXM23NSB.js +65 -0
  239. package/dist/revenue-D4L6U2CW.js +91 -0
  240. package/dist/rule-writes-HUBHHYEO.js +530 -0
  241. package/dist/rules-47LFGCPW.js +217 -0
  242. package/dist/rules-F6RNUOXP.js +99 -0
  243. package/dist/rules-add-SAQRESVK.js +465 -0
  244. package/dist/run-FRPO2WNQ.js +69 -0
  245. package/dist/run-HENSSAQW.js +71 -0
  246. package/dist/scaffold-ad-QQBCUYUO.js +1513 -0
  247. package/dist/scaffold-static-ad-WUOAQEXS.js +1011 -0
  248. package/dist/scaffold-video-KFQAKQUO.js +885 -0
  249. package/dist/schedule-S4XAVVEI.js +64 -0
  250. package/dist/scheduled-agents-ZWAP6QLC.js +55 -0
  251. package/dist/schema-EJ2XPUN6.js +135 -0
  252. package/dist/search-2BAY3KKX.js +177 -0
  253. package/dist/select-K2SXPDDJ.js +110 -0
  254. package/dist/set-prompt-BZFOV3EB.js +199 -0
  255. package/dist/setup-links-QT63UZBR.js +144 -0
  256. package/dist/shopify-Q7TQIQ6N.js +4009 -0
  257. package/dist/shopify-Q7TQIQ6N.js.map +1 -0
  258. package/dist/site-S6QVMP7W.js +180 -0
  259. package/dist/sources-DTQ4NQAM.js +30 -0
  260. package/dist/sources-ORG5KQSW.js +457 -0
  261. package/dist/stale-5O7BQVTN.js +90 -0
  262. package/dist/status-4G2YUCZR.js +65 -0
  263. package/dist/stock-5SQ2PGEC.js +211 -0
  264. package/dist/stock-5SQ2PGEC.js.map +1 -0
  265. package/dist/studies-QLSKON6M.js +250 -0
  266. package/dist/studio-IDXFTGHP.js +49 -0
  267. package/dist/study-writes-GBUUKX4O.js +471 -0
  268. package/dist/sync-7LJZPHM3.js +57 -0
  269. package/dist/sync-definition-Q3XUSEZJ.js +70 -0
  270. package/dist/tag-manager-5WZPX2FJ.js +43 -0
  271. package/dist/tags-2ARVNEYS.js +23 -0
  272. package/dist/tags-F4IT7RQR.js +23 -0
  273. package/dist/tags-F7ZO52EM.js +23 -0
  274. package/dist/tags-NBGGBHXR.js +227 -0
  275. package/dist/tags-TCSGQYDR.js +26 -0
  276. package/dist/targeting-DAUTJDUB.js +762 -0
  277. package/dist/targeting-criteria-H42LRULY.js +113 -0
  278. package/dist/targets-WB4E5XL2.js +106 -0
  279. package/dist/testimonials-KLF3Y4QO.js +32 -0
  280. package/dist/themes-BGBDYQQK.js +95 -0
  281. package/dist/top-companies-C2W5TJ7G.js +111 -0
  282. package/dist/transcript-S7VR2GJE.js +165 -0
  283. package/dist/translate-CBITGC7C.js +603 -0
  284. package/dist/triggers-EOKMR74O.js +144 -0
  285. package/dist/unlink-PC3TMWUT.js +70 -0
  286. package/dist/unstage-SU2ATDSZ.js +88 -0
  287. package/dist/update-DKX3EEES.js +155 -0
  288. package/dist/update-JYZ45YJG.js +66 -0
  289. package/dist/update-TAZSUOAS.js +192 -0
  290. package/dist/update-WRJUH2NM.js +101 -0
  291. package/dist/upload-BLXTMK5Q.js +130 -0
  292. package/dist/url-params-YVOFU6MK.js +101 -0
  293. package/dist/validate-SAQEORZY.js +125 -0
  294. package/dist/videos-GOIDZVVD.js +41 -0
  295. package/dist/viewer-check-KTRRUVZN.js +83 -0
  296. package/dist/web-6KUM7Q7S.js +173 -0
  297. package/dist/winning-ads-LOMI72Q2.js +86 -0
  298. package/dist/write-commands-3U5ZMIHH.js +1524 -0
  299. package/dist/write-commands-F5XPPLOO.js +1169 -0
  300. package/dist/x-APVY4YHX.js +47 -0
  301. package/package.json +1 -1
  302. package/dist/account-XIC5TTV3.js +0 -82
  303. package/dist/account-assets-V7KSSTVP.js +0 -290
  304. package/dist/account-level-2KLG6HTG.js +0 -611
  305. package/dist/account-reads-ZPZUCB3P.js +0 -219
  306. package/dist/account-users-XTUKRDWK.js +0 -64
  307. package/dist/accounts-25JL77F7.js +0 -701
  308. package/dist/accounts-AF72N4NV.js +0 -80
  309. package/dist/actions-IJO4JW7J.js +0 -55
  310. package/dist/activecampaign-PBTUMTO5.js +0 -938
  311. package/dist/add-KHQXXHC5.js +0 -107
  312. package/dist/add-YQPFRDVM.js +0 -305
  313. package/dist/ads-EVQ37EV3.js +0 -120
  314. package/dist/ads-O5PUYU7H.js +0 -48
  315. package/dist/adsets-4IW5TRAK.js +0 -182
  316. package/dist/advertisers-JNOWSZZC.js +0 -123
  317. package/dist/analytics-CZMCM7XC.js +0 -2437
  318. package/dist/analytics-K5FCQLI5.js +0 -447
  319. package/dist/animate-C6BRMRRD.js +0 -480
  320. package/dist/asset-writes-RF6XTWLY.js +0 -50
  321. package/dist/assign-WXZNXVJH.js +0 -80
  322. package/dist/audience-size-ZCWH4CFC.js +0 -76
  323. package/dist/audience-writes-5KT6FHUY.js +0 -327
  324. package/dist/audiences-ZDOK3OYC.js +0 -106
  325. package/dist/audit-RBRXPPKK.js +0 -154
  326. package/dist/autocomplete-P5OU7QVL.js +0 -114
  327. package/dist/avatars-UHBA2BQ3.js +0 -38
  328. package/dist/bid-pricing-LHNYSDG4.js +0 -103
  329. package/dist/brand-7WL3O74X.js +0 -22
  330. package/dist/brief-HWZU75WP.js +0 -543
  331. package/dist/campaign-groups-BYS3GNEP.js +0 -99
  332. package/dist/campaign-writes-N6OHAK6V.js +0 -168
  333. package/dist/campaigns-2E4AQBFB.js +0 -113
  334. package/dist/campaigns-3U5IRXSV.js +0 -130
  335. package/dist/campaigns-QLKGN4FB.js +0 -111
  336. package/dist/canvas-GGHJ26ZM.js +0 -46
  337. package/dist/capabilities-TKEEHR7K.js +0 -147
  338. package/dist/catalog-7KQN43HS.js +0 -66
  339. package/dist/catalogs-5CHPI4H6.js +0 -782
  340. package/dist/chatgpt-RQQWU7AP.js +0 -47
  341. package/dist/chats-PBXYH2LT.js +0 -449
  342. package/dist/check-SVYI72DF.js +0 -107
  343. package/dist/chunk-2RL2T5JO.js +0 -142
  344. package/dist/chunk-3HLQZTQ3.js +0 -685
  345. package/dist/chunk-42JTSTQ3.js +0 -207
  346. package/dist/chunk-4AEAL63J.js +0 -203
  347. package/dist/chunk-4PM32OS3.js +0 -57
  348. package/dist/chunk-4ULGRGBG.js +0 -333
  349. package/dist/chunk-4ULGRGBG.js.map +0 -1
  350. package/dist/chunk-4XMPL3RU.js +0 -19
  351. package/dist/chunk-5AOTCCTT.js +0 -831
  352. package/dist/chunk-5NLUTJCQ.js +0 -5368
  353. package/dist/chunk-6FWVRXDW.js +0 -64
  354. package/dist/chunk-6MXM6DA6.js +0 -225
  355. package/dist/chunk-73MLPGI2.js +0 -66
  356. package/dist/chunk-7OVPQX4X.js +0 -163
  357. package/dist/chunk-B5UVOCYA.js +0 -344
  358. package/dist/chunk-BRNZMKO4.js +0 -604
  359. package/dist/chunk-CJFCQMUY.js +0 -438
  360. package/dist/chunk-D6VQPBVM.js +0 -5471
  361. package/dist/chunk-DK66PUXL.js +0 -275
  362. package/dist/chunk-DNH2ZPZP.js +0 -287
  363. package/dist/chunk-DWSSQBLO.js +0 -103
  364. package/dist/chunk-ESXUIV6V.js +0 -169
  365. package/dist/chunk-FSEFZZ2T.js +0 -930
  366. package/dist/chunk-I4BQTVMY.js +0 -225
  367. package/dist/chunk-IBBGABK2.js +0 -91
  368. package/dist/chunk-IC4MREQH.js +0 -219
  369. package/dist/chunk-IJ6NQKAT.js +0 -61
  370. package/dist/chunk-IZROFBH7.js +0 -167
  371. package/dist/chunk-J5UTL4HE.js +0 -3510
  372. package/dist/chunk-JBMZVC5D.js +0 -91
  373. package/dist/chunk-LFELUKCA.js +0 -249
  374. package/dist/chunk-LMOZWB4G.js +0 -98
  375. package/dist/chunk-LVLTWPRR.js +0 -392
  376. package/dist/chunk-N5AIO23H.js +0 -2209
  377. package/dist/chunk-NE3OMP7R.js +0 -23
  378. package/dist/chunk-NO52OH3Y.js +0 -156
  379. package/dist/chunk-NRIKX35V.js +0 -399
  380. package/dist/chunk-NZYWKZ3Q.js +0 -76
  381. package/dist/chunk-OIORUNKH.js +0 -1902
  382. package/dist/chunk-OKXLOLEV.js +0 -455
  383. package/dist/chunk-P4MXGSSJ.js +0 -178
  384. package/dist/chunk-PYAR343F.js +0 -479
  385. package/dist/chunk-QFVZIQRQ.js +0 -8954
  386. package/dist/chunk-QI5UKQX3.js +0 -297
  387. package/dist/chunk-RCNAKWK7.js +0 -7852
  388. package/dist/chunk-RCNAKWK7.js.map +0 -1
  389. package/dist/chunk-RHNNFCRY.js +0 -494
  390. package/dist/chunk-RJQT7QXX.js +0 -547
  391. package/dist/chunk-RMZLB4AH.js +0 -197
  392. package/dist/chunk-S4NMWYHW.js +0 -51
  393. package/dist/chunk-S6XZIBWV.js +0 -392
  394. package/dist/chunk-SFQFUQDW.js +0 -170
  395. package/dist/chunk-SP3MHBME.js +0 -89
  396. package/dist/chunk-TGT4XHLX.js +0 -131
  397. package/dist/chunk-VX6GTRT3.js +0 -910
  398. package/dist/chunk-WGJ2QEW4.js +0 -334
  399. package/dist/chunk-XB4NKZAQ.js +0 -136
  400. package/dist/chunk-XSBX3LJP.js +0 -430
  401. package/dist/chunk-XXBP73RV.js +0 -148
  402. package/dist/chunk-Y3SK6EMU.js +0 -84
  403. package/dist/chunk-Y4ZBNZBU.js +0 -191
  404. package/dist/chunk-YCAJCVW4.js +0 -224
  405. package/dist/chunk-ZANXEMON.js +0 -1744
  406. package/dist/chunk-ZMTWQDFC.js +0 -709
  407. package/dist/claim-Q76T3MYA.js +0 -200
  408. package/dist/companies-MLWRWQ73.js +0 -198
  409. package/dist/company-X5Z67PMK.js +0 -308
  410. package/dist/complete-3CFP6XVY.js +0 -84
  411. package/dist/connect-QXFAB4RJ.js +0 -45
  412. package/dist/conversation-C6K6IZTH.js +0 -96
  413. package/dist/conversion-upload-command-D7S5HF22.js +0 -439
  414. package/dist/conversions-4ILDIG3K.js +0 -140
  415. package/dist/copy-writes-FYXKHJDB.js +0 -170
  416. package/dist/create-LDQ3YHET.js +0 -62
  417. package/dist/create-TKOG7DNJ.js +0 -210
  418. package/dist/create-WFMJOZLO.js +0 -135
  419. package/dist/create-WQNT345R.js +0 -239
  420. package/dist/creatives-45SJAD3G.js +0 -118
  421. package/dist/creatives-E4CTMZJJ.js +0 -223
  422. package/dist/creatives-Q4OXNCTT.js +0 -58
  423. package/dist/credentials-E2AIMWKX.js +0 -290
  424. package/dist/critique-EWV3O3TD.js +0 -1451
  425. package/dist/critique-JVT6X2T3.js +0 -232
  426. package/dist/crm-NQH5FTK6.js +0 -227
  427. package/dist/crm-YGQKK76D.js +0 -323
  428. package/dist/crop-KV24WHOR.js +0 -113
  429. package/dist/custom-conversions-EJNX4MCK.js +0 -128
  430. package/dist/customers-YFEPJF4G.js +0 -65
  431. package/dist/delete-2UJVTHRE.js +0 -67
  432. package/dist/delete-7QAJSOCO.js +0 -69
  433. package/dist/delete-O4RO2HMR.js +0 -57
  434. package/dist/demographics-YWBHAMZ5.js +0 -141
  435. package/dist/dimensions-YXOXHOXW.js +0 -101
  436. package/dist/discard-YX4XUXG3.js +0 -69
  437. package/dist/domain-5R6CYVFY.js +0 -101
  438. package/dist/download-D2O4RYJ3.js +0 -172
  439. package/dist/download-SYWQXF57.js +0 -299
  440. package/dist/download-SYWQXF57.js.map +0 -1
  441. package/dist/draft-2NKXOBT6.js +0 -106
  442. package/dist/draft-2NKXOBT6.js.map +0 -1
  443. package/dist/draft-3MPADYS4.js +0 -220
  444. package/dist/draft-AAEGEQZZ.js +0 -247
  445. package/dist/draft-AAEGEQZZ.js.map +0 -1
  446. package/dist/draft-CRDQR5I3.js +0 -342
  447. package/dist/draft-CRDQR5I3.js.map +0 -1
  448. package/dist/draft-I63QQ7LY.js +0 -106
  449. package/dist/draft-I63QQ7LY.js.map +0 -1
  450. package/dist/draft-PO5X4UVA.js +0 -313
  451. package/dist/draft-PO5X4UVA.js.map +0 -1
  452. package/dist/draft-QCKJT7XQ.js +0 -288
  453. package/dist/draft-QCKJT7XQ.js.map +0 -1
  454. package/dist/draft-VMLXZQQX.js +0 -408
  455. package/dist/draft-VMLXZQQX.js.map +0 -1
  456. package/dist/experiments-DYNNWQRB.js +0 -236
  457. package/dist/extract-DWDZI35Y.js +0 -121
  458. package/dist/extract-DWDZI35Y.js.map +0 -1
  459. package/dist/facets-Y2IEM37E.js +0 -117
  460. package/dist/feedback-HJRVTU6C.js +0 -115
  461. package/dist/feedback-IVSLM5PN.js +0 -136
  462. package/dist/feedback-record-P7CO3IGE.js +0 -269
  463. package/dist/fetch-V2U5VUQZ.js +0 -204
  464. package/dist/fit-JDG6E46O.js +0 -65
  465. package/dist/flows-DP574PEX.js +0 -250
  466. package/dist/fonts-RMROS3LX.js +0 -39
  467. package/dist/forecast-AAHHVTBK.js +0 -169
  468. package/dist/forecast-BRXNGMGD.js +0 -121
  469. package/dist/funnel-FQX3DOE7.js +0 -397
  470. package/dist/ga4-A3HLGTSI.js +0 -55
  471. package/dist/generate-SYOQE3F7.js +0 -263
  472. package/dist/get-HMTI2IR6.js +0 -82
  473. package/dist/get-VFDNTZ54.js +0 -62
  474. package/dist/google-HWEDJ4YS.js +0 -144
  475. package/dist/google-HWEDJ4YS.js.map +0 -1
  476. package/dist/google-WH3IXXMX.js +0 -3285
  477. package/dist/google-ads-4DLYASRC.js +0 -198
  478. package/dist/history-6B6RXNV3.js +0 -102
  479. package/dist/history-NLZSX4BK.js +0 -153
  480. package/dist/hubspot-LABBRJ44.js +0 -782
  481. package/dist/ideas-A4ELJN23.js +0 -45
  482. package/dist/images-JVNT7KYM.js +0 -92
  483. package/dist/ingest-GQWR3RHR.js +0 -27
  484. package/dist/ingest-JYN2IDKV.js +0 -123
  485. package/dist/inspect-72DY33YD.js +0 -192
  486. package/dist/instant-experiences-6NTBX4SL.js +0 -264
  487. package/dist/keyword-metrics-GP7L2MQE.js +0 -200
  488. package/dist/keywords-for-site-6YWAUOKJ.js +0 -131
  489. package/dist/landing-EKHAZS5P.js +0 -28
  490. package/dist/leads-RN6RYOMU.js +0 -541
  491. package/dist/leads-UCXIIA5K.js +0 -115
  492. package/dist/learn-EJEFERQZ.js +0 -207
  493. package/dist/line-item-writes-IMCE2FDW.js +0 -211
  494. package/dist/line-items-ISUC3WDO.js +0 -107
  495. package/dist/link-6QL4ZVSU.js +0 -67
  496. package/dist/linkedin-ZOBYUBGV.js +0 -1330
  497. package/dist/linkedin-ZOBYUBGV.js.map +0 -1
  498. package/dist/linkedin-person-C24CBKCH.js +0 -139
  499. package/dist/list-2VNI3U7I.js +0 -154
  500. package/dist/list-PZD2QOZL.js +0 -67
  501. package/dist/list-SUXUMXPJ.js +0 -306
  502. package/dist/log-VLI7KQF2.js +0 -95
  503. package/dist/make-365ZJ25L.js +0 -1367
  504. package/dist/map-OEFL45WA.js +0 -436
  505. package/dist/mcp-NCZYQXQL.js +0 -729
  506. package/dist/media-WASM45QW.js +0 -18
  507. package/dist/media-sources-CZDK4W5Q.js +0 -35
  508. package/dist/members-N3PQSVQC.js +0 -47
  509. package/dist/meta-IRXPQRBH.js +0 -122
  510. package/dist/normalize-4OKUF5BJ.js +0 -806
  511. package/dist/normalize-6DEJPTBF.js +0 -144
  512. package/dist/options-OJX77MYT.js +0 -125
  513. package/dist/organization-URQGKFEC.js +0 -949
  514. package/dist/page-photos-N4S7U7FR.js +0 -118
  515. package/dist/performance-P5T4LJRG.js +0 -27
  516. package/dist/performance-SIWBDORI.js +0 -5565
  517. package/dist/promoted-tweet-writes-S2HP5DEI.js +0 -183
  518. package/dist/promoted-tweets-WZT4N5IR.js +0 -119
  519. package/dist/publish-EDYBQHGJ.js +0 -344
  520. package/dist/reddit-DEGGHR4M.js +0 -29
  521. package/dist/refresh-HPNJGI2U.js +0 -97
  522. package/dist/release-H7M37CEO.js +0 -63
  523. package/dist/remove-MV4YS72N.js +0 -53
  524. package/dist/reopen-EFW2SKOY.js +0 -66
  525. package/dist/rerun-OM4N74YK.js +0 -96
  526. package/dist/research-7YDQOKA6.js +0 -265
  527. package/dist/research-MHXKAQW4.js +0 -75
  528. package/dist/reset-HT4AGJPR.js +0 -57
  529. package/dist/reset-XPZQ5F4D.js +0 -57
  530. package/dist/resolve-RTTXEN2B.js +0 -124
  531. package/dist/retry-DVLVWHEK.js +0 -63
  532. package/dist/retry-SBGWOUQO.js +0 -65
  533. package/dist/revenue-KJLJ53XY.js +0 -91
  534. package/dist/rule-writes-DNXELESR.js +0 -530
  535. package/dist/rules-KCSET46P.js +0 -217
  536. package/dist/rules-NVKU732Z.js +0 -99
  537. package/dist/rules-add-KY42EHJE.js +0 -465
  538. package/dist/run-2LQ7XJEO.js +0 -69
  539. package/dist/run-M7YU6KCV.js +0 -71
  540. package/dist/scaffold-ad-6YPZ75YJ.js +0 -1513
  541. package/dist/scaffold-static-ad-UJEWTDU5.js +0 -1011
  542. package/dist/scaffold-video-M4VWSVJ6.js +0 -885
  543. package/dist/schedule-J7HZQ2EL.js +0 -64
  544. package/dist/scheduled-agents-IVUQUKF4.js +0 -55
  545. package/dist/schema-LHBKBUV7.js +0 -135
  546. package/dist/search-3AW52FO6.js +0 -177
  547. package/dist/select-STIWQ36I.js +0 -110
  548. package/dist/set-prompt-TODWV2F4.js +0 -199
  549. package/dist/setup-links-MNBD3UMH.js +0 -144
  550. package/dist/shopify-PVMHMVIC.js +0 -3980
  551. package/dist/shopify-PVMHMVIC.js.map +0 -1
  552. package/dist/site-ZZUKS6MQ.js +0 -180
  553. package/dist/sources-36MJ6T4V.js +0 -30
  554. package/dist/sources-GNLQHTSJ.js +0 -457
  555. package/dist/stale-GJN7UO3D.js +0 -90
  556. package/dist/status-6EGB6ORB.js +0 -65
  557. package/dist/stock-DJ6I3CTO.js +0 -187
  558. package/dist/stock-DJ6I3CTO.js.map +0 -1
  559. package/dist/studies-4XXCEAHH.js +0 -250
  560. package/dist/studio-OARORMDJ.js +0 -49
  561. package/dist/study-writes-J56UIIE3.js +0 -471
  562. package/dist/sync-QHM3LMAX.js +0 -57
  563. package/dist/sync-definition-YXGN6PIQ.js +0 -70
  564. package/dist/tag-manager-XAX5AI42.js +0 -43
  565. package/dist/tags-GHV5R7NI.js +0 -26
  566. package/dist/tags-IDWUV2FY.js +0 -227
  567. package/dist/tags-MBBRBZJH.js +0 -23
  568. package/dist/tags-MQYF2JHQ.js +0 -23
  569. package/dist/tags-ZGXJHATH.js +0 -23
  570. package/dist/targeting-KJ4DI56R.js +0 -762
  571. package/dist/targeting-criteria-GDCXOAUD.js +0 -113
  572. package/dist/targets-MYHOPAYY.js +0 -106
  573. package/dist/testimonials-R6RFGAKP.js +0 -32
  574. package/dist/themes-LHVXXVTX.js +0 -95
  575. package/dist/top-companies-POTV3Y2A.js +0 -111
  576. package/dist/transcript-4RVYKDVZ.js +0 -165
  577. package/dist/translate-UCASCVMN.js +0 -603
  578. package/dist/triggers-XHMMOZJK.js +0 -144
  579. package/dist/unlink-3IW3EORE.js +0 -70
  580. package/dist/unstage-APVF6KHB.js +0 -88
  581. package/dist/update-2VSJH4LQ.js +0 -66
  582. package/dist/update-42QYBUE3.js +0 -101
  583. package/dist/update-ESK6PSME.js +0 -192
  584. package/dist/update-V7SRDGHN.js +0 -155
  585. package/dist/upload-42IR5RIL.js +0 -130
  586. package/dist/url-params-GEESXN57.js +0 -101
  587. package/dist/validate-Z5SSEUES.js +0 -125
  588. package/dist/videos-PJAPZPOT.js +0 -41
  589. package/dist/viewer-check-6M34VY7K.js +0 -83
  590. package/dist/web-PUVVFMV3.js +0 -173
  591. package/dist/winning-ads-ZCP4MIEQ.js +0 -86
  592. package/dist/write-commands-5LEEPKA7.js +0 -1169
  593. package/dist/write-commands-ZS4O4DSV.js +0 -1524
  594. package/dist/x-2IZMW46M.js +0 -47
  595. /package/dist/{account-XIC5TTV3.js.map → account-H5CL6KUY.js.map} +0 -0
  596. /package/dist/{account-assets-V7KSSTVP.js.map → account-assets-QMKT5AT7.js.map} +0 -0
  597. /package/dist/{account-level-2KLG6HTG.js.map → account-level-BELF6JHB.js.map} +0 -0
  598. /package/dist/{account-reads-ZPZUCB3P.js.map → account-reads-T6GTSAXE.js.map} +0 -0
  599. /package/dist/{account-users-XTUKRDWK.js.map → account-users-ZGJCVGX4.js.map} +0 -0
  600. /package/dist/{accounts-25JL77F7.js.map → accounts-EXQNPSYH.js.map} +0 -0
  601. /package/dist/{accounts-AF72N4NV.js.map → accounts-GNVLFZ3X.js.map} +0 -0
  602. /package/dist/{actions-IJO4JW7J.js.map → actions-Q2BMP27K.js.map} +0 -0
  603. /package/dist/{activecampaign-PBTUMTO5.js.map → activecampaign-SJO2YK6M.js.map} +0 -0
  604. /package/dist/{add-YQPFRDVM.js.map → add-Q3FGYX5Q.js.map} +0 -0
  605. /package/dist/{add-KHQXXHC5.js.map → add-YGQBSEVK.js.map} +0 -0
  606. /package/dist/{ads-O5PUYU7H.js.map → ads-7QKQEHKT.js.map} +0 -0
  607. /package/dist/{ads-EVQ37EV3.js.map → ads-H5AEYIY3.js.map} +0 -0
  608. /package/dist/{adsets-4IW5TRAK.js.map → adsets-BUIT7HF2.js.map} +0 -0
  609. /package/dist/{advertisers-JNOWSZZC.js.map → advertisers-ZAHXMIAT.js.map} +0 -0
  610. /package/dist/{analytics-CZMCM7XC.js.map → analytics-B6ER4TQ7.js.map} +0 -0
  611. /package/dist/{analytics-K5FCQLI5.js.map → analytics-QW5ZXDJR.js.map} +0 -0
  612. /package/dist/{animate-C6BRMRRD.js.map → animate-Q43SOWB4.js.map} +0 -0
  613. /package/dist/{asset-writes-RF6XTWLY.js.map → asset-writes-JVFE457M.js.map} +0 -0
  614. /package/dist/{assign-WXZNXVJH.js.map → assign-HJ2NXW4W.js.map} +0 -0
  615. /package/dist/{audience-size-ZCWH4CFC.js.map → audience-size-IM3N6W7C.js.map} +0 -0
  616. /package/dist/{audience-writes-5KT6FHUY.js.map → audience-writes-DWSCHYQF.js.map} +0 -0
  617. /package/dist/{audiences-ZDOK3OYC.js.map → audiences-PYBJU2GV.js.map} +0 -0
  618. /package/dist/{audit-RBRXPPKK.js.map → audit-N3LAQMD4.js.map} +0 -0
  619. /package/dist/{autocomplete-P5OU7QVL.js.map → autocomplete-FBTPT5MA.js.map} +0 -0
  620. /package/dist/{avatars-UHBA2BQ3.js.map → avatars-Y3DALQIU.js.map} +0 -0
  621. /package/dist/{bid-pricing-LHNYSDG4.js.map → bid-pricing-UUAC4GTQ.js.map} +0 -0
  622. /package/dist/{brand-7WL3O74X.js.map → brand-IZYD5SBJ.js.map} +0 -0
  623. /package/dist/{brief-HWZU75WP.js.map → brief-NA3E2W4P.js.map} +0 -0
  624. /package/dist/{campaign-groups-BYS3GNEP.js.map → campaign-groups-3IUOLEK2.js.map} +0 -0
  625. /package/dist/{campaign-writes-N6OHAK6V.js.map → campaign-writes-Y7QNFOE7.js.map} +0 -0
  626. /package/dist/{campaigns-3U5IRXSV.js.map → campaigns-2Z6WXIVA.js.map} +0 -0
  627. /package/dist/{campaigns-QLKGN4FB.js.map → campaigns-B2AUW4TV.js.map} +0 -0
  628. /package/dist/{campaigns-2E4AQBFB.js.map → campaigns-IDEA3LOK.js.map} +0 -0
  629. /package/dist/{canvas-GGHJ26ZM.js.map → canvas-WHFDCHUP.js.map} +0 -0
  630. /package/dist/{capabilities-TKEEHR7K.js.map → capabilities-FVMMLKPY.js.map} +0 -0
  631. /package/dist/{catalog-7KQN43HS.js.map → catalog-URTZYAPU.js.map} +0 -0
  632. /package/dist/{catalogs-5CHPI4H6.js.map → catalogs-OEUNVE4N.js.map} +0 -0
  633. /package/dist/{chatgpt-RQQWU7AP.js.map → chatgpt-YBHXCXWZ.js.map} +0 -0
  634. /package/dist/{chats-PBXYH2LT.js.map → chats-EENMDXWZ.js.map} +0 -0
  635. /package/dist/{check-SVYI72DF.js.map → check-7735BPTR.js.map} +0 -0
  636. /package/dist/{chunk-5AOTCCTT.js.map → chunk-2QGGI7MF.js.map} +0 -0
  637. /package/dist/{chunk-4XMPL3RU.js.map → chunk-3HKZU3Y5.js.map} +0 -0
  638. /package/dist/{chunk-B5UVOCYA.js.map → chunk-3OMFSYQ3.js.map} +0 -0
  639. /package/dist/{chunk-LMOZWB4G.js.map → chunk-65CQYRMK.js.map} +0 -0
  640. /package/dist/{chunk-I4BQTVMY.js.map → chunk-6MZFOMLU.js.map} +0 -0
  641. /package/dist/{chunk-IBBGABK2.js.map → chunk-6PT22YSR.js.map} +0 -0
  642. /package/dist/{chunk-QFVZIQRQ.js.map → chunk-6WVYBY2G.js.map} +0 -0
  643. /package/dist/{chunk-VX6GTRT3.js.map → chunk-757ZFIL4.js.map} +0 -0
  644. /package/dist/{chunk-IJ6NQKAT.js.map → chunk-75HAGIH6.js.map} +0 -0
  645. /package/dist/{chunk-XSBX3LJP.js.map → chunk-7BVRFQN4.js.map} +0 -0
  646. /package/dist/{chunk-7OVPQX4X.js.map → chunk-7TDJCDKT.js.map} +0 -0
  647. /package/dist/{chunk-ZMTWQDFC.js.map → chunk-AL4MRNYI.js.map} +0 -0
  648. /package/dist/{chunk-NO52OH3Y.js.map → chunk-BMNOMOWP.js.map} +0 -0
  649. /package/dist/{chunk-4AEAL63J.js.map → chunk-BS2MC62Y.js.map} +0 -0
  650. /package/dist/{chunk-DWSSQBLO.js.map → chunk-C6PWVZQE.js.map} +0 -0
  651. /package/dist/{chunk-P4MXGSSJ.js.map → chunk-CDTAKCJR.js.map} +0 -0
  652. /package/dist/{chunk-2RL2T5JO.js.map → chunk-CH44XVPE.js.map} +0 -0
  653. /package/dist/{chunk-RHNNFCRY.js.map → chunk-CJWLDKFO.js.map} +0 -0
  654. /package/dist/{chunk-YCAJCVW4.js.map → chunk-DAMC4FKK.js.map} +0 -0
  655. /package/dist/{chunk-D6VQPBVM.js.map → chunk-DWPOAU4Z.js.map} +0 -0
  656. /package/dist/{chunk-6MXM6DA6.js.map → chunk-EENYLJUN.js.map} +0 -0
  657. /package/dist/{chunk-IZROFBH7.js.map → chunk-EJBLF2LI.js.map} +0 -0
  658. /package/dist/{chunk-DNH2ZPZP.js.map → chunk-EJMPKO6V.js.map} +0 -0
  659. /package/dist/{chunk-RMZLB4AH.js.map → chunk-EKXLJRO3.js.map} +0 -0
  660. /package/dist/{chunk-ZANXEMON.js.map → chunk-EL3TDR5S.js.map} +0 -0
  661. /package/dist/{chunk-LFELUKCA.js.map → chunk-GRDZWZKQ.js.map} +0 -0
  662. /package/dist/{chunk-S4NMWYHW.js.map → chunk-GVUBRSD3.js.map} +0 -0
  663. /package/dist/{chunk-LVLTWPRR.js.map → chunk-GYREQDTJ.js.map} +0 -0
  664. /package/dist/{chunk-J5UTL4HE.js.map → chunk-HBRXFQQV.js.map} +0 -0
  665. /package/dist/{chunk-NE3OMP7R.js.map → chunk-HLHR3EK2.js.map} +0 -0
  666. /package/dist/{chunk-RJQT7QXX.js.map → chunk-IMFIRELA.js.map} +0 -0
  667. /package/dist/{chunk-SP3MHBME.js.map → chunk-IOKD77L2.js.map} +0 -0
  668. /package/dist/{chunk-TGT4XHLX.js.map → chunk-KDAINT54.js.map} +0 -0
  669. /package/dist/{chunk-QI5UKQX3.js.map → chunk-KKKZRQFY.js.map} +0 -0
  670. /package/dist/{chunk-N5AIO23H.js.map → chunk-KOEXPN3G.js.map} +0 -0
  671. /package/dist/{chunk-JBMZVC5D.js.map → chunk-KT5JVIPZ.js.map} +0 -0
  672. /package/dist/{chunk-NZYWKZ3Q.js.map → chunk-LC6PVPJX.js.map} +0 -0
  673. /package/dist/{chunk-DK66PUXL.js.map → chunk-LETR3RQE.js.map} +0 -0
  674. /package/dist/{chunk-XB4NKZAQ.js.map → chunk-N3PASNUA.js.map} +0 -0
  675. /package/dist/{chunk-SFQFUQDW.js.map → chunk-NL77JRKE.js.map} +0 -0
  676. /package/dist/{chunk-OIORUNKH.js.map → chunk-OBQ5YUOZ.js.map} +0 -0
  677. /package/dist/{chunk-42JTSTQ3.js.map → chunk-OTFHIGEO.js.map} +0 -0
  678. /package/dist/{chunk-ESXUIV6V.js.map → chunk-PCUWBZM3.js.map} +0 -0
  679. /package/dist/{chunk-OKXLOLEV.js.map → chunk-PNWXTOQ4.js.map} +0 -0
  680. /package/dist/{chunk-PYAR343F.js.map → chunk-PQFTKHDA.js.map} +0 -0
  681. /package/dist/{chunk-XXBP73RV.js.map → chunk-Q5DFEVLE.js.map} +0 -0
  682. /package/dist/{chunk-NRIKX35V.js.map → chunk-QXCGWAC6.js.map} +0 -0
  683. /package/dist/{chunk-CJFCQMUY.js.map → chunk-RKDMYL4A.js.map} +0 -0
  684. /package/dist/{chunk-S6XZIBWV.js.map → chunk-SCBSAIVV.js.map} +0 -0
  685. /package/dist/{chunk-3HLQZTQ3.js.map → chunk-SPBUE7R4.js.map} +0 -0
  686. /package/dist/{chunk-IC4MREQH.js.map → chunk-TWFZIHKK.js.map} +0 -0
  687. /package/dist/{chunk-73MLPGI2.js.map → chunk-U6G6ALXP.js.map} +0 -0
  688. /package/dist/{chunk-WGJ2QEW4.js.map → chunk-UCJAPB5Y.js.map} +0 -0
  689. /package/dist/{chunk-4PM32OS3.js.map → chunk-VFDWUIGR.js.map} +0 -0
  690. /package/dist/{chunk-BRNZMKO4.js.map → chunk-WC3YSN7L.js.map} +0 -0
  691. /package/dist/{chunk-FSEFZZ2T.js.map → chunk-WIOPEK7K.js.map} +0 -0
  692. /package/dist/{chunk-5NLUTJCQ.js.map → chunk-X3GWGFZP.js.map} +0 -0
  693. /package/dist/{chunk-Y4ZBNZBU.js.map → chunk-XYKODRQR.js.map} +0 -0
  694. /package/dist/{chunk-6FWVRXDW.js.map → chunk-XZAVBONI.js.map} +0 -0
  695. /package/dist/{chunk-Y3SK6EMU.js.map → chunk-Y5PNLB24.js.map} +0 -0
  696. /package/dist/{claim-Q76T3MYA.js.map → claim-PGDIRXIC.js.map} +0 -0
  697. /package/dist/{companies-MLWRWQ73.js.map → companies-WTPKGEB3.js.map} +0 -0
  698. /package/dist/{company-X5Z67PMK.js.map → company-6H2H73YP.js.map} +0 -0
  699. /package/dist/{complete-3CFP6XVY.js.map → complete-2QBC3POO.js.map} +0 -0
  700. /package/dist/{connect-QXFAB4RJ.js.map → connect-35YPFAUL.js.map} +0 -0
  701. /package/dist/{conversation-C6K6IZTH.js.map → conversation-YZFNEWDV.js.map} +0 -0
  702. /package/dist/{conversion-upload-command-D7S5HF22.js.map → conversion-upload-command-J2FIO74Y.js.map} +0 -0
  703. /package/dist/{conversions-4ILDIG3K.js.map → conversions-ZFDBD3OU.js.map} +0 -0
  704. /package/dist/{copy-writes-FYXKHJDB.js.map → copy-writes-2B36QJUY.js.map} +0 -0
  705. /package/dist/{create-LDQ3YHET.js.map → create-3H67EUTO.js.map} +0 -0
  706. /package/dist/{create-WQNT345R.js.map → create-ALTOBDP4.js.map} +0 -0
  707. /package/dist/{create-TKOG7DNJ.js.map → create-C3MWUYX2.js.map} +0 -0
  708. /package/dist/{create-WFMJOZLO.js.map → create-WHTT6IXY.js.map} +0 -0
  709. /package/dist/{creatives-45SJAD3G.js.map → creatives-22BYP5VN.js.map} +0 -0
  710. /package/dist/{creatives-Q4OXNCTT.js.map → creatives-LTIV3XPT.js.map} +0 -0
  711. /package/dist/{creatives-E4CTMZJJ.js.map → creatives-Y2WLGDJW.js.map} +0 -0
  712. /package/dist/{credentials-E2AIMWKX.js.map → credentials-J5DMQJWN.js.map} +0 -0
  713. /package/dist/{critique-JVT6X2T3.js.map → critique-RFTS2I46.js.map} +0 -0
  714. /package/dist/{critique-EWV3O3TD.js.map → critique-X6XVPIUG.js.map} +0 -0
  715. /package/dist/{crm-NQH5FTK6.js.map → crm-LWRGJYHW.js.map} +0 -0
  716. /package/dist/{crm-YGQKK76D.js.map → crm-RUNEJY2R.js.map} +0 -0
  717. /package/dist/{crop-KV24WHOR.js.map → crop-4V4P3SKI.js.map} +0 -0
  718. /package/dist/{custom-conversions-EJNX4MCK.js.map → custom-conversions-V7QPZIB4.js.map} +0 -0
  719. /package/dist/{customers-YFEPJF4G.js.map → customers-IDB6NLQ6.js.map} +0 -0
  720. /package/dist/{delete-2UJVTHRE.js.map → delete-2QKVUKKB.js.map} +0 -0
  721. /package/dist/{delete-O4RO2HMR.js.map → delete-B7BKF24X.js.map} +0 -0
  722. /package/dist/{delete-7QAJSOCO.js.map → delete-HBRYUWAA.js.map} +0 -0
  723. /package/dist/{demographics-YWBHAMZ5.js.map → demographics-JHB3NFLU.js.map} +0 -0
  724. /package/dist/{dimensions-YXOXHOXW.js.map → dimensions-KI3OENZD.js.map} +0 -0
  725. /package/dist/{discard-YX4XUXG3.js.map → discard-FEJ6YL22.js.map} +0 -0
  726. /package/dist/{domain-5R6CYVFY.js.map → domain-JYWNXBKS.js.map} +0 -0
  727. /package/dist/{download-D2O4RYJ3.js.map → download-LOBPOIU5.js.map} +0 -0
  728. /package/dist/{draft-3MPADYS4.js.map → draft-I2FLECEX.js.map} +0 -0
  729. /package/dist/{experiments-DYNNWQRB.js.map → experiments-WVTBHD6G.js.map} +0 -0
  730. /package/dist/{facets-Y2IEM37E.js.map → facets-V2ITIUKD.js.map} +0 -0
  731. /package/dist/{feedback-IVSLM5PN.js.map → feedback-PXWPR3NZ.js.map} +0 -0
  732. /package/dist/{feedback-HJRVTU6C.js.map → feedback-QSIPSNAL.js.map} +0 -0
  733. /package/dist/{feedback-record-P7CO3IGE.js.map → feedback-record-DJHJWJAF.js.map} +0 -0
  734. /package/dist/{fetch-V2U5VUQZ.js.map → fetch-QVOOC3FA.js.map} +0 -0
  735. /package/dist/{fit-JDG6E46O.js.map → fit-REGMM46H.js.map} +0 -0
  736. /package/dist/{flows-DP574PEX.js.map → flows-EZV3KCV6.js.map} +0 -0
  737. /package/dist/{fonts-RMROS3LX.js.map → fonts-NUX66HEI.js.map} +0 -0
  738. /package/dist/{forecast-BRXNGMGD.js.map → forecast-W6HKYVX5.js.map} +0 -0
  739. /package/dist/{forecast-AAHHVTBK.js.map → forecast-XDRKCR65.js.map} +0 -0
  740. /package/dist/{funnel-FQX3DOE7.js.map → funnel-3YABA3G2.js.map} +0 -0
  741. /package/dist/{ga4-A3HLGTSI.js.map → ga4-IJ2UUICC.js.map} +0 -0
  742. /package/dist/{generate-SYOQE3F7.js.map → generate-22HT24SA.js.map} +0 -0
  743. /package/dist/{get-HMTI2IR6.js.map → get-GQQLBE5C.js.map} +0 -0
  744. /package/dist/{get-VFDNTZ54.js.map → get-NL3YZFUJ.js.map} +0 -0
  745. /package/dist/{google-WH3IXXMX.js.map → google-UJ4YJGTJ.js.map} +0 -0
  746. /package/dist/{google-ads-4DLYASRC.js.map → google-ads-RRKKSKDD.js.map} +0 -0
  747. /package/dist/{history-6B6RXNV3.js.map → history-2UANIBRN.js.map} +0 -0
  748. /package/dist/{history-NLZSX4BK.js.map → history-YZ727ZRG.js.map} +0 -0
  749. /package/dist/{hubspot-LABBRJ44.js.map → hubspot-KWLXJ6QD.js.map} +0 -0
  750. /package/dist/{ideas-A4ELJN23.js.map → ideas-ZO533P5Y.js.map} +0 -0
  751. /package/dist/{images-JVNT7KYM.js.map → images-VUWUKGD6.js.map} +0 -0
  752. /package/dist/{ingest-GQWR3RHR.js.map → ingest-C2HJ5LUY.js.map} +0 -0
  753. /package/dist/{ingest-JYN2IDKV.js.map → ingest-H53JR4GK.js.map} +0 -0
  754. /package/dist/{inspect-72DY33YD.js.map → inspect-BM6GJHQV.js.map} +0 -0
  755. /package/dist/{instant-experiences-6NTBX4SL.js.map → instant-experiences-U6U3FYIH.js.map} +0 -0
  756. /package/dist/{keyword-metrics-GP7L2MQE.js.map → keyword-metrics-R2QCEDYW.js.map} +0 -0
  757. /package/dist/{keywords-for-site-6YWAUOKJ.js.map → keywords-for-site-NBV72C3W.js.map} +0 -0
  758. /package/dist/{landing-EKHAZS5P.js.map → landing-L3WDTW4D.js.map} +0 -0
  759. /package/dist/{leads-UCXIIA5K.js.map → leads-6PF7ZWCH.js.map} +0 -0
  760. /package/dist/{leads-RN6RYOMU.js.map → leads-IG3IIHXG.js.map} +0 -0
  761. /package/dist/{learn-EJEFERQZ.js.map → learn-V2LIBEEY.js.map} +0 -0
  762. /package/dist/{line-item-writes-IMCE2FDW.js.map → line-item-writes-GMNWL4DI.js.map} +0 -0
  763. /package/dist/{line-items-ISUC3WDO.js.map → line-items-KPIKXLG4.js.map} +0 -0
  764. /package/dist/{link-6QL4ZVSU.js.map → link-X7IYKR5V.js.map} +0 -0
  765. /package/dist/{linkedin-person-C24CBKCH.js.map → linkedin-person-47XFTBIN.js.map} +0 -0
  766. /package/dist/{list-2VNI3U7I.js.map → list-PHNA7QIF.js.map} +0 -0
  767. /package/dist/{list-SUXUMXPJ.js.map → list-QF3BANBM.js.map} +0 -0
  768. /package/dist/{list-PZD2QOZL.js.map → list-SB3SUTH6.js.map} +0 -0
  769. /package/dist/{log-VLI7KQF2.js.map → log-JFLSSUJ6.js.map} +0 -0
  770. /package/dist/{make-365ZJ25L.js.map → make-ZIJQZD5K.js.map} +0 -0
  771. /package/dist/{map-OEFL45WA.js.map → map-NYJT2MGI.js.map} +0 -0
  772. /package/dist/{mcp-NCZYQXQL.js.map → mcp-ABQEICYR.js.map} +0 -0
  773. /package/dist/{media-WASM45QW.js.map → media-AT3VV3PU.js.map} +0 -0
  774. /package/dist/{media-sources-CZDK4W5Q.js.map → media-sources-L4BI7HFL.js.map} +0 -0
  775. /package/dist/{members-N3PQSVQC.js.map → members-BX37KHKO.js.map} +0 -0
  776. /package/dist/{meta-IRXPQRBH.js.map → meta-2GJZPVKM.js.map} +0 -0
  777. /package/dist/{normalize-4OKUF5BJ.js.map → normalize-M3VMWF4W.js.map} +0 -0
  778. /package/dist/{normalize-6DEJPTBF.js.map → normalize-MA2FBBIV.js.map} +0 -0
  779. /package/dist/{options-OJX77MYT.js.map → options-NMWWF2HN.js.map} +0 -0
  780. /package/dist/{organization-URQGKFEC.js.map → organization-GRAA6ZXU.js.map} +0 -0
  781. /package/dist/{page-photos-N4S7U7FR.js.map → page-photos-ABK4CJME.js.map} +0 -0
  782. /package/dist/{performance-SIWBDORI.js.map → performance-MQLRSH44.js.map} +0 -0
  783. /package/dist/{performance-P5T4LJRG.js.map → performance-RUBIGEAQ.js.map} +0 -0
  784. /package/dist/{promoted-tweet-writes-S2HP5DEI.js.map → promoted-tweet-writes-3P6QFGLN.js.map} +0 -0
  785. /package/dist/{promoted-tweets-WZT4N5IR.js.map → promoted-tweets-TGFPH7UI.js.map} +0 -0
  786. /package/dist/{publish-EDYBQHGJ.js.map → publish-OUVO65Z5.js.map} +0 -0
  787. /package/dist/{reddit-DEGGHR4M.js.map → reddit-HWQCUSEM.js.map} +0 -0
  788. /package/dist/{refresh-HPNJGI2U.js.map → refresh-ENQDQGTK.js.map} +0 -0
  789. /package/dist/{release-H7M37CEO.js.map → release-ZTVXLUQS.js.map} +0 -0
  790. /package/dist/{remove-MV4YS72N.js.map → remove-XAFRT7O7.js.map} +0 -0
  791. /package/dist/{reopen-EFW2SKOY.js.map → reopen-SWSZHXJZ.js.map} +0 -0
  792. /package/dist/{rerun-OM4N74YK.js.map → rerun-MA2GB6WL.js.map} +0 -0
  793. /package/dist/{research-7YDQOKA6.js.map → research-TDH4OBX6.js.map} +0 -0
  794. /package/dist/{research-MHXKAQW4.js.map → research-WWJUNYSJ.js.map} +0 -0
  795. /package/dist/{reset-HT4AGJPR.js.map → reset-34HTKUBQ.js.map} +0 -0
  796. /package/dist/{reset-XPZQ5F4D.js.map → reset-KMMGLM7W.js.map} +0 -0
  797. /package/dist/{resolve-RTTXEN2B.js.map → resolve-2CIIKADD.js.map} +0 -0
  798. /package/dist/{retry-DVLVWHEK.js.map → retry-V7KZIZKR.js.map} +0 -0
  799. /package/dist/{retry-SBGWOUQO.js.map → retry-YXM23NSB.js.map} +0 -0
  800. /package/dist/{revenue-KJLJ53XY.js.map → revenue-D4L6U2CW.js.map} +0 -0
  801. /package/dist/{rule-writes-DNXELESR.js.map → rule-writes-HUBHHYEO.js.map} +0 -0
  802. /package/dist/{rules-KCSET46P.js.map → rules-47LFGCPW.js.map} +0 -0
  803. /package/dist/{rules-NVKU732Z.js.map → rules-F6RNUOXP.js.map} +0 -0
  804. /package/dist/{rules-add-KY42EHJE.js.map → rules-add-SAQRESVK.js.map} +0 -0
  805. /package/dist/{run-2LQ7XJEO.js.map → run-FRPO2WNQ.js.map} +0 -0
  806. /package/dist/{run-M7YU6KCV.js.map → run-HENSSAQW.js.map} +0 -0
  807. /package/dist/{scaffold-ad-6YPZ75YJ.js.map → scaffold-ad-QQBCUYUO.js.map} +0 -0
  808. /package/dist/{scaffold-static-ad-UJEWTDU5.js.map → scaffold-static-ad-WUOAQEXS.js.map} +0 -0
  809. /package/dist/{scaffold-video-M4VWSVJ6.js.map → scaffold-video-KFQAKQUO.js.map} +0 -0
  810. /package/dist/{schedule-J7HZQ2EL.js.map → schedule-S4XAVVEI.js.map} +0 -0
  811. /package/dist/{scheduled-agents-IVUQUKF4.js.map → scheduled-agents-ZWAP6QLC.js.map} +0 -0
  812. /package/dist/{schema-LHBKBUV7.js.map → schema-EJ2XPUN6.js.map} +0 -0
  813. /package/dist/{search-3AW52FO6.js.map → search-2BAY3KKX.js.map} +0 -0
  814. /package/dist/{select-STIWQ36I.js.map → select-K2SXPDDJ.js.map} +0 -0
  815. /package/dist/{set-prompt-TODWV2F4.js.map → set-prompt-BZFOV3EB.js.map} +0 -0
  816. /package/dist/{setup-links-MNBD3UMH.js.map → setup-links-QT63UZBR.js.map} +0 -0
  817. /package/dist/{site-ZZUKS6MQ.js.map → site-S6QVMP7W.js.map} +0 -0
  818. /package/dist/{sources-36MJ6T4V.js.map → sources-DTQ4NQAM.js.map} +0 -0
  819. /package/dist/{sources-GNLQHTSJ.js.map → sources-ORG5KQSW.js.map} +0 -0
  820. /package/dist/{stale-GJN7UO3D.js.map → stale-5O7BQVTN.js.map} +0 -0
  821. /package/dist/{status-6EGB6ORB.js.map → status-4G2YUCZR.js.map} +0 -0
  822. /package/dist/{studies-4XXCEAHH.js.map → studies-QLSKON6M.js.map} +0 -0
  823. /package/dist/{studio-OARORMDJ.js.map → studio-IDXFTGHP.js.map} +0 -0
  824. /package/dist/{study-writes-J56UIIE3.js.map → study-writes-GBUUKX4O.js.map} +0 -0
  825. /package/dist/{sync-QHM3LMAX.js.map → sync-7LJZPHM3.js.map} +0 -0
  826. /package/dist/{sync-definition-YXGN6PIQ.js.map → sync-definition-Q3XUSEZJ.js.map} +0 -0
  827. /package/dist/{tag-manager-XAX5AI42.js.map → tag-manager-5WZPX2FJ.js.map} +0 -0
  828. /package/dist/{tags-MQYF2JHQ.js.map → tags-2ARVNEYS.js.map} +0 -0
  829. /package/dist/{tags-ZGXJHATH.js.map → tags-F4IT7RQR.js.map} +0 -0
  830. /package/dist/{tags-MBBRBZJH.js.map → tags-F7ZO52EM.js.map} +0 -0
  831. /package/dist/{tags-IDWUV2FY.js.map → tags-NBGGBHXR.js.map} +0 -0
  832. /package/dist/{tags-GHV5R7NI.js.map → tags-TCSGQYDR.js.map} +0 -0
  833. /package/dist/{targeting-KJ4DI56R.js.map → targeting-DAUTJDUB.js.map} +0 -0
  834. /package/dist/{targeting-criteria-GDCXOAUD.js.map → targeting-criteria-H42LRULY.js.map} +0 -0
  835. /package/dist/{targets-MYHOPAYY.js.map → targets-WB4E5XL2.js.map} +0 -0
  836. /package/dist/{testimonials-R6RFGAKP.js.map → testimonials-KLF3Y4QO.js.map} +0 -0
  837. /package/dist/{themes-LHVXXVTX.js.map → themes-BGBDYQQK.js.map} +0 -0
  838. /package/dist/{top-companies-POTV3Y2A.js.map → top-companies-C2W5TJ7G.js.map} +0 -0
  839. /package/dist/{transcript-4RVYKDVZ.js.map → transcript-S7VR2GJE.js.map} +0 -0
  840. /package/dist/{translate-UCASCVMN.js.map → translate-CBITGC7C.js.map} +0 -0
  841. /package/dist/{triggers-XHMMOZJK.js.map → triggers-EOKMR74O.js.map} +0 -0
  842. /package/dist/{unlink-3IW3EORE.js.map → unlink-PC3TMWUT.js.map} +0 -0
  843. /package/dist/{unstage-APVF6KHB.js.map → unstage-SU2ATDSZ.js.map} +0 -0
  844. /package/dist/{update-V7SRDGHN.js.map → update-DKX3EEES.js.map} +0 -0
  845. /package/dist/{update-2VSJH4LQ.js.map → update-JYZ45YJG.js.map} +0 -0
  846. /package/dist/{update-ESK6PSME.js.map → update-TAZSUOAS.js.map} +0 -0
  847. /package/dist/{update-42QYBUE3.js.map → update-WRJUH2NM.js.map} +0 -0
  848. /package/dist/{upload-42IR5RIL.js.map → upload-BLXTMK5Q.js.map} +0 -0
  849. /package/dist/{url-params-GEESXN57.js.map → url-params-YVOFU6MK.js.map} +0 -0
  850. /package/dist/{validate-Z5SSEUES.js.map → validate-SAQEORZY.js.map} +0 -0
  851. /package/dist/{videos-PJAPZPOT.js.map → videos-GOIDZVVD.js.map} +0 -0
  852. /package/dist/{viewer-check-6M34VY7K.js.map → viewer-check-KTRRUVZN.js.map} +0 -0
  853. /package/dist/{web-PUVVFMV3.js.map → web-6KUM7Q7S.js.map} +0 -0
  854. /package/dist/{winning-ads-ZCP4MIEQ.js.map → winning-ads-LOMI72Q2.js.map} +0 -0
  855. /package/dist/{write-commands-ZS4O4DSV.js.map → write-commands-3U5ZMIHH.js.map} +0 -0
  856. /package/dist/{write-commands-5LEEPKA7.js.map → write-commands-F5XPPLOO.js.map} +0 -0
  857. /package/dist/{x-2IZMW46M.js.map → x-APVY4YHX.js.map} +0 -0
@@ -1,806 +0,0 @@
1
- import {
2
- atomicWrite,
3
- expandInputs,
4
- isDirectory,
5
- isRemoteUrl,
6
- readImageBuffer,
7
- resolveOutputPath
8
- } from "./chunk-NZYWKZ3Q.js";
9
- import "./chunk-4ULGRGBG.js";
10
- import "./chunk-45D6WRCJ.js";
11
- import {
12
- registerSchema,
13
- writeJson
14
- } from "./chunk-CCYZJMZ7.js";
15
- import "./chunk-YQSBHWOI.js";
16
-
17
- // src/commands/images/normalize.ts
18
- import { defineCommand } from "citty";
19
-
20
- // src/lib/image/color-changer.ts
21
- import quantize from "quantize";
22
- var COLOR_RANGE_THRESHOLD = 15;
23
- var HEX_RE = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;
24
- function parseHex(hex) {
25
- const match = HEX_RE.exec(hex.trim());
26
- if (!match) {
27
- throw new Error(`Invalid hex color: "${hex}". Expected #RGB or #RRGGBB.`);
28
- }
29
- let body = match[1];
30
- if (body.length === 3) {
31
- body = body.split("").map((c) => c + c).join("");
32
- }
33
- return {
34
- r: Number.parseInt(body.slice(0, 2), 16),
35
- g: Number.parseInt(body.slice(2, 4), 16),
36
- b: Number.parseInt(body.slice(4, 6), 16)
37
- };
38
- }
39
- function colorDistance(color1, color2) {
40
- const rDiff = color1.r - color2.r;
41
- const gDiff = color1.g - color2.g;
42
- const bDiff = color1.b - color2.b;
43
- return Math.sqrt(rDiff * rDiff + gDiff * gDiff + bDiff * bDiff);
44
- }
45
- function getDominantEdgeColor(data, width, height) {
46
- const colorCount = {};
47
- function accumulateColor(i, j) {
48
- const idx = (i * width + j) * 4;
49
- const colorKey = `${data[idx]},${data[idx + 1]},${data[idx + 2]}`;
50
- colorCount[colorKey] = (colorCount[colorKey] ?? 0) + 1;
51
- }
52
- for (let j = 0; j < width; j++) {
53
- accumulateColor(0, j);
54
- accumulateColor(height - 1, j);
55
- }
56
- for (let i = 1; i < height - 1; i++) {
57
- accumulateColor(i, 0);
58
- accumulateColor(i, width - 1);
59
- }
60
- let maxCount = 0;
61
- let dominantColor = { r: 0, g: 0, b: 0 };
62
- for (const key in colorCount) {
63
- const count = colorCount[key];
64
- if (count > maxCount) {
65
- maxCount = count;
66
- const parts = key.split(",").map(Number);
67
- dominantColor = { r: parts[0], g: parts[1], b: parts[2] };
68
- }
69
- }
70
- return dominantColor;
71
- }
72
- function hasTransparency(data, threshold = 0.02) {
73
- let transparentPixels = 0;
74
- let totalPixels = 0;
75
- for (let i = 3; i < data.length; i += 4) {
76
- totalPixels++;
77
- if (data[i] < 255) {
78
- transparentPixels++;
79
- }
80
- }
81
- if (totalPixels === 0) return false;
82
- return transparentPixels / totalPixels > threshold;
83
- }
84
- function hasGradientColors(data) {
85
- const uniqueColors = /* @__PURE__ */ new Set();
86
- for (let i = 0; i < data.length; i += 4) {
87
- if (data[i + 3] < 10) continue;
88
- uniqueColors.add(`${data[i]},${data[i + 1]},${data[i + 2]}`);
89
- }
90
- return uniqueColors.size > 50;
91
- }
92
- function removeIsolatedPixels(data, width, height) {
93
- const result = Buffer.from(data);
94
- const offsets = [
95
- [-1, -1],
96
- [0, -1],
97
- [1, -1],
98
- [-1, 0],
99
- [1, 0],
100
- [-1, 1],
101
- [0, 1],
102
- [1, 1]
103
- ];
104
- for (let y = 1; y < height - 1; y++) {
105
- for (let x = 1; x < width - 1; x++) {
106
- const idx = (y * width + x) * 4;
107
- if (result[idx + 3] < 10) continue;
108
- let transparentNeighbors = 0;
109
- for (const [dx, dy] of offsets) {
110
- const neighborIdx = ((y + dy) * width + (x + dx)) * 4;
111
- if (result[neighborIdx + 3] < 10) transparentNeighbors++;
112
- }
113
- if (transparentNeighbors >= 6) {
114
- result[idx + 3] = 0;
115
- }
116
- }
117
- }
118
- return result;
119
- }
120
- function removeInteriorBackground(data, dominantEdgeColor, threshold) {
121
- const result = Buffer.from(data);
122
- for (let i = 0; i < result.length; i += 4) {
123
- if (result[i + 3] < 10) continue;
124
- const pixelColor = { r: result[i], g: result[i + 1], b: result[i + 2] };
125
- if (colorDistance(dominantEdgeColor, pixelColor) < threshold) {
126
- result[i + 3] = 0;
127
- }
128
- }
129
- return result;
130
- }
131
- function removeBackground(data, width, height, colorRangeThreshold = COLOR_RANGE_THRESHOLD) {
132
- if (hasTransparency(data)) {
133
- return data;
134
- }
135
- const dominantEdgeColor = getDominantEdgeColor(data, width, height);
136
- const isGradient = hasGradientColors(data);
137
- const result = Buffer.from(data);
138
- if (isGradient) {
139
- for (let i = 0; i < result.length; i += 4) {
140
- let alpha = result[i + 3];
141
- if (alpha < 25.5) {
142
- result[i + 3] = 0;
143
- continue;
144
- }
145
- const pixelColor = { r: result[i], g: result[i + 1], b: result[i + 2] };
146
- if (colorDistance(dominantEdgeColor, pixelColor) < 40) {
147
- alpha = 0;
148
- }
149
- result[i + 3] = alpha;
150
- }
151
- const cleaned2 = removeInteriorBackground(result, dominantEdgeColor, 40);
152
- return removeIsolatedPixels(cleaned2, width, height);
153
- }
154
- const colorRange = findColorRange(data, dominantEdgeColor);
155
- for (let i = 0; i < result.length; i += 4) {
156
- let alpha = result[i + 3];
157
- if (alpha < 25.5) {
158
- result[i + 3] = 0;
159
- continue;
160
- }
161
- const pixelColor = { r: result[i], g: result[i + 1], b: result[i + 2] };
162
- if (colorDistance(dominantEdgeColor, pixelColor) < 50) {
163
- alpha = 0;
164
- } else {
165
- const colorRangeIndex = colorRange.findIndex((c) => colorDistance(c, pixelColor) < colorRangeThreshold);
166
- if (colorRangeIndex === -1) {
167
- alpha = 0;
168
- } else {
169
- alpha = Math.max(255 - 255 * colorRangeIndex * 0.35, 50);
170
- }
171
- }
172
- result[i + 3] = alpha;
173
- }
174
- const cleaned = removeInteriorBackground(result, dominantEdgeColor, 50);
175
- return removeIsolatedPixels(cleaned, width, height);
176
- }
177
- function findClosestColor(color, palette) {
178
- let minDist = Number.POSITIVE_INFINITY;
179
- let closestColor = palette[0];
180
- for (const palColor of palette) {
181
- const dist = colorDistance(color, { r: palColor[0], g: palColor[1], b: palColor[2] });
182
- if (dist < minDist) {
183
- minDist = dist;
184
- closestColor = palColor;
185
- }
186
- }
187
- return closestColor;
188
- }
189
- function applyQuantization(data, numColors) {
190
- const pixels = [];
191
- let hasWhitePixels = false;
192
- for (let i = 0; i < data.length; i += 4) {
193
- const r = data[i];
194
- const g = data[i + 1];
195
- const b = data[i + 2];
196
- pixels.push([r, g, b]);
197
- if (r > 240 && g > 240 && b > 240) hasWhitePixels = true;
198
- }
199
- const quantizer = quantize(pixels, numColors);
200
- if (!quantizer) {
201
- throw new Error("Failed to quantize image");
202
- }
203
- const palette = quantizer.palette();
204
- if (hasWhitePixels) {
205
- const hasWhiteInPalette = palette.some((c) => c[0] > 240 && c[1] > 240 && c[2] > 240);
206
- if (!hasWhiteInPalette) {
207
- let darkestIndex = 0;
208
- let darkestLuminance = Number.POSITIVE_INFINITY;
209
- palette.forEach((color, i) => {
210
- const luminance = (0.299 * color[0] + 0.587 * color[1] + 0.114 * color[2]) / 255;
211
- if (luminance < darkestLuminance) {
212
- darkestLuminance = luminance;
213
- darkestIndex = i;
214
- }
215
- });
216
- palette[darkestIndex] = [255, 255, 255];
217
- }
218
- }
219
- const quantizedData = Buffer.from(data);
220
- for (let i = 0; i < data.length; i += 4) {
221
- const originalColor = { r: data[i], g: data[i + 1], b: data[i + 2] };
222
- const closest = findClosestColor(originalColor, palette);
223
- quantizedData[i] = closest[0];
224
- quantizedData[i + 1] = closest[1];
225
- quantizedData[i + 2] = closest[2];
226
- }
227
- return quantizedData;
228
- }
229
- function getLuminance(color) {
230
- const r = color.r / 255;
231
- const g = color.g / 255;
232
- const b = color.b / 255;
233
- return 0.299 * r + 0.587 * g + 0.114 * b;
234
- }
235
- function getContrastRatio(color1, color2) {
236
- const lum1 = getLuminance(color1);
237
- const lum2 = getLuminance(color2);
238
- const brightest = Math.max(lum1, lum2);
239
- const darkest = Math.min(lum1, lum2);
240
- return (brightest + 0.05) / (darkest + 0.05);
241
- }
242
- function getHueDistance(color1, color2) {
243
- const [h1] = rgbToHsl(color1.r, color1.g, color1.b);
244
- const [h2] = rgbToHsl(color2.r, color2.g, color2.b);
245
- const hue1 = h1 * 360;
246
- const hue2 = h2 * 360;
247
- const diff = Math.abs(hue1 - hue2);
248
- return Math.min(diff, 360 - diff);
249
- }
250
- function isHighlySaturated(color) {
251
- const [, s] = rgbToHsl(color.r, color.g, color.b);
252
- return s > 0.6;
253
- }
254
- function findColorRangeInternal(data, ignoredColor = null, customThreshold) {
255
- const groups = [];
256
- const threshold = customThreshold ?? COLOR_RANGE_THRESHOLD;
257
- for (let i = 0; i < data.length; i += 4) {
258
- if (data[i + 3] < 10) continue;
259
- const color = { r: data[i], g: data[i + 1], b: data[i + 2] };
260
- if (ignoredColor && colorDistance(color, ignoredColor) < threshold) continue;
261
- let found = false;
262
- for (const group of groups) {
263
- const distance = colorDistance(group.color, color);
264
- const contrastRatio = getContrastRatio(group.color, color);
265
- let groupingThreshold = threshold;
266
- if (contrastRatio > 3) groupingThreshold = Math.min(groupingThreshold, 8);
267
- const hueDistance = getHueDistance(group.color, color);
268
- if (hueDistance > 20) groupingThreshold = Math.min(groupingThreshold, 5);
269
- if (isHighlySaturated(color) && isHighlySaturated(group.color)) {
270
- groupingThreshold = Math.min(groupingThreshold, 10);
271
- }
272
- if (distance < groupingThreshold) {
273
- group.count++;
274
- found = true;
275
- break;
276
- }
277
- }
278
- if (!found) groups.push({ color, count: 1 });
279
- }
280
- const sorted = groups.sort((a, b) => b.count - a.count);
281
- let filtered = sorted.filter((g) => g.count > sorted[0].count * 0.03).map((g) => g.color);
282
- if (filtered.length < 2 && sorted.length >= 2) {
283
- filtered = sorted.slice(0, 2).map((g) => g.color);
284
- }
285
- return filtered.slice(0, 6);
286
- }
287
- function findColorRange(data, ignoredColor = null) {
288
- return findColorRangeInternal(data, ignoredColor);
289
- }
290
- function findColorRangeWithThreshold(data, threshold, ignoredColor = null) {
291
- return findColorRangeInternal(data, ignoredColor, threshold);
292
- }
293
- function rgbToHsl(r, g, b) {
294
- const rNorm = r / 255;
295
- const gNorm = g / 255;
296
- const bNorm = b / 255;
297
- const max = Math.max(rNorm, gNorm, bNorm);
298
- const min = Math.min(rNorm, gNorm, bNorm);
299
- let h = 0;
300
- let s = 0;
301
- const l = (max + min) / 2;
302
- if (max !== min) {
303
- const d = max - min;
304
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
305
- switch (max) {
306
- case rNorm:
307
- h = (gNorm - bNorm) / d + (gNorm < bNorm ? 6 : 0);
308
- break;
309
- case gNorm:
310
- h = (bNorm - rNorm) / d + 2;
311
- break;
312
- case bNorm:
313
- h = (rNorm - gNorm) / d + 4;
314
- break;
315
- default:
316
- break;
317
- }
318
- h /= 6;
319
- }
320
- return [h, s, l];
321
- }
322
- function hslToRgb(h, s, l) {
323
- let r;
324
- let g;
325
- let b;
326
- if (s === 0) {
327
- r = g = b = l;
328
- } else {
329
- const hue2rgb = (p2, q2, t) => {
330
- let tMod = t;
331
- if (tMod < 0) tMod += 1;
332
- if (tMod > 1) tMod -= 1;
333
- if (tMod < 1 / 6) return p2 + (q2 - p2) * 6 * tMod;
334
- if (tMod < 1 / 2) return q2;
335
- if (tMod < 2 / 3) return p2 + (q2 - p2) * (2 / 3 - tMod) * 6;
336
- return p2;
337
- };
338
- const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
339
- const p = 2 * l - q;
340
- r = hue2rgb(p, q, h + 1 / 3);
341
- g = hue2rgb(p, q, h);
342
- b = hue2rgb(p, q, h - 1 / 3);
343
- }
344
- return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
345
- }
346
- function solidifyEdges(data, saturationBoost = 0.25) {
347
- const result = Buffer.from(data);
348
- for (let i = 0; i < result.length; i += 4) {
349
- const alpha = result[i + 3];
350
- if (alpha > 0 && alpha < 255) {
351
- const r = result[i];
352
- const g = result[i + 1];
353
- const b = result[i + 2];
354
- const hsl = rgbToHsl(r, g, b);
355
- const rgb = hslToRgb(hsl[0], Math.min(1, hsl[1] + saturationBoost), hsl[2]);
356
- result[i] = rgb[0];
357
- result[i + 1] = rgb[1];
358
- result[i + 2] = rgb[2];
359
- result[i + 3] = 255;
360
- }
361
- }
362
- return result;
363
- }
364
-
365
- // src/lib/image/image-processor.ts
366
- import sharp from "sharp";
367
- function hasGradient(data) {
368
- const uniqueColors = /* @__PURE__ */ new Set();
369
- for (let i = 0; i < data.length; i += 4) {
370
- if (data[i + 3] < 10) continue;
371
- uniqueColors.add(`${data[i]},${data[i + 1]},${data[i + 2]}`);
372
- }
373
- return uniqueColors.size > 50;
374
- }
375
- function perceivedLuminance(color) {
376
- return (0.299 * color.r + 0.587 * color.g + 0.114 * color.b) / 255;
377
- }
378
- function createSvgRecolorer(target, palette) {
379
- if (palette.length < 2) return () => target;
380
- const luminances = palette.map(perceivedLuminance);
381
- const min = Math.min(...luminances);
382
- const max = Math.max(...luminances);
383
- if (max - min < 0.05) return () => target;
384
- const [h, s, targetLightness] = rgbToHsl(target.r, target.g, target.b);
385
- const lightnessRange = 0.75;
386
- const minLightness = targetLightness >= 0.5 ? Math.max(0, targetLightness - lightnessRange) : targetLightness;
387
- const maxLightness = targetLightness >= 0.5 ? targetLightness : Math.min(1, targetLightness + lightnessRange);
388
- return (source) => {
389
- const sourcePosition = (perceivedLuminance(source) - min) / (max - min);
390
- const nextLightness = minLightness + sourcePosition * (maxLightness - minLightness);
391
- const [r, g, b] = hslToRgb(h, s, Math.max(0, Math.min(1, nextLightness)));
392
- return { r, g, b };
393
- };
394
- }
395
- async function processGradient(data, info) {
396
- if (!hasGradient(data)) return { data, info };
397
- const solidified = solidifyEdges(data, 0.1);
398
- const blurred = await sharp(solidified, {
399
- raw: { channels: 4, width: info.width, height: info.height }
400
- }).png().blur(0.3).toBuffer();
401
- const result = await sharp(blurred).ensureAlpha().raw().toBuffer({ resolveWithObject: true });
402
- return { data: result.data, info: result.info };
403
- }
404
- function isSvgBuffer(buffer) {
405
- const head = buffer.subarray(0, Math.min(buffer.length, 512)).toString("utf8").trimStart();
406
- return head.startsWith("<?xml") ? head.includes("<svg") : head.startsWith("<svg");
407
- }
408
- async function processInternal(inputBuffer, isSVG, options) {
409
- const stages = [];
410
- const metadata = await sharp(inputBuffer).metadata();
411
- let alreadyTransparent = false;
412
- if (metadata.hasAlpha) {
413
- const { data: alphaData } = await sharp(inputBuffer).raw().toBuffer({ resolveWithObject: true });
414
- alreadyTransparent = hasTransparency(alphaData, 0.05);
415
- }
416
- let { data: processedData, info } = await sharp(inputBuffer).ensureAlpha().raw().toBuffer({ resolveWithObject: true });
417
- if (options.color) {
418
- stages.push("recolor");
419
- processedData = applyQuantization(processedData, 8);
420
- let dominantEdgeColor = null;
421
- let colorRange = [];
422
- if (isSVG) {
423
- dominantEdgeColor = getDominantEdgeColor(processedData, info.width, info.height);
424
- colorRange = findColorRangeWithThreshold(processedData, 5, null);
425
- } else {
426
- dominantEdgeColor = alreadyTransparent ? null : getDominantEdgeColor(processedData, info.width, info.height);
427
- colorRange = findColorRange(processedData, dominantEdgeColor);
428
- }
429
- const isMultiFillSvg = isSVG && colorRange.length >= 2;
430
- const recolorSvgFill = isMultiFillSvg ? createSvgRecolorer(options.color, colorRange) : null;
431
- let didRemoveBackground = false;
432
- for (let i = 0; i < processedData.length; i += 4) {
433
- let alpha = processedData[i + 3];
434
- if (alpha < 25.5) {
435
- processedData[i + 3] = 0;
436
- continue;
437
- }
438
- const pixelColor = { r: processedData[i], g: processedData[i + 1], b: processedData[i + 2] };
439
- if (isSVG) {
440
- const isLight = pixelColor.r > 240 && pixelColor.g > 240 && pixelColor.b > 240;
441
- const isEdgeBackground = dominantEdgeColor ? colorDistance(dominantEdgeColor, pixelColor) < 5 : false;
442
- if (isLight && (!isMultiFillSvg || isEdgeBackground)) {
443
- alpha = 0;
444
- didRemoveBackground = true;
445
- } else {
446
- const idx = colorRange.findIndex((c) => colorDistance(c, pixelColor) < 5);
447
- if (idx === -1) {
448
- alpha = 0;
449
- didRemoveBackground = true;
450
- } else if (!isMultiFillSvg) {
451
- const levels = [255, 200, 150, 100, 80];
452
- alpha = levels[idx] ?? 60;
453
- }
454
- }
455
- } else if (!alreadyTransparent && dominantEdgeColor && colorDistance(dominantEdgeColor, pixelColor) < 25) {
456
- alpha = 0;
457
- didRemoveBackground = true;
458
- } else {
459
- const idx = colorRange.findIndex((c) => colorDistance(c, pixelColor) < COLOR_RANGE_THRESHOLD);
460
- if (idx === -1) {
461
- alpha = 0;
462
- didRemoveBackground = true;
463
- } else {
464
- alpha = Math.max(255 - 255 * idx * 0.35, 50);
465
- }
466
- }
467
- const recolored = recolorSvgFill ? recolorSvgFill(pixelColor) : options.color;
468
- processedData[i] = recolored.r;
469
- processedData[i + 1] = recolored.g;
470
- processedData[i + 2] = recolored.b;
471
- processedData[i + 3] = alpha;
472
- }
473
- if (didRemoveBackground && !alreadyTransparent) {
474
- stages.push("solidify-edges");
475
- const result = await processGradient(processedData, info);
476
- processedData = result.data;
477
- info = result.info;
478
- }
479
- } else if (options.removeBackground && !alreadyTransparent) {
480
- stages.push("remove-bg");
481
- processedData = removeBackground(processedData, info.width, info.height);
482
- stages.push("solidify-edges");
483
- const result = await processGradient(processedData, info);
484
- processedData = result.data;
485
- info = result.info;
486
- }
487
- let pipeline = sharp(processedData, {
488
- raw: { channels: 4, width: info.width, height: info.height }
489
- }).png();
490
- if (options.shrinkToContent) {
491
- stages.push("trim");
492
- pipeline = pipeline.trim();
493
- }
494
- const outputBuffer = await pipeline.toBuffer();
495
- return { buffer: outputBuffer, stages };
496
- }
497
- function applyResize(buffer, resize) {
498
- const transparent = { r: 0, g: 0, b: 0, alpha: 0 };
499
- if (resize.size) {
500
- return sharp(buffer).resize(resize.size.width, resize.size.height, {
501
- fit: resize.fit ?? "contain",
502
- background: transparent
503
- }).toBuffer();
504
- }
505
- return sharp(buffer).resize(resize.width ?? null, resize.height ?? null, { fit: "inside", withoutEnlargement: false }).toBuffer();
506
- }
507
- async function processImage(inputBuffer, options = {}) {
508
- const stages = [];
509
- const isSVG = isSvgBuffer(inputBuffer);
510
- if (isSVG && !options.color && !options.removeBackground && !options.shrinkToContent) {
511
- if (options.resize) {
512
- stages.push("resize");
513
- const resized = await applyResize(inputBuffer, options.resize);
514
- const meta3 = await sharp(resized).metadata();
515
- return {
516
- buffer: resized,
517
- format: "png",
518
- width: meta3.width ?? 0,
519
- height: meta3.height ?? 0,
520
- stages
521
- };
522
- }
523
- const meta2 = await sharp(inputBuffer).metadata();
524
- return {
525
- buffer: inputBuffer,
526
- format: "svg",
527
- width: meta2.width ?? 0,
528
- height: meta2.height ?? 0,
529
- stages
530
- };
531
- }
532
- let workingBuffer = inputBuffer;
533
- if (isSVG) {
534
- stages.push("rasterize-svg");
535
- workingBuffer = await sharp(inputBuffer).png({ compressionLevel: 0, force: true, palette: false, quality: 100 }).toBuffer();
536
- }
537
- const pass = await processInternal(workingBuffer, isSVG, options);
538
- stages.push(...pass.stages);
539
- let processed = pass.buffer;
540
- if (options.resize) {
541
- stages.push("resize");
542
- processed = await applyResize(processed, options.resize);
543
- }
544
- const meta = await sharp(processed).metadata();
545
- return {
546
- buffer: processed,
547
- format: "png",
548
- width: meta.width ?? 0,
549
- height: meta.height ?? 0,
550
- stages
551
- };
552
- }
553
-
554
- // src/commands/images/normalize.ts
555
- registerSchema({
556
- command: "images.normalize",
557
- description: "Normalize one or more local images: recolor, two-pass background removal, trim, and resize. Multi-fill SVG recolor preserves relative contrast. Declarative \u2014 describe the desired final state via flags; the pipeline runs the needed stages in order. Writes in-place by default. For upscaling, use 'baker images upscale <imageId>' after uploading.",
558
- args: {
559
- files: {
560
- type: "string",
561
- description: "Single path, glob (quote it), or comma-separated list. Commas are treated as separators \u2014 paths containing commas are not supported. Use 'logos/*.png', 'a.png,b.png', or 'logo.png'.",
562
- required: true
563
- },
564
- color: {
565
- type: "string",
566
- description: "Recolor target as hex (e.g. '#FFFFFF', '#fff'). Omit to keep original colors.",
567
- required: false
568
- },
569
- "remove-bg": {
570
- type: "boolean",
571
- description: "Two-pass background removal. Default true when --color is set, false otherwise. Idempotent on already-transparent input.",
572
- required: false
573
- },
574
- "shrink-to-content": {
575
- type: "boolean",
576
- description: "Trim transparent borders after bg removal. Default true when --remove-bg is on.",
577
- required: false
578
- },
579
- height: {
580
- type: "number",
581
- description: "Resize to N pixels tall, width auto (preserves aspect). Mutex with --size.",
582
- required: false
583
- },
584
- width: {
585
- type: "number",
586
- description: "Resize to N pixels wide, height auto (preserves aspect). Mutex with --size.",
587
- required: false
588
- },
589
- size: {
590
- type: "string",
591
- description: "Fit into a W\xD7H box. Format 'WxH' (e.g. '200x200'). Mutex with --height/--width.",
592
- required: false
593
- },
594
- fit: {
595
- type: "string",
596
- description: "Used with --size: 'contain' (default, letterbox transparent) or 'cover' (crop to fill).",
597
- required: false,
598
- enum: ["contain", "cover"]
599
- },
600
- output: {
601
- type: "string",
602
- description: "Output path. Default: in-place. With multiple inputs, must be a directory.",
603
- required: false
604
- },
605
- "dry-run": {
606
- type: "boolean",
607
- description: "Resolve inputs + pipeline without writing any files.",
608
- required: false,
609
- default: false
610
- }
611
- }
612
- });
613
- var ValidationError = class extends Error {
614
- constructor(message) {
615
- super(message);
616
- this.name = "ValidationError";
617
- }
618
- };
619
- function parseSize(raw) {
620
- const match = /^(\d+)x(\d+)$/i.exec(raw.trim());
621
- if (!match || match.length < 3) {
622
- throw new ValidationError(`Invalid --size value "${raw}". Expected WxH (e.g. 200x200).`);
623
- }
624
- const [, w, h] = match;
625
- return { width: Number.parseInt(w ?? "", 10), height: Number.parseInt(h ?? "", 10) };
626
- }
627
- function parseResize(args) {
628
- const hasSize = typeof args.size === "string" && args.size.length > 0;
629
- const hasHeight = typeof args.height === "number";
630
- const hasWidth = typeof args.width === "number";
631
- if (hasSize && (hasHeight || hasWidth)) {
632
- throw new ValidationError("--height/--width and --size are mutually exclusive");
633
- }
634
- if (args.fit !== void 0 && !hasSize) {
635
- throw new ValidationError("--fit requires --size");
636
- }
637
- if (hasSize && typeof args.size === "string") {
638
- return {
639
- size: parseSize(args.size),
640
- fit: args.fit ?? "contain"
641
- };
642
- }
643
- if (hasHeight || hasWidth) {
644
- return { width: args.width, height: args.height };
645
- }
646
- return void 0;
647
- }
648
- function parseColor(raw) {
649
- if (typeof raw !== "string" || raw.length === 0) return void 0;
650
- try {
651
- return parseHex(raw);
652
- } catch (err) {
653
- throw new ValidationError(err instanceof Error ? err.message : "Invalid --color");
654
- }
655
- }
656
- function buildOptions(args) {
657
- const resize = parseResize(args);
658
- const color = parseColor(args.color);
659
- const removeBackground2 = typeof args["remove-bg"] === "boolean" ? args["remove-bg"] : color !== void 0;
660
- const shrinkToContent = typeof args["shrink-to-content"] === "boolean" ? args["shrink-to-content"] : removeBackground2;
661
- return {
662
- options: { color, removeBackground: removeBackground2, shrinkToContent, resize },
663
- outputArg: typeof args.output === "string" && args.output.length > 0 ? args.output : void 0,
664
- dryRun: args["dry-run"] === true
665
- };
666
- }
667
- function colorToHex(color) {
668
- if (!color) return null;
669
- return `#${[color.r, color.g, color.b].map((n) => n.toString(16).padStart(2, "0")).join("")}`;
670
- }
671
- async function processFile(inputPath, options, outputArg, multipleInputs) {
672
- const inputBuffer = await readImageBuffer(inputPath);
673
- const result = await processImage(inputBuffer, options);
674
- const newExt = result.format === "png" ? ".png" : ".svg";
675
- const outputPath = await resolveOutputPath(inputPath, outputArg, { multipleInputs, newExtension: newExt });
676
- await atomicWrite(outputPath, result.buffer);
677
- return {
678
- input: inputPath,
679
- output: outputPath,
680
- format: result.format,
681
- width: result.width,
682
- height: result.height,
683
- sizeBytes: result.buffer.length,
684
- stages: result.stages
685
- };
686
- }
687
- async function resolveInputs(spec) {
688
- const all = await expandInputs(spec);
689
- if (all.length === 0) {
690
- throw new ValidationError(`No files matched "${spec}"`);
691
- }
692
- const remote = all.filter(isRemoteUrl);
693
- if (remote.length > 0) {
694
- throw new ValidationError(
695
- "Remote URLs are not supported by 'normalize'. Download the file first or use a local path."
696
- );
697
- }
698
- return all;
699
- }
700
- function emitDryRun(inputs, normalized) {
701
- writeJson({
702
- ok: true,
703
- dryRun: true,
704
- operation: "images.normalize",
705
- params: {
706
- inputs,
707
- options: {
708
- color: colorToHex(normalized.options.color),
709
- removeBackground: normalized.options.removeBackground ?? false,
710
- shrinkToContent: normalized.options.shrinkToContent ?? false,
711
- resize: normalized.options.resize ?? null
712
- },
713
- outputArg: normalized.outputArg ?? null
714
- }
715
- });
716
- }
717
- function emitError(err) {
718
- if (err instanceof ValidationError) {
719
- writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: err.message } });
720
- } else {
721
- const message = err instanceof Error ? err.message : "Unexpected error";
722
- writeJson({ ok: false, error: { code: "IMAGE_PROCESSING_ERROR", message } });
723
- }
724
- process.exit(1);
725
- }
726
- function coerceRawArgs(args) {
727
- const num = (v) => {
728
- if (typeof v === "number") return v;
729
- if (typeof v === "string" && v.length > 0) {
730
- const n = Number(v);
731
- return Number.isFinite(n) ? n : void 0;
732
- }
733
- return void 0;
734
- };
735
- const str = (v) => typeof v === "string" ? v : void 0;
736
- const bool = (v) => typeof v === "boolean" ? v : void 0;
737
- return {
738
- files: str(args.files),
739
- color: str(args.color),
740
- "remove-bg": bool(args["remove-bg"]),
741
- "shrink-to-content": bool(args["shrink-to-content"]),
742
- height: num(args.height),
743
- width: num(args.width),
744
- size: str(args.size),
745
- fit: str(args.fit),
746
- output: str(args.output),
747
- "dry-run": bool(args["dry-run"])
748
- };
749
- }
750
- var normalizeCommand = defineCommand({
751
- meta: {
752
- name: "normalize",
753
- description: `Normalize logos / images: declarative recolor + bg removal + trim + resize. Operates on local files; writes in-place by default.
754
-
755
- Examples:
756
- baker images normalize "logos/*.png" --color '#FFFFFF' --height 200
757
- baker images normalize logo.png --remove-bg --shrink-to-content
758
- baker images normalize "a.png,b.png" --size 200x200 --fit cover --output ./out`
759
- },
760
- args: {
761
- files: {
762
- type: "positional",
763
- description: "Single path, glob (quote it), or comma-separated list",
764
- required: false
765
- },
766
- color: { type: "string", description: "Recolor target as hex", required: false },
767
- "remove-bg": { type: "boolean", description: "Two-pass background removal", required: false },
768
- "shrink-to-content": { type: "boolean", description: "Trim transparent borders", required: false },
769
- height: { type: "string", description: "Resize to N px tall, width auto", required: false },
770
- width: { type: "string", description: "Resize to N px wide, height auto", required: false },
771
- size: { type: "string", description: "Fit into a WxH box (e.g. 200x200)", required: false },
772
- fit: { type: "string", description: "contain (default) or cover (with --size)", required: false },
773
- output: { type: "string", description: "Output path or directory", required: false },
774
- "dry-run": { type: "boolean", description: "Preview without writing", required: false, default: false }
775
- },
776
- run: async ({ args }) => {
777
- try {
778
- const raw = coerceRawArgs(args);
779
- if (!raw.files) {
780
- throw new ValidationError("files argument is required");
781
- }
782
- const inputs = await resolveInputs(raw.files);
783
- const normalized = buildOptions(raw);
784
- if (inputs.length > 1 && normalized.outputArg && !await isDirectory(normalized.outputArg)) {
785
- throw new ValidationError(
786
- `--output must be an existing directory when processing multiple files (got "${normalized.outputArg}")`
787
- );
788
- }
789
- if (normalized.dryRun) {
790
- emitDryRun(inputs, normalized);
791
- return;
792
- }
793
- const processed = [];
794
- for (const inputPath of inputs) {
795
- processed.push(await processFile(inputPath, normalized.options, normalized.outputArg, inputs.length > 1));
796
- }
797
- writeJson({ ok: true, data: { processed } });
798
- } catch (err) {
799
- emitError(err);
800
- }
801
- }
802
- });
803
- export {
804
- normalizeCommand
805
- };
806
- //# sourceMappingURL=normalize-4OKUF5BJ.js.map