@koda-sl/baker-cli 0.386.0-dev.8b1f99042 → 0.386.0-dev.d6e55699d

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 (968) hide show
  1. package/README.md +1091 -211
  2. package/canvas/tiktok-captions-composition/index.html +5 -6
  3. package/canvas/tiktok-captions-composition/meta.json +5 -0
  4. package/dist/account-5TGX45FO.js +79 -0
  5. package/dist/account-5TGX45FO.js.map +1 -0
  6. package/dist/account-CLOKMTTC.js +49 -0
  7. package/dist/account-CLOKMTTC.js.map +1 -0
  8. package/dist/account-XFK6VX2R.js +80 -0
  9. package/dist/account-XFK6VX2R.js.map +1 -0
  10. package/dist/account-reads-ZK5RMLB2.js +218 -0
  11. package/dist/account-reads-ZK5RMLB2.js.map +1 -0
  12. package/dist/account-writes-Y7EQXDXF.js +66 -0
  13. package/dist/account-writes-Y7EQXDXF.js.map +1 -0
  14. package/dist/accounts-7YD457YN.js +114 -0
  15. package/dist/accounts-7YD457YN.js.map +1 -0
  16. package/dist/accounts-BJ3X5JQT.js +115 -0
  17. package/dist/accounts-BJ3X5JQT.js.map +1 -0
  18. package/dist/accounts-HGAFFOA7.js +77 -0
  19. package/dist/accounts-HGAFFOA7.js.map +1 -0
  20. package/dist/accounts-OWMXUT6D.js +611 -0
  21. package/dist/accounts-OWMXUT6D.js.map +1 -0
  22. package/dist/accounts-RYBDLQ6H.js +75 -0
  23. package/dist/accounts-RYBDLQ6H.js.map +1 -0
  24. package/dist/actions-NSQYW7YS.js +55 -0
  25. package/dist/actions-NSQYW7YS.js.map +1 -0
  26. package/dist/active-entities-R6GZIO6Z.js +103 -0
  27. package/dist/active-entities-R6GZIO6Z.js.map +1 -0
  28. package/dist/activities-ESBF3GFS.js +74 -0
  29. package/dist/activities-ESBF3GFS.js.map +1 -0
  30. package/dist/ad-group-writes-I225OYDZ.js +170 -0
  31. package/dist/ad-group-writes-I225OYDZ.js.map +1 -0
  32. package/dist/ad-groups-O35MWNF6.js +68 -0
  33. package/dist/ad-groups-O35MWNF6.js.map +1 -0
  34. package/dist/ad-writes-SS5YZO5W.js +174 -0
  35. package/dist/ad-writes-SS5YZO5W.js.map +1 -0
  36. package/dist/add-HWIE5PGR.js +302 -0
  37. package/dist/add-HWIE5PGR.js.map +1 -0
  38. package/dist/add-IIW3NHZH.js +104 -0
  39. package/dist/add-IIW3NHZH.js.map +1 -0
  40. package/dist/add-QZHAWUBA.js +97 -0
  41. package/dist/add-QZHAWUBA.js.map +1 -0
  42. package/dist/add-TGQIVVXH.js +105 -0
  43. package/dist/add-TGQIVVXH.js.map +1 -0
  44. package/dist/add-accounts-6QYPOPR2.js +91 -0
  45. package/dist/add-accounts-6QYPOPR2.js.map +1 -0
  46. package/dist/ads-AUSRB4GU.js +128 -0
  47. package/dist/ads-AUSRB4GU.js.map +1 -0
  48. package/dist/ads-COYOTEKE.js +77 -0
  49. package/dist/ads-COYOTEKE.js.map +1 -0
  50. package/dist/ads-D6KKCQ3Q.js +40 -0
  51. package/dist/ads-D6KKCQ3Q.js.map +1 -0
  52. package/dist/ads-QKIHHXP5.js +113 -0
  53. package/dist/ads-QKIHHXP5.js.map +1 -0
  54. package/dist/adsets-7WMWU45E.js +176 -0
  55. package/dist/adsets-7WMWU45E.js.map +1 -0
  56. package/dist/advertisers-6NZ2M57X.js +120 -0
  57. package/dist/advertisers-6NZ2M57X.js.map +1 -0
  58. package/dist/advertisers-BCGKUMEH.js +125 -0
  59. package/dist/advertisers-BCGKUMEH.js.map +1 -0
  60. package/dist/analytics-QJC2BTZY.js +433 -0
  61. package/dist/analytics-QJC2BTZY.js.map +1 -0
  62. package/dist/analytics-SN6K7J7M.js +1980 -0
  63. package/dist/analytics-SN6K7J7M.js.map +1 -0
  64. package/dist/animate-JXIT77Y5.js +480 -0
  65. package/dist/animate-JXIT77Y5.js.map +1 -0
  66. package/dist/assign-XFDA42KL.js +77 -0
  67. package/dist/assign-XFDA42KL.js.map +1 -0
  68. package/dist/audience-size-DJPFYHPJ.js +94 -0
  69. package/dist/audience-size-DJPFYHPJ.js.map +1 -0
  70. package/dist/audiences-DC3IOG34.js +85 -0
  71. package/dist/audiences-DC3IOG34.js.map +1 -0
  72. package/dist/audiences-NEW3LLQR.js +268 -0
  73. package/dist/audiences-NEW3LLQR.js.map +1 -0
  74. package/dist/audiences-VXTIBZP6.js +78 -0
  75. package/dist/audiences-VXTIBZP6.js.map +1 -0
  76. package/dist/audit-M5B7TZGT.js +151 -0
  77. package/dist/audit-M5B7TZGT.js.map +1 -0
  78. package/dist/audit-UIPMTI5C.js +88 -0
  79. package/dist/audit-UIPMTI5C.js.map +1 -0
  80. package/dist/autocomplete-NWHEASQY.js +111 -0
  81. package/dist/autocomplete-NWHEASQY.js.map +1 -0
  82. package/dist/avatars-RNMUVMFM.js +38 -0
  83. package/dist/avatars-RNMUVMFM.js.map +1 -0
  84. package/dist/bid-pricing-EAY3HAHY.js +99 -0
  85. package/dist/bid-pricing-EAY3HAHY.js.map +1 -0
  86. package/dist/brand-XBHWYPMT.js +22 -0
  87. package/dist/brand-XBHWYPMT.js.map +1 -0
  88. package/dist/brief-XBAAPKRR.js +492 -0
  89. package/dist/brief-XBAAPKRR.js.map +1 -0
  90. package/dist/businesses-J7OP7MSK.js +53 -0
  91. package/dist/businesses-J7OP7MSK.js.map +1 -0
  92. package/dist/campaign-groups-7KA2RA5V.js +95 -0
  93. package/dist/campaign-groups-7KA2RA5V.js.map +1 -0
  94. package/dist/campaign-writes-5XA727KI.js +170 -0
  95. package/dist/campaign-writes-5XA727KI.js.map +1 -0
  96. package/dist/campaign-writes-D2UID2I6.js +165 -0
  97. package/dist/campaign-writes-D2UID2I6.js.map +1 -0
  98. package/dist/campaigns-JPYNVFQI.js +76 -0
  99. package/dist/campaigns-JPYNVFQI.js.map +1 -0
  100. package/dist/campaigns-NJ3KOPJS.js +107 -0
  101. package/dist/campaigns-NJ3KOPJS.js.map +1 -0
  102. package/dist/campaigns-QUTTH2TB.js +110 -0
  103. package/dist/campaigns-QUTTH2TB.js.map +1 -0
  104. package/dist/campaigns-SOO5RHYG.js +109 -0
  105. package/dist/campaigns-SOO5RHYG.js.map +1 -0
  106. package/dist/canvas-3VZ46BCF.js +46 -0
  107. package/dist/canvas-3VZ46BCF.js.map +1 -0
  108. package/dist/capabilities-KAYDPH7E.js +144 -0
  109. package/dist/capabilities-KAYDPH7E.js.map +1 -0
  110. package/dist/cards-7H32TNMO.js +85 -0
  111. package/dist/cards-7H32TNMO.js.map +1 -0
  112. package/dist/catalog-OTICZPJA.js +64 -0
  113. package/dist/catalog-OTICZPJA.js.map +1 -0
  114. package/dist/catalogs-ABCQLCDU.js +128 -0
  115. package/dist/catalogs-ABCQLCDU.js.map +1 -0
  116. package/dist/changes-22EO52IY.js +135 -0
  117. package/dist/changes-22EO52IY.js.map +1 -0
  118. package/dist/chatgpt-B3NHRJUE.js +47 -0
  119. package/dist/chatgpt-B3NHRJUE.js.map +1 -0
  120. package/dist/chats-QG3IRHOD.js +262 -0
  121. package/dist/chats-QG3IRHOD.js.map +1 -0
  122. package/dist/chunk-2CV7LX23.js +474 -0
  123. package/dist/chunk-2CV7LX23.js.map +1 -0
  124. package/dist/chunk-2SQJL7ZN.js +56 -0
  125. package/dist/chunk-2SQJL7ZN.js.map +1 -0
  126. package/dist/chunk-2Y5V23PU.js +29 -0
  127. package/dist/chunk-2Y5V23PU.js.map +1 -0
  128. package/dist/chunk-32CPGJPL.js +149 -0
  129. package/dist/chunk-32CPGJPL.js.map +1 -0
  130. package/dist/chunk-32PSERWG.js +363 -0
  131. package/dist/chunk-32PSERWG.js.map +1 -0
  132. package/dist/chunk-3ACMDRSE.js +39 -0
  133. package/dist/chunk-3ACMDRSE.js.map +1 -0
  134. package/dist/chunk-3UDSYYND.js +42 -0
  135. package/dist/chunk-3UDSYYND.js.map +1 -0
  136. package/dist/chunk-3V5E5SVE.js +382 -0
  137. package/dist/chunk-3V5E5SVE.js.map +1 -0
  138. package/dist/chunk-455BTAHM.js +57 -0
  139. package/dist/chunk-455BTAHM.js.map +1 -0
  140. package/dist/chunk-4MH6LONO.js +274 -0
  141. package/dist/chunk-4MH6LONO.js.map +1 -0
  142. package/dist/chunk-4NZ47VXO.js +137 -0
  143. package/dist/chunk-4NZ47VXO.js.map +1 -0
  144. package/dist/chunk-4OBO75XU.js +275 -0
  145. package/dist/chunk-4OBO75XU.js.map +1 -0
  146. package/dist/chunk-5HYSKH77.js +315 -0
  147. package/dist/chunk-5HYSKH77.js.map +1 -0
  148. package/dist/chunk-5MBPIONY.js +29 -0
  149. package/dist/chunk-5MBPIONY.js.map +1 -0
  150. package/dist/chunk-5OVOLYY3.js +74 -0
  151. package/dist/chunk-5OVOLYY3.js.map +1 -0
  152. package/dist/chunk-66USKCVY.js +4410 -0
  153. package/dist/chunk-66USKCVY.js.map +1 -0
  154. package/dist/chunk-6I7SYEYN.js +166 -0
  155. package/dist/chunk-6I7SYEYN.js.map +1 -0
  156. package/dist/chunk-6O7ISBC7.js +65 -0
  157. package/dist/chunk-6O7ISBC7.js.map +1 -0
  158. package/dist/chunk-752S7JF6.js +35 -0
  159. package/dist/chunk-752S7JF6.js.map +1 -0
  160. package/dist/chunk-AFJGYJ7Z.js +45 -0
  161. package/dist/chunk-AFJGYJ7Z.js.map +1 -0
  162. package/dist/chunk-AR7PU7BB.js +76 -0
  163. package/dist/chunk-AR7PU7BB.js.map +1 -0
  164. package/dist/chunk-ASL7JFBD.js +96 -0
  165. package/dist/chunk-ASL7JFBD.js.map +1 -0
  166. package/dist/chunk-AUCITRRT.js +310 -0
  167. package/dist/chunk-AUCITRRT.js.map +1 -0
  168. package/dist/chunk-AUSKKFVH.js +84 -0
  169. package/dist/chunk-AUSKKFVH.js.map +1 -0
  170. package/dist/chunk-BEGARAVC.js +174 -0
  171. package/dist/chunk-BEGARAVC.js.map +1 -0
  172. package/dist/{chunk-XHC4LMK4.js → chunk-BVM5IRZW.js} +16 -8
  173. package/dist/chunk-BVM5IRZW.js.map +1 -0
  174. package/dist/chunk-CAMX6OHF.js +3182 -0
  175. package/dist/chunk-CAMX6OHF.js.map +1 -0
  176. package/dist/chunk-CKI3RLMU.js +159 -0
  177. package/dist/chunk-CKI3RLMU.js.map +1 -0
  178. package/dist/chunk-CZENWCBS.js +333 -0
  179. package/dist/chunk-CZENWCBS.js.map +1 -0
  180. package/dist/chunk-D5FY4FAK.js +24 -0
  181. package/dist/chunk-D5FY4FAK.js.map +1 -0
  182. package/dist/chunk-DGCUPJZD.js +39 -0
  183. package/dist/chunk-DGCUPJZD.js.map +1 -0
  184. package/dist/chunk-DIICZGIS.js +509 -0
  185. package/dist/chunk-DIICZGIS.js.map +1 -0
  186. package/dist/chunk-DNCLWSHO.js +41 -0
  187. package/dist/chunk-DNCLWSHO.js.map +1 -0
  188. package/dist/chunk-DX4GIDO7.js +296 -0
  189. package/dist/chunk-DX4GIDO7.js.map +1 -0
  190. package/dist/chunk-DYZJBWT2.js +1079 -0
  191. package/dist/chunk-DYZJBWT2.js.map +1 -0
  192. package/dist/chunk-EDLZGTGN.js +216 -0
  193. package/dist/chunk-EDLZGTGN.js.map +1 -0
  194. package/dist/chunk-EDNX3AOS.js +76 -0
  195. package/dist/chunk-EDNX3AOS.js.map +1 -0
  196. package/dist/chunk-EF5DP6EB.js +52 -0
  197. package/dist/chunk-EF5DP6EB.js.map +1 -0
  198. package/dist/chunk-EQEZAYPL.js +541 -0
  199. package/dist/chunk-EQEZAYPL.js.map +1 -0
  200. package/dist/chunk-ERSX3MKH.js +34 -0
  201. package/dist/chunk-ERSX3MKH.js.map +1 -0
  202. package/dist/chunk-FKOECEVC.js +126 -0
  203. package/dist/chunk-FKOECEVC.js.map +1 -0
  204. package/dist/chunk-FYWWTMXP.js +2902 -0
  205. package/dist/chunk-FYWWTMXP.js.map +1 -0
  206. package/dist/chunk-G7AFVTUS.js +106 -0
  207. package/dist/chunk-G7AFVTUS.js.map +1 -0
  208. package/dist/chunk-GIW7ABMM.js +74 -0
  209. package/dist/chunk-GIW7ABMM.js.map +1 -0
  210. package/dist/chunk-GIWHHCD6.js +145 -0
  211. package/dist/chunk-GIWHHCD6.js.map +1 -0
  212. package/dist/chunk-GOJXKIFQ.js +1605 -0
  213. package/dist/chunk-GOJXKIFQ.js.map +1 -0
  214. package/dist/chunk-GPXIUYIA.js +592 -0
  215. package/dist/chunk-GPXIUYIA.js.map +1 -0
  216. package/dist/chunk-GRQ2AXDX.js +9 -0
  217. package/dist/chunk-GRQ2AXDX.js.map +1 -0
  218. package/dist/chunk-GXDLWBOY.js +73 -0
  219. package/dist/chunk-GXDLWBOY.js.map +1 -0
  220. package/dist/chunk-H7MLHG2I.js +94 -0
  221. package/dist/chunk-H7MLHG2I.js.map +1 -0
  222. package/dist/chunk-HAE4WWFQ.js +455 -0
  223. package/dist/chunk-HAE4WWFQ.js.map +1 -0
  224. package/dist/chunk-HB3LNR4Y.js +197 -0
  225. package/dist/chunk-HB3LNR4Y.js.map +1 -0
  226. package/dist/chunk-HDHWIEJJ.js +136 -0
  227. package/dist/chunk-HDHWIEJJ.js.map +1 -0
  228. package/dist/chunk-HJTIBTF7.js +98 -0
  229. package/dist/chunk-HJTIBTF7.js.map +1 -0
  230. package/dist/{chunk-VZEDAFAR.js → chunk-HLXWKMTK.js} +47 -8
  231. package/dist/chunk-HLXWKMTK.js.map +1 -0
  232. package/dist/{chunk-MF7YA62W.js → chunk-HREWXNTO.js} +10 -5
  233. package/dist/chunk-HREWXNTO.js.map +1 -0
  234. package/dist/chunk-HVJUMQYY.js +494 -0
  235. package/dist/chunk-HVJUMQYY.js.map +1 -0
  236. package/dist/chunk-I3DIZWN5.js +97 -0
  237. package/dist/chunk-I3DIZWN5.js.map +1 -0
  238. package/dist/chunk-IJMWEO4P.js +57 -0
  239. package/dist/chunk-IJMWEO4P.js.map +1 -0
  240. package/dist/chunk-IMORFIUT.js +207 -0
  241. package/dist/chunk-IMORFIUT.js.map +1 -0
  242. package/dist/chunk-IOCSDFF2.js +23992 -0
  243. package/dist/chunk-IOCSDFF2.js.map +1 -0
  244. package/dist/chunk-IRTYTT5D.js +665 -0
  245. package/dist/chunk-IRTYTT5D.js.map +1 -0
  246. package/dist/chunk-IVIJJXXT.js +62 -0
  247. package/dist/chunk-IVIJJXXT.js.map +1 -0
  248. package/dist/chunk-J57GWTPK.js +106 -0
  249. package/dist/chunk-J57GWTPK.js.map +1 -0
  250. package/dist/chunk-JAYT43KX.js +4227 -0
  251. package/dist/chunk-JAYT43KX.js.map +1 -0
  252. package/dist/chunk-JPK34QPS.js +134 -0
  253. package/dist/chunk-JPK34QPS.js.map +1 -0
  254. package/dist/chunk-JRCFCIE3.js +188 -0
  255. package/dist/chunk-JRCFCIE3.js.map +1 -0
  256. package/dist/chunk-JRGPCPT2.js +479 -0
  257. package/dist/chunk-JRGPCPT2.js.map +1 -0
  258. package/dist/chunk-JUAIGJ2A.js +76 -0
  259. package/dist/chunk-JUAIGJ2A.js.map +1 -0
  260. package/dist/chunk-K2RYUZ5Y.js +51 -0
  261. package/dist/chunk-K2RYUZ5Y.js.map +1 -0
  262. package/dist/chunk-K5OQES4V.js +58 -0
  263. package/dist/chunk-K5OQES4V.js.map +1 -0
  264. package/dist/chunk-KAHMADFH.js +455 -0
  265. package/dist/chunk-KAHMADFH.js.map +1 -0
  266. package/dist/chunk-KIGGMKAE.js +66 -0
  267. package/dist/chunk-KIGGMKAE.js.map +1 -0
  268. package/dist/chunk-KKJ4KJCW.js +29 -0
  269. package/dist/chunk-KKJ4KJCW.js.map +1 -0
  270. package/dist/chunk-KLK6KQLQ.js +55 -0
  271. package/dist/chunk-KLK6KQLQ.js.map +1 -0
  272. package/dist/chunk-KRIK2JR4.js +6212 -0
  273. package/dist/chunk-KRIK2JR4.js.map +1 -0
  274. package/dist/chunk-KZUHRZ2C.js +5187 -0
  275. package/dist/chunk-KZUHRZ2C.js.map +1 -0
  276. package/dist/chunk-L5WIRYNB.js +19 -0
  277. package/dist/chunk-L5WIRYNB.js.map +1 -0
  278. package/dist/chunk-LA6PPSNA.js +65 -0
  279. package/dist/chunk-LA6PPSNA.js.map +1 -0
  280. package/dist/chunk-LEIQAHWF.js +25 -0
  281. package/dist/chunk-LEIQAHWF.js.map +1 -0
  282. package/dist/chunk-LWBWCIWL.js +297 -0
  283. package/dist/chunk-LWBWCIWL.js.map +1 -0
  284. package/dist/chunk-M4PPFVYL.js +346 -0
  285. package/dist/chunk-M4PPFVYL.js.map +1 -0
  286. package/dist/chunk-M6UNISGO.js +66 -0
  287. package/dist/chunk-M6UNISGO.js.map +1 -0
  288. package/dist/chunk-MGKHFGLV.js +75 -0
  289. package/dist/chunk-MGKHFGLV.js.map +1 -0
  290. package/dist/chunk-MUVSWFLL.js +111 -0
  291. package/dist/chunk-MUVSWFLL.js.map +1 -0
  292. package/dist/chunk-NFSLRRIE.js +77 -0
  293. package/dist/chunk-NFSLRRIE.js.map +1 -0
  294. package/dist/chunk-NHU33T2S.js +60 -0
  295. package/dist/chunk-NHU33T2S.js.map +1 -0
  296. package/dist/chunk-O6QKCJE4.js +455 -0
  297. package/dist/chunk-O6QKCJE4.js.map +1 -0
  298. package/dist/chunk-OBNWER4H.js +1599 -0
  299. package/dist/chunk-OBNWER4H.js.map +1 -0
  300. package/dist/chunk-OFFAMC5H.js +225 -0
  301. package/dist/chunk-OFFAMC5H.js.map +1 -0
  302. package/dist/chunk-P4NSJS54.js +20 -0
  303. package/dist/chunk-P4NSJS54.js.map +1 -0
  304. package/dist/chunk-P5T7OZKV.js +26 -0
  305. package/dist/chunk-P5T7OZKV.js.map +1 -0
  306. package/dist/chunk-PAHLJMC3.js +175 -0
  307. package/dist/chunk-PAHLJMC3.js.map +1 -0
  308. package/dist/chunk-PBVLPFJ6.js +169 -0
  309. package/dist/chunk-PBVLPFJ6.js.map +1 -0
  310. package/dist/chunk-PFBQERWX.js +10 -0
  311. package/dist/chunk-PFBQERWX.js.map +1 -0
  312. package/dist/chunk-Q6ULQMWG.js +41 -0
  313. package/dist/chunk-Q6ULQMWG.js.map +1 -0
  314. package/dist/chunk-QKE7GXZ7.js +6683 -0
  315. package/dist/chunk-QKE7GXZ7.js.map +1 -0
  316. package/dist/chunk-QL573PLH.js +150 -0
  317. package/dist/chunk-QL573PLH.js.map +1 -0
  318. package/dist/chunk-QO23YHLK.js +84 -0
  319. package/dist/chunk-QO23YHLK.js.map +1 -0
  320. package/dist/chunk-R5OQM7FF.js +179 -0
  321. package/dist/chunk-R5OQM7FF.js.map +1 -0
  322. package/dist/chunk-RDLB54KF.js +629 -0
  323. package/dist/chunk-RDLB54KF.js.map +1 -0
  324. package/dist/chunk-RGIXQEGJ.js +502 -0
  325. package/dist/chunk-RGIXQEGJ.js.map +1 -0
  326. package/dist/chunk-RRIAHUWP.js +304 -0
  327. package/dist/chunk-RRIAHUWP.js.map +1 -0
  328. package/dist/chunk-S4LZ7KTG.js +160 -0
  329. package/dist/chunk-S4LZ7KTG.js.map +1 -0
  330. package/dist/chunk-SHTESUB6.js +1442 -0
  331. package/dist/chunk-SHTESUB6.js.map +1 -0
  332. package/dist/chunk-SLB46MSS.js +64 -0
  333. package/dist/chunk-SLB46MSS.js.map +1 -0
  334. package/dist/chunk-T7M4WFNV.js +172 -0
  335. package/dist/chunk-T7M4WFNV.js.map +1 -0
  336. package/dist/{chunk-VLUGGVJL.js → chunk-TPXI2GCW.js} +12 -4
  337. package/dist/chunk-TPXI2GCW.js.map +1 -0
  338. package/dist/chunk-TWNFQUBS.js +23 -0
  339. package/dist/chunk-TWNFQUBS.js.map +1 -0
  340. package/dist/chunk-U6VRBDNQ.js +1830 -0
  341. package/dist/chunk-U6VRBDNQ.js.map +1 -0
  342. package/dist/chunk-U7BBXM67.js +1743 -0
  343. package/dist/chunk-U7BBXM67.js.map +1 -0
  344. package/dist/chunk-UI6BKYQD.js +225 -0
  345. package/dist/chunk-UI6BKYQD.js.map +1 -0
  346. package/dist/chunk-USL5ARRE.js +26 -0
  347. package/dist/chunk-USL5ARRE.js.map +1 -0
  348. package/dist/chunk-UYC45JNS.js +139 -0
  349. package/dist/chunk-UYC45JNS.js.map +1 -0
  350. package/dist/chunk-V5GSRREZ.js +846 -0
  351. package/dist/chunk-V5GSRREZ.js.map +1 -0
  352. package/dist/chunk-V5HDRJQW.js +337 -0
  353. package/dist/chunk-V5HDRJQW.js.map +1 -0
  354. package/dist/chunk-VS4C7VAR.js +533 -0
  355. package/dist/chunk-VS4C7VAR.js.map +1 -0
  356. package/dist/chunk-W4W4ZRBP.js +191 -0
  357. package/dist/chunk-W4W4ZRBP.js.map +1 -0
  358. package/dist/chunk-WIRBRCTJ.js +228 -0
  359. package/dist/chunk-WIRBRCTJ.js.map +1 -0
  360. package/dist/chunk-WN4KX7GE.js +25 -0
  361. package/dist/chunk-WN4KX7GE.js.map +1 -0
  362. package/dist/chunk-WNFTXSGR.js +111 -0
  363. package/dist/chunk-WNFTXSGR.js.map +1 -0
  364. package/dist/chunk-WOTDHRNF.js +2109 -0
  365. package/dist/chunk-WOTDHRNF.js.map +1 -0
  366. package/dist/chunk-WPKOEFOE.js +103 -0
  367. package/dist/chunk-WPKOEFOE.js.map +1 -0
  368. package/dist/chunk-XE3WS3QE.js +183 -0
  369. package/dist/chunk-XE3WS3QE.js.map +1 -0
  370. package/dist/chunk-XGWKTYXQ.js +67 -0
  371. package/dist/chunk-XGWKTYXQ.js.map +1 -0
  372. package/dist/chunk-XIGIJJSF.js +66 -0
  373. package/dist/chunk-XIGIJJSF.js.map +1 -0
  374. package/dist/chunk-XNUXB63I.js +817 -0
  375. package/dist/chunk-XNUXB63I.js.map +1 -0
  376. package/dist/chunk-XQ3CCNJD.js +610 -0
  377. package/dist/chunk-XQ3CCNJD.js.map +1 -0
  378. package/dist/chunk-Y362QH54.js +98 -0
  379. package/dist/chunk-Y362QH54.js.map +1 -0
  380. package/dist/chunk-Y4HZNSBN.js +3151 -0
  381. package/dist/chunk-Y4HZNSBN.js.map +1 -0
  382. package/dist/chunk-Y4T6ATDQ.js +74 -0
  383. package/dist/chunk-Y4T6ATDQ.js.map +1 -0
  384. package/dist/chunk-YIMGUMXX.js +206 -0
  385. package/dist/chunk-YIMGUMXX.js.map +1 -0
  386. package/dist/chunk-YQSBHWOI.js +41 -0
  387. package/dist/chunk-YU26SDNT.js +46 -0
  388. package/dist/chunk-YU26SDNT.js.map +1 -0
  389. package/dist/chunk-YULENNA7.js +501 -0
  390. package/dist/chunk-YULENNA7.js.map +1 -0
  391. package/dist/chunk-YYSZYSAG.js +150 -0
  392. package/dist/chunk-YYSZYSAG.js.map +1 -0
  393. package/dist/chunk-Z3ENMCFE.js +94 -0
  394. package/dist/chunk-Z3ENMCFE.js.map +1 -0
  395. package/dist/chunk-ZCFSHQBF.js +92 -0
  396. package/dist/chunk-ZCFSHQBF.js.map +1 -0
  397. package/dist/chunk-ZH7ZM3ZM.js +125 -0
  398. package/dist/chunk-ZH7ZM3ZM.js.map +1 -0
  399. package/dist/chunk-ZIXHS6AM.js +42 -0
  400. package/dist/chunk-ZIXHS6AM.js.map +1 -0
  401. package/dist/chunk-ZLLJKSNS.js +96 -0
  402. package/dist/chunk-ZLLJKSNS.js.map +1 -0
  403. package/dist/claim-4AFNDV3A.js +197 -0
  404. package/dist/claim-4AFNDV3A.js.map +1 -0
  405. package/dist/cli.js +104 -69909
  406. package/dist/cli.js.map +1 -1
  407. package/dist/client-26SAJ46D.js +19 -0
  408. package/dist/code-MOWYJMDH.js +76 -0
  409. package/dist/code-MOWYJMDH.js.map +1 -0
  410. package/dist/companies-PZRRZZNV.js +195 -0
  411. package/dist/companies-PZRRZZNV.js.map +1 -0
  412. package/dist/complete-IBW5DNVZ.js +81 -0
  413. package/dist/complete-IBW5DNVZ.js.map +1 -0
  414. package/dist/config-X6GKOVQ6.js +88 -0
  415. package/dist/config-X6GKOVQ6.js.map +1 -0
  416. package/dist/connect-WYUYS5V4.js +42 -0
  417. package/dist/content-UYZC4AKN.js +85 -0
  418. package/dist/content-UYZC4AKN.js.map +1 -0
  419. package/dist/conversation-6AG3UBYY.js +93 -0
  420. package/dist/conversation-6AG3UBYY.js.map +1 -0
  421. package/dist/conversion-report-R4GJWWTK.js +125 -0
  422. package/dist/conversion-report-R4GJWWTK.js.map +1 -0
  423. package/dist/conversion-upload-command-YML2UNJB.js +438 -0
  424. package/dist/conversion-upload-command-YML2UNJB.js.map +1 -0
  425. package/dist/conversion-writes-WHFFUWWL.js +120 -0
  426. package/dist/conversion-writes-WHFFUWWL.js.map +1 -0
  427. package/dist/conversions-NOBBFNIU.js +135 -0
  428. package/dist/conversions-NOBBFNIU.js.map +1 -0
  429. package/dist/conversions-OXJAX5GB.js +76 -0
  430. package/dist/conversions-OXJAX5GB.js.map +1 -0
  431. package/dist/countries-PBXNB3BR.js +82 -0
  432. package/dist/countries-PBXNB3BR.js.map +1 -0
  433. package/dist/create-JK42P564.js +59 -0
  434. package/dist/create-JK42P564.js.map +1 -0
  435. package/dist/create-LAWUVPCY.js +207 -0
  436. package/dist/create-LAWUVPCY.js.map +1 -0
  437. package/dist/create-MUPQ5CTH.js +138 -0
  438. package/dist/create-MUPQ5CTH.js.map +1 -0
  439. package/dist/create-NQJNCFRO.js +236 -0
  440. package/dist/create-NQJNCFRO.js.map +1 -0
  441. package/dist/creatives-KCWFZIM5.js +182 -0
  442. package/dist/creatives-KCWFZIM5.js.map +1 -0
  443. package/dist/creatives-NNDWCSKJ.js +51 -0
  444. package/dist/creatives-NNDWCSKJ.js.map +1 -0
  445. package/dist/creatives-RHNHTS2R.js +87 -0
  446. package/dist/creatives-RHNHTS2R.js.map +1 -0
  447. package/dist/credentials-CEKGXR2C.js +287 -0
  448. package/dist/credentials-CEKGXR2C.js.map +1 -0
  449. package/dist/critique-HDDYER52.js +1449 -0
  450. package/dist/critique-HDDYER52.js.map +1 -0
  451. package/dist/critique-QIN2FO4F.js +216 -0
  452. package/dist/critique-QIN2FO4F.js.map +1 -0
  453. package/dist/crm-KBPWZC6J.js +318 -0
  454. package/dist/crm-KBPWZC6J.js.map +1 -0
  455. package/dist/crm-QBWD7CWB.js +224 -0
  456. package/dist/crm-QBWD7CWB.js.map +1 -0
  457. package/dist/crop-U3AD4DDR.js +113 -0
  458. package/dist/crop-U3AD4DDR.js.map +1 -0
  459. package/dist/currency-XTFGZFGB.js +88 -0
  460. package/dist/currency-XTFGZFGB.js.map +1 -0
  461. package/dist/custom-conversions-W3K33V33.js +125 -0
  462. package/dist/custom-conversions-W3K33V33.js.map +1 -0
  463. package/dist/customers-HYE7N2H5.js +56 -0
  464. package/dist/decide-YTHCBKM6.js +199 -0
  465. package/dist/decide-YTHCBKM6.js.map +1 -0
  466. package/dist/delete-64REPCY2.js +54 -0
  467. package/dist/delete-64REPCY2.js.map +1 -0
  468. package/dist/delete-AY3KL3N3.js +63 -0
  469. package/dist/delete-AY3KL3N3.js.map +1 -0
  470. package/dist/delete-DZUDLYPC.js +69 -0
  471. package/dist/delete-DZUDLYPC.js.map +1 -0
  472. package/dist/delete-NZGZP4YP.js +71 -0
  473. package/dist/delete-NZGZP4YP.js.map +1 -0
  474. package/dist/delete-VO2LZXE4.js +66 -0
  475. package/dist/delete-VO2LZXE4.js.map +1 -0
  476. package/dist/delete-VQMU56OH.js +71 -0
  477. package/dist/delete-VQMU56OH.js.map +1 -0
  478. package/dist/demographics-KOFLMGVW.js +138 -0
  479. package/dist/demographics-KOFLMGVW.js.map +1 -0
  480. package/dist/describe-JNTCQZNL.js +97 -0
  481. package/dist/describe-JNTCQZNL.js.map +1 -0
  482. package/dist/describe-MT4334NG.js +97 -0
  483. package/dist/describe-MT4334NG.js.map +1 -0
  484. package/dist/dimensions-FEZUJRAG.js +101 -0
  485. package/dist/dimensions-FEZUJRAG.js.map +1 -0
  486. package/dist/discard-H4RPXZHX.js +66 -0
  487. package/dist/discard-H4RPXZHX.js.map +1 -0
  488. package/dist/discover-4GD7QSF5.js +93 -0
  489. package/dist/discover-4GD7QSF5.js.map +1 -0
  490. package/dist/discover-L7OVXW4V.js +172 -0
  491. package/dist/discover-L7OVXW4V.js.map +1 -0
  492. package/dist/domain-HURQ23KR.js +98 -0
  493. package/dist/domain-HURQ23KR.js.map +1 -0
  494. package/dist/download-L27HWEOE.js +299 -0
  495. package/dist/download-L27HWEOE.js.map +1 -0
  496. package/dist/draft-25G2P2TE.js +281 -0
  497. package/dist/draft-25G2P2TE.js.map +1 -0
  498. package/dist/draft-5VH2PW3R.js +307 -0
  499. package/dist/draft-5VH2PW3R.js.map +1 -0
  500. package/dist/draft-D6UTKSAA.js +217 -0
  501. package/dist/draft-D6UTKSAA.js.map +1 -0
  502. package/dist/draft-KLULNBWP.js +233 -0
  503. package/dist/draft-KLULNBWP.js.map +1 -0
  504. package/dist/draft-MI7RWY2K.js +100 -0
  505. package/dist/draft-MI7RWY2K.js.map +1 -0
  506. package/dist/draft-P4IVYTY3.js +103 -0
  507. package/dist/draft-P4IVYTY3.js.map +1 -0
  508. package/dist/draft-UQYWDZS7.js +306 -0
  509. package/dist/draft-UQYWDZS7.js.map +1 -0
  510. package/dist/draft-YFAJHCKM.js +328 -0
  511. package/dist/draft-YFAJHCKM.js.map +1 -0
  512. package/dist/engine/index.d.ts +213 -127
  513. package/dist/engine/index.js +18 -4
  514. package/dist/{env-4P5HOGNA.js → env-FBTHZKGN.js} +12 -2
  515. package/dist/env-FBTHZKGN.js.map +1 -0
  516. package/dist/experiment-HDYTJPUY.js +1397 -0
  517. package/dist/experiment-HDYTJPUY.js.map +1 -0
  518. package/dist/export-TS5GYEMA.js +168 -0
  519. package/dist/export-TS5GYEMA.js.map +1 -0
  520. package/dist/extract-QVQFUOIK.js +113 -0
  521. package/dist/extract-QVQFUOIK.js.map +1 -0
  522. package/dist/facets-WYQUZMFJ.js +114 -0
  523. package/dist/facets-WYQUZMFJ.js.map +1 -0
  524. package/dist/favorites-7QP7BY5K.js +178 -0
  525. package/dist/favorites-7QP7BY5K.js.map +1 -0
  526. package/dist/feed-EETRO2FG.js +177 -0
  527. package/dist/feed-EETRO2FG.js.map +1 -0
  528. package/dist/feedback-SIMPRE37.js +66 -0
  529. package/dist/feedback-SIMPRE37.js.map +1 -0
  530. package/dist/feedback-record-L4MPIVML.js +177 -0
  531. package/dist/feedback-record-L4MPIVML.js.map +1 -0
  532. package/dist/fetch-DTBM3DE2.js +176 -0
  533. package/dist/fetch-DTBM3DE2.js.map +1 -0
  534. package/dist/fetch-Z7O3ZL4D.js +139 -0
  535. package/dist/fetch-Z7O3ZL4D.js.map +1 -0
  536. package/dist/find-KAQ6JDMO.js +134 -0
  537. package/dist/find-KAQ6JDMO.js.map +1 -0
  538. package/dist/fit-MY5GVZZZ.js +45 -0
  539. package/dist/fit-MY5GVZZZ.js.map +1 -0
  540. package/dist/flows-IUDXVDOS.js +247 -0
  541. package/dist/flows-IUDXVDOS.js.map +1 -0
  542. package/dist/follow-IX4XVK5Y.js +94 -0
  543. package/dist/follow-IX4XVK5Y.js.map +1 -0
  544. package/dist/follow-competitors-UZBUOYTH.js +112 -0
  545. package/dist/follow-competitors-UZBUOYTH.js.map +1 -0
  546. package/dist/following-VGOIUCIZ.js +113 -0
  547. package/dist/following-VGOIUCIZ.js.map +1 -0
  548. package/dist/fonts-EUDHI6CA.js +34 -0
  549. package/dist/fonts-EUDHI6CA.js.map +1 -0
  550. package/dist/forecast-BRSEH2H3.js +104 -0
  551. package/dist/forecast-BRSEH2H3.js.map +1 -0
  552. package/dist/forecast-QV4U7TOY.js +168 -0
  553. package/dist/forecast-QV4U7TOY.js.map +1 -0
  554. package/dist/funding-H5YO37OW.js +85 -0
  555. package/dist/funding-H5YO37OW.js.map +1 -0
  556. package/dist/funnel-JLF77MLF.js +394 -0
  557. package/dist/funnel-JLF77MLF.js.map +1 -0
  558. package/dist/ga4-YHJ2XMLC.js +55 -0
  559. package/dist/ga4-YHJ2XMLC.js.map +1 -0
  560. package/dist/generate-M2ZX5DMI.js +262 -0
  561. package/dist/generate-M2ZX5DMI.js.map +1 -0
  562. package/dist/get-4EYKCZ6F.js +59 -0
  563. package/dist/get-4EYKCZ6F.js.map +1 -0
  564. package/dist/get-637GALM2.js +63 -0
  565. package/dist/get-637GALM2.js.map +1 -0
  566. package/dist/get-AYX5HS64.js +56 -0
  567. package/dist/get-AYX5HS64.js.map +1 -0
  568. package/dist/get-AZARFR6O.js +61 -0
  569. package/dist/get-AZARFR6O.js.map +1 -0
  570. package/dist/get-EG2U7MIL.js +78 -0
  571. package/dist/get-EG2U7MIL.js.map +1 -0
  572. package/dist/get-N4BPOQCB.js +63 -0
  573. package/dist/get-N4BPOQCB.js.map +1 -0
  574. package/dist/get-RPZHLQ56.js +92 -0
  575. package/dist/get-RPZHLQ56.js.map +1 -0
  576. package/dist/gif-6PRTB2VR.js +94 -0
  577. package/dist/gif-6PRTB2VR.js.map +1 -0
  578. package/dist/google-52JRH7X3.js +136 -0
  579. package/dist/google-52JRH7X3.js.map +1 -0
  580. package/dist/google-ITTPCJ7N.js +3190 -0
  581. package/dist/google-ITTPCJ7N.js.map +1 -0
  582. package/dist/google-ads-U3JFFQLU.js +195 -0
  583. package/dist/google-ads-U3JFFQLU.js.map +1 -0
  584. package/dist/group-AAZ5QKC3.js +43 -0
  585. package/dist/group-AAZ5QKC3.js.map +1 -0
  586. package/dist/group-GSYCZORC.js +43 -0
  587. package/dist/group-GSYCZORC.js.map +1 -0
  588. package/dist/gsc-TS5T7ML2.js +30 -0
  589. package/dist/gsc-TS5T7ML2.js.map +1 -0
  590. package/dist/history-EW6LFFCX.js +67 -0
  591. package/dist/history-EW6LFFCX.js.map +1 -0
  592. package/dist/history-YTNCWSV3.js +133 -0
  593. package/dist/history-YTNCWSV3.js.map +1 -0
  594. package/dist/hubspot-LXWQNKKB.js +779 -0
  595. package/dist/hubspot-LXWQNKKB.js.map +1 -0
  596. package/dist/icon-K75KI6BV.js +137 -0
  597. package/dist/icon-K75KI6BV.js.map +1 -0
  598. package/dist/ideas-JJIHQFV4.js +35 -0
  599. package/dist/ideas-JJIHQFV4.js.map +1 -0
  600. package/dist/images-MWETBYKB.js +90 -0
  601. package/dist/images-MWETBYKB.js.map +1 -0
  602. package/dist/improve-L3BW4EQG.js +86 -0
  603. package/dist/improve-L3BW4EQG.js.map +1 -0
  604. package/dist/ingest-THFAV4NO.js +107 -0
  605. package/dist/ingest-THFAV4NO.js.map +1 -0
  606. package/dist/ingest-U6B7GR4A.js +23 -0
  607. package/dist/ingest-U6B7GR4A.js.map +1 -0
  608. package/dist/insights-FA6T6PT6.js +423 -0
  609. package/dist/insights-FA6T6PT6.js.map +1 -0
  610. package/dist/insights-PELVD4RY.js +122 -0
  611. package/dist/insights-PELVD4RY.js.map +1 -0
  612. package/dist/inspect-N2WVVWGP.js +189 -0
  613. package/dist/inspect-N2WVVWGP.js.map +1 -0
  614. package/dist/inspiration-Y2J2PUPC.js +53 -0
  615. package/dist/inspiration-Y2J2PUPC.js.map +1 -0
  616. package/dist/intent-YNAAVNHK.js +95 -0
  617. package/dist/intent-YNAAVNHK.js.map +1 -0
  618. package/dist/job-E2U4FS5P.js +202 -0
  619. package/dist/job-E2U4FS5P.js.map +1 -0
  620. package/dist/job-create-DFYCHVQ7.js +109 -0
  621. package/dist/job-create-DFYCHVQ7.js.map +1 -0
  622. package/dist/job-status-FFPMTSHB.js +74 -0
  623. package/dist/job-status-FFPMTSHB.js.map +1 -0
  624. package/dist/keep-GYZS2UTL.js +78 -0
  625. package/dist/keep-GYZS2UTL.js.map +1 -0
  626. package/dist/keyword-gap-4JKLWIBJ.js +130 -0
  627. package/dist/keyword-gap-4JKLWIBJ.js.map +1 -0
  628. package/dist/keyword-metrics-KU3OHTQK.js +197 -0
  629. package/dist/keyword-metrics-KU3OHTQK.js.map +1 -0
  630. package/dist/keywords-for-site-M4MFWMVK.js +128 -0
  631. package/dist/keywords-for-site-M4MFWMVK.js.map +1 -0
  632. package/dist/landing-7UVZ7IPP.js +28 -0
  633. package/dist/landing-7UVZ7IPP.js.map +1 -0
  634. package/dist/landings-F7LOAEJE.js +151 -0
  635. package/dist/landings-F7LOAEJE.js.map +1 -0
  636. package/dist/languages-PKYCZNUB.js +40 -0
  637. package/dist/languages-PKYCZNUB.js.map +1 -0
  638. package/dist/languages-XEJKTIFP.js +55 -0
  639. package/dist/languages-XEJKTIFP.js.map +1 -0
  640. package/dist/launches-TCFAYUA5.js +19 -0
  641. package/dist/launches-TCFAYUA5.js.map +1 -0
  642. package/dist/layerize-ZSKFIPZA.js +190 -0
  643. package/dist/layerize-ZSKFIPZA.js.map +1 -0
  644. package/dist/leads-CSRESOB2.js +293 -0
  645. package/dist/leads-CSRESOB2.js.map +1 -0
  646. package/dist/leads-MQPEA7DG.js +90 -0
  647. package/dist/leads-MQPEA7DG.js.map +1 -0
  648. package/dist/learn-K5YBUMBT.js +203 -0
  649. package/dist/learn-K5YBUMBT.js.map +1 -0
  650. package/dist/library-IP2UKNRU.js +109 -0
  651. package/dist/library-IP2UKNRU.js.map +1 -0
  652. package/dist/lighthouse-57XBJRCO.js +75 -0
  653. package/dist/lighthouse-57XBJRCO.js.map +1 -0
  654. package/dist/line-item-writes-73NR2J5L.js +208 -0
  655. package/dist/line-item-writes-73NR2J5L.js.map +1 -0
  656. package/dist/line-items-2YBGXOAQ.js +103 -0
  657. package/dist/line-items-2YBGXOAQ.js.map +1 -0
  658. package/dist/link-GVAWECJO.js +64 -0
  659. package/dist/link-GVAWECJO.js.map +1 -0
  660. package/dist/linkedin-PZDT22AT.js +1008 -0
  661. package/dist/linkedin-PZDT22AT.js.map +1 -0
  662. package/dist/list-6IKPWQGG.js +57 -0
  663. package/dist/list-6IKPWQGG.js.map +1 -0
  664. package/dist/list-CAUH3BMG.js +65 -0
  665. package/dist/list-CAUH3BMG.js.map +1 -0
  666. package/dist/list-FNDRV25Y.js +151 -0
  667. package/dist/list-FNDRV25Y.js.map +1 -0
  668. package/dist/list-GTOSN7DP.js +50 -0
  669. package/dist/list-GTOSN7DP.js.map +1 -0
  670. package/dist/list-HLJP4NVE.js +51 -0
  671. package/dist/list-HLJP4NVE.js.map +1 -0
  672. package/dist/list-LCUPF7EF.js +76 -0
  673. package/dist/list-LCUPF7EF.js.map +1 -0
  674. package/dist/list-REZGFWC5.js +63 -0
  675. package/dist/list-REZGFWC5.js.map +1 -0
  676. package/dist/list-S6MNXDTV.js +303 -0
  677. package/dist/list-S6MNXDTV.js.map +1 -0
  678. package/dist/locations-2BYWKIYA.js +67 -0
  679. package/dist/locations-2BYWKIYA.js.map +1 -0
  680. package/dist/locations-GJHHMV6Z.js +40 -0
  681. package/dist/locations-GJHHMV6Z.js.map +1 -0
  682. package/dist/log-HGDNLDUX.js +92 -0
  683. package/dist/log-HGDNLDUX.js.map +1 -0
  684. package/dist/logo-AJK2TDQU.js +18 -0
  685. package/dist/logo-AJK2TDQU.js.map +1 -0
  686. package/dist/lookup-H5GEM77H.js +22 -0
  687. package/dist/lookup-H5GEM77H.js.map +1 -0
  688. package/dist/make-BT26YJXZ.js +640 -0
  689. package/dist/make-BT26YJXZ.js.map +1 -0
  690. package/dist/map-J5EX4HOX.js +404 -0
  691. package/dist/map-J5EX4HOX.js.map +1 -0
  692. package/dist/mcp-MHDW6AFL.js +463 -0
  693. package/dist/mcp-MHDW6AFL.js.map +1 -0
  694. package/dist/media-RAGEJTZX.js +89 -0
  695. package/dist/media-RAGEJTZX.js.map +1 -0
  696. package/dist/media-RNB7JFJP.js +15 -0
  697. package/dist/media-RNB7JFJP.js.map +1 -0
  698. package/dist/media-sources-4NN3DWSG.js +32 -0
  699. package/dist/media-sources-4NN3DWSG.js.map +1 -0
  700. package/dist/members-AIWMXAQD.js +44 -0
  701. package/dist/members-AIWMXAQD.js.map +1 -0
  702. package/dist/meta-WAPZMZI7.js +69 -0
  703. package/dist/meta-WAPZMZI7.js.map +1 -0
  704. package/dist/metrics-6EHC4ESN.js +152 -0
  705. package/dist/metrics-6EHC4ESN.js.map +1 -0
  706. package/dist/models-5J4WFUD3.js +155 -0
  707. package/dist/models-5J4WFUD3.js.map +1 -0
  708. package/dist/normalize-DSFVTRXN.js +806 -0
  709. package/dist/normalize-DSFVTRXN.js.map +1 -0
  710. package/dist/normalize-ZAWN4XCS.js +141 -0
  711. package/dist/normalize-ZAWN4XCS.js.map +1 -0
  712. package/dist/options-3CZNT5KP.js +121 -0
  713. package/dist/options-3CZNT5KP.js.map +1 -0
  714. package/dist/output-DTCLVPUF.js +24 -0
  715. package/dist/output-DTCLVPUF.js.map +1 -0
  716. package/dist/page-N2ZO3O7F.js +105 -0
  717. package/dist/page-N2ZO3O7F.js.map +1 -0
  718. package/dist/pages-FQ4CBAJ2.js +66 -0
  719. package/dist/pages-FQ4CBAJ2.js.map +1 -0
  720. package/dist/performance-GOMJMHPE.js +24 -0
  721. package/dist/performance-GOMJMHPE.js.map +1 -0
  722. package/dist/pinterest-NV5XTNJE.js +96 -0
  723. package/dist/pinterest-NV5XTNJE.js.map +1 -0
  724. package/dist/pixels-CTJ43FZ4.js +108 -0
  725. package/dist/pixels-CTJ43FZ4.js.map +1 -0
  726. package/dist/pixels-HKINGZCH.js +60 -0
  727. package/dist/pixels-HKINGZCH.js.map +1 -0
  728. package/dist/plan-ZYTWLGWK.js +207 -0
  729. package/dist/plan-ZYTWLGWK.js.map +1 -0
  730. package/dist/preview-UKYLPAW2.js +169 -0
  731. package/dist/preview-UKYLPAW2.js.map +1 -0
  732. package/dist/profile-Q3PHR6FU.js +159 -0
  733. package/dist/profile-Q3PHR6FU.js.map +1 -0
  734. package/dist/promoted-tweet-writes-IYOAZTA5.js +180 -0
  735. package/dist/promoted-tweet-writes-IYOAZTA5.js.map +1 -0
  736. package/dist/promoted-tweets-G3XFD5YM.js +119 -0
  737. package/dist/promoted-tweets-G3XFD5YM.js.map +1 -0
  738. package/dist/properties-WLL6M2P6.js +101 -0
  739. package/dist/properties-WLL6M2P6.js.map +1 -0
  740. package/dist/publish-ZG4J2GTH.js +322 -0
  741. package/dist/publish-ZG4J2GTH.js.map +1 -0
  742. package/dist/query-7AGG77WH.js +61 -0
  743. package/dist/query-7AGG77WH.js.map +1 -0
  744. package/dist/query-IYZN5KHO.js +236 -0
  745. package/dist/query-IYZN5KHO.js.map +1 -0
  746. package/dist/query-UN2P6DBA.js +247 -0
  747. package/dist/query-UN2P6DBA.js.map +1 -0
  748. package/dist/questionnaire-Z2ZIKNBV.js +93 -0
  749. package/dist/questionnaire-Z2ZIKNBV.js.map +1 -0
  750. package/dist/read-GM7PQYJA.js +141 -0
  751. package/dist/read-GM7PQYJA.js.map +1 -0
  752. package/dist/reddit-FTO4SFQE.js +26 -0
  753. package/dist/reddit-FTO4SFQE.js.map +1 -0
  754. package/dist/refresh-OUENQ2FS.js +94 -0
  755. package/dist/refresh-OUENQ2FS.js.map +1 -0
  756. package/dist/release-5OG7AAFY.js +60 -0
  757. package/dist/release-5OG7AAFY.js.map +1 -0
  758. package/dist/relevant-pages-KUVDZPRU.js +99 -0
  759. package/dist/relevant-pages-KUVDZPRU.js.map +1 -0
  760. package/dist/remove-33HI27KM.js +50 -0
  761. package/dist/remove-33HI27KM.js.map +1 -0
  762. package/dist/remove-GOYW2G4R.js +48 -0
  763. package/dist/remove-GOYW2G4R.js.map +1 -0
  764. package/dist/reopen-KFFYE53A.js +63 -0
  765. package/dist/reopen-KFFYE53A.js.map +1 -0
  766. package/dist/rerun-P6XACA5Z.js +86 -0
  767. package/dist/rerun-P6XACA5Z.js.map +1 -0
  768. package/dist/research-BEO3JMZI.js +262 -0
  769. package/dist/research-BEO3JMZI.js.map +1 -0
  770. package/dist/research-QOC53DLS.js +62 -0
  771. package/dist/research-QOC53DLS.js.map +1 -0
  772. package/dist/reset-E3OWE2WF.js +54 -0
  773. package/dist/reset-E3OWE2WF.js.map +1 -0
  774. package/dist/reset-I7M3HYMB.js +54 -0
  775. package/dist/reset-I7M3HYMB.js.map +1 -0
  776. package/dist/resolve-GP7BHM6L.js +121 -0
  777. package/dist/resolve-GP7BHM6L.js.map +1 -0
  778. package/dist/retry-33ZJCNQI.js +62 -0
  779. package/dist/retry-33ZJCNQI.js.map +1 -0
  780. package/dist/retry-X5PU7QO3.js +60 -0
  781. package/dist/retry-X5PU7QO3.js.map +1 -0
  782. package/dist/retry-failed-BEFWRV4Z.js +45 -0
  783. package/dist/retry-failed-BEFWRV4Z.js.map +1 -0
  784. package/dist/run-REK3TEGY.js +65 -0
  785. package/dist/run-REK3TEGY.js.map +1 -0
  786. package/dist/run-TH2662IC.js +61 -0
  787. package/dist/run-TH2662IC.js.map +1 -0
  788. package/dist/scaffold-ad-3WDRKUFT.js +1550 -0
  789. package/dist/scaffold-ad-3WDRKUFT.js.map +1 -0
  790. package/dist/scaffold-static-ad-X5NT52NF.js +973 -0
  791. package/dist/scaffold-static-ad-X5NT52NF.js.map +1 -0
  792. package/dist/scaffold-video-WZPVACLE.js +874 -0
  793. package/dist/scaffold-video-WZPVACLE.js.map +1 -0
  794. package/dist/schedule-KQ7UIR3N.js +66 -0
  795. package/dist/schedule-KQ7UIR3N.js.map +1 -0
  796. package/dist/schedule-V4UHGY3V.js +61 -0
  797. package/dist/schedule-V4UHGY3V.js.map +1 -0
  798. package/dist/scheduled-agents-KLQ5H2PA.js +49 -0
  799. package/dist/scheduled-agents-KLQ5H2PA.js.map +1 -0
  800. package/dist/schema-G3T4PZDI.js +132 -0
  801. package/dist/schema-G3T4PZDI.js.map +1 -0
  802. package/dist/schema-QXTDLZVC.js +63 -0
  803. package/dist/schema-QXTDLZVC.js.map +1 -0
  804. package/dist/scrape-7YKJWFZE.js +2241 -0
  805. package/dist/scrape-7YKJWFZE.js.map +1 -0
  806. package/dist/screenshot-ZHBSG3SI.js +102 -0
  807. package/dist/screenshot-ZHBSG3SI.js.map +1 -0
  808. package/dist/search-332KFYZ6.js +224 -0
  809. package/dist/search-332KFYZ6.js.map +1 -0
  810. package/dist/search-4PBMXXUY.js +91 -0
  811. package/dist/search-4PBMXXUY.js.map +1 -0
  812. package/dist/search-6XKEGABN.js +174 -0
  813. package/dist/search-6XKEGABN.js.map +1 -0
  814. package/dist/search-AVNUU6TJ.js +26 -0
  815. package/dist/search-AVNUU6TJ.js.map +1 -0
  816. package/dist/search-F5INRFFK.js +92 -0
  817. package/dist/search-F5INRFFK.js.map +1 -0
  818. package/dist/search-copy-DZVBYG2B.js +168 -0
  819. package/dist/search-copy-DZVBYG2B.js.map +1 -0
  820. package/dist/seeds-5JTQN5WI.js +101 -0
  821. package/dist/seeds-5JTQN5WI.js.map +1 -0
  822. package/dist/select-N2V55BEX.js +96 -0
  823. package/dist/select-N2V55BEX.js.map +1 -0
  824. package/dist/sends-3L6QBS46.js +309 -0
  825. package/dist/sends-3L6QBS46.js.map +1 -0
  826. package/dist/sequences-YKFV7BDH.js +146 -0
  827. package/dist/sequences-YKFV7BDH.js.map +1 -0
  828. package/dist/set-prompt-7HVHERRU.js +188 -0
  829. package/dist/set-prompt-7HVHERRU.js.map +1 -0
  830. package/dist/setup-links-4VVNQVPU.js +141 -0
  831. package/dist/setup-links-4VVNQVPU.js.map +1 -0
  832. package/dist/{shared-J7DQZ2ED.js → shared-QAMP7FZV.js} +8 -6
  833. package/dist/shared-QAMP7FZV.js.map +1 -0
  834. package/dist/shopify-FSHM5M4I.js +3346 -0
  835. package/dist/shopify-FSHM5M4I.js.map +1 -0
  836. package/dist/site-Q2HTRLIW.js +177 -0
  837. package/dist/site-Q2HTRLIW.js.map +1 -0
  838. package/dist/sitemaps-XPGLW24S.js +87 -0
  839. package/dist/sitemaps-XPGLW24S.js.map +1 -0
  840. package/dist/sites-WMBY2HJV.js +101 -0
  841. package/dist/sites-WMBY2HJV.js.map +1 -0
  842. package/dist/skills-3HEILQCU.js +47 -0
  843. package/dist/skills-3HEILQCU.js.map +1 -0
  844. package/dist/sources-2KN4RJNJ.js +30 -0
  845. package/dist/sources-2KN4RJNJ.js.map +1 -0
  846. package/dist/sources-4I2YMS2K.js +421 -0
  847. package/dist/sources-4I2YMS2K.js.map +1 -0
  848. package/dist/stale-IN7WSBLC.js +66 -0
  849. package/dist/stale-IN7WSBLC.js.map +1 -0
  850. package/dist/stats-GNILHSKK.js +34 -0
  851. package/dist/stats-GNILHSKK.js.map +1 -0
  852. package/dist/status-6SLKZWNR.js +62 -0
  853. package/dist/status-6SLKZWNR.js.map +1 -0
  854. package/dist/sticker-KCV3VZHY.js +94 -0
  855. package/dist/sticker-KCV3VZHY.js.map +1 -0
  856. package/dist/stock-VTORKR4C.js +179 -0
  857. package/dist/stock-VTORKR4C.js.map +1 -0
  858. package/dist/studio-QCRA6BY5.js +49 -0
  859. package/dist/studio-QCRA6BY5.js.map +1 -0
  860. package/dist/sync-455DB46Y.js +54 -0
  861. package/dist/sync-455DB46Y.js.map +1 -0
  862. package/dist/sync-A4KKQ3B6.js +265 -0
  863. package/dist/sync-A4KKQ3B6.js.map +1 -0
  864. package/dist/sync-LFZV5NBN.js +54 -0
  865. package/dist/sync-LFZV5NBN.js.map +1 -0
  866. package/dist/sync-definition-IJISZ5VQ.js +55 -0
  867. package/dist/sync-definition-IJISZ5VQ.js.map +1 -0
  868. package/dist/tag-manager-E7QTXBWQ.js +43 -0
  869. package/dist/tag-manager-E7QTXBWQ.js.map +1 -0
  870. package/dist/tags-6OAZOQYO.js +26 -0
  871. package/dist/tags-6OAZOQYO.js.map +1 -0
  872. package/dist/tags-6YRMDX3R.js +20 -0
  873. package/dist/tags-6YRMDX3R.js.map +1 -0
  874. package/dist/tags-EWXZSZYE.js +20 -0
  875. package/dist/tags-EWXZSZYE.js.map +1 -0
  876. package/dist/tags-SZCNPE2D.js +224 -0
  877. package/dist/tags-SZCNPE2D.js.map +1 -0
  878. package/dist/tags-TCFFP534.js +20 -0
  879. package/dist/tags-TCFFP534.js.map +1 -0
  880. package/dist/targeting-constants-D64YO3E7.js +118 -0
  881. package/dist/targeting-constants-D64YO3E7.js.map +1 -0
  882. package/dist/targeting-criteria-ESOC7KNX.js +113 -0
  883. package/dist/targeting-criteria-ESOC7KNX.js.map +1 -0
  884. package/dist/targets-IPBEB5KU.js +102 -0
  885. package/dist/targets-IPBEB5KU.js.map +1 -0
  886. package/dist/templates-IJ7FR3LA.js +178 -0
  887. package/dist/templates-IJ7FR3LA.js.map +1 -0
  888. package/dist/testimonials-IXS7CP6P.js +32 -0
  889. package/dist/testimonials-IXS7CP6P.js.map +1 -0
  890. package/dist/themes-MXNKJWMW.js +94 -0
  891. package/dist/themes-MXNKJWMW.js.map +1 -0
  892. package/dist/top-companies-NO6L2V6M.js +108 -0
  893. package/dist/top-companies-NO6L2V6M.js.map +1 -0
  894. package/dist/translate-QCE5ZB7M.js +600 -0
  895. package/dist/translate-QCE5ZB7M.js.map +1 -0
  896. package/dist/triggers-KXUDMDSA.js +141 -0
  897. package/dist/triggers-KXUDMDSA.js.map +1 -0
  898. package/dist/tweets-ZUKQAAUQ.js +123 -0
  899. package/dist/tweets-ZUKQAAUQ.js.map +1 -0
  900. package/dist/unfollow-A4JVCJBF.js +46 -0
  901. package/dist/unfollow-A4JVCJBF.js.map +1 -0
  902. package/dist/unlink-E3N36NYQ.js +67 -0
  903. package/dist/unlink-E3N36NYQ.js.map +1 -0
  904. package/dist/unstage-TRMHSHED.js +84 -0
  905. package/dist/unstage-TRMHSHED.js.map +1 -0
  906. package/dist/unstage-ZRLLCSQF.js +95 -0
  907. package/dist/unstage-ZRLLCSQF.js.map +1 -0
  908. package/dist/update-EWGWAXAQ.js +142 -0
  909. package/dist/update-EWGWAXAQ.js.map +1 -0
  910. package/dist/update-OKOQE7U2.js +155 -0
  911. package/dist/update-OKOQE7U2.js.map +1 -0
  912. package/dist/update-VSFHID2D.js +63 -0
  913. package/dist/update-VSFHID2D.js.map +1 -0
  914. package/dist/update-XGCGQDJ4.js +98 -0
  915. package/dist/update-XGCGQDJ4.js.map +1 -0
  916. package/dist/upload-BOYMDDEQ.js +126 -0
  917. package/dist/upload-BOYMDDEQ.js.map +1 -0
  918. package/dist/upload-XEHWYMJG.js +150 -0
  919. package/dist/upload-XEHWYMJG.js.map +1 -0
  920. package/dist/upscale-I5P2OHTN.js +109 -0
  921. package/dist/upscale-I5P2OHTN.js.map +1 -0
  922. package/dist/url-options-PCZEQE66.js +130 -0
  923. package/dist/url-options-PCZEQE66.js.map +1 -0
  924. package/dist/url-params-DV37GEQF.js +98 -0
  925. package/dist/url-params-DV37GEQF.js.map +1 -0
  926. package/dist/use-U4HG2NF3.js +95 -0
  927. package/dist/use-U4HG2NF3.js.map +1 -0
  928. package/dist/validate-5AV4FJZ5.js +91 -0
  929. package/dist/validate-5AV4FJZ5.js.map +1 -0
  930. package/dist/variant-FOVE6URJ.js +338 -0
  931. package/dist/variant-FOVE6URJ.js.map +1 -0
  932. package/dist/videos-IJ67PPJV.js +39 -0
  933. package/dist/videos-IJ67PPJV.js.map +1 -0
  934. package/dist/view-HRI3FHCH.js +121 -0
  935. package/dist/view-HRI3FHCH.js.map +1 -0
  936. package/dist/viewer-check-JYUE24M6.js +68 -0
  937. package/dist/viewer-check-JYUE24M6.js.map +1 -0
  938. package/dist/web-LJ36FRWD.js +140 -0
  939. package/dist/web-LJ36FRWD.js.map +1 -0
  940. package/dist/winners-SMMDN6LW.js +113 -0
  941. package/dist/winners-SMMDN6LW.js.map +1 -0
  942. package/dist/winning-ads-JIG2MQHJ.js +84 -0
  943. package/dist/winning-ads-JIG2MQHJ.js.map +1 -0
  944. package/dist/write-commands-7Z34WG2J.js +206 -0
  945. package/dist/write-commands-7Z34WG2J.js.map +1 -0
  946. package/dist/write-commands-BLT2SEC4.js +713 -0
  947. package/dist/write-commands-BLT2SEC4.js.map +1 -0
  948. package/dist/write-commands-GOZU6ENR.js +1015 -0
  949. package/dist/write-commands-GOZU6ENR.js.map +1 -0
  950. package/dist/write-commands-KA3QXVSF.js +737 -0
  951. package/dist/write-commands-KA3QXVSF.js.map +1 -0
  952. package/dist/x-6HBVXIKH.js +47 -0
  953. package/dist/x-6HBVXIKH.js.map +1 -0
  954. package/package.json +9 -2
  955. package/dist/chunk-CHJOTJTZ.js +0 -9989
  956. package/dist/chunk-CHJOTJTZ.js.map +0 -1
  957. package/dist/chunk-HJEMOSPH.js +0 -1292
  958. package/dist/chunk-HJEMOSPH.js.map +0 -1
  959. package/dist/chunk-MF7YA62W.js.map +0 -1
  960. package/dist/chunk-VLUGGVJL.js.map +0 -1
  961. package/dist/chunk-VZEDAFAR.js.map +0 -1
  962. package/dist/chunk-XHC4LMK4.js.map +0 -1
  963. package/dist/client-GR6YL3YX.js +0 -17
  964. package/dist/output-NMQXZF3Z.js +0 -18
  965. /package/dist/{client-GR6YL3YX.js.map → chunk-YQSBHWOI.js.map} +0 -0
  966. /package/dist/{env-4P5HOGNA.js.map → client-26SAJ46D.js.map} +0 -0
  967. /package/dist/{output-NMQXZF3Z.js.map → connect-WYUYS5V4.js.map} +0 -0
  968. /package/dist/{shared-J7DQZ2ED.js.map → customers-HYE7N2H5.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/google/service-read-errors.ts"],"sourcesContent":["/**\n * What a refused non-GAQL read (invoices, identity verification, previews, forecast, themes) tells\n * the agent. A refusal that is the account's situation — not on monthly invoicing, no billing\n * setup — is not a failure of the job: the fix says where the answer lives instead and to carry on.\n */\nimport { ApiError } from \"../../../client.ts\";\nimport { handleConnectionError, isNotConnectedError } from \"../../../error-handler.ts\";\nimport { writeAdsJson } from \"../output.ts\";\nimport type { AdsErrorEnvelope } from \"../types.ts\";\n\ninterface KnownRefusal {\n match: RegExp;\n code: string;\n message: string;\n explanation: string;\n}\n\nconst KNOWN_REFUSALS: KnownRefusal[] = [\n {\n match: /BILLING_SETUP_NOT_ON_MONTHLY_INVOICING/,\n code: \"NOT_INVOICED\",\n message: \"This account is not billed by monthly invoicing, so Google issues no invoices through the API.\",\n explanation:\n \"Degrade, don't abort: the account pays automatically (card or bank), and its receipts are in Google Ads → Billing → Documents for the user to download. Spend itself is readable with `query --preset account-summary`. Carry on with the rest of the job.\",\n },\n {\n match: /no approved billing setup/i,\n code: \"NO_BILLING_SETUP\",\n message: \"This account has no approved billing setup, so it has no invoices.\",\n explanation:\n \"Degrade, don't abort: nothing is billed to this account yet (or a manager account pays). Carry on with the rest of the job.\",\n },\n {\n match:\n /BILLING_NOT_ON_MONTHLY_INVOICING|verification is only open to customers with billing setup for monthly invoicing/,\n code: \"VERIFICATION_NOT_READABLE\",\n message: \"Google only reports advertiser verification through the API for accounts on monthly invoicing.\",\n explanation:\n \"Degrade, don't abort: the status is in Google Ads → Billing → Advertiser verification, where the user can read it. Say that, and carry on with the rest of the job.\",\n },\n {\n match: /UNSUPPORTED_AD_TYPE/,\n code: \"NO_PREVIEW_FOR_AD_TYPE\",\n message:\n \"Google has no shareable preview for this ad type: --ads previews only video ads of Video campaigns, live on YouTube (search, display and Demand Gen ads answer unsupported).\",\n explanation:\n \"Degrade, don't abort: preview a Performance Max campaign with --asset-groups, and describe any other ad from its copy (`ads list`, `query --preset ad-copy-performance`). Carry on with the rest of the job.\",\n },\n];\n\nexport function serviceReadRefusal(message: string): AdsErrorEnvelope | null {\n const known = KNOWN_REFUSALS.find((refusal) => refusal.match.test(message));\n if (!known) return null;\n return {\n ok: false,\n error: {\n code: known.code,\n message: known.message,\n fix: { action: \"reject\", explanation: known.explanation },\n retryable: false,\n },\n };\n}\n\n/** Write the error envelope for a failed service read and exit. */\nexport function exitWithServiceReadError(err: unknown): never {\n if (err instanceof ApiError) {\n if (isNotConnectedError(err.code, err.message)) handleConnectionError(\"google_ads\", err.message);\n writeAdsJson(\n serviceReadRefusal(err.message) ?? {\n ok: false,\n error: {\n code: err.code,\n message: err.message,\n fix: { action: \"reject\", explanation: err.message },\n retryable: err.code === \"RATE_LIMITED\" || err.code === \"UNAVAILABLE\",\n },\n },\n );\n process.exit(1);\n }\n writeAdsJson({\n ok: false,\n error: { code: \"NETWORK_ERROR\", message: err instanceof Error ? err.message : \"Unexpected error\" },\n });\n process.exit(1);\n}\n"],"mappings":";;;;;;;;;;AAiBA,IAAM,iBAAiC;AAAA,EACrC;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,OACE;AAAA,IACF,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SACE;AAAA,IACF,aACE;AAAA,EACJ;AACF;AAEO,SAAS,mBAAmB,SAA0C;AAC3E,QAAM,QAAQ,eAAe,KAAK,CAAC,YAAY,QAAQ,MAAM,KAAK,OAAO,CAAC;AAC1E,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,OAAO;AAAA,MACL,MAAM,MAAM;AAAA,MACZ,SAAS,MAAM;AAAA,MACf,KAAK,EAAE,QAAQ,UAAU,aAAa,MAAM,YAAY;AAAA,MACxD,WAAW;AAAA,IACb;AAAA,EACF;AACF;AAGO,SAAS,yBAAyB,KAAqB;AAC5D,MAAI,eAAe,UAAU;AAC3B,QAAI,oBAAoB,IAAI,MAAM,IAAI,OAAO,EAAG,uBAAsB,cAAc,IAAI,OAAO;AAC/F;AAAA,MACE,mBAAmB,IAAI,OAAO,KAAK;AAAA,QACjC,IAAI;AAAA,QACJ,OAAO;AAAA,UACL,MAAM,IAAI;AAAA,UACV,SAAS,IAAI;AAAA,UACb,KAAK,EAAE,QAAQ,UAAU,aAAa,IAAI,QAAQ;AAAA,UAClD,WAAW,IAAI,SAAS,kBAAkB,IAAI,SAAS;AAAA,QACzD;AAAA,MACF;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,eAAa;AAAA,IACX,IAAI;AAAA,IACJ,OAAO,EAAE,MAAM,iBAAiB,SAAS,eAAe,QAAQ,IAAI,UAAU,mBAAmB;AAAA,EACnG,CAAC;AACD,UAAQ,KAAK,CAAC;AAChB;","names":[]}
