@koda-sl/baker-cli 0.554.0 → 0.556.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 (863) hide show
  1. package/README.md +10 -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-CWKKIYD6.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-QW5ZXDJR.js +447 -0
  18. package/dist/analytics-XPU5SANS.js +2437 -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-3OMFIKOJ.js +38 -0
  28. package/dist/bid-pricing-UUAC4GTQ.js +103 -0
  29. package/dist/brand-IZYD5SBJ.js +22 -0
  30. package/dist/brief-TNOKTNFJ.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-PVNQ7YWV.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-6KBW7F5S.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-3OMFSYQ3.js +344 -0
  45. package/dist/chunk-4N3Y5QWW.js +29 -0
  46. package/dist/chunk-4N3Y5QWW.js.map +1 -0
  47. package/dist/chunk-65CQYRMK.js +98 -0
  48. package/dist/chunk-6MZFOMLU.js +225 -0
  49. package/dist/chunk-757ZFIL4.js +910 -0
  50. package/dist/chunk-75HAGIH6.js +61 -0
  51. package/dist/chunk-7BVRFQN4.js +430 -0
  52. package/dist/chunk-7TDJCDKT.js +163 -0
  53. package/dist/chunk-7WDH6OKW.js +1902 -0
  54. package/dist/chunk-AL4MRNYI.js +709 -0
  55. package/dist/chunk-AMM4JMSN.js +91 -0
  56. package/dist/chunk-AU3IMZZC.js +19 -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-DWPOAU4Z.js +5471 -0
  64. package/dist/chunk-EENYLJUN.js +225 -0
  65. package/dist/chunk-EGVWSAWY.js +83 -0
  66. package/dist/chunk-EGVWSAWY.js.map +1 -0
  67. package/dist/chunk-EJBLF2LI.js +167 -0
  68. package/dist/chunk-EJMPKO6V.js +287 -0
  69. package/dist/chunk-EKXLJRO3.js +197 -0
  70. package/dist/chunk-EL3TDR5S.js +1744 -0
  71. package/dist/chunk-GRDZWZKQ.js +249 -0
  72. package/dist/chunk-GVUBRSD3.js +51 -0
  73. package/dist/chunk-GYREQDTJ.js +392 -0
  74. package/dist/chunk-HBRXFQQV.js +3510 -0
  75. package/dist/chunk-HLHR3EK2.js +23 -0
  76. package/dist/chunk-IMFIRELA.js +547 -0
  77. package/dist/chunk-IOKD77L2.js +89 -0
  78. package/dist/chunk-KDAINT54.js +131 -0
  79. package/dist/chunk-KKKZRQFY.js +297 -0
  80. package/dist/chunk-KLO36KTV.js +224 -0
  81. package/dist/chunk-LC6PVPJX.js +76 -0
  82. package/dist/chunk-LETR3RQE.js +275 -0
  83. package/dist/chunk-MAVT2CJ4.js +66 -0
  84. package/dist/chunk-MJDN7CR7.js +930 -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-OTFHIGEO.js +207 -0
  90. package/dist/chunk-PCUWBZM3.js +169 -0
  91. package/dist/chunk-PNWXTOQ4.js +455 -0
  92. package/dist/chunk-PQFTKHDA.js +479 -0
  93. package/dist/chunk-Q5DFEVLE.js +148 -0
  94. package/dist/chunk-QAJFMVGU.js +91 -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-TRAMBRVO.js +191 -0
  100. package/dist/chunk-TWFZIHKK.js +219 -0
  101. package/dist/chunk-UCJAPB5Y.js +334 -0
  102. package/dist/chunk-VFDWUIGR.js +57 -0
  103. package/dist/chunk-VN3WDB4O.js +45 -0
  104. package/dist/chunk-VN3WDB4O.js.map +1 -0
  105. package/dist/chunk-WC3YSN7L.js +604 -0
  106. package/dist/chunk-X3GWGFZP.js +5368 -0
  107. package/dist/chunk-X6U3B6YK.js +343 -0
  108. package/dist/chunk-X6U3B6YK.js.map +1 -0
  109. package/dist/chunk-XZAVBONI.js +64 -0
  110. package/dist/chunk-Y5PNLB24.js +84 -0
  111. package/dist/chunk-ZC6FICZ7.js +2209 -0
  112. package/dist/chunk-ZEGWP4FP.js +8954 -0
  113. package/dist/claim-PGDIRXIC.js +200 -0
  114. package/dist/cli.js +36 -36
  115. package/dist/companies-WTPKGEB3.js +198 -0
  116. package/dist/company-6H2H73YP.js +308 -0
  117. package/dist/complete-2QBC3POO.js +84 -0
  118. package/dist/connect-35YPFAUL.js +45 -0
  119. package/dist/conversation-YZFNEWDV.js +96 -0
  120. package/dist/conversion-upload-command-J2FIO74Y.js +439 -0
  121. package/dist/conversions-UGRVDRWU.js +78 -0
  122. package/dist/conversions-ZFDBD3OU.js +140 -0
  123. package/dist/copy-writes-2B36QJUY.js +170 -0
  124. package/dist/create-3H67EUTO.js +62 -0
  125. package/dist/create-ALTOBDP4.js +239 -0
  126. package/dist/create-C3MWUYX2.js +210 -0
  127. package/dist/create-WHTT6IXY.js +135 -0
  128. package/dist/creatives-22BYP5VN.js +118 -0
  129. package/dist/creatives-IFOPXTZK.js +58 -0
  130. package/dist/creatives-WBBN6G7H.js +229 -0
  131. package/dist/creatives-WBBN6G7H.js.map +1 -0
  132. package/dist/credentials-J5DMQJWN.js +290 -0
  133. package/dist/critique-PQRVFC52.js +232 -0
  134. package/dist/critique-X6XVPIUG.js +1451 -0
  135. package/dist/crm-LWRGJYHW.js +227 -0
  136. package/dist/crm-RUNEJY2R.js +323 -0
  137. package/dist/crop-4V4P3SKI.js +113 -0
  138. package/dist/custom-conversions-V7QPZIB4.js +128 -0
  139. package/dist/customers-IDB6NLQ6.js +65 -0
  140. package/dist/delete-2QKVUKKB.js +67 -0
  141. package/dist/delete-B7BKF24X.js +57 -0
  142. package/dist/delete-HBRYUWAA.js +69 -0
  143. package/dist/demographics-JHB3NFLU.js +141 -0
  144. package/dist/dimensions-KI3OENZD.js +101 -0
  145. package/dist/discard-FEJ6YL22.js +69 -0
  146. package/dist/domain-JYWNXBKS.js +101 -0
  147. package/dist/download-H3ZDQTFG.js +337 -0
  148. package/dist/download-H3ZDQTFG.js.map +1 -0
  149. package/dist/download-LOBPOIU5.js +172 -0
  150. package/dist/draft-EB5ZFDVN.js +557 -0
  151. package/dist/draft-I2FLECEX.js +220 -0
  152. package/dist/draft-N56HPS36.js +374 -0
  153. package/dist/draft-ZLZRTPY6.js +332 -0
  154. package/dist/engine/index.js +5 -5
  155. package/dist/experiment-O6726OBP.js +1397 -0
  156. package/dist/experiments-WVTBHD6G.js +236 -0
  157. package/dist/extract-UELZV3NI.js +142 -0
  158. package/dist/extract-UELZV3NI.js.map +1 -0
  159. package/dist/facets-V2ITIUKD.js +117 -0
  160. package/dist/feedback-MXUZWVOL.js +115 -0
  161. package/dist/feedback-PXWPR3NZ.js +136 -0
  162. package/dist/feedback-record-76RUAHZH.js +269 -0
  163. package/dist/fetch-QVOOC3FA.js +204 -0
  164. package/dist/fit-REGMM46H.js +65 -0
  165. package/dist/flows-EZV3KCV6.js +250 -0
  166. package/dist/fonts-NUX66HEI.js +39 -0
  167. package/dist/forecast-W6HKYVX5.js +121 -0
  168. package/dist/forecast-XDRKCR65.js +169 -0
  169. package/dist/funnel-3YABA3G2.js +397 -0
  170. package/dist/ga4-XFJO7VK2.js +55 -0
  171. package/dist/generate-22HT24SA.js +263 -0
  172. package/dist/get-GQQLBE5C.js +82 -0
  173. package/dist/get-NL3YZFUJ.js +62 -0
  174. package/dist/google-BPB5JLJG.js +162 -0
  175. package/dist/google-BPB5JLJG.js.map +1 -0
  176. package/dist/google-UJ4YJGTJ.js +3285 -0
  177. package/dist/google-ads-RRKKSKDD.js +198 -0
  178. package/dist/gsc-ILEIJYWP.js +30 -0
  179. package/dist/history-2UANIBRN.js +102 -0
  180. package/dist/history-YZ727ZRG.js +153 -0
  181. package/dist/hubspot-KWLXJ6QD.js +782 -0
  182. package/dist/ideas-ZO533P5Y.js +45 -0
  183. package/dist/images-Z7YBWRVJ.js +92 -0
  184. package/dist/ingest-C2HJ5LUY.js +27 -0
  185. package/dist/ingest-H53JR4GK.js +123 -0
  186. package/dist/inspect-BM6GJHQV.js +192 -0
  187. package/dist/inspiration-WGUU7W5Z.js +53 -0
  188. package/dist/instant-experiences-U6U3FYIH.js +264 -0
  189. package/dist/keyword-metrics-R2QCEDYW.js +200 -0
  190. package/dist/keywords-for-site-NBV72C3W.js +131 -0
  191. package/dist/landing-5RRWTSWK.js +28 -0
  192. package/dist/leads-6PF7ZWCH.js +115 -0
  193. package/dist/leads-IG3IIHXG.js +541 -0
  194. package/dist/learn-V2LIBEEY.js +207 -0
  195. package/dist/line-item-writes-GMNWL4DI.js +211 -0
  196. package/dist/line-items-KPIKXLG4.js +107 -0
  197. package/dist/link-X7IYKR5V.js +67 -0
  198. package/dist/linkedin-DJ4VDOF4.js +1344 -0
  199. package/dist/linkedin-DJ4VDOF4.js.map +1 -0
  200. package/dist/linkedin-person-47XFTBIN.js +139 -0
  201. package/dist/list-PHNA7QIF.js +154 -0
  202. package/dist/list-QF3BANBM.js +306 -0
  203. package/dist/list-SB3SUTH6.js +67 -0
  204. package/dist/log-JFLSSUJ6.js +95 -0
  205. package/dist/make-HZ5KAYSB.js +1367 -0
  206. package/dist/map-NYJT2MGI.js +436 -0
  207. package/dist/mcp-ABQEICYR.js +729 -0
  208. package/dist/media-AT3VV3PU.js +18 -0
  209. package/dist/media-sources-DEEKEJUB.js +35 -0
  210. package/dist/members-BX37KHKO.js +47 -0
  211. package/dist/meta-XUHI3E3L.js +122 -0
  212. package/dist/meta-XUHI3E3L.js.map +1 -0
  213. package/dist/normalize-M3VMWF4W.js +806 -0
  214. package/dist/normalize-MA2FBBIV.js +144 -0
  215. package/dist/options-NMWWF2HN.js +125 -0
  216. package/dist/organization-GRAA6ZXU.js +949 -0
  217. package/dist/page-photos-ABK4CJME.js +118 -0
  218. package/dist/performance-MQLRSH44.js +5565 -0
  219. package/dist/performance-RUBIGEAQ.js +27 -0
  220. package/dist/posts-F7NFSUHV.js +36 -0
  221. package/dist/preview-IBNFQ5RQ.js +101 -0
  222. package/dist/preview-IBNFQ5RQ.js.map +1 -0
  223. package/dist/preview-OV2EZ6YF.js +245 -0
  224. package/dist/preview-OV2EZ6YF.js.map +1 -0
  225. package/dist/promoted-tweet-writes-3P6QFGLN.js +183 -0
  226. package/dist/promoted-tweets-TGFPH7UI.js +119 -0
  227. package/dist/publish-OUVO65Z5.js +344 -0
  228. package/dist/reddit-HWQCUSEM.js +29 -0
  229. package/dist/refresh-ENQDQGTK.js +97 -0
  230. package/dist/release-ZTVXLUQS.js +63 -0
  231. package/dist/remove-XAFRT7O7.js +53 -0
  232. package/dist/reopen-SWSZHXJZ.js +66 -0
  233. package/dist/rerun-X7XVOAL3.js +96 -0
  234. package/dist/research-JMU4C4JZ.js +75 -0
  235. package/dist/research-TDH4OBX6.js +265 -0
  236. package/dist/reset-34HTKUBQ.js +57 -0
  237. package/dist/reset-KMMGLM7W.js +57 -0
  238. package/dist/resolve-2CIIKADD.js +124 -0
  239. package/dist/retry-V7KZIZKR.js +63 -0
  240. package/dist/retry-YXM23NSB.js +65 -0
  241. package/dist/revenue-D4L6U2CW.js +91 -0
  242. package/dist/rule-writes-HUBHHYEO.js +530 -0
  243. package/dist/rules-47LFGCPW.js +217 -0
  244. package/dist/rules-F6RNUOXP.js +99 -0
  245. package/dist/rules-add-SAQRESVK.js +465 -0
  246. package/dist/run-3GCYZ2HX.js +71 -0
  247. package/dist/run-FRPO2WNQ.js +69 -0
  248. package/dist/scaffold-ad-E6DD6U46.js +1513 -0
  249. package/dist/scaffold-static-ad-6WNS2PXB.js +1011 -0
  250. package/dist/scaffold-video-QKXFQ5FC.js +885 -0
  251. package/dist/schedule-S4XAVVEI.js +64 -0
  252. package/dist/scheduled-agents-ZWAP6QLC.js +55 -0
  253. package/dist/schema-EJ2XPUN6.js +135 -0
  254. package/dist/scrape-O4X6VGV2.js +2209 -0
  255. package/dist/scrape-O4X6VGV2.js.map +1 -0
  256. package/dist/search-2BAY3KKX.js +177 -0
  257. package/dist/select-ABRNFFR2.js +110 -0
  258. package/dist/set-prompt-5LYHDT4E.js +199 -0
  259. package/dist/setup-links-QT63UZBR.js +144 -0
  260. package/dist/shopify-L4ZUI6OT.js +4009 -0
  261. package/dist/site-S6QVMP7W.js +180 -0
  262. package/dist/sources-6TWWOO7Q.js +30 -0
  263. package/dist/sources-ORG5KQSW.js +457 -0
  264. package/dist/stale-MLQPXNLZ.js +90 -0
  265. package/dist/status-4G2YUCZR.js +65 -0
  266. package/dist/stock-5SQ2PGEC.js +211 -0
  267. package/dist/stock-5SQ2PGEC.js.map +1 -0
  268. package/dist/studies-QLSKON6M.js +250 -0
  269. package/dist/studio-ZLBBYHNY.js +49 -0
  270. package/dist/study-writes-GBUUKX4O.js +471 -0
  271. package/dist/sync-7LJZPHM3.js +57 -0
  272. package/dist/sync-definition-MXVL2I2H.js +70 -0
  273. package/dist/tags-2ARVNEYS.js +23 -0
  274. package/dist/tags-F4IT7RQR.js +23 -0
  275. package/dist/tags-F7ZO52EM.js +23 -0
  276. package/dist/tags-NBGGBHXR.js +227 -0
  277. package/dist/tags-TCSGQYDR.js +26 -0
  278. package/dist/targeting-DAUTJDUB.js +762 -0
  279. package/dist/targeting-criteria-H42LRULY.js +113 -0
  280. package/dist/targets-WB4E5XL2.js +106 -0
  281. package/dist/testimonials-RIJSQDSB.js +32 -0
  282. package/dist/themes-BGBDYQQK.js +95 -0
  283. package/dist/top-companies-C2W5TJ7G.js +111 -0
  284. package/dist/transcript-S7VR2GJE.js +165 -0
  285. package/dist/translate-A4GHRHSP.js +603 -0
  286. package/dist/triggers-EOKMR74O.js +144 -0
  287. package/dist/unlink-PC3TMWUT.js +70 -0
  288. package/dist/unstage-SU2ATDSZ.js +88 -0
  289. package/dist/update-DKX3EEES.js +155 -0
  290. package/dist/update-JYZ45YJG.js +66 -0
  291. package/dist/update-TAZSUOAS.js +192 -0
  292. package/dist/update-WRJUH2NM.js +101 -0
  293. package/dist/upload-BLXTMK5Q.js +130 -0
  294. package/dist/url-params-YVOFU6MK.js +101 -0
  295. package/dist/validate-44PVFQH7.js +125 -0
  296. package/dist/videos-RWPQVXS5.js +41 -0
  297. package/dist/viewer-check-KTRRUVZN.js +83 -0
  298. package/dist/web-6KUM7Q7S.js +173 -0
  299. package/dist/winning-ads-IT3O4EAN.js +86 -0
  300. package/dist/write-commands-3U5ZMIHH.js +1524 -0
  301. package/dist/write-commands-F5XPPLOO.js +1169 -0
  302. package/dist/x-X7URL52T.js +47 -0
  303. package/package.json +1 -1
  304. package/dist/account-XIC5TTV3.js +0 -82
  305. package/dist/account-assets-V7KSSTVP.js +0 -290
  306. package/dist/account-level-2KLG6HTG.js +0 -611
  307. package/dist/account-reads-ZPZUCB3P.js +0 -219
  308. package/dist/account-users-XTUKRDWK.js +0 -64
  309. package/dist/accounts-25JL77F7.js +0 -701
  310. package/dist/accounts-AF72N4NV.js +0 -80
  311. package/dist/actions-IJO4JW7J.js +0 -55
  312. package/dist/activecampaign-PBTUMTO5.js +0 -938
  313. package/dist/add-KHQXXHC5.js +0 -107
  314. package/dist/add-YQPFRDVM.js +0 -305
  315. package/dist/ads-5YCCRXEU.js +0 -48
  316. package/dist/ads-EVQ37EV3.js +0 -120
  317. package/dist/adsets-4IW5TRAK.js +0 -182
  318. package/dist/advertisers-JNOWSZZC.js +0 -123
  319. package/dist/analytics-CZMCM7XC.js +0 -2437
  320. package/dist/analytics-K5FCQLI5.js +0 -447
  321. package/dist/animate-C6BRMRRD.js +0 -480
  322. package/dist/asset-writes-RF6XTWLY.js +0 -50
  323. package/dist/assign-WXZNXVJH.js +0 -80
  324. package/dist/audience-size-ZCWH4CFC.js +0 -76
  325. package/dist/audience-writes-5KT6FHUY.js +0 -327
  326. package/dist/audiences-ZDOK3OYC.js +0 -106
  327. package/dist/audit-RBRXPPKK.js +0 -154
  328. package/dist/autocomplete-P5OU7QVL.js +0 -114
  329. package/dist/avatars-UHBA2BQ3.js +0 -38
  330. package/dist/bid-pricing-LHNYSDG4.js +0 -103
  331. package/dist/brand-7WL3O74X.js +0 -22
  332. package/dist/brief-HWZU75WP.js +0 -543
  333. package/dist/campaign-groups-BYS3GNEP.js +0 -99
  334. package/dist/campaign-writes-N6OHAK6V.js +0 -168
  335. package/dist/campaigns-2E4AQBFB.js +0 -113
  336. package/dist/campaigns-3U5IRXSV.js +0 -130
  337. package/dist/campaigns-QLKGN4FB.js +0 -111
  338. package/dist/canvas-GGHJ26ZM.js +0 -46
  339. package/dist/capabilities-TKEEHR7K.js +0 -147
  340. package/dist/catalog-7KQN43HS.js +0 -66
  341. package/dist/catalogs-5CHPI4H6.js +0 -782
  342. package/dist/chatgpt-YBHXCXWZ.js +0 -47
  343. package/dist/chats-PBXYH2LT.js +0 -449
  344. package/dist/check-SVYI72DF.js +0 -107
  345. package/dist/chunk-2RL2T5JO.js +0 -142
  346. package/dist/chunk-3HLQZTQ3.js +0 -685
  347. package/dist/chunk-42JTSTQ3.js +0 -207
  348. package/dist/chunk-4AEAL63J.js +0 -203
  349. package/dist/chunk-4PM32OS3.js +0 -57
  350. package/dist/chunk-4ULGRGBG.js +0 -333
  351. package/dist/chunk-4ULGRGBG.js.map +0 -1
  352. package/dist/chunk-4XMPL3RU.js +0 -19
  353. package/dist/chunk-5AOTCCTT.js +0 -831
  354. package/dist/chunk-5NLUTJCQ.js +0 -5368
  355. package/dist/chunk-6FWVRXDW.js +0 -64
  356. package/dist/chunk-6MXM6DA6.js +0 -225
  357. package/dist/chunk-73MLPGI2.js +0 -66
  358. package/dist/chunk-7OVPQX4X.js +0 -163
  359. package/dist/chunk-B5UVOCYA.js +0 -344
  360. package/dist/chunk-BRNZMKO4.js +0 -604
  361. package/dist/chunk-CJFCQMUY.js +0 -438
  362. package/dist/chunk-D6VQPBVM.js +0 -5471
  363. package/dist/chunk-DK66PUXL.js +0 -275
  364. package/dist/chunk-DNH2ZPZP.js +0 -287
  365. package/dist/chunk-DWSSQBLO.js +0 -103
  366. package/dist/chunk-ESXUIV6V.js +0 -169
  367. package/dist/chunk-FSEFZZ2T.js +0 -930
  368. package/dist/chunk-I4BQTVMY.js +0 -225
  369. package/dist/chunk-IBBGABK2.js +0 -91
  370. package/dist/chunk-IC4MREQH.js +0 -219
  371. package/dist/chunk-IJ6NQKAT.js +0 -61
  372. package/dist/chunk-IZROFBH7.js +0 -167
  373. package/dist/chunk-J5UTL4HE.js +0 -3510
  374. package/dist/chunk-JBMZVC5D.js +0 -91
  375. package/dist/chunk-LFELUKCA.js +0 -249
  376. package/dist/chunk-LMOZWB4G.js +0 -98
  377. package/dist/chunk-LVLTWPRR.js +0 -392
  378. package/dist/chunk-N5AIO23H.js +0 -2209
  379. package/dist/chunk-NE3OMP7R.js +0 -23
  380. package/dist/chunk-NO52OH3Y.js +0 -156
  381. package/dist/chunk-NRIKX35V.js +0 -399
  382. package/dist/chunk-NZYWKZ3Q.js +0 -76
  383. package/dist/chunk-OIORUNKH.js +0 -1902
  384. package/dist/chunk-OKXLOLEV.js +0 -455
  385. package/dist/chunk-P4MXGSSJ.js +0 -178
  386. package/dist/chunk-PYAR343F.js +0 -479
  387. package/dist/chunk-QFVZIQRQ.js +0 -8954
  388. package/dist/chunk-QI5UKQX3.js +0 -297
  389. package/dist/chunk-RCNAKWK7.js +0 -7852
  390. package/dist/chunk-RCNAKWK7.js.map +0 -1
  391. package/dist/chunk-RHNNFCRY.js +0 -494
  392. package/dist/chunk-RJQT7QXX.js +0 -547
  393. package/dist/chunk-RMZLB4AH.js +0 -197
  394. package/dist/chunk-S4NMWYHW.js +0 -51
  395. package/dist/chunk-S6XZIBWV.js +0 -392
  396. package/dist/chunk-SFQFUQDW.js +0 -170
  397. package/dist/chunk-SP3MHBME.js +0 -89
  398. package/dist/chunk-TGT4XHLX.js +0 -131
  399. package/dist/chunk-VX6GTRT3.js +0 -910
  400. package/dist/chunk-WGJ2QEW4.js +0 -334
  401. package/dist/chunk-XB4NKZAQ.js +0 -136
  402. package/dist/chunk-XSBX3LJP.js +0 -430
  403. package/dist/chunk-XXBP73RV.js +0 -148
  404. package/dist/chunk-Y3SK6EMU.js +0 -84
  405. package/dist/chunk-Y4ZBNZBU.js +0 -191
  406. package/dist/chunk-YCAJCVW4.js +0 -224
  407. package/dist/chunk-ZANXEMON.js +0 -1744
  408. package/dist/chunk-ZMTWQDFC.js +0 -709
  409. package/dist/claim-Q76T3MYA.js +0 -200
  410. package/dist/companies-MLWRWQ73.js +0 -198
  411. package/dist/company-X5Z67PMK.js +0 -308
  412. package/dist/complete-3CFP6XVY.js +0 -84
  413. package/dist/connect-QXFAB4RJ.js +0 -45
  414. package/dist/conversation-C6K6IZTH.js +0 -96
  415. package/dist/conversion-upload-command-D7S5HF22.js +0 -439
  416. package/dist/conversions-4ILDIG3K.js +0 -140
  417. package/dist/conversions-CRL327RY.js +0 -78
  418. package/dist/copy-writes-FYXKHJDB.js +0 -170
  419. package/dist/create-LDQ3YHET.js +0 -62
  420. package/dist/create-TKOG7DNJ.js +0 -210
  421. package/dist/create-WFMJOZLO.js +0 -135
  422. package/dist/create-WQNT345R.js +0 -239
  423. package/dist/creatives-45SJAD3G.js +0 -118
  424. package/dist/creatives-E4CTMZJJ.js +0 -223
  425. package/dist/creatives-E4CTMZJJ.js.map +0 -1
  426. package/dist/creatives-Q4OXNCTT.js +0 -58
  427. package/dist/credentials-E2AIMWKX.js +0 -290
  428. package/dist/critique-EWV3O3TD.js +0 -1451
  429. package/dist/critique-JVT6X2T3.js +0 -232
  430. package/dist/crm-NQH5FTK6.js +0 -227
  431. package/dist/crm-YGQKK76D.js +0 -323
  432. package/dist/crop-KV24WHOR.js +0 -113
  433. package/dist/custom-conversions-EJNX4MCK.js +0 -128
  434. package/dist/customers-YFEPJF4G.js +0 -65
  435. package/dist/delete-2UJVTHRE.js +0 -67
  436. package/dist/delete-7QAJSOCO.js +0 -69
  437. package/dist/delete-O4RO2HMR.js +0 -57
  438. package/dist/demographics-YWBHAMZ5.js +0 -141
  439. package/dist/dimensions-YXOXHOXW.js +0 -101
  440. package/dist/discard-YX4XUXG3.js +0 -69
  441. package/dist/domain-5R6CYVFY.js +0 -101
  442. package/dist/download-D2O4RYJ3.js +0 -172
  443. package/dist/download-SYWQXF57.js +0 -299
  444. package/dist/download-SYWQXF57.js.map +0 -1
  445. package/dist/draft-3MPADYS4.js +0 -220
  446. package/dist/draft-L56EMJQT.js +0 -374
  447. package/dist/draft-NLSQDRVQ.js +0 -332
  448. package/dist/draft-SGNQOUYH.js +0 -557
  449. package/dist/experiment-3NDXGQK6.js +0 -1397
  450. package/dist/experiments-DYNNWQRB.js +0 -236
  451. package/dist/extract-DWDZI35Y.js +0 -121
  452. package/dist/extract-DWDZI35Y.js.map +0 -1
  453. package/dist/facets-Y2IEM37E.js +0 -117
  454. package/dist/feedback-HJRVTU6C.js +0 -115
  455. package/dist/feedback-IVSLM5PN.js +0 -136
  456. package/dist/feedback-record-P7CO3IGE.js +0 -269
  457. package/dist/fetch-V2U5VUQZ.js +0 -204
  458. package/dist/fit-JDG6E46O.js +0 -65
  459. package/dist/flows-DP574PEX.js +0 -250
  460. package/dist/fonts-RMROS3LX.js +0 -39
  461. package/dist/forecast-AAHHVTBK.js +0 -169
  462. package/dist/forecast-BRXNGMGD.js +0 -121
  463. package/dist/funnel-FQX3DOE7.js +0 -397
  464. package/dist/ga4-IJ2UUICC.js +0 -55
  465. package/dist/generate-SYOQE3F7.js +0 -263
  466. package/dist/get-HMTI2IR6.js +0 -82
  467. package/dist/get-VFDNTZ54.js +0 -62
  468. package/dist/google-4FP6AHBL.js +0 -3285
  469. package/dist/google-HWEDJ4YS.js +0 -144
  470. package/dist/google-HWEDJ4YS.js.map +0 -1
  471. package/dist/google-ads-4DLYASRC.js +0 -198
  472. package/dist/gsc-YAU4EA75.js +0 -30
  473. package/dist/history-6B6RXNV3.js +0 -102
  474. package/dist/history-NLZSX4BK.js +0 -153
  475. package/dist/hubspot-LABBRJ44.js +0 -782
  476. package/dist/ideas-A4ELJN23.js +0 -45
  477. package/dist/images-JVNT7KYM.js +0 -92
  478. package/dist/ingest-GQWR3RHR.js +0 -27
  479. package/dist/ingest-JYN2IDKV.js +0 -123
  480. package/dist/inspect-72DY33YD.js +0 -192
  481. package/dist/inspiration-DNWTXEPX.js +0 -53
  482. package/dist/instant-experiences-6NTBX4SL.js +0 -264
  483. package/dist/keyword-metrics-GP7L2MQE.js +0 -200
  484. package/dist/keywords-for-site-6YWAUOKJ.js +0 -131
  485. package/dist/landing-EKHAZS5P.js +0 -28
  486. package/dist/leads-RN6RYOMU.js +0 -541
  487. package/dist/leads-UCXIIA5K.js +0 -115
  488. package/dist/learn-EJEFERQZ.js +0 -207
  489. package/dist/line-item-writes-IMCE2FDW.js +0 -211
  490. package/dist/line-items-ISUC3WDO.js +0 -107
  491. package/dist/link-6QL4ZVSU.js +0 -67
  492. package/dist/linkedin-OFL77SUR.js +0 -1330
  493. package/dist/linkedin-OFL77SUR.js.map +0 -1
  494. package/dist/linkedin-person-C24CBKCH.js +0 -139
  495. package/dist/list-2VNI3U7I.js +0 -154
  496. package/dist/list-PZD2QOZL.js +0 -67
  497. package/dist/list-SUXUMXPJ.js +0 -306
  498. package/dist/log-VLI7KQF2.js +0 -95
  499. package/dist/make-365ZJ25L.js +0 -1367
  500. package/dist/map-OEFL45WA.js +0 -436
  501. package/dist/mcp-NCZYQXQL.js +0 -729
  502. package/dist/media-WASM45QW.js +0 -18
  503. package/dist/media-sources-CZDK4W5Q.js +0 -35
  504. package/dist/members-N3PQSVQC.js +0 -47
  505. package/dist/meta-QFLNABF5.js +0 -122
  506. package/dist/meta-QFLNABF5.js.map +0 -1
  507. package/dist/normalize-4OKUF5BJ.js +0 -806
  508. package/dist/normalize-6DEJPTBF.js +0 -144
  509. package/dist/options-OJX77MYT.js +0 -125
  510. package/dist/organization-URQGKFEC.js +0 -949
  511. package/dist/page-photos-N4S7U7FR.js +0 -118
  512. package/dist/performance-P5T4LJRG.js +0 -27
  513. package/dist/performance-SIWBDORI.js +0 -5565
  514. package/dist/posts-MVCGZV54.js +0 -36
  515. package/dist/preview-DMTQR6ZW.js +0 -218
  516. package/dist/preview-DMTQR6ZW.js.map +0 -1
  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/scrape-FQUGOXCG.js +0 -2241
  547. package/dist/scrape-FQUGOXCG.js.map +0 -1
  548. package/dist/search-3AW52FO6.js +0 -177
  549. package/dist/select-STIWQ36I.js +0 -110
  550. package/dist/set-prompt-TODWV2F4.js +0 -199
  551. package/dist/setup-links-MNBD3UMH.js +0 -144
  552. package/dist/shopify-RJWLTNPQ.js +0 -4009
  553. package/dist/site-ZZUKS6MQ.js +0 -180
  554. package/dist/sources-36MJ6T4V.js +0 -30
  555. package/dist/sources-GNLQHTSJ.js +0 -457
  556. package/dist/stale-GJN7UO3D.js +0 -90
  557. package/dist/status-6EGB6ORB.js +0 -65
  558. package/dist/stock-DJ6I3CTO.js +0 -187
  559. package/dist/stock-DJ6I3CTO.js.map +0 -1
  560. package/dist/studies-4XXCEAHH.js +0 -250
  561. package/dist/studio-OARORMDJ.js +0 -49
  562. package/dist/study-writes-J56UIIE3.js +0 -471
  563. package/dist/sync-QHM3LMAX.js +0 -57
  564. package/dist/sync-definition-YXGN6PIQ.js +0 -70
  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-ZKCLP23S.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-5YCCRXEU.js.map → ads-CWKKIYD6.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-K5FCQLI5.js.map → analytics-QW5ZXDJR.js.map} +0 -0
  611. /package/dist/{analytics-CZMCM7XC.js.map → analytics-XPU5SANS.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-3OMFIKOJ.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-TNOKTNFJ.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-PVNQ7YWV.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-YBHXCXWZ.js.map → chatgpt-6KBW7F5S.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-B5UVOCYA.js.map → chunk-3OMFSYQ3.js.map} +0 -0
  638. /package/dist/{chunk-LMOZWB4G.js.map → chunk-65CQYRMK.js.map} +0 -0
  639. /package/dist/{chunk-I4BQTVMY.js.map → chunk-6MZFOMLU.js.map} +0 -0
  640. /package/dist/{chunk-VX6GTRT3.js.map → chunk-757ZFIL4.js.map} +0 -0
  641. /package/dist/{chunk-IJ6NQKAT.js.map → chunk-75HAGIH6.js.map} +0 -0
  642. /package/dist/{chunk-XSBX3LJP.js.map → chunk-7BVRFQN4.js.map} +0 -0
  643. /package/dist/{chunk-7OVPQX4X.js.map → chunk-7TDJCDKT.js.map} +0 -0
  644. /package/dist/{chunk-OIORUNKH.js.map → chunk-7WDH6OKW.js.map} +0 -0
  645. /package/dist/{chunk-ZMTWQDFC.js.map → chunk-AL4MRNYI.js.map} +0 -0
  646. /package/dist/{chunk-JBMZVC5D.js.map → chunk-AMM4JMSN.js.map} +0 -0
  647. /package/dist/{chunk-4XMPL3RU.js.map → chunk-AU3IMZZC.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-D6VQPBVM.js.map → chunk-DWPOAU4Z.js.map} +0 -0
  655. /package/dist/{chunk-6MXM6DA6.js.map → chunk-EENYLJUN.js.map} +0 -0
  656. /package/dist/{chunk-IZROFBH7.js.map → chunk-EJBLF2LI.js.map} +0 -0
  657. /package/dist/{chunk-DNH2ZPZP.js.map → chunk-EJMPKO6V.js.map} +0 -0
  658. /package/dist/{chunk-RMZLB4AH.js.map → chunk-EKXLJRO3.js.map} +0 -0
  659. /package/dist/{chunk-ZANXEMON.js.map → chunk-EL3TDR5S.js.map} +0 -0
  660. /package/dist/{chunk-LFELUKCA.js.map → chunk-GRDZWZKQ.js.map} +0 -0
  661. /package/dist/{chunk-S4NMWYHW.js.map → chunk-GVUBRSD3.js.map} +0 -0
  662. /package/dist/{chunk-LVLTWPRR.js.map → chunk-GYREQDTJ.js.map} +0 -0
  663. /package/dist/{chunk-J5UTL4HE.js.map → chunk-HBRXFQQV.js.map} +0 -0
  664. /package/dist/{chunk-NE3OMP7R.js.map → chunk-HLHR3EK2.js.map} +0 -0
  665. /package/dist/{chunk-RJQT7QXX.js.map → chunk-IMFIRELA.js.map} +0 -0
  666. /package/dist/{chunk-SP3MHBME.js.map → chunk-IOKD77L2.js.map} +0 -0
  667. /package/dist/{chunk-TGT4XHLX.js.map → chunk-KDAINT54.js.map} +0 -0
  668. /package/dist/{chunk-QI5UKQX3.js.map → chunk-KKKZRQFY.js.map} +0 -0
  669. /package/dist/{chunk-YCAJCVW4.js.map → chunk-KLO36KTV.js.map} +0 -0
  670. /package/dist/{chunk-NZYWKZ3Q.js.map → chunk-LC6PVPJX.js.map} +0 -0
  671. /package/dist/{chunk-DK66PUXL.js.map → chunk-LETR3RQE.js.map} +0 -0
  672. /package/dist/{chunk-73MLPGI2.js.map → chunk-MAVT2CJ4.js.map} +0 -0
  673. /package/dist/{chunk-FSEFZZ2T.js.map → chunk-MJDN7CR7.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-42JTSTQ3.js.map → chunk-OTFHIGEO.js.map} +0 -0
  677. /package/dist/{chunk-ESXUIV6V.js.map → chunk-PCUWBZM3.js.map} +0 -0
  678. /package/dist/{chunk-OKXLOLEV.js.map → chunk-PNWXTOQ4.js.map} +0 -0
  679. /package/dist/{chunk-PYAR343F.js.map → chunk-PQFTKHDA.js.map} +0 -0
  680. /package/dist/{chunk-XXBP73RV.js.map → chunk-Q5DFEVLE.js.map} +0 -0
  681. /package/dist/{chunk-IBBGABK2.js.map → chunk-QAJFMVGU.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-Y4ZBNZBU.js.map → chunk-TRAMBRVO.js.map} +0 -0
  687. /package/dist/{chunk-IC4MREQH.js.map → chunk-TWFZIHKK.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-5NLUTJCQ.js.map → chunk-X3GWGFZP.js.map} +0 -0
  692. /package/dist/{chunk-6FWVRXDW.js.map → chunk-XZAVBONI.js.map} +0 -0
  693. /package/dist/{chunk-Y3SK6EMU.js.map → chunk-Y5PNLB24.js.map} +0 -0
  694. /package/dist/{chunk-N5AIO23H.js.map → chunk-ZC6FICZ7.js.map} +0 -0
  695. /package/dist/{chunk-QFVZIQRQ.js.map → chunk-ZEGWP4FP.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-CRL327RY.js.map → conversions-UGRVDRWU.js.map} +0 -0
  704. /package/dist/{conversions-4ILDIG3K.js.map → conversions-ZFDBD3OU.js.map} +0 -0
  705. /package/dist/{copy-writes-FYXKHJDB.js.map → copy-writes-2B36QJUY.js.map} +0 -0
  706. /package/dist/{create-LDQ3YHET.js.map → create-3H67EUTO.js.map} +0 -0
  707. /package/dist/{create-WQNT345R.js.map → create-ALTOBDP4.js.map} +0 -0
  708. /package/dist/{create-TKOG7DNJ.js.map → create-C3MWUYX2.js.map} +0 -0
  709. /package/dist/{create-WFMJOZLO.js.map → create-WHTT6IXY.js.map} +0 -0
  710. /package/dist/{creatives-45SJAD3G.js.map → creatives-22BYP5VN.js.map} +0 -0
  711. /package/dist/{creatives-Q4OXNCTT.js.map → creatives-IFOPXTZK.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-PQRVFC52.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-SGNQOUYH.js.map → draft-EB5ZFDVN.js.map} +0 -0
  729. /package/dist/{draft-3MPADYS4.js.map → draft-I2FLECEX.js.map} +0 -0
  730. /package/dist/{draft-L56EMJQT.js.map → draft-N56HPS36.js.map} +0 -0
  731. /package/dist/{draft-NLSQDRVQ.js.map → draft-ZLZRTPY6.js.map} +0 -0
  732. /package/dist/{experiment-3NDXGQK6.js.map → experiment-O6726OBP.js.map} +0 -0
  733. /package/dist/{experiments-DYNNWQRB.js.map → experiments-WVTBHD6G.js.map} +0 -0
  734. /package/dist/{facets-Y2IEM37E.js.map → facets-V2ITIUKD.js.map} +0 -0
  735. /package/dist/{feedback-HJRVTU6C.js.map → feedback-MXUZWVOL.js.map} +0 -0
  736. /package/dist/{feedback-IVSLM5PN.js.map → feedback-PXWPR3NZ.js.map} +0 -0
  737. /package/dist/{feedback-record-P7CO3IGE.js.map → feedback-record-76RUAHZH.js.map} +0 -0
  738. /package/dist/{fetch-V2U5VUQZ.js.map → fetch-QVOOC3FA.js.map} +0 -0
  739. /package/dist/{fit-JDG6E46O.js.map → fit-REGMM46H.js.map} +0 -0
  740. /package/dist/{flows-DP574PEX.js.map → flows-EZV3KCV6.js.map} +0 -0
  741. /package/dist/{fonts-RMROS3LX.js.map → fonts-NUX66HEI.js.map} +0 -0
  742. /package/dist/{forecast-BRXNGMGD.js.map → forecast-W6HKYVX5.js.map} +0 -0
  743. /package/dist/{forecast-AAHHVTBK.js.map → forecast-XDRKCR65.js.map} +0 -0
  744. /package/dist/{funnel-FQX3DOE7.js.map → funnel-3YABA3G2.js.map} +0 -0
  745. /package/dist/{ga4-IJ2UUICC.js.map → ga4-XFJO7VK2.js.map} +0 -0
  746. /package/dist/{generate-SYOQE3F7.js.map → generate-22HT24SA.js.map} +0 -0
  747. /package/dist/{get-HMTI2IR6.js.map → get-GQQLBE5C.js.map} +0 -0
  748. /package/dist/{get-VFDNTZ54.js.map → get-NL3YZFUJ.js.map} +0 -0
  749. /package/dist/{google-4FP6AHBL.js.map → google-UJ4YJGTJ.js.map} +0 -0
  750. /package/dist/{google-ads-4DLYASRC.js.map → google-ads-RRKKSKDD.js.map} +0 -0
  751. /package/dist/{gsc-YAU4EA75.js.map → gsc-ILEIJYWP.js.map} +0 -0
  752. /package/dist/{history-6B6RXNV3.js.map → history-2UANIBRN.js.map} +0 -0
  753. /package/dist/{history-NLZSX4BK.js.map → history-YZ727ZRG.js.map} +0 -0
  754. /package/dist/{hubspot-LABBRJ44.js.map → hubspot-KWLXJ6QD.js.map} +0 -0
  755. /package/dist/{ideas-A4ELJN23.js.map → ideas-ZO533P5Y.js.map} +0 -0
  756. /package/dist/{images-JVNT7KYM.js.map → images-Z7YBWRVJ.js.map} +0 -0
  757. /package/dist/{ingest-GQWR3RHR.js.map → ingest-C2HJ5LUY.js.map} +0 -0
  758. /package/dist/{ingest-JYN2IDKV.js.map → ingest-H53JR4GK.js.map} +0 -0
  759. /package/dist/{inspect-72DY33YD.js.map → inspect-BM6GJHQV.js.map} +0 -0
  760. /package/dist/{inspiration-DNWTXEPX.js.map → inspiration-WGUU7W5Z.js.map} +0 -0
  761. /package/dist/{instant-experiences-6NTBX4SL.js.map → instant-experiences-U6U3FYIH.js.map} +0 -0
  762. /package/dist/{keyword-metrics-GP7L2MQE.js.map → keyword-metrics-R2QCEDYW.js.map} +0 -0
  763. /package/dist/{keywords-for-site-6YWAUOKJ.js.map → keywords-for-site-NBV72C3W.js.map} +0 -0
  764. /package/dist/{landing-EKHAZS5P.js.map → landing-5RRWTSWK.js.map} +0 -0
  765. /package/dist/{leads-UCXIIA5K.js.map → leads-6PF7ZWCH.js.map} +0 -0
  766. /package/dist/{leads-RN6RYOMU.js.map → leads-IG3IIHXG.js.map} +0 -0
  767. /package/dist/{learn-EJEFERQZ.js.map → learn-V2LIBEEY.js.map} +0 -0
  768. /package/dist/{line-item-writes-IMCE2FDW.js.map → line-item-writes-GMNWL4DI.js.map} +0 -0
  769. /package/dist/{line-items-ISUC3WDO.js.map → line-items-KPIKXLG4.js.map} +0 -0
  770. /package/dist/{link-6QL4ZVSU.js.map → link-X7IYKR5V.js.map} +0 -0
  771. /package/dist/{linkedin-person-C24CBKCH.js.map → linkedin-person-47XFTBIN.js.map} +0 -0
  772. /package/dist/{list-2VNI3U7I.js.map → list-PHNA7QIF.js.map} +0 -0
  773. /package/dist/{list-SUXUMXPJ.js.map → list-QF3BANBM.js.map} +0 -0
  774. /package/dist/{list-PZD2QOZL.js.map → list-SB3SUTH6.js.map} +0 -0
  775. /package/dist/{log-VLI7KQF2.js.map → log-JFLSSUJ6.js.map} +0 -0
  776. /package/dist/{make-365ZJ25L.js.map → make-HZ5KAYSB.js.map} +0 -0
  777. /package/dist/{map-OEFL45WA.js.map → map-NYJT2MGI.js.map} +0 -0
  778. /package/dist/{mcp-NCZYQXQL.js.map → mcp-ABQEICYR.js.map} +0 -0
  779. /package/dist/{media-WASM45QW.js.map → media-AT3VV3PU.js.map} +0 -0
  780. /package/dist/{media-sources-CZDK4W5Q.js.map → media-sources-DEEKEJUB.js.map} +0 -0
  781. /package/dist/{members-N3PQSVQC.js.map → members-BX37KHKO.js.map} +0 -0
  782. /package/dist/{normalize-4OKUF5BJ.js.map → normalize-M3VMWF4W.js.map} +0 -0
  783. /package/dist/{normalize-6DEJPTBF.js.map → normalize-MA2FBBIV.js.map} +0 -0
  784. /package/dist/{options-OJX77MYT.js.map → options-NMWWF2HN.js.map} +0 -0
  785. /package/dist/{organization-URQGKFEC.js.map → organization-GRAA6ZXU.js.map} +0 -0
  786. /package/dist/{page-photos-N4S7U7FR.js.map → page-photos-ABK4CJME.js.map} +0 -0
  787. /package/dist/{performance-SIWBDORI.js.map → performance-MQLRSH44.js.map} +0 -0
  788. /package/dist/{performance-P5T4LJRG.js.map → performance-RUBIGEAQ.js.map} +0 -0
  789. /package/dist/{posts-MVCGZV54.js.map → posts-F7NFSUHV.js.map} +0 -0
  790. /package/dist/{promoted-tweet-writes-S2HP5DEI.js.map → promoted-tweet-writes-3P6QFGLN.js.map} +0 -0
  791. /package/dist/{promoted-tweets-WZT4N5IR.js.map → promoted-tweets-TGFPH7UI.js.map} +0 -0
  792. /package/dist/{publish-EDYBQHGJ.js.map → publish-OUVO65Z5.js.map} +0 -0
  793. /package/dist/{reddit-DEGGHR4M.js.map → reddit-HWQCUSEM.js.map} +0 -0
  794. /package/dist/{refresh-HPNJGI2U.js.map → refresh-ENQDQGTK.js.map} +0 -0
  795. /package/dist/{release-H7M37CEO.js.map → release-ZTVXLUQS.js.map} +0 -0
  796. /package/dist/{remove-MV4YS72N.js.map → remove-XAFRT7O7.js.map} +0 -0
  797. /package/dist/{reopen-EFW2SKOY.js.map → reopen-SWSZHXJZ.js.map} +0 -0
  798. /package/dist/{rerun-OM4N74YK.js.map → rerun-X7XVOAL3.js.map} +0 -0
  799. /package/dist/{research-MHXKAQW4.js.map → research-JMU4C4JZ.js.map} +0 -0
  800. /package/dist/{research-7YDQOKA6.js.map → research-TDH4OBX6.js.map} +0 -0
  801. /package/dist/{reset-HT4AGJPR.js.map → reset-34HTKUBQ.js.map} +0 -0
  802. /package/dist/{reset-XPZQ5F4D.js.map → reset-KMMGLM7W.js.map} +0 -0
  803. /package/dist/{resolve-RTTXEN2B.js.map → resolve-2CIIKADD.js.map} +0 -0
  804. /package/dist/{retry-DVLVWHEK.js.map → retry-V7KZIZKR.js.map} +0 -0
  805. /package/dist/{retry-SBGWOUQO.js.map → retry-YXM23NSB.js.map} +0 -0
  806. /package/dist/{revenue-KJLJ53XY.js.map → revenue-D4L6U2CW.js.map} +0 -0
  807. /package/dist/{rule-writes-DNXELESR.js.map → rule-writes-HUBHHYEO.js.map} +0 -0
  808. /package/dist/{rules-KCSET46P.js.map → rules-47LFGCPW.js.map} +0 -0
  809. /package/dist/{rules-NVKU732Z.js.map → rules-F6RNUOXP.js.map} +0 -0
  810. /package/dist/{rules-add-KY42EHJE.js.map → rules-add-SAQRESVK.js.map} +0 -0
  811. /package/dist/{run-M7YU6KCV.js.map → run-3GCYZ2HX.js.map} +0 -0
  812. /package/dist/{run-2LQ7XJEO.js.map → run-FRPO2WNQ.js.map} +0 -0
  813. /package/dist/{scaffold-ad-6YPZ75YJ.js.map → scaffold-ad-E6DD6U46.js.map} +0 -0
  814. /package/dist/{scaffold-static-ad-UJEWTDU5.js.map → scaffold-static-ad-6WNS2PXB.js.map} +0 -0
  815. /package/dist/{scaffold-video-M4VWSVJ6.js.map → scaffold-video-QKXFQ5FC.js.map} +0 -0
  816. /package/dist/{schedule-J7HZQ2EL.js.map → schedule-S4XAVVEI.js.map} +0 -0
  817. /package/dist/{scheduled-agents-IVUQUKF4.js.map → scheduled-agents-ZWAP6QLC.js.map} +0 -0
  818. /package/dist/{schema-LHBKBUV7.js.map → schema-EJ2XPUN6.js.map} +0 -0
  819. /package/dist/{search-3AW52FO6.js.map → search-2BAY3KKX.js.map} +0 -0
  820. /package/dist/{select-STIWQ36I.js.map → select-ABRNFFR2.js.map} +0 -0
  821. /package/dist/{set-prompt-TODWV2F4.js.map → set-prompt-5LYHDT4E.js.map} +0 -0
  822. /package/dist/{setup-links-MNBD3UMH.js.map → setup-links-QT63UZBR.js.map} +0 -0
  823. /package/dist/{shopify-RJWLTNPQ.js.map → shopify-L4ZUI6OT.js.map} +0 -0
  824. /package/dist/{site-ZZUKS6MQ.js.map → site-S6QVMP7W.js.map} +0 -0
  825. /package/dist/{sources-36MJ6T4V.js.map → sources-6TWWOO7Q.js.map} +0 -0
  826. /package/dist/{sources-GNLQHTSJ.js.map → sources-ORG5KQSW.js.map} +0 -0
  827. /package/dist/{stale-GJN7UO3D.js.map → stale-MLQPXNLZ.js.map} +0 -0
  828. /package/dist/{status-6EGB6ORB.js.map → status-4G2YUCZR.js.map} +0 -0
  829. /package/dist/{studies-4XXCEAHH.js.map → studies-QLSKON6M.js.map} +0 -0
  830. /package/dist/{studio-OARORMDJ.js.map → studio-ZLBBYHNY.js.map} +0 -0
  831. /package/dist/{study-writes-J56UIIE3.js.map → study-writes-GBUUKX4O.js.map} +0 -0
  832. /package/dist/{sync-QHM3LMAX.js.map → sync-7LJZPHM3.js.map} +0 -0
  833. /package/dist/{sync-definition-YXGN6PIQ.js.map → sync-definition-MXVL2I2H.js.map} +0 -0
  834. /package/dist/{tags-MQYF2JHQ.js.map → tags-2ARVNEYS.js.map} +0 -0
  835. /package/dist/{tags-ZGXJHATH.js.map → tags-F4IT7RQR.js.map} +0 -0
  836. /package/dist/{tags-MBBRBZJH.js.map → tags-F7ZO52EM.js.map} +0 -0
  837. /package/dist/{tags-IDWUV2FY.js.map → tags-NBGGBHXR.js.map} +0 -0
  838. /package/dist/{tags-GHV5R7NI.js.map → tags-TCSGQYDR.js.map} +0 -0
  839. /package/dist/{targeting-KJ4DI56R.js.map → targeting-DAUTJDUB.js.map} +0 -0
  840. /package/dist/{targeting-criteria-GDCXOAUD.js.map → targeting-criteria-H42LRULY.js.map} +0 -0
  841. /package/dist/{targets-MYHOPAYY.js.map → targets-WB4E5XL2.js.map} +0 -0
  842. /package/dist/{testimonials-R6RFGAKP.js.map → testimonials-RIJSQDSB.js.map} +0 -0
  843. /package/dist/{themes-LHVXXVTX.js.map → themes-BGBDYQQK.js.map} +0 -0
  844. /package/dist/{top-companies-POTV3Y2A.js.map → top-companies-C2W5TJ7G.js.map} +0 -0
  845. /package/dist/{transcript-4RVYKDVZ.js.map → transcript-S7VR2GJE.js.map} +0 -0
  846. /package/dist/{translate-UCASCVMN.js.map → translate-A4GHRHSP.js.map} +0 -0
  847. /package/dist/{triggers-XHMMOZJK.js.map → triggers-EOKMR74O.js.map} +0 -0
  848. /package/dist/{unlink-3IW3EORE.js.map → unlink-PC3TMWUT.js.map} +0 -0
  849. /package/dist/{unstage-APVF6KHB.js.map → unstage-SU2ATDSZ.js.map} +0 -0
  850. /package/dist/{update-V7SRDGHN.js.map → update-DKX3EEES.js.map} +0 -0
  851. /package/dist/{update-2VSJH4LQ.js.map → update-JYZ45YJG.js.map} +0 -0
  852. /package/dist/{update-ESK6PSME.js.map → update-TAZSUOAS.js.map} +0 -0
  853. /package/dist/{update-42QYBUE3.js.map → update-WRJUH2NM.js.map} +0 -0
  854. /package/dist/{upload-42IR5RIL.js.map → upload-BLXTMK5Q.js.map} +0 -0
  855. /package/dist/{url-params-GEESXN57.js.map → url-params-YVOFU6MK.js.map} +0 -0
  856. /package/dist/{validate-Z5SSEUES.js.map → validate-44PVFQH7.js.map} +0 -0
  857. /package/dist/{videos-PJAPZPOT.js.map → videos-RWPQVXS5.js.map} +0 -0
  858. /package/dist/{viewer-check-6M34VY7K.js.map → viewer-check-KTRRUVZN.js.map} +0 -0
  859. /package/dist/{web-PUVVFMV3.js.map → web-6KUM7Q7S.js.map} +0 -0
  860. /package/dist/{winning-ads-ZCP4MIEQ.js.map → winning-ads-IT3O4EAN.js.map} +0 -0
  861. /package/dist/{write-commands-ZS4O4DSV.js.map → write-commands-3U5ZMIHH.js.map} +0 -0
  862. /package/dist/{write-commands-5LEEPKA7.js.map → write-commands-F5XPPLOO.js.map} +0 -0
  863. /package/dist/{x-ZKCLP23S.js.map → x-X7URL52T.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