@koda-sl/baker-cli 0.383.0 → 0.384.0-dev.557795bef

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 (964) hide show
  1. package/README.md +1102 -218
  2. package/canvas/tiktok-captions-composition/index.html +5 -6
  3. package/canvas/tiktok-captions-composition/meta.json +5 -0
  4. package/dist/account-4UEZAY5T.js +49 -0
  5. package/dist/account-4UEZAY5T.js.map +1 -0
  6. package/dist/account-OINZG6UP.js +80 -0
  7. package/dist/account-OINZG6UP.js.map +1 -0
  8. package/dist/account-QMDCUUSG.js +79 -0
  9. package/dist/account-QMDCUUSG.js.map +1 -0
  10. package/dist/account-reads-ZKKDYHK5.js +218 -0
  11. package/dist/account-reads-ZKKDYHK5.js.map +1 -0
  12. package/dist/account-writes-N4JDIDRB.js +66 -0
  13. package/dist/account-writes-N4JDIDRB.js.map +1 -0
  14. package/dist/accounts-AEBQFCNH.js +114 -0
  15. package/dist/accounts-AEBQFCNH.js.map +1 -0
  16. package/dist/accounts-EBGJ2YO7.js +611 -0
  17. package/dist/accounts-EBGJ2YO7.js.map +1 -0
  18. package/dist/accounts-HP4BLKK5.js +75 -0
  19. package/dist/accounts-HP4BLKK5.js.map +1 -0
  20. package/dist/accounts-YE2SQ3UQ.js +77 -0
  21. package/dist/accounts-YE2SQ3UQ.js.map +1 -0
  22. package/dist/accounts-Z4CLGQXJ.js +115 -0
  23. package/dist/accounts-Z4CLGQXJ.js.map +1 -0
  24. package/dist/actions-ADRIEQZX.js +55 -0
  25. package/dist/actions-ADRIEQZX.js.map +1 -0
  26. package/dist/active-entities-YB46ADQN.js +103 -0
  27. package/dist/active-entities-YB46ADQN.js.map +1 -0
  28. package/dist/activities-DUAIQJLN.js +74 -0
  29. package/dist/activities-DUAIQJLN.js.map +1 -0
  30. package/dist/ad-group-writes-HL3EZ3BT.js +170 -0
  31. package/dist/ad-group-writes-HL3EZ3BT.js.map +1 -0
  32. package/dist/ad-groups-FGS5JJGN.js +68 -0
  33. package/dist/ad-groups-FGS5JJGN.js.map +1 -0
  34. package/dist/ad-writes-LX4ACUHB.js +174 -0
  35. package/dist/ad-writes-LX4ACUHB.js.map +1 -0
  36. package/dist/add-5CUXNOUM.js +97 -0
  37. package/dist/add-5CUXNOUM.js.map +1 -0
  38. package/dist/add-6OXOQNET.js +302 -0
  39. package/dist/add-6OXOQNET.js.map +1 -0
  40. package/dist/add-E66HBIZV.js +105 -0
  41. package/dist/add-E66HBIZV.js.map +1 -0
  42. package/dist/add-ROK3ETQC.js +104 -0
  43. package/dist/add-ROK3ETQC.js.map +1 -0
  44. package/dist/add-accounts-YME5SCXD.js +91 -0
  45. package/dist/add-accounts-YME5SCXD.js.map +1 -0
  46. package/dist/ads-65R3WMDU.js +128 -0
  47. package/dist/ads-65R3WMDU.js.map +1 -0
  48. package/dist/ads-O63J7BDF.js +113 -0
  49. package/dist/ads-O63J7BDF.js.map +1 -0
  50. package/dist/ads-TFZ5PXKS.js +77 -0
  51. package/dist/ads-TFZ5PXKS.js.map +1 -0
  52. package/dist/ads-XSVRH45E.js +40 -0
  53. package/dist/ads-XSVRH45E.js.map +1 -0
  54. package/dist/adsets-Y62JOOTV.js +176 -0
  55. package/dist/adsets-Y62JOOTV.js.map +1 -0
  56. package/dist/advertisers-AIC4QPEK.js +120 -0
  57. package/dist/advertisers-AIC4QPEK.js.map +1 -0
  58. package/dist/advertisers-LJ2HKJ4W.js +125 -0
  59. package/dist/advertisers-LJ2HKJ4W.js.map +1 -0
  60. package/dist/analytics-N4PGXXEQ.js +1976 -0
  61. package/dist/analytics-N4PGXXEQ.js.map +1 -0
  62. package/dist/analytics-X3DR3UVG.js +433 -0
  63. package/dist/analytics-X3DR3UVG.js.map +1 -0
  64. package/dist/animate-E3SKQ6SI.js +480 -0
  65. package/dist/animate-E3SKQ6SI.js.map +1 -0
  66. package/dist/assign-Y7HGSQVJ.js +77 -0
  67. package/dist/assign-Y7HGSQVJ.js.map +1 -0
  68. package/dist/audience-size-SWX5YJQF.js +94 -0
  69. package/dist/audience-size-SWX5YJQF.js.map +1 -0
  70. package/dist/audiences-5A6BCWSA.js +268 -0
  71. package/dist/audiences-5A6BCWSA.js.map +1 -0
  72. package/dist/audiences-6QOCASVV.js +78 -0
  73. package/dist/audiences-6QOCASVV.js.map +1 -0
  74. package/dist/audiences-O67NGIP5.js +85 -0
  75. package/dist/audiences-O67NGIP5.js.map +1 -0
  76. package/dist/audit-2KVLWSAI.js +151 -0
  77. package/dist/audit-2KVLWSAI.js.map +1 -0
  78. package/dist/audit-HWK24VXI.js +88 -0
  79. package/dist/audit-HWK24VXI.js.map +1 -0
  80. package/dist/autocomplete-JJSGC5WU.js +111 -0
  81. package/dist/autocomplete-JJSGC5WU.js.map +1 -0
  82. package/dist/avatars-XIEKQ77J.js +38 -0
  83. package/dist/avatars-XIEKQ77J.js.map +1 -0
  84. package/dist/bid-pricing-D2HGRWZL.js +99 -0
  85. package/dist/bid-pricing-D2HGRWZL.js.map +1 -0
  86. package/dist/brand-AYYWRGIE.js +22 -0
  87. package/dist/brand-AYYWRGIE.js.map +1 -0
  88. package/dist/brief-3HUIDK5F.js +490 -0
  89. package/dist/brief-3HUIDK5F.js.map +1 -0
  90. package/dist/businesses-65EWTK5E.js +53 -0
  91. package/dist/businesses-65EWTK5E.js.map +1 -0
  92. package/dist/campaign-groups-6HCYR2JX.js +95 -0
  93. package/dist/campaign-groups-6HCYR2JX.js.map +1 -0
  94. package/dist/campaign-writes-M6JLF5AC.js +170 -0
  95. package/dist/campaign-writes-M6JLF5AC.js.map +1 -0
  96. package/dist/campaign-writes-Y6QPRQ4E.js +165 -0
  97. package/dist/campaign-writes-Y6QPRQ4E.js.map +1 -0
  98. package/dist/campaigns-6SM2ZSIH.js +76 -0
  99. package/dist/campaigns-6SM2ZSIH.js.map +1 -0
  100. package/dist/campaigns-7RKJZRY2.js +107 -0
  101. package/dist/campaigns-7RKJZRY2.js.map +1 -0
  102. package/dist/campaigns-KRI25JDZ.js +109 -0
  103. package/dist/campaigns-KRI25JDZ.js.map +1 -0
  104. package/dist/campaigns-TD7ZB5DG.js +110 -0
  105. package/dist/campaigns-TD7ZB5DG.js.map +1 -0
  106. package/dist/canvas-DMYY2DWI.js +46 -0
  107. package/dist/canvas-DMYY2DWI.js.map +1 -0
  108. package/dist/capabilities-3WJTXS2O.js +144 -0
  109. package/dist/capabilities-3WJTXS2O.js.map +1 -0
  110. package/dist/cards-7HRC4UQQ.js +85 -0
  111. package/dist/cards-7HRC4UQQ.js.map +1 -0
  112. package/dist/catalog-N6MDMIVL.js +64 -0
  113. package/dist/catalog-N6MDMIVL.js.map +1 -0
  114. package/dist/catalogs-PB46L7FH.js +128 -0
  115. package/dist/catalogs-PB46L7FH.js.map +1 -0
  116. package/dist/changes-SASUQK62.js +135 -0
  117. package/dist/changes-SASUQK62.js.map +1 -0
  118. package/dist/chatgpt-JKBSAG25.js +47 -0
  119. package/dist/chatgpt-JKBSAG25.js.map +1 -0
  120. package/dist/chats-WRVSQQB2.js +262 -0
  121. package/dist/chats-WRVSQQB2.js.map +1 -0
  122. package/dist/chunk-2FGKJY63.js +455 -0
  123. package/dist/chunk-2FGKJY63.js.map +1 -0
  124. package/dist/chunk-2GVXNKAE.js +42 -0
  125. package/dist/chunk-2GVXNKAE.js.map +1 -0
  126. package/dist/chunk-2J3PTIQB.js +479 -0
  127. package/dist/chunk-2J3PTIQB.js.map +1 -0
  128. package/dist/chunk-2J7XC2NO.js +346 -0
  129. package/dist/chunk-2J7XC2NO.js.map +1 -0
  130. package/dist/{chunk-VLUGGVJL.js → chunk-2UFRHW3T.js} +12 -4
  131. package/dist/chunk-2UFRHW3T.js.map +1 -0
  132. package/dist/chunk-2Y5V23PU.js +29 -0
  133. package/dist/chunk-2Y5V23PU.js.map +1 -0
  134. package/dist/chunk-3ACMDRSE.js +39 -0
  135. package/dist/chunk-3ACMDRSE.js.map +1 -0
  136. package/dist/chunk-3EWF7VII.js +1079 -0
  137. package/dist/chunk-3EWF7VII.js.map +1 -0
  138. package/dist/chunk-3LYMIKKN.js +625 -0
  139. package/dist/chunk-3LYMIKKN.js.map +1 -0
  140. package/dist/chunk-3M6RNCDD.js +26 -0
  141. package/dist/chunk-3M6RNCDD.js.map +1 -0
  142. package/dist/chunk-3MDO4RR2.js +310 -0
  143. package/dist/chunk-3MDO4RR2.js.map +1 -0
  144. package/dist/chunk-3NPOIHSX.js +6667 -0
  145. package/dist/chunk-3NPOIHSX.js.map +1 -0
  146. package/dist/chunk-3SK7TWGP.js +103 -0
  147. package/dist/chunk-3SK7TWGP.js.map +1 -0
  148. package/dist/chunk-3VXQYDJN.js +1743 -0
  149. package/dist/chunk-3VXQYDJN.js.map +1 -0
  150. package/dist/chunk-44VXKO65.js +106 -0
  151. package/dist/chunk-44VXKO65.js.map +1 -0
  152. package/dist/chunk-4NZ47VXO.js +137 -0
  153. package/dist/chunk-4NZ47VXO.js.map +1 -0
  154. package/dist/chunk-4X3UR372.js +225 -0
  155. package/dist/chunk-4X3UR372.js.map +1 -0
  156. package/dist/chunk-553XSIFW.js +304 -0
  157. package/dist/chunk-553XSIFW.js.map +1 -0
  158. package/dist/chunk-5FEBUCJU.js +25 -0
  159. package/dist/chunk-5FEBUCJU.js.map +1 -0
  160. package/dist/chunk-5HYSKH77.js +315 -0
  161. package/dist/chunk-5HYSKH77.js.map +1 -0
  162. package/dist/chunk-5MBPIONY.js +29 -0
  163. package/dist/chunk-5MBPIONY.js.map +1 -0
  164. package/dist/chunk-5UCP4EEQ.js +111 -0
  165. package/dist/chunk-5UCP4EEQ.js.map +1 -0
  166. package/dist/chunk-5VPJNNJL.js +494 -0
  167. package/dist/chunk-5VPJNNJL.js.map +1 -0
  168. package/dist/{chunk-VZEDAFAR.js → chunk-6YYSUISH.js} +47 -8
  169. package/dist/chunk-6YYSUISH.js.map +1 -0
  170. package/dist/chunk-7OHWEF3I.js +98 -0
  171. package/dist/chunk-7OHWEF3I.js.map +1 -0
  172. package/dist/chunk-A636XRD7.js +159 -0
  173. package/dist/chunk-A636XRD7.js.map +1 -0
  174. package/dist/chunk-A76FRBSF.js +297 -0
  175. package/dist/chunk-A76FRBSF.js.map +1 -0
  176. package/dist/chunk-AADVCEL4.js +817 -0
  177. package/dist/chunk-AADVCEL4.js.map +1 -0
  178. package/dist/chunk-AG62YO7C.js +96 -0
  179. package/dist/chunk-AG62YO7C.js.map +1 -0
  180. package/dist/chunk-AIRIT4GF.js +75 -0
  181. package/dist/chunk-AIRIT4GF.js.map +1 -0
  182. package/dist/chunk-AMCY5YCB.js +206 -0
  183. package/dist/chunk-AMCY5YCB.js.map +1 -0
  184. package/dist/chunk-AP3TP6VG.js +139 -0
  185. package/dist/chunk-AP3TP6VG.js.map +1 -0
  186. package/dist/chunk-APP475IQ.js +474 -0
  187. package/dist/chunk-APP475IQ.js.map +1 -0
  188. package/dist/chunk-AR7PU7BB.js +76 -0
  189. package/dist/chunk-AR7PU7BB.js.map +1 -0
  190. package/dist/chunk-B4S72KSS.js +172 -0
  191. package/dist/chunk-B4S72KSS.js.map +1 -0
  192. package/dist/chunk-BIPIL4QA.js +486 -0
  193. package/dist/chunk-BIPIL4QA.js.map +1 -0
  194. package/dist/chunk-BPUSL5Y2.js +58 -0
  195. package/dist/chunk-BPUSL5Y2.js.map +1 -0
  196. package/dist/chunk-BR32GHYD.js +65 -0
  197. package/dist/chunk-BR32GHYD.js.map +1 -0
  198. package/dist/chunk-CAMX6OHF.js +3182 -0
  199. package/dist/chunk-CAMX6OHF.js.map +1 -0
  200. package/dist/{chunk-MF7YA62W.js → chunk-CUL3VB4L.js} +10 -5
  201. package/dist/chunk-CUL3VB4L.js.map +1 -0
  202. package/dist/chunk-CVEY353K.js +66 -0
  203. package/dist/chunk-CVEY353K.js.map +1 -0
  204. package/dist/chunk-CWXADUKL.js +1599 -0
  205. package/dist/chunk-CWXADUKL.js.map +1 -0
  206. package/dist/chunk-D5FY4FAK.js +24 -0
  207. package/dist/chunk-D5FY4FAK.js.map +1 -0
  208. package/dist/chunk-DGCUPJZD.js +39 -0
  209. package/dist/chunk-DGCUPJZD.js.map +1 -0
  210. package/dist/chunk-DNCLWSHO.js +41 -0
  211. package/dist/chunk-DNCLWSHO.js.map +1 -0
  212. package/dist/chunk-DUPURL26.js +97 -0
  213. package/dist/chunk-DUPURL26.js.map +1 -0
  214. package/dist/chunk-E2ZOSNF5.js +96 -0
  215. package/dist/chunk-E2ZOSNF5.js.map +1 -0
  216. package/dist/chunk-E3HYHT7C.js +274 -0
  217. package/dist/chunk-E3HYHT7C.js.map +1 -0
  218. package/dist/chunk-EDLZGTGN.js +216 -0
  219. package/dist/chunk-EDLZGTGN.js.map +1 -0
  220. package/dist/chunk-EI5QN4UO.js +363 -0
  221. package/dist/chunk-EI5QN4UO.js.map +1 -0
  222. package/dist/{chunk-XHC4LMK4.js → chunk-EIGXX6KI.js} +16 -8
  223. package/dist/chunk-EIGXX6KI.js.map +1 -0
  224. package/dist/chunk-EPDE7ZRU.js +174 -0
  225. package/dist/chunk-EPDE7ZRU.js.map +1 -0
  226. package/dist/chunk-ERSX3MKH.js +34 -0
  227. package/dist/chunk-ERSX3MKH.js.map +1 -0
  228. package/dist/chunk-EVDRF4CI.js +509 -0
  229. package/dist/chunk-EVDRF4CI.js.map +1 -0
  230. package/dist/chunk-F4IEILTR.js +382 -0
  231. package/dist/chunk-F4IEILTR.js.map +1 -0
  232. package/dist/chunk-F7HRLPR5.js +67 -0
  233. package/dist/chunk-F7HRLPR5.js.map +1 -0
  234. package/dist/chunk-FEG6MN4H.js +84 -0
  235. package/dist/chunk-FEG6MN4H.js.map +1 -0
  236. package/dist/chunk-FKOECEVC.js +126 -0
  237. package/dist/chunk-FKOECEVC.js.map +1 -0
  238. package/dist/chunk-FMGW2NZI.js +106 -0
  239. package/dist/chunk-FMGW2NZI.js.map +1 -0
  240. package/dist/chunk-FPZKKNDK.js +98 -0
  241. package/dist/chunk-FPZKKNDK.js.map +1 -0
  242. package/dist/chunk-FUVCY63N.js +169 -0
  243. package/dist/chunk-FUVCY63N.js.map +1 -0
  244. package/dist/chunk-GBNJQNDS.js +19 -0
  245. package/dist/chunk-GBNJQNDS.js.map +1 -0
  246. package/dist/chunk-GIWHHCD6.js +145 -0
  247. package/dist/chunk-GIWHHCD6.js.map +1 -0
  248. package/dist/chunk-GOJXKIFQ.js +1605 -0
  249. package/dist/chunk-GOJXKIFQ.js.map +1 -0
  250. package/dist/chunk-GRQ2AXDX.js +9 -0
  251. package/dist/chunk-GRQ2AXDX.js.map +1 -0
  252. package/dist/chunk-GXDLWBOY.js +73 -0
  253. package/dist/chunk-GXDLWBOY.js.map +1 -0
  254. package/dist/chunk-HAE4WWFQ.js +455 -0
  255. package/dist/chunk-HAE4WWFQ.js.map +1 -0
  256. package/dist/chunk-I2DNBEV6.js +4227 -0
  257. package/dist/chunk-I2DNBEV6.js.map +1 -0
  258. package/dist/chunk-I4FTS5EE.js +455 -0
  259. package/dist/chunk-I4FTS5EE.js.map +1 -0
  260. package/dist/chunk-IELPT4K2.js +74 -0
  261. package/dist/chunk-IELPT4K2.js.map +1 -0
  262. package/dist/chunk-IJMWEO4P.js +57 -0
  263. package/dist/chunk-IJMWEO4P.js.map +1 -0
  264. package/dist/chunk-IREMSVKW.js +175 -0
  265. package/dist/chunk-IREMSVKW.js.map +1 -0
  266. package/dist/chunk-IVIJJXXT.js +62 -0
  267. package/dist/chunk-IVIJJXXT.js.map +1 -0
  268. package/dist/chunk-JD3W3ON7.js +188 -0
  269. package/dist/chunk-JD3W3ON7.js.map +1 -0
  270. package/dist/chunk-JLWBK3VC.js +5187 -0
  271. package/dist/chunk-JLWBK3VC.js.map +1 -0
  272. package/dist/chunk-JPK34QPS.js +134 -0
  273. package/dist/chunk-JPK34QPS.js.map +1 -0
  274. package/dist/chunk-JUY47NZ2.js +183 -0
  275. package/dist/chunk-JUY47NZ2.js.map +1 -0
  276. package/dist/chunk-JXMZEOHV.js +333 -0
  277. package/dist/chunk-JXMZEOHV.js.map +1 -0
  278. package/dist/chunk-K37K447U.js +51 -0
  279. package/dist/chunk-K37K447U.js.map +1 -0
  280. package/dist/chunk-K6TDB2KV.js +1442 -0
  281. package/dist/chunk-K6TDB2KV.js.map +1 -0
  282. package/dist/chunk-KIGGMKAE.js +66 -0
  283. package/dist/chunk-KIGGMKAE.js.map +1 -0
  284. package/dist/chunk-KKJ4KJCW.js +29 -0
  285. package/dist/chunk-KKJ4KJCW.js.map +1 -0
  286. package/dist/chunk-KONA5PSR.js +55 -0
  287. package/dist/chunk-KONA5PSR.js.map +1 -0
  288. package/dist/chunk-KVHRW7KO.js +60 -0
  289. package/dist/chunk-KVHRW7KO.js.map +1 -0
  290. package/dist/chunk-LA6PPSNA.js +65 -0
  291. package/dist/chunk-LA6PPSNA.js.map +1 -0
  292. package/dist/chunk-LKPJADL2.js +74 -0
  293. package/dist/chunk-LKPJADL2.js.map +1 -0
  294. package/dist/chunk-LWAEHLKV.js +74 -0
  295. package/dist/chunk-LWAEHLKV.js.map +1 -0
  296. package/dist/chunk-M6UNISGO.js +66 -0
  297. package/dist/chunk-M6UNISGO.js.map +1 -0
  298. package/dist/chunk-MIJAGBEP.js +23992 -0
  299. package/dist/chunk-MIJAGBEP.js.map +1 -0
  300. package/dist/chunk-MP4EXZ45.js +3151 -0
  301. package/dist/chunk-MP4EXZ45.js.map +1 -0
  302. package/dist/chunk-MYTDK3AL.js +2102 -0
  303. package/dist/chunk-MYTDK3AL.js.map +1 -0
  304. package/dist/chunk-MZQ5DX6S.js +125 -0
  305. package/dist/chunk-MZQ5DX6S.js.map +1 -0
  306. package/dist/chunk-NFSLRRIE.js +77 -0
  307. package/dist/chunk-NFSLRRIE.js.map +1 -0
  308. package/dist/chunk-NOK7MSVJ.js +533 -0
  309. package/dist/chunk-NOK7MSVJ.js.map +1 -0
  310. package/dist/chunk-NR5RZDAW.js +592 -0
  311. package/dist/chunk-NR5RZDAW.js.map +1 -0
  312. package/dist/chunk-O2EVJALZ.js +133 -0
  313. package/dist/chunk-O2EVJALZ.js.map +1 -0
  314. package/dist/chunk-O6UM5WWH.js +275 -0
  315. package/dist/chunk-O6UM5WWH.js.map +1 -0
  316. package/dist/chunk-O6XZIQXZ.js +6212 -0
  317. package/dist/chunk-O6XZIQXZ.js.map +1 -0
  318. package/dist/chunk-OIL6PU5W.js +35 -0
  319. package/dist/chunk-OIL6PU5W.js.map +1 -0
  320. package/dist/chunk-P4NSJS54.js +20 -0
  321. package/dist/chunk-P4NSJS54.js.map +1 -0
  322. package/dist/chunk-P5T7OZKV.js +26 -0
  323. package/dist/chunk-P5T7OZKV.js.map +1 -0
  324. package/dist/chunk-PFBQERWX.js +10 -0
  325. package/dist/chunk-PFBQERWX.js.map +1 -0
  326. package/dist/chunk-PSWVSLJU.js +56 -0
  327. package/dist/chunk-PSWVSLJU.js.map +1 -0
  328. package/dist/chunk-PY2NJ6XZ.js +191 -0
  329. package/dist/chunk-PY2NJ6XZ.js.map +1 -0
  330. package/dist/chunk-PZ4OM2LK.js +45 -0
  331. package/dist/chunk-PZ4OM2LK.js.map +1 -0
  332. package/dist/chunk-PZNOJ76W.js +541 -0
  333. package/dist/chunk-PZNOJ76W.js.map +1 -0
  334. package/dist/chunk-Q6ULQMWG.js +41 -0
  335. package/dist/chunk-Q6ULQMWG.js.map +1 -0
  336. package/dist/chunk-QKFD6PPX.js +57 -0
  337. package/dist/chunk-QKFD6PPX.js.map +1 -0
  338. package/dist/chunk-QMLGJ5OW.js +2891 -0
  339. package/dist/chunk-QMLGJ5OW.js.map +1 -0
  340. package/dist/chunk-R4TPDVBD.js +207 -0
  341. package/dist/chunk-R4TPDVBD.js.map +1 -0
  342. package/dist/chunk-R7QV5N2S.js +846 -0
  343. package/dist/chunk-R7QV5N2S.js.map +1 -0
  344. package/dist/chunk-RR3KT2E7.js +665 -0
  345. package/dist/chunk-RR3KT2E7.js.map +1 -0
  346. package/dist/chunk-SEPPFM5S.js +228 -0
  347. package/dist/chunk-SEPPFM5S.js.map +1 -0
  348. package/dist/chunk-SQ7DRYCC.js +150 -0
  349. package/dist/chunk-SQ7DRYCC.js.map +1 -0
  350. package/dist/chunk-SYULM665.js +610 -0
  351. package/dist/chunk-SYULM665.js.map +1 -0
  352. package/dist/chunk-TKT3OHZ6.js +170 -0
  353. package/dist/chunk-TKT3OHZ6.js.map +1 -0
  354. package/dist/chunk-TNOSX3PJ.js +136 -0
  355. package/dist/chunk-TNOSX3PJ.js.map +1 -0
  356. package/dist/chunk-TTVKI54A.js +160 -0
  357. package/dist/chunk-TTVKI54A.js.map +1 -0
  358. package/dist/chunk-U7ZVXFS3.js +23 -0
  359. package/dist/chunk-U7ZVXFS3.js.map +1 -0
  360. package/dist/chunk-UI6BKYQD.js +225 -0
  361. package/dist/chunk-UI6BKYQD.js.map +1 -0
  362. package/dist/chunk-UKLDW4UW.js +46 -0
  363. package/dist/chunk-UKLDW4UW.js.map +1 -0
  364. package/dist/chunk-V6XXXEXZ.js +76 -0
  365. package/dist/chunk-V6XXXEXZ.js.map +1 -0
  366. package/dist/chunk-V7BW2CIQ.js +92 -0
  367. package/dist/chunk-V7BW2CIQ.js.map +1 -0
  368. package/dist/chunk-VSU5R34H.js +76 -0
  369. package/dist/chunk-VSU5R34H.js.map +1 -0
  370. package/dist/chunk-W4SA4CMR.js +296 -0
  371. package/dist/chunk-W4SA4CMR.js.map +1 -0
  372. package/dist/chunk-WFUMNDCE.js +111 -0
  373. package/dist/chunk-WFUMNDCE.js.map +1 -0
  374. package/dist/chunk-WHWNXLTD.js +166 -0
  375. package/dist/chunk-WHWNXLTD.js.map +1 -0
  376. package/dist/chunk-WN4KX7GE.js +25 -0
  377. package/dist/chunk-WN4KX7GE.js.map +1 -0
  378. package/dist/chunk-XIY7P54H.js +84 -0
  379. package/dist/chunk-XIY7P54H.js.map +1 -0
  380. package/dist/chunk-YFPLNMPZ.js +337 -0
  381. package/dist/chunk-YFPLNMPZ.js.map +1 -0
  382. package/dist/chunk-YMBB4JBD.js +1830 -0
  383. package/dist/chunk-YMBB4JBD.js.map +1 -0
  384. package/dist/chunk-YQFM2P5W.js +197 -0
  385. package/dist/chunk-YQFM2P5W.js.map +1 -0
  386. package/dist/chunk-YQSBHWOI.js +41 -0
  387. package/dist/chunk-YTF3IVMF.js +149 -0
  388. package/dist/chunk-YTF3IVMF.js.map +1 -0
  389. package/dist/chunk-Z3ENMCFE.js +94 -0
  390. package/dist/chunk-Z3ENMCFE.js.map +1 -0
  391. package/dist/chunk-Z7MWSXLG.js +94 -0
  392. package/dist/chunk-Z7MWSXLG.js.map +1 -0
  393. package/dist/chunk-ZIXHS6AM.js +42 -0
  394. package/dist/chunk-ZIXHS6AM.js.map +1 -0
  395. package/dist/chunk-ZJ7TQUCU.js +4410 -0
  396. package/dist/chunk-ZJ7TQUCU.js.map +1 -0
  397. package/dist/chunk-ZNQRDLSS.js +52 -0
  398. package/dist/chunk-ZNQRDLSS.js.map +1 -0
  399. package/dist/claim-ROWH6JVB.js +197 -0
  400. package/dist/claim-ROWH6JVB.js.map +1 -0
  401. package/dist/cli.js +104 -69952
  402. package/dist/cli.js.map +1 -1
  403. package/dist/client-EURRWXPW.js +19 -0
  404. package/dist/code-FKQW7V7N.js +76 -0
  405. package/dist/code-FKQW7V7N.js.map +1 -0
  406. package/dist/companies-MD2MZKU6.js +195 -0
  407. package/dist/companies-MD2MZKU6.js.map +1 -0
  408. package/dist/complete-FCAJM6Z4.js +81 -0
  409. package/dist/complete-FCAJM6Z4.js.map +1 -0
  410. package/dist/config-OZOHIAOJ.js +88 -0
  411. package/dist/config-OZOHIAOJ.js.map +1 -0
  412. package/dist/connect-4YXFMXYX.js +42 -0
  413. package/dist/content-PCGSX2QU.js +85 -0
  414. package/dist/content-PCGSX2QU.js.map +1 -0
  415. package/dist/conversation-UX5NZ3IO.js +93 -0
  416. package/dist/conversation-UX5NZ3IO.js.map +1 -0
  417. package/dist/conversion-report-7QSWB2FY.js +125 -0
  418. package/dist/conversion-report-7QSWB2FY.js.map +1 -0
  419. package/dist/conversion-upload-command-XESIAQPU.js +438 -0
  420. package/dist/conversion-upload-command-XESIAQPU.js.map +1 -0
  421. package/dist/conversion-writes-BGOVLBS5.js +120 -0
  422. package/dist/conversion-writes-BGOVLBS5.js.map +1 -0
  423. package/dist/conversions-IYIWW4O7.js +76 -0
  424. package/dist/conversions-IYIWW4O7.js.map +1 -0
  425. package/dist/conversions-RLIJAE7E.js +135 -0
  426. package/dist/conversions-RLIJAE7E.js.map +1 -0
  427. package/dist/countries-5OBUVLLD.js +82 -0
  428. package/dist/countries-5OBUVLLD.js.map +1 -0
  429. package/dist/create-CUJLJUAQ.js +138 -0
  430. package/dist/create-CUJLJUAQ.js.map +1 -0
  431. package/dist/create-FENOT6DX.js +236 -0
  432. package/dist/create-FENOT6DX.js.map +1 -0
  433. package/dist/create-OFZQMOWO.js +59 -0
  434. package/dist/create-OFZQMOWO.js.map +1 -0
  435. package/dist/create-Z5SS2AWB.js +207 -0
  436. package/dist/create-Z5SS2AWB.js.map +1 -0
  437. package/dist/creatives-UJW2QBLH.js +182 -0
  438. package/dist/creatives-UJW2QBLH.js.map +1 -0
  439. package/dist/creatives-XI2DGQUZ.js +87 -0
  440. package/dist/creatives-XI2DGQUZ.js.map +1 -0
  441. package/dist/creatives-YLXQSROD.js +51 -0
  442. package/dist/creatives-YLXQSROD.js.map +1 -0
  443. package/dist/credentials-CH73QMD2.js +287 -0
  444. package/dist/credentials-CH73QMD2.js.map +1 -0
  445. package/dist/critique-C4WRQ4AJ.js +1449 -0
  446. package/dist/critique-C4WRQ4AJ.js.map +1 -0
  447. package/dist/critique-ZBNJ6MQ3.js +213 -0
  448. package/dist/critique-ZBNJ6MQ3.js.map +1 -0
  449. package/dist/crm-MJTT6GOJ.js +224 -0
  450. package/dist/crm-MJTT6GOJ.js.map +1 -0
  451. package/dist/crm-ZXHSEFYI.js +318 -0
  452. package/dist/crm-ZXHSEFYI.js.map +1 -0
  453. package/dist/crop-B52KIQ4O.js +113 -0
  454. package/dist/crop-B52KIQ4O.js.map +1 -0
  455. package/dist/currency-GGWF5DMU.js +88 -0
  456. package/dist/currency-GGWF5DMU.js.map +1 -0
  457. package/dist/custom-conversions-7WDBTC4X.js +125 -0
  458. package/dist/custom-conversions-7WDBTC4X.js.map +1 -0
  459. package/dist/customers-7E4HBSEY.js +56 -0
  460. package/dist/decide-PK7WNSQ2.js +199 -0
  461. package/dist/decide-PK7WNSQ2.js.map +1 -0
  462. package/dist/delete-56LKNEGA.js +71 -0
  463. package/dist/delete-56LKNEGA.js.map +1 -0
  464. package/dist/delete-DQY4ZSFN.js +54 -0
  465. package/dist/delete-DQY4ZSFN.js.map +1 -0
  466. package/dist/delete-EZ7HHOOD.js +69 -0
  467. package/dist/delete-EZ7HHOOD.js.map +1 -0
  468. package/dist/delete-JV4KAA6Y.js +66 -0
  469. package/dist/delete-JV4KAA6Y.js.map +1 -0
  470. package/dist/delete-YONJW4UZ.js +63 -0
  471. package/dist/delete-YONJW4UZ.js.map +1 -0
  472. package/dist/delete-YSYVFL6W.js +71 -0
  473. package/dist/delete-YSYVFL6W.js.map +1 -0
  474. package/dist/demographics-6N3TTYWC.js +138 -0
  475. package/dist/demographics-6N3TTYWC.js.map +1 -0
  476. package/dist/describe-AAVYIFE3.js +97 -0
  477. package/dist/describe-AAVYIFE3.js.map +1 -0
  478. package/dist/describe-UQFLWVFR.js +97 -0
  479. package/dist/describe-UQFLWVFR.js.map +1 -0
  480. package/dist/dimensions-QDXBG2XC.js +101 -0
  481. package/dist/dimensions-QDXBG2XC.js.map +1 -0
  482. package/dist/discard-S3NGGUSK.js +66 -0
  483. package/dist/discard-S3NGGUSK.js.map +1 -0
  484. package/dist/discover-6TEBPVNC.js +93 -0
  485. package/dist/discover-6TEBPVNC.js.map +1 -0
  486. package/dist/discover-SBZPB7T2.js +172 -0
  487. package/dist/discover-SBZPB7T2.js.map +1 -0
  488. package/dist/domain-AMAR76PB.js +98 -0
  489. package/dist/domain-AMAR76PB.js.map +1 -0
  490. package/dist/download-LV3GPOWV.js +299 -0
  491. package/dist/download-LV3GPOWV.js.map +1 -0
  492. package/dist/draft-6QZ7WMWM.js +217 -0
  493. package/dist/draft-6QZ7WMWM.js.map +1 -0
  494. package/dist/draft-DDFFTZ43.js +233 -0
  495. package/dist/draft-DDFFTZ43.js.map +1 -0
  496. package/dist/draft-FIKJXNIQ.js +281 -0
  497. package/dist/draft-FIKJXNIQ.js.map +1 -0
  498. package/dist/draft-GYGWTMBU.js +307 -0
  499. package/dist/draft-GYGWTMBU.js.map +1 -0
  500. package/dist/draft-KXL62WFS.js +328 -0
  501. package/dist/draft-KXL62WFS.js.map +1 -0
  502. package/dist/draft-N4LFPKTA.js +100 -0
  503. package/dist/draft-N4LFPKTA.js.map +1 -0
  504. package/dist/draft-POSLJCWG.js +306 -0
  505. package/dist/draft-POSLJCWG.js.map +1 -0
  506. package/dist/draft-XPO5RWST.js +103 -0
  507. package/dist/draft-XPO5RWST.js.map +1 -0
  508. package/dist/engine/index.d.ts +213 -127
  509. package/dist/engine/index.js +18 -4
  510. package/dist/{env-4P5HOGNA.js → env-TQ2XS2KY.js} +12 -2
  511. package/dist/env-TQ2XS2KY.js.map +1 -0
  512. package/dist/experiment-FQNKMORZ.js +1397 -0
  513. package/dist/experiment-FQNKMORZ.js.map +1 -0
  514. package/dist/export-4IZQZAPF.js +168 -0
  515. package/dist/export-4IZQZAPF.js.map +1 -0
  516. package/dist/extract-DZMGVQ7D.js +113 -0
  517. package/dist/extract-DZMGVQ7D.js.map +1 -0
  518. package/dist/facets-223V5P47.js +114 -0
  519. package/dist/facets-223V5P47.js.map +1 -0
  520. package/dist/favorites-DD2LNSTG.js +178 -0
  521. package/dist/favorites-DD2LNSTG.js.map +1 -0
  522. package/dist/feed-TUVFNX2U.js +177 -0
  523. package/dist/feed-TUVFNX2U.js.map +1 -0
  524. package/dist/feedback-MIW23MI2.js +66 -0
  525. package/dist/feedback-MIW23MI2.js.map +1 -0
  526. package/dist/feedback-record-RGKRKPGZ.js +175 -0
  527. package/dist/feedback-record-RGKRKPGZ.js.map +1 -0
  528. package/dist/fetch-O6UHNXWB.js +139 -0
  529. package/dist/fetch-O6UHNXWB.js.map +1 -0
  530. package/dist/fetch-TZ4UCMJK.js +176 -0
  531. package/dist/fetch-TZ4UCMJK.js.map +1 -0
  532. package/dist/find-4XKIBF4D.js +134 -0
  533. package/dist/find-4XKIBF4D.js.map +1 -0
  534. package/dist/fit-ODVVXV2Q.js +45 -0
  535. package/dist/fit-ODVVXV2Q.js.map +1 -0
  536. package/dist/flows-HVWBFZ7T.js +247 -0
  537. package/dist/flows-HVWBFZ7T.js.map +1 -0
  538. package/dist/follow-RCOXTZGY.js +94 -0
  539. package/dist/follow-RCOXTZGY.js.map +1 -0
  540. package/dist/follow-competitors-SQ5XBFTK.js +112 -0
  541. package/dist/follow-competitors-SQ5XBFTK.js.map +1 -0
  542. package/dist/following-VDU3BHC4.js +113 -0
  543. package/dist/following-VDU3BHC4.js.map +1 -0
  544. package/dist/fonts-NBIQAVQN.js +34 -0
  545. package/dist/fonts-NBIQAVQN.js.map +1 -0
  546. package/dist/forecast-2GJKBNBM.js +168 -0
  547. package/dist/forecast-2GJKBNBM.js.map +1 -0
  548. package/dist/forecast-76MUJBPO.js +104 -0
  549. package/dist/forecast-76MUJBPO.js.map +1 -0
  550. package/dist/funding-HTFVZLLG.js +85 -0
  551. package/dist/funding-HTFVZLLG.js.map +1 -0
  552. package/dist/funnel-FE2HIRVQ.js +394 -0
  553. package/dist/funnel-FE2HIRVQ.js.map +1 -0
  554. package/dist/ga4-2RC4EH7V.js +55 -0
  555. package/dist/ga4-2RC4EH7V.js.map +1 -0
  556. package/dist/generate-TPDOBCKQ.js +262 -0
  557. package/dist/generate-TPDOBCKQ.js.map +1 -0
  558. package/dist/get-6JNOVI27.js +56 -0
  559. package/dist/get-6JNOVI27.js.map +1 -0
  560. package/dist/get-FH2LIEYL.js +63 -0
  561. package/dist/get-FH2LIEYL.js.map +1 -0
  562. package/dist/get-GZLCDXXW.js +61 -0
  563. package/dist/get-GZLCDXXW.js.map +1 -0
  564. package/dist/get-KVAOPAQW.js +78 -0
  565. package/dist/get-KVAOPAQW.js.map +1 -0
  566. package/dist/get-TSPQYEKC.js +59 -0
  567. package/dist/get-TSPQYEKC.js.map +1 -0
  568. package/dist/get-TY3RXYNZ.js +63 -0
  569. package/dist/get-TY3RXYNZ.js.map +1 -0
  570. package/dist/get-VPW33XTN.js +92 -0
  571. package/dist/get-VPW33XTN.js.map +1 -0
  572. package/dist/gif-JFEYPFFI.js +94 -0
  573. package/dist/gif-JFEYPFFI.js.map +1 -0
  574. package/dist/google-R6RD4L6Z.js +136 -0
  575. package/dist/google-R6RD4L6Z.js.map +1 -0
  576. package/dist/google-VPQNRVIB.js +3190 -0
  577. package/dist/google-VPQNRVIB.js.map +1 -0
  578. package/dist/google-ads-JEQMNNMN.js +195 -0
  579. package/dist/google-ads-JEQMNNMN.js.map +1 -0
  580. package/dist/group-7AV6UL26.js +43 -0
  581. package/dist/group-7AV6UL26.js.map +1 -0
  582. package/dist/group-BVQZEZIC.js +43 -0
  583. package/dist/group-BVQZEZIC.js.map +1 -0
  584. package/dist/gsc-SQ42WAQE.js +30 -0
  585. package/dist/gsc-SQ42WAQE.js.map +1 -0
  586. package/dist/history-BNNHFURR.js +67 -0
  587. package/dist/history-BNNHFURR.js.map +1 -0
  588. package/dist/history-EHUQG4CE.js +133 -0
  589. package/dist/history-EHUQG4CE.js.map +1 -0
  590. package/dist/hubspot-JABE4USC.js +779 -0
  591. package/dist/hubspot-JABE4USC.js.map +1 -0
  592. package/dist/icon-OYTTSNSL.js +137 -0
  593. package/dist/icon-OYTTSNSL.js.map +1 -0
  594. package/dist/ideas-OD76WOQ3.js +32 -0
  595. package/dist/ideas-OD76WOQ3.js.map +1 -0
  596. package/dist/images-LY7AWWBK.js +90 -0
  597. package/dist/images-LY7AWWBK.js.map +1 -0
  598. package/dist/improve-W6GZNT2A.js +86 -0
  599. package/dist/improve-W6GZNT2A.js.map +1 -0
  600. package/dist/ingest-47WON6HT.js +23 -0
  601. package/dist/ingest-47WON6HT.js.map +1 -0
  602. package/dist/ingest-HDGGHBSJ.js +107 -0
  603. package/dist/ingest-HDGGHBSJ.js.map +1 -0
  604. package/dist/insights-IW7LGAWU.js +423 -0
  605. package/dist/insights-IW7LGAWU.js.map +1 -0
  606. package/dist/insights-QH54F56A.js +122 -0
  607. package/dist/insights-QH54F56A.js.map +1 -0
  608. package/dist/inspect-AJLG2HGL.js +189 -0
  609. package/dist/inspect-AJLG2HGL.js.map +1 -0
  610. package/dist/inspiration-RDQ3Y3N3.js +53 -0
  611. package/dist/inspiration-RDQ3Y3N3.js.map +1 -0
  612. package/dist/intent-5GSSCFZ2.js +95 -0
  613. package/dist/intent-5GSSCFZ2.js.map +1 -0
  614. package/dist/job-URVXJP75.js +202 -0
  615. package/dist/job-URVXJP75.js.map +1 -0
  616. package/dist/job-create-S4SECUVF.js +109 -0
  617. package/dist/job-create-S4SECUVF.js.map +1 -0
  618. package/dist/job-status-253SUCTJ.js +74 -0
  619. package/dist/job-status-253SUCTJ.js.map +1 -0
  620. package/dist/keep-GPSYDIGJ.js +78 -0
  621. package/dist/keep-GPSYDIGJ.js.map +1 -0
  622. package/dist/keyword-gap-NTFDX43B.js +130 -0
  623. package/dist/keyword-gap-NTFDX43B.js.map +1 -0
  624. package/dist/keyword-metrics-XSFLMBZX.js +197 -0
  625. package/dist/keyword-metrics-XSFLMBZX.js.map +1 -0
  626. package/dist/keywords-for-site-U4JLYXVE.js +128 -0
  627. package/dist/keywords-for-site-U4JLYXVE.js.map +1 -0
  628. package/dist/landing-AO72EGJ6.js +28 -0
  629. package/dist/landing-AO72EGJ6.js.map +1 -0
  630. package/dist/landings-NEF4PQL2.js +151 -0
  631. package/dist/landings-NEF4PQL2.js.map +1 -0
  632. package/dist/languages-3RDPPPTE.js +55 -0
  633. package/dist/languages-3RDPPPTE.js.map +1 -0
  634. package/dist/languages-CQX3YOIT.js +40 -0
  635. package/dist/languages-CQX3YOIT.js.map +1 -0
  636. package/dist/launches-GBHLJH5S.js +19 -0
  637. package/dist/launches-GBHLJH5S.js.map +1 -0
  638. package/dist/layerize-Q56C6LFG.js +190 -0
  639. package/dist/layerize-Q56C6LFG.js.map +1 -0
  640. package/dist/leads-JHUM6FYR.js +293 -0
  641. package/dist/leads-JHUM6FYR.js.map +1 -0
  642. package/dist/leads-UYZM2XQX.js +90 -0
  643. package/dist/leads-UYZM2XQX.js.map +1 -0
  644. package/dist/learn-D2KBGJHZ.js +203 -0
  645. package/dist/learn-D2KBGJHZ.js.map +1 -0
  646. package/dist/library-6VUFHTEK.js +109 -0
  647. package/dist/library-6VUFHTEK.js.map +1 -0
  648. package/dist/lighthouse-57U2GMPV.js +75 -0
  649. package/dist/lighthouse-57U2GMPV.js.map +1 -0
  650. package/dist/line-item-writes-R5GO6GTL.js +208 -0
  651. package/dist/line-item-writes-R5GO6GTL.js.map +1 -0
  652. package/dist/line-items-RBMH6YBZ.js +103 -0
  653. package/dist/line-items-RBMH6YBZ.js.map +1 -0
  654. package/dist/link-WS2RMCOP.js +64 -0
  655. package/dist/link-WS2RMCOP.js.map +1 -0
  656. package/dist/linkedin-FSIALZTS.js +1008 -0
  657. package/dist/linkedin-FSIALZTS.js.map +1 -0
  658. package/dist/list-2AE2Q4ZD.js +151 -0
  659. package/dist/list-2AE2Q4ZD.js.map +1 -0
  660. package/dist/list-E635Y6M4.js +303 -0
  661. package/dist/list-E635Y6M4.js.map +1 -0
  662. package/dist/list-G57ZO4PG.js +50 -0
  663. package/dist/list-G57ZO4PG.js.map +1 -0
  664. package/dist/list-JCSWZWDI.js +57 -0
  665. package/dist/list-JCSWZWDI.js.map +1 -0
  666. package/dist/list-KT6NXVLV.js +63 -0
  667. package/dist/list-KT6NXVLV.js.map +1 -0
  668. package/dist/list-RINCJOAC.js +76 -0
  669. package/dist/list-RINCJOAC.js.map +1 -0
  670. package/dist/list-SRNXHS6L.js +51 -0
  671. package/dist/list-SRNXHS6L.js.map +1 -0
  672. package/dist/list-YJSO4M5Q.js +65 -0
  673. package/dist/list-YJSO4M5Q.js.map +1 -0
  674. package/dist/locations-HW2Y5OJO.js +67 -0
  675. package/dist/locations-HW2Y5OJO.js.map +1 -0
  676. package/dist/locations-XOHI3VWI.js +40 -0
  677. package/dist/locations-XOHI3VWI.js.map +1 -0
  678. package/dist/log-3HX5BIO6.js +92 -0
  679. package/dist/log-3HX5BIO6.js.map +1 -0
  680. package/dist/logo-KXTGIYBI.js +18 -0
  681. package/dist/logo-KXTGIYBI.js.map +1 -0
  682. package/dist/lookup-X6O5UNJH.js +22 -0
  683. package/dist/lookup-X6O5UNJH.js.map +1 -0
  684. package/dist/make-QH77XOWM.js +633 -0
  685. package/dist/make-QH77XOWM.js.map +1 -0
  686. package/dist/map-QABBPYZM.js +404 -0
  687. package/dist/map-QABBPYZM.js.map +1 -0
  688. package/dist/mcp-HSD3W3OB.js +463 -0
  689. package/dist/mcp-HSD3W3OB.js.map +1 -0
  690. package/dist/media-MI4EE7L4.js +89 -0
  691. package/dist/media-MI4EE7L4.js.map +1 -0
  692. package/dist/media-QUTQOBA7.js +15 -0
  693. package/dist/media-QUTQOBA7.js.map +1 -0
  694. package/dist/media-sources-HO4DXRX5.js +32 -0
  695. package/dist/media-sources-HO4DXRX5.js.map +1 -0
  696. package/dist/members-YEYYJGY6.js +44 -0
  697. package/dist/members-YEYYJGY6.js.map +1 -0
  698. package/dist/meta-E3JOUOSS.js +69 -0
  699. package/dist/meta-E3JOUOSS.js.map +1 -0
  700. package/dist/metrics-HQ7XJAYQ.js +152 -0
  701. package/dist/metrics-HQ7XJAYQ.js.map +1 -0
  702. package/dist/models-PGX3FBHU.js +155 -0
  703. package/dist/models-PGX3FBHU.js.map +1 -0
  704. package/dist/normalize-FPJ6GSOY.js +806 -0
  705. package/dist/normalize-FPJ6GSOY.js.map +1 -0
  706. package/dist/normalize-GSQWN77S.js +141 -0
  707. package/dist/normalize-GSQWN77S.js.map +1 -0
  708. package/dist/options-F5XZMQLK.js +121 -0
  709. package/dist/options-F5XZMQLK.js.map +1 -0
  710. package/dist/output-GQFJ2T5B.js +24 -0
  711. package/dist/output-GQFJ2T5B.js.map +1 -0
  712. package/dist/page-VTTSBC6Y.js +105 -0
  713. package/dist/page-VTTSBC6Y.js.map +1 -0
  714. package/dist/pages-PMZVNVQM.js +66 -0
  715. package/dist/pages-PMZVNVQM.js.map +1 -0
  716. package/dist/performance-G67JQE5J.js +24 -0
  717. package/dist/performance-G67JQE5J.js.map +1 -0
  718. package/dist/pinterest-UDNGOWDM.js +96 -0
  719. package/dist/pinterest-UDNGOWDM.js.map +1 -0
  720. package/dist/pixels-OYZDGCH3.js +108 -0
  721. package/dist/pixels-OYZDGCH3.js.map +1 -0
  722. package/dist/pixels-XKGNTCFX.js +60 -0
  723. package/dist/pixels-XKGNTCFX.js.map +1 -0
  724. package/dist/plan-DZS3TVIJ.js +207 -0
  725. package/dist/plan-DZS3TVIJ.js.map +1 -0
  726. package/dist/preview-DR6MXOGI.js +169 -0
  727. package/dist/preview-DR6MXOGI.js.map +1 -0
  728. package/dist/profile-VOVZG44G.js +159 -0
  729. package/dist/profile-VOVZG44G.js.map +1 -0
  730. package/dist/promoted-tweet-writes-VCK2ADVJ.js +180 -0
  731. package/dist/promoted-tweet-writes-VCK2ADVJ.js.map +1 -0
  732. package/dist/promoted-tweets-4ACBP2RV.js +119 -0
  733. package/dist/promoted-tweets-4ACBP2RV.js.map +1 -0
  734. package/dist/properties-MKVF7MUK.js +101 -0
  735. package/dist/properties-MKVF7MUK.js.map +1 -0
  736. package/dist/publish-6XVA35T6.js +322 -0
  737. package/dist/publish-6XVA35T6.js.map +1 -0
  738. package/dist/query-CNWQ6STR.js +61 -0
  739. package/dist/query-CNWQ6STR.js.map +1 -0
  740. package/dist/query-DBSBZ73C.js +247 -0
  741. package/dist/query-DBSBZ73C.js.map +1 -0
  742. package/dist/query-QK4U4TEL.js +236 -0
  743. package/dist/query-QK4U4TEL.js.map +1 -0
  744. package/dist/questionnaire-OVJWNUVV.js +93 -0
  745. package/dist/questionnaire-OVJWNUVV.js.map +1 -0
  746. package/dist/read-L2QIVJTL.js +141 -0
  747. package/dist/read-L2QIVJTL.js.map +1 -0
  748. package/dist/reddit-SCEB2JQL.js +26 -0
  749. package/dist/reddit-SCEB2JQL.js.map +1 -0
  750. package/dist/refresh-TIH5Y3NP.js +94 -0
  751. package/dist/refresh-TIH5Y3NP.js.map +1 -0
  752. package/dist/release-LKMUKVXM.js +60 -0
  753. package/dist/release-LKMUKVXM.js.map +1 -0
  754. package/dist/relevant-pages-CRI2NLWG.js +99 -0
  755. package/dist/relevant-pages-CRI2NLWG.js.map +1 -0
  756. package/dist/remove-6ABOB7TZ.js +50 -0
  757. package/dist/remove-6ABOB7TZ.js.map +1 -0
  758. package/dist/remove-JKSCGKQG.js +48 -0
  759. package/dist/remove-JKSCGKQG.js.map +1 -0
  760. package/dist/reopen-27TDNXFP.js +63 -0
  761. package/dist/reopen-27TDNXFP.js.map +1 -0
  762. package/dist/rerun-XHECBJD5.js +84 -0
  763. package/dist/rerun-XHECBJD5.js.map +1 -0
  764. package/dist/research-4MOXIMDX.js +62 -0
  765. package/dist/research-4MOXIMDX.js.map +1 -0
  766. package/dist/research-XYXP7D4R.js +262 -0
  767. package/dist/research-XYXP7D4R.js.map +1 -0
  768. package/dist/reset-NLYEBPLX.js +54 -0
  769. package/dist/reset-NLYEBPLX.js.map +1 -0
  770. package/dist/reset-RDQOYBXX.js +54 -0
  771. package/dist/reset-RDQOYBXX.js.map +1 -0
  772. package/dist/resolve-VHKWC5KW.js +121 -0
  773. package/dist/resolve-VHKWC5KW.js.map +1 -0
  774. package/dist/retry-MTQSHXKH.js +60 -0
  775. package/dist/retry-MTQSHXKH.js.map +1 -0
  776. package/dist/retry-ZI5ECSFD.js +62 -0
  777. package/dist/retry-ZI5ECSFD.js.map +1 -0
  778. package/dist/retry-failed-2OYMCB55.js +45 -0
  779. package/dist/retry-failed-2OYMCB55.js.map +1 -0
  780. package/dist/run-BMJJRJL2.js +65 -0
  781. package/dist/run-BMJJRJL2.js.map +1 -0
  782. package/dist/run-IHXS6F5V.js +59 -0
  783. package/dist/run-IHXS6F5V.js.map +1 -0
  784. package/dist/scaffold-ad-QEADKYPL.js +1548 -0
  785. package/dist/scaffold-ad-QEADKYPL.js.map +1 -0
  786. package/dist/scaffold-static-ad-PTJ73ZNF.js +971 -0
  787. package/dist/scaffold-static-ad-PTJ73ZNF.js.map +1 -0
  788. package/dist/scaffold-video-ZQEZRVD6.js +872 -0
  789. package/dist/scaffold-video-ZQEZRVD6.js.map +1 -0
  790. package/dist/schedule-JD2EQJCT.js +61 -0
  791. package/dist/schedule-JD2EQJCT.js.map +1 -0
  792. package/dist/schedule-TLYT5UXM.js +66 -0
  793. package/dist/schedule-TLYT5UXM.js.map +1 -0
  794. package/dist/scheduled-agents-GIVKWTXX.js +49 -0
  795. package/dist/scheduled-agents-GIVKWTXX.js.map +1 -0
  796. package/dist/schema-MZTVCNP4.js +63 -0
  797. package/dist/schema-MZTVCNP4.js.map +1 -0
  798. package/dist/schema-RYTVKPLZ.js +132 -0
  799. package/dist/schema-RYTVKPLZ.js.map +1 -0
  800. package/dist/scrape-T3DA7ER7.js +2241 -0
  801. package/dist/scrape-T3DA7ER7.js.map +1 -0
  802. package/dist/screenshot-EIGC6SZB.js +102 -0
  803. package/dist/screenshot-EIGC6SZB.js.map +1 -0
  804. package/dist/search-2SVUDZIX.js +224 -0
  805. package/dist/search-2SVUDZIX.js.map +1 -0
  806. package/dist/search-34NFJ5F6.js +26 -0
  807. package/dist/search-34NFJ5F6.js.map +1 -0
  808. package/dist/search-AOFAN5NB.js +174 -0
  809. package/dist/search-AOFAN5NB.js.map +1 -0
  810. package/dist/search-BWE3OPOY.js +91 -0
  811. package/dist/search-BWE3OPOY.js.map +1 -0
  812. package/dist/search-EYYAOZND.js +92 -0
  813. package/dist/search-EYYAOZND.js.map +1 -0
  814. package/dist/search-copy-VKQ2OOBM.js +168 -0
  815. package/dist/search-copy-VKQ2OOBM.js.map +1 -0
  816. package/dist/seeds-HQYSVFIX.js +101 -0
  817. package/dist/seeds-HQYSVFIX.js.map +1 -0
  818. package/dist/select-HJMOAWAU.js +94 -0
  819. package/dist/select-HJMOAWAU.js.map +1 -0
  820. package/dist/sends-I7VQFE4S.js +309 -0
  821. package/dist/sends-I7VQFE4S.js.map +1 -0
  822. package/dist/sequences-JHSEJJGN.js +146 -0
  823. package/dist/sequences-JHSEJJGN.js.map +1 -0
  824. package/dist/set-prompt-TSS33JQZ.js +185 -0
  825. package/dist/set-prompt-TSS33JQZ.js.map +1 -0
  826. package/dist/setup-links-IW4BUANK.js +141 -0
  827. package/dist/setup-links-IW4BUANK.js.map +1 -0
  828. package/dist/{shared-J7DQZ2ED.js → shared-AT3FXPAG.js} +8 -6
  829. package/dist/shared-AT3FXPAG.js.map +1 -0
  830. package/dist/shopify-RQKO5TMR.js +3819 -0
  831. package/dist/shopify-RQKO5TMR.js.map +1 -0
  832. package/dist/site-3NU2BDAR.js +177 -0
  833. package/dist/site-3NU2BDAR.js.map +1 -0
  834. package/dist/sitemaps-FG37N5EB.js +87 -0
  835. package/dist/sitemaps-FG37N5EB.js.map +1 -0
  836. package/dist/sites-FIXK4Y3O.js +101 -0
  837. package/dist/sites-FIXK4Y3O.js.map +1 -0
  838. package/dist/skills-OKVCVQVD.js +47 -0
  839. package/dist/skills-OKVCVQVD.js.map +1 -0
  840. package/dist/sources-SEODRUIC.js +30 -0
  841. package/dist/sources-SEODRUIC.js.map +1 -0
  842. package/dist/sources-Z6BGTBGO.js +421 -0
  843. package/dist/sources-Z6BGTBGO.js.map +1 -0
  844. package/dist/stale-SWPDWXG7.js +63 -0
  845. package/dist/stale-SWPDWXG7.js.map +1 -0
  846. package/dist/stats-ZWZ7BAHV.js +34 -0
  847. package/dist/stats-ZWZ7BAHV.js.map +1 -0
  848. package/dist/status-7Y7UNSO6.js +62 -0
  849. package/dist/status-7Y7UNSO6.js.map +1 -0
  850. package/dist/sticker-FLRZM3BI.js +94 -0
  851. package/dist/sticker-FLRZM3BI.js.map +1 -0
  852. package/dist/stock-2CSMWRWV.js +179 -0
  853. package/dist/stock-2CSMWRWV.js.map +1 -0
  854. package/dist/studio-TTTR6N7D.js +49 -0
  855. package/dist/studio-TTTR6N7D.js.map +1 -0
  856. package/dist/sync-FH773IFH.js +54 -0
  857. package/dist/sync-FH773IFH.js.map +1 -0
  858. package/dist/sync-G5CS2RYV.js +54 -0
  859. package/dist/sync-G5CS2RYV.js.map +1 -0
  860. package/dist/sync-UADA6M33.js +265 -0
  861. package/dist/sync-UADA6M33.js.map +1 -0
  862. package/dist/sync-definition-77KLGPMA.js +52 -0
  863. package/dist/sync-definition-77KLGPMA.js.map +1 -0
  864. package/dist/tag-manager-NK3ZHSJB.js +43 -0
  865. package/dist/tag-manager-NK3ZHSJB.js.map +1 -0
  866. package/dist/tags-ANGHHLAC.js +20 -0
  867. package/dist/tags-ANGHHLAC.js.map +1 -0
  868. package/dist/tags-DKPUSQTJ.js +20 -0
  869. package/dist/tags-DKPUSQTJ.js.map +1 -0
  870. package/dist/tags-HSCV4ZAQ.js +20 -0
  871. package/dist/tags-HSCV4ZAQ.js.map +1 -0
  872. package/dist/tags-J3RMQEQM.js +26 -0
  873. package/dist/tags-J3RMQEQM.js.map +1 -0
  874. package/dist/tags-VZGTR3VJ.js +224 -0
  875. package/dist/tags-VZGTR3VJ.js.map +1 -0
  876. package/dist/targeting-constants-ZGBX3VWU.js +118 -0
  877. package/dist/targeting-constants-ZGBX3VWU.js.map +1 -0
  878. package/dist/targeting-criteria-BSG3CLHU.js +113 -0
  879. package/dist/targeting-criteria-BSG3CLHU.js.map +1 -0
  880. package/dist/targets-DVOAFYZQ.js +102 -0
  881. package/dist/targets-DVOAFYZQ.js.map +1 -0
  882. package/dist/templates-KJ5O44FF.js +178 -0
  883. package/dist/templates-KJ5O44FF.js.map +1 -0
  884. package/dist/testimonials-NB7V3DUO.js +32 -0
  885. package/dist/testimonials-NB7V3DUO.js.map +1 -0
  886. package/dist/themes-3RV3HNNE.js +94 -0
  887. package/dist/themes-3RV3HNNE.js.map +1 -0
  888. package/dist/top-companies-KRB3OZOT.js +108 -0
  889. package/dist/top-companies-KRB3OZOT.js.map +1 -0
  890. package/dist/translate-5FP32BIA.js +598 -0
  891. package/dist/translate-5FP32BIA.js.map +1 -0
  892. package/dist/triggers-EURHTCYC.js +141 -0
  893. package/dist/triggers-EURHTCYC.js.map +1 -0
  894. package/dist/tweets-X64YDEAA.js +123 -0
  895. package/dist/tweets-X64YDEAA.js.map +1 -0
  896. package/dist/unfollow-PIONCSBL.js +46 -0
  897. package/dist/unfollow-PIONCSBL.js.map +1 -0
  898. package/dist/unlink-HVVTZ3MB.js +67 -0
  899. package/dist/unlink-HVVTZ3MB.js.map +1 -0
  900. package/dist/unstage-BJJ5M7MK.js +95 -0
  901. package/dist/unstage-BJJ5M7MK.js.map +1 -0
  902. package/dist/unstage-Y7ZE3NUJ.js +84 -0
  903. package/dist/unstage-Y7ZE3NUJ.js.map +1 -0
  904. package/dist/update-3IP7FB6Y.js +98 -0
  905. package/dist/update-3IP7FB6Y.js.map +1 -0
  906. package/dist/update-CSDSK5NO.js +63 -0
  907. package/dist/update-CSDSK5NO.js.map +1 -0
  908. package/dist/update-FGJXVDB7.js +142 -0
  909. package/dist/update-FGJXVDB7.js.map +1 -0
  910. package/dist/update-MF7LY2OT.js +155 -0
  911. package/dist/update-MF7LY2OT.js.map +1 -0
  912. package/dist/upload-DDPI7KJV.js +126 -0
  913. package/dist/upload-DDPI7KJV.js.map +1 -0
  914. package/dist/upload-IWFYKD7A.js +150 -0
  915. package/dist/upload-IWFYKD7A.js.map +1 -0
  916. package/dist/upscale-EYCEYRWE.js +109 -0
  917. package/dist/upscale-EYCEYRWE.js.map +1 -0
  918. package/dist/url-options-RA3XISLN.js +130 -0
  919. package/dist/url-options-RA3XISLN.js.map +1 -0
  920. package/dist/url-params-SN4APXCK.js +98 -0
  921. package/dist/url-params-SN4APXCK.js.map +1 -0
  922. package/dist/use-E2TA2K6J.js +95 -0
  923. package/dist/use-E2TA2K6J.js.map +1 -0
  924. package/dist/validate-W52JOEXI.js +88 -0
  925. package/dist/validate-W52JOEXI.js.map +1 -0
  926. package/dist/variant-ETHB6XUM.js +338 -0
  927. package/dist/variant-ETHB6XUM.js.map +1 -0
  928. package/dist/videos-653WAFPG.js +39 -0
  929. package/dist/videos-653WAFPG.js.map +1 -0
  930. package/dist/view-BVEZRRV2.js +121 -0
  931. package/dist/view-BVEZRRV2.js.map +1 -0
  932. package/dist/viewer-check-W4ICSBHO.js +68 -0
  933. package/dist/viewer-check-W4ICSBHO.js.map +1 -0
  934. package/dist/web-JWIGFGIU.js +140 -0
  935. package/dist/web-JWIGFGIU.js.map +1 -0
  936. package/dist/winners-MJDKCGEZ.js +113 -0
  937. package/dist/winners-MJDKCGEZ.js.map +1 -0
  938. package/dist/winning-ads-O3IMUGGO.js +84 -0
  939. package/dist/winning-ads-O3IMUGGO.js.map +1 -0
  940. package/dist/write-commands-DA6FIFAO.js +737 -0
  941. package/dist/write-commands-DA6FIFAO.js.map +1 -0
  942. package/dist/write-commands-EMN2WENA.js +1015 -0
  943. package/dist/write-commands-EMN2WENA.js.map +1 -0
  944. package/dist/write-commands-KTPISQRE.js +206 -0
  945. package/dist/write-commands-KTPISQRE.js.map +1 -0
  946. package/dist/write-commands-QBGIWU27.js +713 -0
  947. package/dist/write-commands-QBGIWU27.js.map +1 -0
  948. package/dist/x-BT3SNCTU.js +47 -0
  949. package/dist/x-BT3SNCTU.js.map +1 -0
  950. package/package.json +9 -2
  951. package/dist/chunk-FGHMWBUD.js +0 -9989
  952. package/dist/chunk-FGHMWBUD.js.map +0 -1
  953. package/dist/chunk-HJEMOSPH.js +0 -1292
  954. package/dist/chunk-HJEMOSPH.js.map +0 -1
  955. package/dist/chunk-MF7YA62W.js.map +0 -1
  956. package/dist/chunk-VLUGGVJL.js.map +0 -1
  957. package/dist/chunk-VZEDAFAR.js.map +0 -1
  958. package/dist/chunk-XHC4LMK4.js.map +0 -1
  959. package/dist/client-GR6YL3YX.js +0 -17
  960. package/dist/output-NMQXZF3Z.js +0 -18
  961. /package/dist/{client-GR6YL3YX.js.map → chunk-YQSBHWOI.js.map} +0 -0
  962. /package/dist/{env-4P5HOGNA.js.map → client-EURRWXPW.js.map} +0 -0
  963. /package/dist/{output-NMQXZF3Z.js.map → connect-4YXFMXYX.js.map} +0 -0
  964. /package/dist/{shared-J7DQZ2ED.js.map → customers-7E4HBSEY.js.map} +0 -0