@@ -0,0 +1,51 @@
1
+ import {
2
+ failApi
3
+ } from "./chunk-XE3WS3QE.js";
4
+ import {
5
+ HUBSPOT_MISSING_GRANT_MARKER,
6
+ HUBSPOT_NOT_CONNECTED_MESSAGE
7
+ } from "./chunk-KRIK2JR4.js";
8
+ import {
9
+ ApiError
10
+ } from "./chunk-HREWXNTO.js";
11
+ import {
12
+ writeJson
13
+ } from "./chunk-WOTDHRNF.js";
14
+
15
+ // src/commands/hubspot/refusal.ts
16
+ var CONTINUE = "Keep going with the wider task: say which part you could not read, skip it, and finish everything else. If the `request_connection` call fails, say so plainly and give the exact route: dashboard \u2192 Brain \u2192 Integrations \u2192 Platforms \u2192 HubSpot.";
17
+ function hubspotRefusal(code, message, reason = "so I can count a contact becoming a customer") {
18
+ if (code === "NOT_FOUND" && message.includes(HUBSPOT_NOT_CONNECTED_MESSAGE)) {
19
+ return {
20
+ code: "NO_HUBSPOT_CONNECTION",
21
+ fix: {
22
+ action: "request_connection",
23
+ explanation: `AGENT INSTRUCTION: HubSpot is not connected, and only the user can connect it. Call the \`request_connection\` tool with { platform: "hubspot", reason } \u2014 reason in their words, e.g. "${reason}" \u2014 and they connect it inside the chat; then run this command again. ` + CONTINUE
24
+ }
25
+ };
26
+ }
27
+ if (code === "FORBIDDEN" && message.includes(HUBSPOT_MISSING_GRANT_MARKER)) {
28
+ return {
29
+ code: "HUBSPOT_RECONNECT_REQUIRED",
30
+ fix: {
31
+ action: "request_connection",
32
+ explanation: 'AGENT INSTRUCTION: HubSpot is connected \u2014 do not tell the user it is missing, and do not retry. Its access does not cover this read (it was connected before Baker asked for it, or the access was withdrawn), and only the user can widen it. Call the `request_connection` tool with { platform: "hubspot", reason } naming what you need to read; the card offers them a Reconnect button. Run this command again once they have. ' + CONTINUE
33
+ }
34
+ };
35
+ }
36
+ return null;
37
+ }
38
+ function failNotConnected(err, reason) {
39
+ const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message, reason) : null;
40
+ if (err instanceof ApiError && refusal !== null) {
41
+ writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });
42
+ process.exit(1);
43
+ }
44
+ failApi(err);
45
+ }
46
+
47
+ export {
48
+ hubspotRefusal,
49
+ failNotConnected
50
+ };
51
+ //# sourceMappingURL=chunk-K2RYUZ5Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/hubspot/refusal.ts"],"sourcesContent":["import { HUBSPOT_MISSING_GRANT_MARKER, HUBSPOT_NOT_CONNECTED_MESSAGE } from \"@baker/api\";\nimport { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { failApi } from \"../actions/shared.ts\";\n\nexport interface HubspotRefusal {\n code: \"NO_HUBSPOT_CONNECTION\" | \"HUBSPOT_RECONNECT_REQUIRED\";\n fix: { action: \"request_connection\"; explanation: string };\n}\n\nconst CONTINUE =\n \"Keep going with the wider task: say which part you could not read, skip it, and finish everything else. If the \" +\n \"`request_connection` call fails, say so plainly and give the exact route: dashboard → Brain → Integrations → \" +\n \"Platforms → HubSpot.\";\n\n/**\n * The two HubSpot refusals only the user can clear, as the fix the agent\n * relays: the in-chat connect card, which connects HubSpot when nothing is\n * connected and reconnects it when the connection does not allow the read.\n * Every command that reads HubSpot shares this, so `baker hubspot` and\n * `baker analytics sources` cannot answer the same refusal two ways. Null for\n * every other refusal. `reason` is the example the agent words its ask on —\n * pass one that fits the read that was refused.\n *\n * Matched on the backend's own sentences (shared from `@baker/api`), because\n * the status alone does not tell them apart: a 404 is also \"no such source\",\n * and a 403 also \"you cannot change this company\".\n */\nexport function hubspotRefusal(\n code: string,\n message: string,\n reason = \"so I can count a contact becoming a customer\",\n): HubspotRefusal | null {\n if (code === \"NOT_FOUND\" && message.includes(HUBSPOT_NOT_CONNECTED_MESSAGE)) {\n return {\n code: \"NO_HUBSPOT_CONNECTION\",\n fix: {\n action: \"request_connection\",\n explanation:\n \"AGENT INSTRUCTION: HubSpot is not connected, and only the user can connect it. Call the `request_connection` \" +\n `tool with { platform: \"hubspot\", reason } — reason in their words, e.g. \"${reason}\" — and they connect it ` +\n \"inside the chat; then run this command again. \" +\n CONTINUE,\n },\n };\n }\n if (code === \"FORBIDDEN\" && message.includes(HUBSPOT_MISSING_GRANT_MARKER)) {\n return {\n code: \"HUBSPOT_RECONNECT_REQUIRED\",\n fix: {\n action: \"request_connection\",\n explanation:\n \"AGENT INSTRUCTION: HubSpot is connected — do not tell the user it is missing, and do not retry. Its access does \" +\n \"not cover this read (it was connected before Baker asked for it, or the access was withdrawn), and only the user \" +\n 'can widen it. Call the `request_connection` tool with { platform: \"hubspot\", reason } naming what you need to ' +\n \"read; the card offers them a Reconnect button. Run this command again once they have. \" +\n CONTINUE,\n },\n };\n }\n return null;\n}\n\n/**\n * \"No HubSpot connected\" and \"connected, but not for this\" are the most common\n * reasons these commands can't answer, and the agent can fix neither — only the\n * user can. Turn them into the in-chat connect card instead of a bare error.\n */\nexport function failNotConnected(err: unknown, reason?: string): never {\n const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message, reason) : null;\n if (err instanceof ApiError && refusal !== null) {\n writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });\n process.exit(1);\n }\n failApi(err);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAUA,IAAM,WACJ;AAiBK,SAAS,eACd,MACA,SACA,SAAS,gDACc;AACvB,MAAI,SAAS,eAAe,QAAQ,SAAS,6BAA6B,GAAG;AAC3E,WAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,aACE,gMAC4E,MAAM,gFAElF;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,eAAe,QAAQ,SAAS,4BAA4B,GAAG;AAC1E,WAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,aACE,+aAIA;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAOO,SAAS,iBAAiB,KAAc,QAAwB;AACrE,QAAM,UAAU,eAAe,WAAW,eAAe,IAAI,MAAM,IAAI,SAAS,MAAM,IAAI;AAC1F,MAAI,eAAe,YAAY,YAAY,MAAM;AAC/C,cAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,QAAQ,MAAM,SAAS,IAAI,SAAS,KAAK,QAAQ,IAAI,EAAE,CAAC;AAC9F,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,UAAQ,GAAG;AACb;","names":[]}
@@ -0,0 +1,58 @@
1
+ import {
2
+ readAvatars
3
+ } from "./chunk-LEIQAHWF.js";
4
+
5
+ // src/commands/canvas/scaffold-static-ad-paths.ts
6
+ import path from "path";
7
+ function resolveScaffoldStaticAdPaths(rawFile, out, cwd = process.cwd(), slug) {
8
+ const file = rawFile.trim();
9
+ const imageIsUrl = /^https?:\/\//i.test(file);
10
+ const imageSource = imageIsUrl ? file : path.resolve(cwd, file);
11
+ const outPath = out ? path.resolve(cwd, out) : slug ? path.join(cwd, "src", "creatives", slug, `${slug}.canvas.json`) : imageIsUrl ? path.join(cwd, "static-ad.canvas.json") : path.join(path.dirname(imageSource), "static-ad.canvas.json");
12
+ const blueprintPath = path.join(path.dirname(outPath), "prompt.json");
13
+ const creativeDir = slug ? path.dirname(outPath) : null;
14
+ const definitionPath = creativeDir ? path.join(creativeDir, "_definition.md") : null;
15
+ const referencesDir = creativeDir ? path.join(creativeDir, "references") : null;
16
+ return { imageIsUrl, imageSource, outPath, blueprintPath, creativeDir, definitionPath, referencesDir };
17
+ }
18
+ var SCAFFOLD_SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
19
+ var SCAFFOLD_SLUG_MAX_LENGTH = 100;
20
+ function isValidScaffoldSlug(slug) {
21
+ return slug.length <= SCAFFOLD_SLUG_MAX_LENGTH && SCAFFOLD_SLUG_PATTERN.test(slug);
22
+ }
23
+
24
+ // src/commands/avatars/resolveCast.ts
25
+ async function resolveCastAvatar(handle) {
26
+ try {
27
+ const avatar = await readAvatars("/api/avatars/get", { handle });
28
+ if (avatar.status && avatar.status !== "ready") {
29
+ return {
30
+ error: `Avatar \`${handle}\` is ${avatar.status}, not ready \u2014 \`baker avatars get ${handle} --wait\` returns the moment it is.`
31
+ };
32
+ }
33
+ if (!avatar.sheetUrl)
34
+ return { error: `Avatar \`${handle}\` has no identity sheet yet, so the ad cannot ground on their face.` };
35
+ return { sheetUrl: avatar.sheetUrl, subjectDescription: avatar.subjectDescription, handle };
36
+ } catch (e) {
37
+ return {
38
+ error: `Could not read avatar \`${handle}\`: ${e instanceof Error ? e.message : String(e)}. \`baker avatars list\` shows who there is.`
39
+ };
40
+ }
41
+ }
42
+ async function resolveCastAvatars(flag) {
43
+ const handles = String(flag ?? "").split(",").map((h) => h.trim()).filter(Boolean);
44
+ const avatars = [];
45
+ for (const handle of handles) {
46
+ const resolved = await resolveCastAvatar(handle);
47
+ if ("error" in resolved) return resolved;
48
+ avatars.push(resolved);
49
+ }
50
+ return { handles, avatars };
51
+ }
52
+
53
+ export {
54
+ resolveScaffoldStaticAdPaths,
55
+ isValidScaffoldSlug,
56
+ resolveCastAvatars
57
+ };
58
+ //# sourceMappingURL=chunk-K5OQES4V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/canvas/scaffold-static-ad-paths.ts","../src/commands/avatars/resolveCast.ts"],"sourcesContent":["import path from \"node:path\";\n\nexport type ScaffoldStaticAdPaths = {\n /** True when the source arg is an http(s) URL — the `original` ingest uses `source: \"url\"`. */\n imageIsUrl: boolean;\n /** The image source the emitted canvas reads: a URL kept verbatim, or a resolved local path. */\n imageSource: string;\n /** Where the canvas is written. */\n outPath: string;\n /** Where the baked blueprint (`prompt.json`) is written — always alongside the canvas. */\n blueprintPath: string;\n /**\n * The creative folder (`src/creatives/<slug>/`) when routing by slug, else null. When set, the\n * scaffold auto-writes `_definition.md` and copies the source into a committed `references/` dir so\n * the canvas is portable to a fresh sandbox; without a slug it stays a bare ad-hoc canvas file.\n */\n creativeDir: string | null;\n /** Where `_definition.md` is written (creative-convention only). */\n definitionPath: string | null;\n /** Directory for the committed source/reference assets (creative-convention only). */\n referencesDir: string | null;\n};\n\n/**\n * Derive the image source and output paths from the raw CLI args. A URL is kept\n * verbatim (path.resolve would collapse `//` and mangle it into a bogus local\n * path); a local file resolves against cwd. The URL case has no local dir to\n * anchor outputs to, so they default to `cwd`. The raw arg is trimmed first so a\n * copy-pasted, whitespace-padded URL is still detected as a URL rather than\n * falling through to path.resolve.\n *\n * `slug` routes the canvas into the repo convention `src/creatives/{slug}/`\n * ({slug}.canvas.json + prompt.json beside it) so runs attach to the creative's\n * durable generation history. An explicit `out` wins over `slug`.\n */\nexport function resolveScaffoldStaticAdPaths(\n rawFile: string,\n out?: string,\n cwd: string = process.cwd(),\n slug?: string,\n): ScaffoldStaticAdPaths {\n const file = rawFile.trim();\n const imageIsUrl = /^https?:\\/\\//i.test(file);\n const imageSource = imageIsUrl ? file : path.resolve(cwd, file);\n const outPath = out\n ? path.resolve(cwd, out)\n : slug\n ? path.join(cwd, \"src\", \"creatives\", slug, `${slug}.canvas.json`)\n : imageIsUrl\n ? path.join(cwd, \"static-ad.canvas.json\")\n : path.join(path.dirname(imageSource), \"static-ad.canvas.json\");\n const blueprintPath = path.join(path.dirname(outPath), \"prompt.json\");\n // The creative convention (auto _definition.md + committed references/) only applies when a slug\n // routes the canvas into src/creatives/<slug>/; an explicit --out is treated as an ad-hoc canvas.\n const creativeDir = slug ? path.dirname(outPath) : null;\n const definitionPath = creativeDir ? path.join(creativeDir, \"_definition.md\") : null;\n const referencesDir = creativeDir ? path.join(creativeDir, \"references\") : null;\n return { imageIsUrl, imageSource, outPath, blueprintPath, creativeDir, definitionPath, referencesDir };\n}\n\nexport const SCAFFOLD_SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;\n\n// Mirrors the backend's CREATIVE_SLUG_MAX_LENGTH so a scaffolded creative can\n// always sync + record runs (an over-long slug is rejected server-side).\nexport const SCAFFOLD_SLUG_MAX_LENGTH = 100;\n\nexport function isValidScaffoldSlug(slug: string): boolean {\n return slug.length <= SCAFFOLD_SLUG_MAX_LENGTH && SCAFFOLD_SLUG_PATTERN.test(slug);\n}\n","import type { AvatarSummary } from \"@baker/api\";\nimport type { CastAvatar } from \"../../engine/scaffold/castAvatar.ts\";\nimport { readAvatars } from \"./transport.ts\";\n\n/** One avatar, ready to cast: its identity sheet and subject description, or why it cannot be. */\nasync function resolveCastAvatar(handle: string): Promise<CastAvatar | { error: string }> {\n try {\n const avatar = await readAvatars<AvatarSummary>(\"/api/avatars/get\", { handle });\n if (avatar.status && avatar.status !== \"ready\") {\n return {\n error: `Avatar \\`${handle}\\` is ${avatar.status}, not ready — \\`baker avatars get ${handle} --wait\\` returns the moment it is.`,\n };\n }\n if (!avatar.sheetUrl)\n return { error: `Avatar \\`${handle}\\` has no identity sheet yet, so the ad cannot ground on their face.` };\n return { sheetUrl: avatar.sheetUrl, subjectDescription: avatar.subjectDescription, handle };\n } catch (e) {\n return {\n error: `Could not read avatar \\`${handle}\\`: ${e instanceof Error ? e.message : String(e)}. \\`baker avatars list\\` shows who there is.`,\n };\n }\n}\n\n/**\n * Resolve a scaffold's `--avatar marta,joan` flag, in order. Called before the billed\n * passes, so a handle that cannot be cast fails for free.\n */\nexport async function resolveCastAvatars(\n flag: unknown,\n): Promise<{ handles: string[]; avatars: CastAvatar[] } | { error: string }> {\n const handles = String(flag ?? \"\")\n .split(\",\")\n .map((h) => h.trim())\n .filter(Boolean);\n const avatars: CastAvatar[] = [];\n for (const handle of handles) {\n const resolved = await resolveCastAvatar(handle);\n if (\"error\" in resolved) return resolved;\n avatars.push(resolved);\n }\n return { handles, avatars };\n}\n"],"mappings":";;;;;AAAA,OAAO,UAAU;AAmCV,SAAS,6BACd,SACA,KACA,MAAc,QAAQ,IAAI,GAC1B,MACuB;AACvB,QAAM,OAAO,QAAQ,KAAK;AAC1B,QAAM,aAAa,gBAAgB,KAAK,IAAI;AAC5C,QAAM,cAAc,aAAa,OAAO,KAAK,QAAQ,KAAK,IAAI;AAC9D,QAAM,UAAU,MACZ,KAAK,QAAQ,KAAK,GAAG,IACrB,OACE,KAAK,KAAK,KAAK,OAAO,aAAa,MAAM,GAAG,IAAI,cAAc,IAC9D,aACE,KAAK,KAAK,KAAK,uBAAuB,IACtC,KAAK,KAAK,KAAK,QAAQ,WAAW,GAAG,uBAAuB;AACpE,QAAM,gBAAgB,KAAK,KAAK,KAAK,QAAQ,OAAO,GAAG,aAAa;AAGpE,QAAM,cAAc,OAAO,KAAK,QAAQ,OAAO,IAAI;AACnD,QAAM,iBAAiB,cAAc,KAAK,KAAK,aAAa,gBAAgB,IAAI;AAChF,QAAM,gBAAgB,cAAc,KAAK,KAAK,aAAa,YAAY,IAAI;AAC3E,SAAO,EAAE,YAAY,aAAa,SAAS,eAAe,aAAa,gBAAgB,cAAc;AACvG;AAEO,IAAM,wBAAwB;AAI9B,IAAM,2BAA2B;AAEjC,SAAS,oBAAoB,MAAuB;AACzD,SAAO,KAAK,UAAU,4BAA4B,sBAAsB,KAAK,IAAI;AACnF;;;AC/DA,eAAe,kBAAkB,QAAyD;AACxF,MAAI;AACF,UAAM,SAAS,MAAM,YAA2B,oBAAoB,EAAE,OAAO,CAAC;AAC9E,QAAI,OAAO,UAAU,OAAO,WAAW,SAAS;AAC9C,aAAO;AAAA,QACL,OAAO,YAAY,MAAM,SAAS,OAAO,MAAM,0CAAqC,MAAM;AAAA,MAC5F;AAAA,IACF;AACA,QAAI,CAAC,OAAO;AACV,aAAO,EAAE,OAAO,YAAY,MAAM,uEAAuE;AAC3G,WAAO,EAAE,UAAU,OAAO,UAAU,oBAAoB,OAAO,oBAAoB,OAAO;AAAA,EAC5F,SAAS,GAAG;AACV,WAAO;AAAA,MACL,OAAO,2BAA2B,MAAM,OAAO,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,CAAC;AAAA,IAC3F;AAAA,EACF;AACF;AAMA,eAAsB,mBACpB,MAC2E;AAC3E,QAAM,UAAU,OAAO,QAAQ,EAAE,EAC9B,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACnB,OAAO,OAAO;AACjB,QAAM,UAAwB,CAAC;AAC/B,aAAW,UAAU,SAAS;AAC5B,UAAM,WAAW,MAAM,kBAAkB,MAAM;AAC/C,QAAI,WAAW,SAAU,QAAO;AAChC,YAAQ,KAAK,QAAQ;AAAA,EACvB;AACA,SAAO,EAAE,SAAS,QAAQ;AAC5B;","names":[]}
@@ -0,0 +1,455 @@
1
+ import {
2
+ parseBrandTokens
3
+ } from "./chunk-V5HDRJQW.js";
4
+
5
+ // src/engine/brand/fonts.ts
6
+ import { posix } from "path";
7
+ var GOOGLE_CSS2 = "https://fonts.googleapis.com/css2";
8
+ function parseGoogleFontFaces(css) {
9
+ const faces = [];
10
+ const re = /\/\*\s*([\w-]+)\s*\*\/\s*@font-face\s*\{([^}]*)\}/g;
11
+ for (const match of String(css).matchAll(re)) {
12
+ const subset = match[1] ?? "";
13
+ const body = match[2] ?? "";
14
+ const family = body.match(/font-family\s*:\s*['"]?([^'";]+)['"]?\s*;/i)?.[1]?.trim();
15
+ const url = body.match(/src\s*:\s*url\(\s*['"]?([^'")]+)['"]?\s*\)/i)?.[1]?.trim();
16
+ const weight = body.match(/font-weight\s*:\s*(\d{3})\s*;/i)?.[1];
17
+ if (!family || !url || !weight) continue;
18
+ faces.push({
19
+ subset,
20
+ family,
21
+ style: body.match(/font-style\s*:\s*([\w-]+)\s*;/i)?.[1]?.trim() ?? "normal",
22
+ weight: Number(weight),
23
+ url,
24
+ unicodeRange: body.match(/unicode-range\s*:\s*([^;]+);/i)?.[1]?.trim() ?? ""
25
+ });
26
+ }
27
+ return faces;
28
+ }
29
+ function fontFileName(face) {
30
+ const family = face.family.replace(/[^A-Za-z0-9]/g, "");
31
+ const style = face.style === "italic" ? "italic" : "";
32
+ return `${family}-${face.weight}${style}-${face.subset}.woff2`;
33
+ }
34
+ function fontFaceHref(face) {
35
+ return `../brand/fonts/${fontFileName(face)}`;
36
+ }
37
+ function renderFontFaceCss(faces) {
38
+ return faces.map(
39
+ (face) => [
40
+ "@font-face {",
41
+ ` font-family: '${face.family}';`,
42
+ ` font-style: ${face.style};`,
43
+ ` font-weight: ${face.weight};`,
44
+ " font-display: swap;",
45
+ ` src: url('${fontFaceHref(face)}') format('woff2');`,
46
+ ...face.unicodeRange ? [` unicode-range: ${face.unicodeRange};`] : [],
47
+ "}"
48
+ ].join("\n")
49
+ ).join("\n");
50
+ }
51
+ var FONT_PROVIDERS = ["google", "fontsource"];
52
+ var FONTSOURCE_API = "https://api.fontsource.org/v1";
53
+ var FONT_STYLES = ["normal", "italic"];
54
+ var ITAL_AXIS = { normal: 0, italic: 1 };
55
+ function fontsourceId(family) {
56
+ return family.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
57
+ }
58
+ function fontsourceFaces(meta, weights, subsets, styles = ["normal"]) {
59
+ const faces = [];
60
+ for (const subset of subsets.filter((s) => meta.subsets.includes(s))) {
61
+ for (const weight of weights.filter((w) => meta.weights.includes(w))) {
62
+ for (const style of styles.filter((style2) => meta.styles.includes(style2))) {
63
+ const url = meta.variants[String(weight)]?.[style]?.[subset]?.url?.woff2;
64
+ if (!url) continue;
65
+ faces.push({
66
+ subset,
67
+ family: meta.family,
68
+ style,
69
+ weight,
70
+ url,
71
+ unicodeRange: meta.unicodeRange?.[subset] ?? "",
72
+ provider: "fontsource"
73
+ });
74
+ }
75
+ }
76
+ }
77
+ return faces;
78
+ }
79
+ function undisambiguatedSubsets(faces) {
80
+ if (new Set(faces.map((face) => face.subset)).size < 2) return [];
81
+ return [...new Set(faces.filter((face) => !face.unicodeRange).map((face) => face.subset))];
82
+ }
83
+ function suggestFamilies(wanted, catalogue, limit = 5) {
84
+ const key = (s) => s.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
85
+ const target = key(wanted);
86
+ if (!target) return [];
87
+ const words = target.split(" ");
88
+ const scored = catalogue.map((family) => {
89
+ const candidate = key(family);
90
+ if (candidate === target) return { family, score: 0 };
91
+ if (candidate.startsWith(target)) return { family, score: 1 };
92
+ if (candidate.includes(target)) return { family, score: 2 };
93
+ const shared = words.filter((w) => w.length > 2 && candidate.includes(w)).length;
94
+ return { family, score: shared > 0 ? 3 + (words.length - shared) : Number.POSITIVE_INFINITY };
95
+ }).filter((c) => Number.isFinite(c.score)).sort((a, b) => a.score - b.score || a.family.localeCompare(b.family));
96
+ return scored.slice(0, limit).map((c) => c.family);
97
+ }
98
+ function asFontsourceMeta(body) {
99
+ if (typeof body !== "object" || body === null) return null;
100
+ const meta = body;
101
+ const ok = typeof meta.family === "string" && Array.isArray(meta.weights) && Array.isArray(meta.styles) && Array.isArray(meta.subsets) && typeof meta.variants === "object" && meta.variants !== null;
102
+ return ok ? meta : null;
103
+ }
104
+ async function probeGoogleFaces(family, lookup) {
105
+ const got = await lookup(googleFontCssUrl(family, STANDARD_WEIGHTS, FONT_STYLES));
106
+ if (got.status === "unreachable") return null;
107
+ return got.status === "served" ? parseGoogleFontFaces(got.css) : [];
108
+ }
109
+ async function resolveFromGoogle(family, weights, subsets, styles, deps) {
110
+ const google = await deps.lookupGoogleCss(googleFontCssUrl(family, weights, FONT_STYLES));
111
+ if (google.status === "unreachable") return { ok: false, reason: "unreachable", provider: "google" };
112
+ if (google.status === "absent") {
113
+ const served2 = await probeGoogleFaces(family, deps.lookupGoogleCss);
114
+ if (served2 === null) return { ok: false, reason: "unreachable", provider: "google" };
115
+ const available = [...new Set(served2.map((face) => face.weight))].sort((a, b) => a - b);
116
+ return available.length > 0 ? { ok: false, reason: "weight", provider: "google", available } : null;
117
+ }
118
+ const served = parseGoogleFontFaces(google.css);
119
+ if (served.length === 0) return null;
120
+ const availableStyles = [...new Set(served.map((face) => face.style))].sort();
121
+ const inSubset = served.filter((face) => subsets.includes(face.subset));
122
+ const faces = inSubset.filter((face) => styles.includes(face.style)).map((face) => ({ ...face, provider: "google" }));
123
+ if (faces.length > 0) return { ok: true, provider: "google", faces, availableStyles };
124
+ return { ok: false, reason: "subset", provider: "google", available: [...new Set(served.map((f) => f.subset))] };
125
+ }
126
+ async function resolveBrandFaces(family, weights, subsets, deps, styles = ["normal"]) {
127
+ const google = await resolveFromGoogle(family, weights, subsets, styles, deps);
128
+ if (google) return google;
129
+ let body;
130
+ try {
131
+ body = await deps.fetchJson(`${FONTSOURCE_API}/fonts/${fontsourceId(family)}`);
132
+ } catch {
133
+ return { ok: false, reason: "unreachable", provider: "fontsource" };
134
+ }
135
+ const meta = asFontsourceMeta(body);
136
+ if (meta) {
137
+ const faces = fontsourceFaces(meta, weights, subsets, styles);
138
+ const ambiguous = undisambiguatedSubsets(faces);
139
+ if (ambiguous.length > 0) {
140
+ return { ok: false, reason: "ambiguous-subsets", provider: "fontsource", available: meta.subsets };
141
+ }
142
+ if (faces.length > 0) return { ok: true, provider: "fontsource", faces, availableStyles: [...meta.styles].sort() };
143
+ if (!subsets.some((subset) => meta.subsets.includes(subset))) {
144
+ return { ok: false, reason: "subset", provider: "fontsource", available: meta.subsets };
145
+ }
146
+ return { ok: false, reason: "weight", provider: "fontsource", available: meta.weights };
147
+ }
148
+ return { ok: false, reason: "unknown-family" };
149
+ }
150
+ function rebaseFontFaceSrc(block, fromDir, toDir = "src/styles") {
151
+ return block.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi, (whole, _quote, href) => {
152
+ if (!isRepoFontHref(href)) return whole;
153
+ const target = posix.normalize(posix.join(fromDir, href));
154
+ return `url('${posix.relative(toDir, target)}')`;
155
+ });
156
+ }
157
+ function declaredFontFaces(source) {
158
+ const out = [];
159
+ for (const rule of stripCssComments(source).matchAll(/@font-face\s*\{[^}]*\}/gi)) {
160
+ const family = rule[0].match(/font-family\s*:\s*([^;]+)/i)?.[1];
161
+ if (!family || rule.index === void 0) continue;
162
+ out.push({ family: normalizeFamily(family), block: source.slice(rule.index, rule.index + rule[0].length) });
163
+ }
164
+ return out;
165
+ }
166
+ function isRepoFontHref(href) {
167
+ return !/^(?:data:|https?:|\/)/i.test(href);
168
+ }
169
+ function missingFontFiles(urls, available) {
170
+ return urls.filter(isRepoFontHref).map((url) => posix.basename(url.split("?")[0] ?? "")).filter((file) => !available.has(file));
171
+ }
172
+ function planFontAdoption(sources, families) {
173
+ const wanted = new Map(families.map((family) => [normalizeFamily(family), family]));
174
+ const byFamily = /* @__PURE__ */ new Map();
175
+ for (const { path, source } of sources) {
176
+ const dir = posix.dirname(path);
177
+ for (const face of declaredFontFaces(source)) {
178
+ if (!wanted.has(face.family)) continue;
179
+ const perFile = byFamily.get(face.family) ?? /* @__PURE__ */ new Map();
180
+ perFile.set(path, [...perFile.get(path) ?? [], rebaseFontFaceSrc(face.block, dir)]);
181
+ byFamily.set(face.family, perFile);
182
+ }
183
+ }
184
+ const plans = [];
185
+ const conflicts = [];
186
+ for (const [family, perFile] of byFamily) {
187
+ const display = wanted.get(family) ?? family;
188
+ const files = [...perFile.keys()];
189
+ const shapes = new Set([...perFile.values()].map((blocks2) => blocks2.join("\n")));
190
+ if (shapes.size > 1) {
191
+ conflicts.push({ family: display, files });
192
+ continue;
193
+ }
194
+ const blocks = perFile.get(files[0] ?? "") ?? [];
195
+ const urls = blocks.flatMap(
196
+ (block) => [...block.matchAll(/url\(\s*['"]?([^'")]+)['"]?\s*\)/gi)].map((m) => m[1] ?? "")
197
+ );
198
+ plans.push({ family: display, blocks, files, urls });
199
+ }
200
+ return { plans, conflicts };
201
+ }
202
+ async function fontsourceCatalogue(deps) {
203
+ const body = await deps.fetchJson(`${FONTSOURCE_API}/fonts`).catch(() => null);
204
+ if (!Array.isArray(body)) return [];
205
+ return body.map((entry) => typeof entry === "object" && entry !== null ? entry.family : null).filter((family) => typeof family === "string");
206
+ }
207
+ function parseWeightAxis(spec) {
208
+ const axis = spec.match(/wght@([^&]+)/i)?.[1] ?? "";
209
+ const weights = /* @__PURE__ */ new Set();
210
+ for (const tuple of axis.split(";")) {
211
+ const last = tuple.split(",").pop()?.trim() ?? "";
212
+ const range = last.match(/^(\d{3})\.\.(\d{3})$/);
213
+ if (range) {
214
+ for (let w = Number(range[1]); w <= Number(range[2]); w += 100) weights.add(w);
215
+ } else if (/^\d{3}$/.test(last)) {
216
+ weights.add(Number(last));
217
+ }
218
+ }
219
+ return [...weights].sort((a, b) => a - b);
220
+ }
221
+ function googleFontRequests(css) {
222
+ const out = [];
223
+ for (const link of String(css).matchAll(/fonts\.googleapis\.com\/[^\s"')]+/gi)) {
224
+ for (const param of link[0].matchAll(/[?&]family=([^&]+)/gi)) {
225
+ const [namePart, ...specParts] = (param[1] ?? "").split(":");
226
+ const family = decodeURIComponent((namePart ?? "").replaceAll("+", " ")).trim();
227
+ if (!family) continue;
228
+ out.push({ family, weights: parseWeightAxis(specParts.join(":")) });
229
+ }
230
+ }
231
+ return out;
232
+ }
233
+ function resolveFetchWeights(flag, declared) {
234
+ if (flag) {
235
+ return String(flag).split(",").map((w) => Number(w.trim())).filter((w) => Number.isInteger(w) && w >= 100 && w <= 900);
236
+ }
237
+ return declared?.length ? declared : [400];
238
+ }
239
+ var DEFAULT_SUBSETS = ["latin"];
240
+ function resolveFetchSubsets(flag, selfHosted) {
241
+ const asked = String(flag ?? "").split(",").map((subset) => subset.trim()).filter(Boolean);
242
+ const named = flag ? [...new Set(asked)] : selfHosted;
243
+ return named.length > 0 ? named : [...DEFAULT_SUBSETS];
244
+ }
245
+ function resolveFetchStyles(italic, selfHosted) {
246
+ return italic || selfHosted.includes("italic") ? ["normal", "italic"] : ["normal"];
247
+ }
248
+ function googleFontCssUrl(family, weights, styles = ["normal"]) {
249
+ const name = family.trim().split(/\s+/).map(encodeURIComponent).join("+");
250
+ const sorted = [...new Set(weights)].sort((a, b) => a - b);
251
+ if (sorted.length === 0) return `${GOOGLE_CSS2}?family=${name}&display=swap`;
252
+ const wanted = FONT_STYLES.filter((style) => styles.includes(style));
253
+ const spec = wanted.length > 1 ? `${name}:ital,wght@${wanted.flatMap((style) => sorted.map((w) => `${ITAL_AXIS[style]},${w}`)).join(";")}` : `${name}:wght@${sorted.join(";")}`;
254
+ return `${GOOGLE_CSS2}?family=${spec}&display=swap`;
255
+ }
256
+ var STANDARD_WEIGHTS = [100, 200, 300, 400, 500, 600, 700, 800, 900];
257
+ async function probeServedWeights(family, fetchCss) {
258
+ const css = await fetchCss(googleFontCssUrl(family, STANDARD_WEIGHTS));
259
+ if (css === null) return [];
260
+ return [...new Set(parseGoogleFontFaces(css).map((face) => face.weight))].sort((a, b) => a - b);
261
+ }
262
+ async function checkFontRequests(requests, fetchCss) {
263
+ const results = [];
264
+ for (const request of requests) {
265
+ const css = await fetchCss(googleFontCssUrl(request.family, request.weights));
266
+ if (css === null) {
267
+ const served2 = await probeServedWeights(request.family, fetchCss);
268
+ results.push({
269
+ family: request.family,
270
+ requested: request.weights,
271
+ served: served2,
272
+ missing: request.weights.filter((w) => !served2.includes(w)),
273
+ subsets: [],
274
+ cause: served2.length === 0 ? "unknown-family" : "unavailable-weight"
275
+ });
276
+ continue;
277
+ }
278
+ const faces = parseGoogleFontFaces(css);
279
+ const served = [...new Set(faces.map((f) => f.weight))].sort((a, b) => a - b);
280
+ results.push({
281
+ family: request.family,
282
+ requested: request.weights,
283
+ served,
284
+ missing: request.weights.filter((w) => !served.includes(w)),
285
+ subsets: [...new Set(faces.map((f) => f.subset))]
286
+ });
287
+ }
288
+ return results;
289
+ }
290
+ var GENERIC_FAMILIES = /* @__PURE__ */ new Set([
291
+ "sans-serif",
292
+ "serif",
293
+ "monospace",
294
+ "cursive",
295
+ "fantasy",
296
+ "system-ui",
297
+ "ui-sans-serif",
298
+ "ui-serif",
299
+ "ui-monospace",
300
+ "ui-rounded",
301
+ "arial",
302
+ "helvetica",
303
+ "georgia",
304
+ "times",
305
+ "courier",
306
+ "inherit",
307
+ "initial",
308
+ "unset"
309
+ ]);
310
+ function stripCssComments(css) {
311
+ return css.replace(/\/\*[\s\S]*?\*\//g, (block) => block.replace(/[^\n]/g, " "));
312
+ }
313
+ function normalizeFamily(raw) {
314
+ return raw.trim().replace(/^['"]|['"]$/g, "").trim().toLowerCase();
315
+ }
316
+ function fontFaceFamilies(css) {
317
+ const out = /* @__PURE__ */ new Set();
318
+ for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
319
+ const family = (rule[1] ?? "").match(/font-family\s*:\s*([^;]+)/i)?.[1];
320
+ if (family) out.add(normalizeFamily(family));
321
+ }
322
+ return out;
323
+ }
324
+ function declaredWeights(body) {
325
+ const spec = (body.match(/font-weight\s*:\s*([^;}]+)/i)?.[1] ?? "").match(/\d{3}/g) ?? [];
326
+ if (spec.length !== 2) return spec.map(Number);
327
+ const range = [];
328
+ for (let w = Number(spec[0]); w <= Number(spec[1]); w += 100) range.push(w);
329
+ return range;
330
+ }
331
+ function selfHostedWeights(css, family) {
332
+ const target = normalizeFamily(family);
333
+ const weights = /* @__PURE__ */ new Set();
334
+ for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
335
+ const body = rule[1] ?? "";
336
+ const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
337
+ if (!declared || normalizeFamily(declared) !== target) continue;
338
+ for (const weight of declaredWeights(body)) weights.add(weight);
339
+ }
340
+ return [...weights].sort((a, b) => a - b);
341
+ }
342
+ function fontFileSubset(href) {
343
+ const file = posix.basename((href.split("?")[0] ?? "").split("#")[0] ?? "");
344
+ return /^[A-Za-z0-9]+-[1-9]00(?:italic)?-([\w-]+)\.woff2$/.exec(file)?.[1] ?? null;
345
+ }
346
+ function selfHostedSubsets(css, family) {
347
+ const target = normalizeFamily(family);
348
+ const subsets = /* @__PURE__ */ new Set();
349
+ for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
350
+ const body = rule[1] ?? "";
351
+ const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
352
+ if (!declared || normalizeFamily(declared) !== target) continue;
353
+ for (const url of body.matchAll(/url\(\s*['"]?([^'")]+)['"]?\s*\)/gi)) {
354
+ const subset = fontFileSubset(url[1] ?? "");
355
+ if (subset) subsets.add(subset);
356
+ }
357
+ }
358
+ return [...subsets].sort();
359
+ }
360
+ function selfHostedStyles(css, family) {
361
+ const target = normalizeFamily(family);
362
+ const styles = /* @__PURE__ */ new Set();
363
+ for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
364
+ const body = rule[1] ?? "";
365
+ const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
366
+ if (declared && normalizeFamily(declared) === target) styles.add(faceStyle(body));
367
+ }
368
+ return [...styles].sort();
369
+ }
370
+ function fontsourceFamilies(css) {
371
+ const out = /* @__PURE__ */ new Set();
372
+ for (const imported of stripCssComments(css).matchAll(/@fontsource(-variable)?\/([\w-]+)/gi)) {
373
+ const slug = imported[2];
374
+ if (!slug) continue;
375
+ out.add(`${slug.replaceAll("-", " ")}${imported[1] ? " variable" : ""}`.toLowerCase());
376
+ }
377
+ return out;
378
+ }
379
+ function asAuthored(css, normalized) {
380
+ const escaped = normalized.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
381
+ const text = stripCssComments(css);
382
+ return text.match(new RegExp(`["']${escaped}["']`, "i"))?.[0]?.slice(1, -1) ?? text.match(new RegExp(`(?<![\\w-])${escaped}(?![\\w-])`, "i"))?.[0] ?? normalized;
383
+ }
384
+ function unresolvedBrandFamilies(css) {
385
+ const declared = [...parseBrandTokens(css).fonts].filter((family) => !GENERIC_FAMILIES.has(family));
386
+ const loaded = fontFaceFamilies(css);
387
+ return declared.filter((family) => !loaded.has(family)).map((family) => asAuthored(css, family));
388
+ }
389
+ function stripFontFaceBlocks(source, family, styles) {
390
+ const target = normalizeFamily(family);
391
+ const ranges = [];
392
+ for (const rule of stripCssComments(source).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
393
+ const body = rule[1] ?? "";
394
+ const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
395
+ if (!declared || normalizeFamily(declared) !== target || rule.index === void 0) continue;
396
+ if (styles && !styles.has(faceStyle(body))) continue;
397
+ ranges.push([rule.index, rule.index + rule[0].length]);
398
+ }
399
+ let out = source;
400
+ for (const [start, end] of ranges.reverse()) out = `${out.slice(0, start)}${out.slice(end)}`;
401
+ return out.replace(/\n{3,}/g, "\n\n");
402
+ }
403
+ function faceStyle(body) {
404
+ return body.match(/font-style\s*:\s*([\w-]+)/i)?.[1]?.trim().toLowerCase() ?? "normal";
405
+ }
406
+ function declaredStyles(block) {
407
+ const styles = /* @__PURE__ */ new Set();
408
+ for (const rule of stripCssComments(block).matchAll(/@font-face\s*\{([^}]*)\}/gi))
409
+ styles.add(faceStyle(rule[1] ?? ""));
410
+ return styles;
411
+ }
412
+ function upsertFontFaceCss(css, family, block) {
413
+ const styles = declaredStyles(block);
414
+ const out = stripFontFaceBlocks(css, family, styles.size > 0 ? styles : void 0);
415
+ const themeAt = stripCssComments(out).search(/@theme\b/);
416
+ if (themeAt < 0) return `${out.trimEnd()}
417
+
418
+ ${block}
419
+ `;
420
+ const head = out.slice(0, themeAt).trimEnd();
421
+ const tail = out.slice(themeAt);
422
+ return head ? `${head}
423
+
424
+ ${block}
425
+
426
+ ${tail}` : `${block}
427
+
428
+ ${tail}`;
429
+ }
430
+
431
+ export {
432
+ fontFileName,
433
+ renderFontFaceCss,
434
+ FONT_PROVIDERS,
435
+ suggestFamilies,
436
+ resolveBrandFaces,
437
+ missingFontFiles,
438
+ planFontAdoption,
439
+ fontsourceCatalogue,
440
+ googleFontRequests,
441
+ resolveFetchWeights,
442
+ DEFAULT_SUBSETS,
443
+ resolveFetchSubsets,
444
+ resolveFetchStyles,
445
+ checkFontRequests,
446
+ GENERIC_FAMILIES,
447
+ selfHostedWeights,
448
+ selfHostedSubsets,
449
+ selfHostedStyles,
450
+ fontsourceFamilies,
451
+ unresolvedBrandFamilies,
452
+ stripFontFaceBlocks,
453
+ upsertFontFaceCss
454
+ };
455
+ //# sourceMappingURL=chunk-KAHMADFH.js.map