@@ -0,0 +1,151 @@
1
+ import {
2
+ reportError,
3
+ splitList
4
+ } from "./chunk-OIL6PU5W.js";
5
+ import {
6
+ apiGet,
7
+ apiPost
8
+ } from "./chunk-CUL3VB4L.js";
9
+ import "./chunk-6YYSUISH.js";
10
+ import "./chunk-I4FTS5EE.js";
11
+ import {
12
+ LANDING_ANALYSE_BATCH,
13
+ registerSchema,
14
+ writeJson
15
+ } from "./chunk-MYTDK3AL.js";
16
+ import "./chunk-YQSBHWOI.js";
17
+
18
+ // src/commands/winning-ads/landings.ts
19
+ import { defineCommand } from "citty";
20
+ registerSchema({
21
+ command: "winning-ads.landings",
22
+ description: "Every landing page one brand's ads send people to, the ones in use now first (a short or tracking link counts as the page it opens; Instant Forms, chats, app stores and social profiles are not pages): how many ads point there, how many still run, platforms, when each was used (`used`: one stretch per run of ads, `\u2192 now` while running), `address_only` on an address only Google search ads print (Google publishes no search ad's real destination, and the path need not exist \u2014 not analysed), and \u2014 once analysed \u2014 the page's headline, value propositions, offer, pricing, CTAs, proof, audience and sections in order. Compact by default; --full returns every field, the ads behind each page and its screenshot. --analyse studies the top pages not yet analysed (a few minutes each).",
23
+ args: {
24
+ advertiser: { type: "string", description: "Advertiser id (from `advertisers` or `following`)", required: true },
25
+ platform: { type: "string", description: "Only this platform: meta|linkedin|tiktok|google", required: false },
26
+ full: { type: "boolean", description: "Every field of every page", required: false, default: false },
27
+ analyse: {
28
+ type: "boolean",
29
+ description: `Analyse the top ${LANDING_ANALYSE_BATCH} pages not analysed yet (or those named in --pages)`,
30
+ required: false,
31
+ default: false
32
+ },
33
+ pages: {
34
+ type: "string",
35
+ description: `With --analyse: comma list of page urls to analyse instead (max ${LANDING_ANALYSE_BATCH})`,
36
+ required: false
37
+ }
38
+ }
39
+ });
40
+ var COMPACT_PAGES = 20;
41
+ var COMPACT_VALUE_PROPS = 3;
42
+ var day = (iso) => iso.slice(0, 10);
43
+ function compactPage(p) {
44
+ const pitch = p.analysis.pitch;
45
+ return {
46
+ url: p.canonical_url,
47
+ in_use_now: p.active_ads > 0,
48
+ ads: p.ads,
49
+ running: p.active_ads,
50
+ platforms: p.platforms,
51
+ used: p.windows.map((w) => `${day(w.from)} \u2192 ${w.to ? day(w.to) : "now"}`),
52
+ last_seen_at: p.last_seen_at,
53
+ ...p.address_only ? { address_only: true } : {},
54
+ analysis: p.analysis.status,
55
+ ...pitch ? {
56
+ headline: pitch.headline,
57
+ value_propositions: pitch.value_propositions.slice(0, COMPACT_VALUE_PROPS),
58
+ offer: pitch.offer
59
+ } : {}
60
+ };
61
+ }
62
+ function compactLandings(report) {
63
+ return {
64
+ advertiser_id: report.advertiser_id,
65
+ total_pages: report.total_pages,
66
+ analysed: report.pages.filter((p) => p.analysis.status === "ready").length,
67
+ pages: report.pages.slice(0, COMPACT_PAGES).map(compactPage)
68
+ };
69
+ }
70
+ function pagesToAnalyse(report) {
71
+ return report.pages.filter((p) => !p.address_only && (p.analysis.status === "not_analysed" || p.analysis.status === "failed")).slice(0, LANDING_ANALYSE_BATCH).map((p) => p.canonical_url);
72
+ }
73
+ function landingsHints(report, advertiser) {
74
+ const hints = [];
75
+ const top = report.pages.slice(0, COMPACT_PAGES);
76
+ const pending = top.filter((p) => !p.address_only && p.analysis.status === "not_analysed").length;
77
+ const addressOnly = report.pages.filter((p) => p.address_only).length;
78
+ const analysing = report.pages.filter((p) => p.analysis.status === "analysing").length;
79
+ if (report.pages.length === 0) {
80
+ hints.push("No ad of this brand links to a landing page yet.");
81
+ return hints;
82
+ }
83
+ if (addressOnly > 0) {
84
+ hints.push(
85
+ `${addressOnly} ${addressOnly === 1 ? "address" : "addresses"} only Google search ads show (\`address_only\`): Google publishes no search ad's destination, only the address printed on it, whose path the brand types freely and need not exist. Quote it as the address the ad shows, never as a page the ads lead to; it is not analysed.`
86
+ );
87
+ }
88
+ if (pending > 0) {
89
+ hints.push(
90
+ `${pending} of the top pages are not analysed yet: \`baker winning-ads landings ${advertiser} --analyse\` studies the top ${LANDING_ANALYSE_BATCH} (value propositions, offer, pricing, proof, sections). It takes a few minutes; run this again to read them.`
91
+ );
92
+ }
93
+ if (analysing > 0) {
94
+ hints.push(`${analysing} pages are being analysed now: run this again in a few minutes.`);
95
+ }
96
+ if (report.pages.some((p) => p.analysis.status === "ready")) {
97
+ hints.push(
98
+ "--full returns each analysed page's whole read: pricing, CTAs, proof, audience and its sections in order."
99
+ );
100
+ }
101
+ return hints;
102
+ }
103
+ var landingsCommand = defineCommand({
104
+ meta: {
105
+ name: "landings",
106
+ description: "Every landing page a brand's ads point to, with how the page sells once analysed. Start here: baker winning-ads landings adv_123 (--analyse to study the top pages not analysed yet, --full for everything)"
107
+ },
108
+ args: {
109
+ advertiser: { type: "positional", description: "Advertiser id", required: true },
110
+ platform: { type: "string", description: "Only this platform: meta|linkedin|tiktok|google", required: false },
111
+ full: { type: "boolean", description: "Every field of every page", required: false, default: false },
112
+ analyse: {
113
+ type: "boolean",
114
+ description: `Analyse the top ${LANDING_ANALYSE_BATCH} pages not analysed yet`,
115
+ required: false,
116
+ default: false
117
+ },
118
+ pages: { type: "string", description: "With --analyse: comma list of page urls to analyse", required: false }
119
+ },
120
+ run: async ({ args }) => {
121
+ try {
122
+ const advertiser = String(args.advertiser);
123
+ const params = { advertiser };
124
+ if (args.platform) params.platform = String(args.platform);
125
+ let report = await apiGet("/api/ad-library/landing-pages", params);
126
+ let started;
127
+ if (args.analyse) {
128
+ const named = args.pages ? splitList(String(args.pages)) : [];
129
+ const urls = named.length > 0 ? named.slice(0, LANDING_ANALYSE_BATCH) : pagesToAnalyse(report);
130
+ if (urls.length > 0) {
131
+ started = (await apiPost("/api/ad-library/landing-pages/analyse", { urls })).pages;
132
+ report = await apiGet("/api/ad-library/landing-pages", params);
133
+ }
134
+ }
135
+ writeJson({
136
+ ok: true,
137
+ data: { ...args.full ? report : compactLandings(report), ...started ? { analyse: started } : {} },
138
+ hints: landingsHints(report, advertiser)
139
+ });
140
+ } catch (err) {
141
+ reportError(err);
142
+ }
143
+ }
144
+ });
145
+ export {
146
+ compactLandings,
147
+ landingsCommand,
148
+ landingsHints,
149
+ pagesToAnalyse
150
+ };
151
+ //# sourceMappingURL=landings-NEF4PQL2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/winning-ads/landings.ts"],"sourcesContent":["import {\n type AnalyseLandingPagesResponse,\n type BrandLandingPage,\n type BrandLandingPages,\n LANDING_ANALYSE_BATCH,\n} from \"@baker/api/ad-library\";\nimport { defineCommand } from \"citty\";\nimport { apiGet, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { reportError, splitList } from \"./shared.ts\";\n\nregisterSchema({\n command: \"winning-ads.landings\",\n description:\n \"Every landing page one brand's ads send people to, the ones in use now first (a short or tracking link counts as the page it opens; Instant Forms, chats, app stores and social profiles are not pages): how many ads point there, how many still run, platforms, when each was used (`used`: one stretch per run of ads, `→ now` while running), `address_only` on an address only Google search ads print (Google publishes no search ad's real destination, and the path need not exist — not analysed), and — once analysed — the page's headline, value propositions, offer, pricing, CTAs, proof, audience and sections in order. Compact by default; --full returns every field, the ads behind each page and its screenshot. --analyse studies the top pages not yet analysed (a few minutes each).\",\n args: {\n advertiser: { type: \"string\", description: \"Advertiser id (from `advertisers` or `following`)\", required: true },\n platform: { type: \"string\", description: \"Only this platform: meta|linkedin|tiktok|google\", required: false },\n full: { type: \"boolean\", description: \"Every field of every page\", required: false, default: false },\n analyse: {\n type: \"boolean\",\n description: `Analyse the top ${LANDING_ANALYSE_BATCH} pages not analysed yet (or those named in --pages)`,\n required: false,\n default: false,\n },\n pages: {\n type: \"string\",\n description: `With --analyse: comma list of page urls to analyse instead (max ${LANDING_ANALYSE_BATCH})`,\n required: false,\n },\n },\n});\n\nconst COMPACT_PAGES = 20;\nconst COMPACT_VALUE_PROPS = 3;\n\nconst day = (iso: string) => iso.slice(0, 10);\n\nfunction compactPage(p: BrandLandingPage) {\n const pitch = p.analysis.pitch;\n return {\n url: p.canonical_url,\n in_use_now: p.active_ads > 0,\n ads: p.ads,\n running: p.active_ads,\n platforms: p.platforms,\n used: p.windows.map((w) => `${day(w.from)} → ${w.to ? day(w.to) : \"now\"}`),\n last_seen_at: p.last_seen_at,\n ...(p.address_only ? { address_only: true } : {}),\n analysis: p.analysis.status,\n ...(pitch\n ? {\n headline: pitch.headline,\n value_propositions: pitch.value_propositions.slice(0, COMPACT_VALUE_PROPS),\n offer: pitch.offer,\n }\n : {}),\n };\n}\n\n/** The pages cut to what an agent needs to pick which to read: url, ads, what runs, the top of the pitch. */\nexport function compactLandings(report: BrandLandingPages) {\n return {\n advertiser_id: report.advertiser_id,\n total_pages: report.total_pages,\n analysed: report.pages.filter((p) => p.analysis.status === \"ready\").length,\n pages: report.pages.slice(0, COMPACT_PAGES).map(compactPage),\n };\n}\n\n/**\n * The top pages (in use now first) nobody has analysed, or whose analysis\n * failed, at most one batch. An address only Google search ads show is left\n * out: it need not be a page at all.\n */\nexport function pagesToAnalyse(report: BrandLandingPages): string[] {\n return report.pages\n .filter((p) => !p.address_only && (p.analysis.status === \"not_analysed\" || p.analysis.status === \"failed\"))\n .slice(0, LANDING_ANALYSE_BATCH)\n .map((p) => p.canonical_url);\n}\n\n/** Point at the pages still to analyse, and say when some are on their way. */\nexport function landingsHints(report: BrandLandingPages, advertiser: string): string[] {\n const hints: string[] = [];\n const top = report.pages.slice(0, COMPACT_PAGES);\n const pending = top.filter((p) => !p.address_only && p.analysis.status === \"not_analysed\").length;\n const addressOnly = report.pages.filter((p) => p.address_only).length;\n const analysing = report.pages.filter((p) => p.analysis.status === \"analysing\").length;\n if (report.pages.length === 0) {\n hints.push(\"No ad of this brand links to a landing page yet.\");\n return hints;\n }\n if (addressOnly > 0) {\n hints.push(\n `${addressOnly} ${addressOnly === 1 ? \"address\" : \"addresses\"} only Google search ads show (\\`address_only\\`): Google publishes no search ad's destination, only the address printed on it, whose path the brand types freely and need not exist. Quote it as the address the ad shows, never as a page the ads lead to; it is not analysed.`,\n );\n }\n if (pending > 0) {\n hints.push(\n `${pending} of the top pages are not analysed yet: \\`baker winning-ads landings ${advertiser} --analyse\\` studies the top ${LANDING_ANALYSE_BATCH} (value propositions, offer, pricing, proof, sections). It takes a few minutes; run this again to read them.`,\n );\n }\n if (analysing > 0) {\n hints.push(`${analysing} pages are being analysed now: run this again in a few minutes.`);\n }\n if (report.pages.some((p) => p.analysis.status === \"ready\")) {\n hints.push(\n \"--full returns each analysed page's whole read: pricing, CTAs, proof, audience and its sections in order.\",\n );\n }\n return hints;\n}\n\nexport const landingsCommand = defineCommand({\n meta: {\n name: \"landings\",\n description:\n \"Every landing page a brand's ads point to, with how the page sells once analysed. Start here: baker winning-ads landings adv_123 (--analyse to study the top pages not analysed yet, --full for everything)\",\n },\n args: {\n advertiser: { type: \"positional\", description: \"Advertiser id\", required: true },\n platform: { type: \"string\", description: \"Only this platform: meta|linkedin|tiktok|google\", required: false },\n full: { type: \"boolean\", description: \"Every field of every page\", required: false, default: false },\n analyse: {\n type: \"boolean\",\n description: `Analyse the top ${LANDING_ANALYSE_BATCH} pages not analysed yet`,\n required: false,\n default: false,\n },\n pages: { type: \"string\", description: \"With --analyse: comma list of page urls to analyse\", required: false },\n },\n run: async ({ args }) => {\n try {\n const advertiser = String(args.advertiser);\n const params: Record<string, string> = { advertiser };\n if (args.platform) params.platform = String(args.platform);\n let report = await apiGet<BrandLandingPages>(\"/api/ad-library/landing-pages\", params);\n let started: AnalyseLandingPagesResponse[\"pages\"] | undefined;\n if (args.analyse) {\n const named = args.pages ? splitList(String(args.pages)) : [];\n const urls = named.length > 0 ? named.slice(0, LANDING_ANALYSE_BATCH) : pagesToAnalyse(report);\n if (urls.length > 0) {\n started = (await apiPost<AnalyseLandingPagesResponse>(\"/api/ad-library/landing-pages/analyse\", { urls }))\n .pages;\n report = await apiGet<BrandLandingPages>(\"/api/ad-library/landing-pages\", params);\n }\n }\n writeJson({\n ok: true,\n data: { ...(args.full ? report : compactLandings(report)), ...(started ? { analyse: started } : {}) },\n hints: landingsHints(report, advertiser),\n });\n } catch (err) {\n reportError(err);\n }\n },\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,55 @@
1
+ import {
2
+ writeResearchJson
3
+ } from "./chunk-7OHWEF3I.js";
4
+ import "./chunk-CUL3VB4L.js";
5
+ import "./chunk-6YYSUISH.js";
6
+ import "./chunk-I4FTS5EE.js";
7
+ import {
8
+ registerSchema
9
+ } from "./chunk-MYTDK3AL.js";
10
+ import "./chunk-YQSBHWOI.js";
11
+
12
+ // src/commands/research/languages.ts
13
+ import { defineCommand } from "citty";
14
+ registerSchema({
15
+ command: "research.languages",
16
+ description: "List all supported language codes for --language flag in research commands.",
17
+ args: {}
18
+ });
19
+ var LANGUAGES = [
20
+ { code: "en", name: "english" },
21
+ { code: "es", name: "spanish" },
22
+ { code: "fr", name: "french" },
23
+ { code: "de", name: "german" },
24
+ { code: "it", name: "italian" },
25
+ { code: "pt", name: "portuguese" },
26
+ { code: "nl", name: "dutch" },
27
+ { code: "ja", name: "japanese" },
28
+ { code: "ko", name: "korean" },
29
+ { code: "zh", name: "chinese" },
30
+ { code: "ar", name: "arabic" },
31
+ { code: "ru", name: "russian" },
32
+ { code: "pl", name: "polish" },
33
+ { code: "tr", name: "turkish" },
34
+ { code: "sv", name: "swedish" },
35
+ { code: "no", name: "norwegian" },
36
+ { code: "da", name: "danish" },
37
+ { code: "fi", name: "finnish" }
38
+ ];
39
+ var FIELDS = {
40
+ code: "Language code to pass as --language",
41
+ name: "Language name (also accepted by --language)"
42
+ };
43
+ var languagesCommand = defineCommand({
44
+ meta: {
45
+ name: "languages",
46
+ description: "List all supported language codes for --language flag."
47
+ },
48
+ run: () => {
49
+ writeResearchJson({ ok: true, data: LANGUAGES, fields: FIELDS });
50
+ }
51
+ });
52
+ export {
53
+ languagesCommand
54
+ };
55
+ //# sourceMappingURL=languages-3RDPPPTE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/research/languages.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { writeResearchJson } from \"./output.ts\";\n\nregisterSchema({\n command: \"research.languages\",\n description: \"List all supported language codes for --language flag in research commands.\",\n args: {},\n});\n\nconst LANGUAGES: Array<{ code: string; name: string }> = [\n { code: \"en\", name: \"english\" },\n { code: \"es\", name: \"spanish\" },\n { code: \"fr\", name: \"french\" },\n { code: \"de\", name: \"german\" },\n { code: \"it\", name: \"italian\" },\n { code: \"pt\", name: \"portuguese\" },\n { code: \"nl\", name: \"dutch\" },\n { code: \"ja\", name: \"japanese\" },\n { code: \"ko\", name: \"korean\" },\n { code: \"zh\", name: \"chinese\" },\n { code: \"ar\", name: \"arabic\" },\n { code: \"ru\", name: \"russian\" },\n { code: \"pl\", name: \"polish\" },\n { code: \"tr\", name: \"turkish\" },\n { code: \"sv\", name: \"swedish\" },\n { code: \"no\", name: \"norwegian\" },\n { code: \"da\", name: \"danish\" },\n { code: \"fi\", name: \"finnish\" },\n];\n\nconst FIELDS: Record<string, string> = {\n code: \"Language code to pass as --language\",\n name: \"Language name (also accepted by --language)\",\n};\n\nexport const languagesCommand = defineCommand({\n meta: {\n name: \"languages\",\n description: \"List all supported language codes for --language flag.\",\n },\n run: () => {\n writeResearchJson({ ok: true, data: LANGUAGES, fields: FIELDS });\n },\n});\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAI9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM,CAAC;AACT,CAAC;AAED,IAAM,YAAmD;AAAA,EACvD,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,aAAa;AAAA,EACjC,EAAE,MAAM,MAAM,MAAM,QAAQ;AAAA,EAC5B,EAAE,MAAM,MAAM,MAAM,WAAW;AAAA,EAC/B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,UAAU;AAAA,EAC9B,EAAE,MAAM,MAAM,MAAM,YAAY;AAAA,EAChC,EAAE,MAAM,MAAM,MAAM,SAAS;AAAA,EAC7B,EAAE,MAAM,MAAM,MAAM,UAAU;AAChC;AAEA,IAAM,SAAiC;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AACR;AAEO,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,KAAK,MAAM;AACT,sBAAkB,EAAE,IAAI,MAAM,MAAM,WAAW,QAAQ,OAAO,CAAC;AAAA,EACjE;AACF,CAAC;","names":[]}
@@ -0,0 +1,40 @@
1
+ import {
2
+ GOOGLE_ADS_LANGUAGES
3
+ } from "./chunk-SQ7DRYCC.js";
4
+ import "./chunk-SEPPFM5S.js";
5
+ import {
6
+ writeAdsJson
7
+ } from "./chunk-EIGXX6KI.js";
8
+ import "./chunk-I2DNBEV6.js";
9
+ import "./chunk-CUL3VB4L.js";
10
+ import "./chunk-6YYSUISH.js";
11
+ import "./chunk-I4FTS5EE.js";
12
+ import {
13
+ registerSchema
14
+ } from "./chunk-MYTDK3AL.js";
15
+ import "./chunk-YQSBHWOI.js";
16
+
17
+ // src/commands/ads/google/keywords/languages.ts
18
+ import { defineCommand } from "citty";
19
+ registerSchema({
20
+ command: "ads.google.keywords.languages",
21
+ description: "List all supported language IDs for --language flag in Google Ads keyword commands.",
22
+ args: {}
23
+ });
24
+ var FIELDS = {
25
+ id: "Language ID to pass as --language",
26
+ name: "Language name"
27
+ };
28
+ var languagesCommand = defineCommand({
29
+ meta: {
30
+ name: "languages",
31
+ description: "List all supported language IDs for --language flag."
32
+ },
33
+ run: () => {
34
+ writeAdsJson({ ok: true, data: GOOGLE_ADS_LANGUAGES, fields: FIELDS });
35
+ }
36
+ });
37
+ export {
38
+ languagesCommand
39
+ };
40
+ //# sourceMappingURL=languages-CQX3YOIT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/google/keywords/languages.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { GOOGLE_ADS_LANGUAGES } from \"../../../../geo-context.ts\";\nimport { registerSchema } from \"../../../../schemas.ts\";\nimport { writeAdsJson } from \"../../output.ts\";\n\nregisterSchema({\n command: \"ads.google.keywords.languages\",\n description: \"List all supported language IDs for --language flag in Google Ads keyword commands.\",\n args: {},\n});\n\nconst FIELDS: Record<string, string> = {\n id: \"Language ID to pass as --language\",\n name: \"Language name\",\n};\n\nexport const languagesCommand = defineCommand({\n meta: {\n name: \"languages\",\n description: \"List all supported language IDs for --language flag.\",\n },\n run: () => {\n writeAdsJson({ ok: true, data: GOOGLE_ADS_LANGUAGES, fields: FIELDS });\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAK9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM,CAAC;AACT,CAAC;AAED,IAAM,SAAiC;AAAA,EACrC,IAAI;AAAA,EACJ,MAAM;AACR;AAEO,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,KAAK,MAAM;AACT,iBAAa,EAAE,IAAI,MAAM,MAAM,sBAAsB,QAAQ,OAAO,CAAC;AAAA,EACvE;AACF,CAAC;","names":[]}
@@ -0,0 +1,19 @@
1
+ import {
2
+ IDEA_HINT,
3
+ compactLaunches,
4
+ launchesCommand,
5
+ launchesHints
6
+ } from "./chunk-WFUMNDCE.js";
7
+ import "./chunk-OIL6PU5W.js";
8
+ import "./chunk-CUL3VB4L.js";
9
+ import "./chunk-6YYSUISH.js";
10
+ import "./chunk-I4FTS5EE.js";
11
+ import "./chunk-MYTDK3AL.js";
12
+ import "./chunk-YQSBHWOI.js";
13
+ export {
14
+ IDEA_HINT,
15
+ compactLaunches,
16
+ launchesCommand,
17
+ launchesHints
18
+ };
19
+ //# sourceMappingURL=launches-GBHLJH5S.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,190 @@
1
+ import {
2
+ ApiError,
3
+ apiGet,
4
+ apiPost
5
+ } from "./chunk-CUL3VB4L.js";
6
+ import "./chunk-6YYSUISH.js";
7
+ import "./chunk-I4FTS5EE.js";
8
+ import {
9
+ registerSchema,
10
+ writeJson
11
+ } from "./chunk-MYTDK3AL.js";
12
+ import "./chunk-YQSBHWOI.js";
13
+
14
+ // src/commands/images/layerize.ts
15
+ import { defineCommand } from "citty";
16
+ registerSchema({
17
+ command: "images.layerize",
18
+ description: "Split a library image into editable layers: transparent PNG cutouts for each element, plus any headline recovered as EDITABLE TEXT with its font, size, colour and position. Waits for completion by default. Costs credits.",
19
+ args: {
20
+ "image-id": { type: "string", description: "Library image ID to split", required: true },
21
+ instructions: {
22
+ type: "string",
23
+ description: "Optional steer for what to separate, e.g. 'keep the bottle and its shadow as one layer'",
24
+ required: false
25
+ },
26
+ full: { type: "boolean", description: "Include geometry and typography for every layer", required: false },
27
+ "max-wait": {
28
+ type: "number",
29
+ description: "Max wait ms (default 240000 = 4 min). Set 0 to fire-and-forget.",
30
+ required: false,
31
+ default: 24e4
32
+ }
33
+ }
34
+ });
35
+ var POLL_INTERVAL_MS = 4e3;
36
+ function compact(doc) {
37
+ return {
38
+ layeredImageId: doc.layeredImageId,
39
+ imageId: doc.imageId,
40
+ status: doc.status,
41
+ canvas: { width: doc.width, height: doc.height },
42
+ layers: doc.layers.map((layer) => ({
43
+ id: layer.id,
44
+ kind: layer.kind,
45
+ name: layer.name,
46
+ ...layer.url ? { url: layer.url } : {},
47
+ ...layer.text ? { text: layer.text.content } : {}
48
+ }))
49
+ };
50
+ }
51
+ function hintsFor(doc) {
52
+ const hints = [];
53
+ const text = doc.layers.filter((layer) => layer.kind === "text");
54
+ const art = doc.layers.filter((layer) => layer.kind === "art" && layer.id !== "layer-base");
55
+ if (text.length > 0) {
56
+ hints.push(
57
+ `${text.length} text layer(s) recovered as editable copy \u2014 run with --full for the font, size and colour to reuse when rewriting it.`
58
+ );
59
+ }
60
+ if (art.length > 0) {
61
+ hints.push(
62
+ `Each art layer's url is a transparent PNG on the media host: wire one straight into a canvas composition to reuse that element on its own.`
63
+ );
64
+ }
65
+ hints.push(
66
+ '"Original image" is the flat picture kept underneath. The model separates what was VISIBLE and does not repaint what sat behind a subject, so moving one can leave a gap.'
67
+ );
68
+ return hints;
69
+ }
70
+ async function pollUntilSettled(imageId, maxWait) {
71
+ const start = Date.now();
72
+ while (Date.now() - start < maxWait) {
73
+ await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
74
+ const doc = await apiGet("/api/images/layers", { imageId });
75
+ if (doc.status !== "splitting") return doc;
76
+ }
77
+ return null;
78
+ }
79
+ var layerizeCommand = defineCommand({
80
+ meta: {
81
+ name: "layerize",
82
+ description: "Split a library image into editable layers \u2014 transparent cutouts per element, plus any baked-in headline recovered as editable text with its typography.\n\nStart here: baker images layerize j571abc123def\nExample: baker images layerize j571abc123def --full\nExample: baker images layerize j571abc123def --instructions 'keep the product and its shadow together'"
83
+ },
84
+ args: {
85
+ "image-id": { type: "positional", description: "Library image ID", required: false },
86
+ instructions: { type: "string", description: "Optional steer for what to separate", required: false },
87
+ full: { type: "boolean", description: "Include geometry and typography", required: false },
88
+ "max-wait": { type: "string", description: "Max wait ms (default 240000, 0 = no wait)", required: false }
89
+ },
90
+ run: async ({ args }) => {
91
+ try {
92
+ const imageId = args["image-id"];
93
+ if (!imageId) {
94
+ writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: "image-id is required" } });
95
+ process.exit(1);
96
+ }
97
+ const maxWait = args["max-wait"] ? Number(args["max-wait"]) : 24e4;
98
+ const full = Boolean(args.full);
99
+ const started = await apiPost("/api/images/layerize", {
100
+ imageId,
101
+ instructions: args.instructions
102
+ });
103
+ const settled = maxWait === 0 || started.status !== "splitting" ? started : await pollUntilSettled(imageId, maxWait);
104
+ if (!settled) {
105
+ writeJson({
106
+ ok: false,
107
+ error: {
108
+ code: "TIMEOUT",
109
+ message: `Layers not ready within ${maxWait}ms`,
110
+ fix: `The split is still running. Read it later with: baker images layers ${imageId}`
111
+ }
112
+ });
113
+ process.exit(1);
114
+ }
115
+ if (settled.status === "failed") {
116
+ writeJson({
117
+ ok: false,
118
+ error: {
119
+ code: "IMAGE_PROCESSING_ERROR",
120
+ message: settled.error ?? "That image couldn't be split into layers",
121
+ fix: "Run the same command again \u2014 this provider rejects a valid request intermittently. If it fails twice more, carry on without layers."
122
+ }
123
+ });
124
+ process.exit(1);
125
+ }
126
+ writeJson({ ok: true, data: full ? settled : compact(settled), hints: hintsFor(settled) });
127
+ } catch (err) {
128
+ if (err instanceof ApiError) {
129
+ writeJson({ ok: false, error: { code: err.code, message: err.message } });
130
+ process.exit(1);
131
+ }
132
+ writeJson({
133
+ ok: false,
134
+ error: { code: "INTERNAL_ERROR", message: err instanceof Error ? err.message : "Unexpected error" }
135
+ });
136
+ process.exit(1);
137
+ }
138
+ }
139
+ });
140
+ registerSchema({
141
+ command: "images.layers",
142
+ description: "Read the layers of an image already split with `images layerize` \u2014 free, no provider call. Use it to see what an ad says and what its pieces are.",
143
+ args: {
144
+ "image-id": { type: "string", description: "Library image ID", required: true },
145
+ full: { type: "boolean", description: "Include geometry and typography for every layer", required: false }
146
+ }
147
+ });
148
+ var layersCommand = defineCommand({
149
+ meta: {
150
+ name: "layers",
151
+ description: "Read the layers of an image that has already been split. Free \u2014 no provider call.\n\nStart here: baker images layers j571abc123def\nExample: baker images layers j571abc123def --full"
152
+ },
153
+ args: {
154
+ "image-id": { type: "positional", description: "Library image ID", required: false },
155
+ full: { type: "boolean", description: "Include geometry and typography", required: false }
156
+ },
157
+ run: async ({ args }) => {
158
+ try {
159
+ const imageId = args["image-id"];
160
+ if (!imageId) {
161
+ writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: "image-id is required" } });
162
+ process.exit(1);
163
+ }
164
+ const doc = await apiGet("/api/images/layers", { imageId });
165
+ writeJson({ ok: true, data: args.full ? doc : compact(doc), hints: hintsFor(doc) });
166
+ } catch (err) {
167
+ if (err instanceof ApiError) {
168
+ writeJson({
169
+ ok: false,
170
+ error: {
171
+ code: err.code,
172
+ message: err.message,
173
+ ...err.code === "NOT_FOUND" ? { fix: `Split it first: baker images layerize ${args["image-id"]}` } : {}
174
+ }
175
+ });
176
+ process.exit(1);
177
+ }
178
+ writeJson({
179
+ ok: false,
180
+ error: { code: "INTERNAL_ERROR", message: err instanceof Error ? err.message : "Unexpected error" }
181
+ });
182
+ process.exit(1);
183
+ }
184
+ }
185
+ });
186
+ export {
187
+ layerizeCommand,
188
+ layersCommand
189
+ };
190
+ //# sourceMappingURL=layerize-Q56C6LFG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/images/layerize.ts"],"sourcesContent":["import type { ImagesLayersResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiGet, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\n\nregisterSchema({\n command: \"images.layerize\",\n description:\n \"Split a library image into editable layers: transparent PNG cutouts for each element, plus any headline recovered as EDITABLE TEXT with its font, size, colour and position. Waits for completion by default. Costs credits.\",\n args: {\n \"image-id\": { type: \"string\", description: \"Library image ID to split\", required: true },\n instructions: {\n type: \"string\",\n description: \"Optional steer for what to separate, e.g. 'keep the bottle and its shadow as one layer'\",\n required: false,\n },\n full: { type: \"boolean\", description: \"Include geometry and typography for every layer\", required: false },\n \"max-wait\": {\n type: \"number\",\n description: \"Max wait ms (default 240000 = 4 min). Set 0 to fire-and-forget.\",\n required: false,\n default: 240000,\n },\n },\n});\n\nconst POLL_INTERVAL_MS = 4000;\n\n/**\n * What the agent sees by default.\n *\n * Compact means: what each layer IS, and — for copy — what it says. The art\n * URLs are in even at this level because they are the reusable thing: a\n * transparent cutout of the product is exactly what gets wired into a canvas\n * composition next. Geometry and typography sit behind `--full`, since those\n * only matter once you are placing a layer rather than choosing one.\n */\nfunction compact(doc: ImagesLayersResponse) {\n return {\n layeredImageId: doc.layeredImageId,\n imageId: doc.imageId,\n status: doc.status,\n canvas: { width: doc.width, height: doc.height },\n layers: doc.layers.map((layer) => ({\n id: layer.id,\n kind: layer.kind,\n name: layer.name,\n ...(layer.url ? { url: layer.url } : {}),\n ...(layer.text ? { text: layer.text.content } : {}),\n })),\n };\n}\n\nfunction hintsFor(doc: ImagesLayersResponse): string[] {\n const hints: string[] = [];\n const text = doc.layers.filter((layer) => layer.kind === \"text\");\n const art = doc.layers.filter((layer) => layer.kind === \"art\" && layer.id !== \"layer-base\");\n\n if (text.length > 0) {\n hints.push(\n `${text.length} text layer(s) recovered as editable copy — run with --full for the font, size and colour to reuse when rewriting it.`,\n );\n }\n if (art.length > 0) {\n hints.push(\n `Each art layer's url is a transparent PNG on the media host: wire one straight into a canvas composition to reuse that element on its own.`,\n );\n }\n // Said every time, because it is the limit that makes a result look broken.\n hints.push(\n '\"Original image\" is the flat picture kept underneath. The model separates what was VISIBLE and does not repaint what sat behind a subject, so moving one can leave a gap.',\n );\n return hints;\n}\n\n/** Poll until the split stops being `splitting`, or the budget runs out. */\nasync function pollUntilSettled(imageId: string, maxWait: number): Promise<ImagesLayersResponse | null> {\n const start = Date.now();\n while (Date.now() - start < maxWait) {\n await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));\n const doc = await apiGet<ImagesLayersResponse>(\"/api/images/layers\", { imageId });\n if (doc.status !== \"splitting\") return doc;\n }\n return null;\n}\n\nexport const layerizeCommand = defineCommand({\n meta: {\n name: \"layerize\",\n description:\n \"Split a library image into editable layers — transparent cutouts per element, plus any baked-in headline recovered as editable text with its typography.\\n\\nStart here: baker images layerize j571abc123def\\nExample: baker images layerize j571abc123def --full\\nExample: baker images layerize j571abc123def --instructions 'keep the product and its shadow together'\",\n },\n args: {\n \"image-id\": { type: \"positional\", description: \"Library image ID\", required: false },\n instructions: { type: \"string\", description: \"Optional steer for what to separate\", required: false },\n full: { type: \"boolean\", description: \"Include geometry and typography\", required: false },\n \"max-wait\": { type: \"string\", description: \"Max wait ms (default 240000, 0 = no wait)\", required: false },\n },\n run: async ({ args }) => {\n try {\n const imageId = args[\"image-id\"] as string | undefined;\n if (!imageId) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"image-id is required\" } });\n process.exit(1);\n }\n const maxWait = args[\"max-wait\"] ? Number(args[\"max-wait\"]) : 240000;\n const full = Boolean(args.full);\n\n const started = await apiPost<ImagesLayersResponse>(\"/api/images/layerize\", {\n imageId,\n instructions: args.instructions as string | undefined,\n });\n\n const settled =\n maxWait === 0 || started.status !== \"splitting\" ? started : await pollUntilSettled(imageId, maxWait);\n\n if (!settled) {\n writeJson({\n ok: false,\n error: {\n code: \"TIMEOUT\",\n message: `Layers not ready within ${maxWait}ms`,\n fix: `The split is still running. Read it later with: baker images layers ${imageId}`,\n },\n });\n process.exit(1);\n }\n if (settled.status === \"failed\") {\n // Degrade, don't abort: the split is one step of a bigger job, and the\n // provider rejects a valid request often enough that \"try again\" is\n // usually the right next move rather than giving up on the whole task.\n writeJson({\n ok: false,\n error: {\n code: \"IMAGE_PROCESSING_ERROR\",\n message: settled.error ?? \"That image couldn't be split into layers\",\n fix: \"Run the same command again — this provider rejects a valid request intermittently. If it fails twice more, carry on without layers.\",\n },\n });\n process.exit(1);\n }\n\n writeJson({ ok: true, data: full ? settled : compact(settled), hints: hintsFor(settled) });\n } catch (err) {\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n writeJson({\n ok: false,\n error: { code: \"INTERNAL_ERROR\", message: err instanceof Error ? err.message : \"Unexpected error\" },\n });\n process.exit(1);\n }\n },\n});\n\nregisterSchema({\n command: \"images.layers\",\n description:\n \"Read the layers of an image already split with `images layerize` — free, no provider call. Use it to see what an ad says and what its pieces are.\",\n args: {\n \"image-id\": { type: \"string\", description: \"Library image ID\", required: true },\n full: { type: \"boolean\", description: \"Include geometry and typography for every layer\", required: false },\n },\n});\n\nexport const layersCommand = defineCommand({\n meta: {\n name: \"layers\",\n description:\n \"Read the layers of an image that has already been split. Free — no provider call.\\n\\nStart here: baker images layers j571abc123def\\nExample: baker images layers j571abc123def --full\",\n },\n args: {\n \"image-id\": { type: \"positional\", description: \"Library image ID\", required: false },\n full: { type: \"boolean\", description: \"Include geometry and typography\", required: false },\n },\n run: async ({ args }) => {\n try {\n const imageId = args[\"image-id\"] as string | undefined;\n if (!imageId) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"image-id is required\" } });\n process.exit(1);\n }\n\n const doc = await apiGet<ImagesLayersResponse>(\"/api/images/layers\", { imageId });\n writeJson({ ok: true, data: args.full ? doc : compact(doc), hints: hintsFor(doc) });\n } catch (err) {\n if (err instanceof ApiError) {\n writeJson({\n ok: false,\n error: {\n code: err.code,\n message: err.message,\n ...(err.code === \"NOT_FOUND\" ? { fix: `Split it first: baker images layerize ${args[\"image-id\"]}` } : {}),\n },\n });\n process.exit(1);\n }\n writeJson({\n ok: false,\n error: { code: \"INTERNAL_ERROR\", message: err instanceof Error ? err.message : \"Unexpected error\" },\n });\n process.exit(1);\n }\n },\n});\n"],"mappings":"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","names":[]}