@koda-sl/baker-cli 0.384.0-dev.4699b7308 → 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 +1098 -217
  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 -69986
  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-CHJOTJTZ.js +0 -9989
  952. package/dist/chunk-CHJOTJTZ.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,55 @@
1
+ import {
2
+ ApiError
3
+ } from "./chunk-CUL3VB4L.js";
4
+ import {
5
+ writeJson
6
+ } from "./chunk-MYTDK3AL.js";
7
+
8
+ // src/commands/media-sources/shared.ts
9
+ function driveRefusalFix(input, code) {
10
+ if (!/drive\.google\.com/i.test(input) || code !== "BAD_REQUEST") return void 0;
11
+ return `A Google Drive folder is never added by link \u2014 don't retry. Call request_connection with platform "google-drive" and choose "media-folder": the card lets the user pick the folder in the chat (only the Baker team can for now; anyone else is told the team will set it up). A connected result carries the new source's mediaSourceKey; if it is declined, carry on with the rest of the task.`;
12
+ }
13
+ function reportError(err, input) {
14
+ if (err instanceof ApiError) {
15
+ const fix = input ? driveRefusalFix(input, err.code) : void 0;
16
+ writeJson({ ok: false, error: { code: err.code, message: err.message, ...fix ? { fix } : {} } });
17
+ process.exit(1);
18
+ }
19
+ writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
20
+ process.exit(1);
21
+ }
22
+ function halfState(half) {
23
+ if (!half) return null;
24
+ return {
25
+ status: half.syncStatus === "fetching" || half.syncStatus === "processing" ? "importing" : half.syncStatus,
26
+ stored: half.storedCount ?? 0,
27
+ ...half.pendingItems ? { pending: half.pendingItems } : {},
28
+ ...half.failedItems ? { failed: half.failedItems } : {},
29
+ ...half.lastSyncedAt ? { lastSyncedAt: new Date(half.lastSyncedAt).toISOString() } : {},
30
+ ...half.errorMessage ? { error: half.errorMessage } : {}
31
+ };
32
+ }
33
+ function compactSource(source) {
34
+ return {
35
+ key: source.key,
36
+ platform: source.platform,
37
+ label: source.label,
38
+ url: source.profileUrl,
39
+ autoSync: source.refreshInterval,
40
+ images: halfState(source.images),
41
+ videos: halfState(source.videos)
42
+ };
43
+ }
44
+ function isImporting(source) {
45
+ return [source.images, source.videos].some(
46
+ (half) => half?.syncStatus === "fetching" || half?.syncStatus === "processing"
47
+ );
48
+ }
49
+
50
+ export {
51
+ reportError,
52
+ compactSource,
53
+ isImporting
54
+ };
55
+ //# sourceMappingURL=chunk-KONA5PSR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/media-sources/shared.ts"],"sourcesContent":["import type { MediaSourceSummary } from \"@baker/api/media-sources\";\nimport { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\n\n/**\n * A Drive folder is never connected by link: it is chosen in Baker, from the\n * company's Google Drive connection (Add source → Google Drive), which only the\n * Baker team can set up for now. Without this the agent retries or hunts for\n * another way in; with it, it relays the message and carries on.\n */\nexport function driveRefusalFix(input: string, code: string): string | undefined {\n if (!/drive\\.google\\.com/i.test(input) || code !== \"BAD_REQUEST\") return undefined;\n return 'A Google Drive folder is never added by link — don\\'t retry. Call request_connection with platform \"google-drive\" and choose \"media-folder\": the card lets the user pick the folder in the chat (only the Baker team can for now; anyone else is told the team will set it up). A connected result carries the new source\\'s mediaSourceKey; if it is declined, carry on with the rest of the task.';\n}\n\n/** Emit the `{ ok: false, error }` envelope and exit non-zero. */\nexport function reportError(err: unknown, input?: string): never {\n if (err instanceof ApiError) {\n const fix = input ? driveRefusalFix(input, err.code) : undefined;\n writeJson({ ok: false, error: { code: err.code, message: err.message, ...(fix ? { fix } : {}) } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\ntype Half = NonNullable<MediaSourceSummary[\"images\"]>;\n\nfunction halfState(half: Half | undefined): Record<string, unknown> | null {\n if (!half) return null;\n return {\n status: half.syncStatus === \"fetching\" || half.syncStatus === \"processing\" ? \"importing\" : half.syncStatus,\n stored: half.storedCount ?? 0,\n ...(half.pendingItems ? { pending: half.pendingItems } : {}),\n ...(half.failedItems ? { failed: half.failedItems } : {}),\n ...(half.lastSyncedAt ? { lastSyncedAt: new Date(half.lastSyncedAt).toISOString() } : {}),\n ...(half.errorMessage ? { error: half.errorMessage } : {}),\n };\n}\n\n/**\n * What the agent needs to decide with: which account, whether it is still\n * importing, and how much it has brought in — per library, because a TikTok\n * account can fill the video library and leave the image library empty.\n * Row ids stay out: the key is how every other command names a source.\n */\nexport function compactSource(source: MediaSourceSummary): Record<string, unknown> {\n return {\n key: source.key,\n platform: source.platform,\n label: source.label,\n url: source.profileUrl,\n autoSync: source.refreshInterval,\n images: halfState(source.images),\n videos: halfState(source.videos),\n };\n}\n\nexport function isImporting(source: MediaSourceSummary): boolean {\n return [source.images, source.videos].some(\n (half) => half?.syncStatus === \"fetching\" || half?.syncStatus === \"processing\",\n );\n}\n"],"mappings":";;;;;;;;AAUO,SAAS,gBAAgB,OAAe,MAAkC;AAC/E,MAAI,CAAC,sBAAsB,KAAK,KAAK,KAAK,SAAS,cAAe,QAAO;AACzE,SAAO;AACT;AAGO,SAAS,YAAY,KAAc,OAAuB;AAC/D,MAAI,eAAe,UAAU;AAC3B,UAAM,MAAM,QAAQ,gBAAgB,OAAO,IAAI,IAAI,IAAI;AACvD,cAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,IAAI,MAAM,SAAS,IAAI,SAAS,GAAI,MAAM,EAAE,IAAI,IAAI,CAAC,EAAG,EAAE,CAAC;AACjG,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,YAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,SAAS,mBAAmB,EAAE,CAAC;AACvF,UAAQ,KAAK,CAAC;AAChB;AAIA,SAAS,UAAU,MAAwD;AACzE,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO;AAAA,IACL,QAAQ,KAAK,eAAe,cAAc,KAAK,eAAe,eAAe,cAAc,KAAK;AAAA,IAChG,QAAQ,KAAK,eAAe;AAAA,IAC5B,GAAI,KAAK,eAAe,EAAE,SAAS,KAAK,aAAa,IAAI,CAAC;AAAA,IAC1D,GAAI,KAAK,cAAc,EAAE,QAAQ,KAAK,YAAY,IAAI,CAAC;AAAA,IACvD,GAAI,KAAK,eAAe,EAAE,cAAc,IAAI,KAAK,KAAK,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC;AAAA,IACvF,GAAI,KAAK,eAAe,EAAE,OAAO,KAAK,aAAa,IAAI,CAAC;AAAA,EAC1D;AACF;AAQO,SAAS,cAAc,QAAqD;AACjF,SAAO;AAAA,IACL,KAAK,OAAO;AAAA,IACZ,UAAU,OAAO;AAAA,IACjB,OAAO,OAAO;AAAA,IACd,KAAK,OAAO;AAAA,IACZ,UAAU,OAAO;AAAA,IACjB,QAAQ,UAAU,OAAO,MAAM;AAAA,IAC/B,QAAQ,UAAU,OAAO,MAAM;AAAA,EACjC;AACF;AAEO,SAAS,YAAY,QAAqC;AAC/D,SAAO,CAAC,OAAO,QAAQ,OAAO,MAAM,EAAE;AAAA,IACpC,CAAC,SAAS,MAAM,eAAe,cAAc,MAAM,eAAe;AAAA,EACpE;AACF;","names":[]}
@@ -0,0 +1,60 @@
1
+ import {
2
+ REF_PREFIX
3
+ } from "./chunk-ZJ7TQUCU.js";
4
+
5
+ // src/commands/canvas/node-preview.ts
6
+ var MAX_PARAMS_PREVIEW_LENGTH = 4e3;
7
+ var SPEC_KEYS = [
8
+ "model",
9
+ "aspect_ratio",
10
+ "image_size",
11
+ "resolution",
12
+ "duration",
13
+ "subject_type",
14
+ "font_size",
15
+ "expect",
16
+ "source",
17
+ "path",
18
+ "url"
19
+ ];
20
+ var BODY_KEYS = ["prompt", "text", "subject_description"];
21
+ function scalarField(params, key) {
22
+ const value = params[key];
23
+ if (typeof value === "number") return String(value);
24
+ if (typeof value !== "string") return void 0;
25
+ const trimmed = value.trim();
26
+ return trimmed && !trimmed.startsWith(REF_PREFIX) ? trimmed : void 0;
27
+ }
28
+ function compactJson(params) {
29
+ try {
30
+ const json = JSON.stringify(params);
31
+ return json && json !== "{}" ? json : void 0;
32
+ } catch {
33
+ return void 0;
34
+ }
35
+ }
36
+ function cap(text) {
37
+ return text.length > MAX_PARAMS_PREVIEW_LENGTH ? `${text.slice(0, MAX_PARAMS_PREVIEW_LENGTH - 1)}\u2026` : text;
38
+ }
39
+ function nodeParamsPreview(params, deps) {
40
+ const refsLine = deps && deps.length > 0 ? `refs: ${deps.join(", ")}` : void 0;
41
+ if (!params || typeof params !== "object") return refsLine;
42
+ const record = params;
43
+ const spec = [];
44
+ for (const key of SPEC_KEYS) {
45
+ const value = scalarField(record, key);
46
+ if (value !== void 0) spec.push(`${key}: ${value}`);
47
+ }
48
+ if (refsLine) spec.push(refsLine);
49
+ const body = BODY_KEYS.map((key) => scalarField(record, key)).find(Boolean);
50
+ const header = spec.join("\n");
51
+ const composed = header && body ? `${header}
52
+
53
+ ${body}` : header || body || compactJson(record);
54
+ return composed ? cap(composed) : void 0;
55
+ }
56
+
57
+ export {
58
+ nodeParamsPreview
59
+ };
60
+ //# sourceMappingURL=chunk-KVHRW7KO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/canvas/node-preview.ts"],"sourcesContent":["import { REF_PREFIX } from \"../../engine/schema/canvas.ts\";\n\n// Mirrors the backend's runNodeSchema / definitionGraph paramsPreview cap — an\n// over-long preview would 400 the whole record.\nconst MAX_PARAMS_PREVIEW_LENGTH = 4000;\n\n// Scalar params worth showing as their own labeled line in a node's detail — the\n// \"what settings produced this\" a reviewer asks for: the model, the aspect ratio,\n// the image size, an ingest's expected format and where it pulls from. Ordered\n// most-identifying first so the graph card's 2-line clamp surfaces the model/format\n// and the inspector shows the full set.\nconst SPEC_KEYS = [\n \"model\",\n \"aspect_ratio\",\n \"image_size\",\n \"resolution\",\n \"duration\",\n \"subject_type\",\n \"font_size\",\n \"expect\",\n \"source\",\n \"path\",\n \"url\",\n] as const;\n\n// The longer free-text a node is recognized by, shown as the body under the spec\n// lines (a generator's prompt, a specimen's copy, a sheet's subject brief).\nconst BODY_KEYS = [\"prompt\", \"text\", \"subject_description\"] as const;\n\n/** A trimmed string or a number as text — never a `$ref:` wiring string (the deps line carries those). */\nfunction scalarField(params: Record<string, unknown>, key: string): string | undefined {\n const value = params[key];\n if (typeof value === \"number\") return String(value);\n if (typeof value !== \"string\") return undefined;\n const trimmed = value.trim();\n return trimmed && !trimmed.startsWith(REF_PREFIX) ? trimmed : undefined;\n}\n\nfunction compactJson(params: unknown): string | undefined {\n try {\n const json = JSON.stringify(params);\n return json && json !== \"{}\" ? json : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction cap(text: string): string {\n return text.length > MAX_PARAMS_PREVIEW_LENGTH ? `${text.slice(0, MAX_PARAMS_PREVIEW_LENGTH - 1)}…` : text;\n}\n\n/**\n * A structured, multi-line excerpt of a node's params for the graph card and its\n * inspector: labeled spec lines (model / aspect_ratio / image_size / expect / …),\n * a `refs:` line naming the upstream nodes it consumes (the \"props\" wired into a\n * generate, taken from the resolved `$ref` deps), then the free-text body (prompt,\n * specimen copy, subject brief). This is what surfaces \"the model, the aspect ratio,\n * the size, everything\" in the dashboard instead of just a bare prompt line. Falls\n * back to compact JSON for a node with no recognized field, or just the `refs:` line\n * when params are absent but deps exist.\n */\nexport function nodeParamsPreview(params: unknown, deps?: readonly string[]): string | undefined {\n const refsLine = deps && deps.length > 0 ? `refs: ${deps.join(\", \")}` : undefined;\n if (!params || typeof params !== \"object\") return refsLine;\n\n const record = params as Record<string, unknown>;\n const spec: string[] = [];\n for (const key of SPEC_KEYS) {\n const value = scalarField(record, key);\n if (value !== undefined) spec.push(`${key}: ${value}`);\n }\n if (refsLine) spec.push(refsLine);\n\n const body = BODY_KEYS.map((key) => scalarField(record, key)).find(Boolean);\n const header = spec.join(\"\\n\");\n const composed = header && body ? `${header}\\n\\n${body}` : header || body || compactJson(record);\n return composed ? cap(composed) : undefined;\n}\n"],"mappings":";;;;;AAIA,IAAM,4BAA4B;AAOlC,IAAM,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIA,IAAM,YAAY,CAAC,UAAU,QAAQ,qBAAqB;AAG1D,SAAS,YAAY,QAAiC,KAAiC;AACrF,QAAM,QAAQ,OAAO,GAAG;AACxB,MAAI,OAAO,UAAU,SAAU,QAAO,OAAO,KAAK;AAClD,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,SAAO,WAAW,CAAC,QAAQ,WAAW,UAAU,IAAI,UAAU;AAChE;AAEA,SAAS,YAAY,QAAqC;AACxD,MAAI;AACF,UAAM,OAAO,KAAK,UAAU,MAAM;AAClC,WAAO,QAAQ,SAAS,OAAO,OAAO;AAAA,EACxC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,IAAI,MAAsB;AACjC,SAAO,KAAK,SAAS,4BAA4B,GAAG,KAAK,MAAM,GAAG,4BAA4B,CAAC,CAAC,WAAM;AACxG;AAYO,SAAS,kBAAkB,QAAiB,MAA8C;AAC/F,QAAM,WAAW,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,KAAK;AACxE,MAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO;AAElD,QAAM,SAAS;AACf,QAAM,OAAiB,CAAC;AACxB,aAAW,OAAO,WAAW;AAC3B,UAAM,QAAQ,YAAY,QAAQ,GAAG;AACrC,QAAI,UAAU,OAAW,MAAK,KAAK,GAAG,GAAG,KAAK,KAAK,EAAE;AAAA,EACvD;AACA,MAAI,SAAU,MAAK,KAAK,QAAQ;AAEhC,QAAM,OAAO,UAAU,IAAI,CAAC,QAAQ,YAAY,QAAQ,GAAG,CAAC,EAAE,KAAK,OAAO;AAC1E,QAAM,SAAS,KAAK,KAAK,IAAI;AAC7B,QAAM,WAAW,UAAU,OAAO,GAAG,MAAM;AAAA;AAAA,EAAO,IAAI,KAAK,UAAU,QAAQ,YAAY,MAAM;AAC/F,SAAO,WAAW,IAAI,QAAQ,IAAI;AACpC;","names":[]}
@@ -0,0 +1,65 @@
1
+ // ../api/src/experiments/variants.ts
2
+ var VARIANT_SEPARATOR = "--";
3
+ var VARIANT_SLUG_PATTERN = /^(.+)--([1-9][0-9]*)$/;
4
+ function variantOfSlug(slug) {
5
+ const match = VARIANT_SLUG_PATTERN.exec(slug);
6
+ return match?.[1] ?? null;
7
+ }
8
+ function variantNumberOf(slug) {
9
+ const match = VARIANT_SLUG_PATTERN.exec(slug);
10
+ return match?.[2] === void 0 ? null : Number(match[2]);
11
+ }
12
+ function variantSlug(page, n) {
13
+ return `${page}${VARIANT_SEPARATOR}${n}`;
14
+ }
15
+ function nextVariantNumber(page, existingSlugs, archived) {
16
+ const used = [
17
+ ...existingSlugs.filter((slug) => variantOfSlug(slug) === page).map((slug) => variantNumberOf(slug) ?? 0),
18
+ ...archived
19
+ ];
20
+ return used.length === 0 ? 1 : Math.max(...used) + 1;
21
+ }
22
+
23
+ // src/commands/landing/repoint.ts
24
+ import path from "path";
25
+ var QUOTED_RELATIVE = /(['"])(\.\.?\/[^'"]*)\1/g;
26
+ function isInside(abs, dir) {
27
+ return abs === dir || abs.startsWith(dir + path.sep);
28
+ }
29
+ function toSpecifier(from, to) {
30
+ const rel = path.relative(from, to).split(path.sep).join("/");
31
+ return rel.startsWith(".") ? rel : `./${rel}`;
32
+ }
33
+ function repointSpecifier(spec, opts) {
34
+ if (!spec.startsWith(".")) return spec;
35
+ const abs = path.resolve(opts.fromDir, spec);
36
+ if (opts.forkedTargets?.has(abs)) {
37
+ const withinControl = path.relative(opts.controlDir, abs);
38
+ return toSpecifier(opts.toDir, path.resolve(opts.variantDir, withinControl));
39
+ }
40
+ if (!isInside(abs, opts.controlDir)) return spec;
41
+ return toSpecifier(opts.toDir, abs);
42
+ }
43
+ function repointFile(text, opts) {
44
+ return text.replace(QUOTED_RELATIVE, (_match, quote, spec) => {
45
+ return `${quote}${repointSpecifier(spec, opts)}${quote}`;
46
+ });
47
+ }
48
+ function repointMoved(text, opts) {
49
+ return text.replace(QUOTED_RELATIVE, (_match, quote, spec) => {
50
+ const abs = path.resolve(opts.fromDir, spec);
51
+ const within = path.relative(opts.movedFrom, abs);
52
+ const target = within.startsWith("..") || path.isAbsolute(within) ? abs : path.resolve(opts.movedTo, within);
53
+ return `${quote}${toSpecifier(opts.toDir, target)}${quote}`;
54
+ });
55
+ }
56
+
57
+ export {
58
+ variantOfSlug,
59
+ variantNumberOf,
60
+ variantSlug,
61
+ nextVariantNumber,
62
+ repointFile,
63
+ repointMoved
64
+ };
65
+ //# sourceMappingURL=chunk-LA6PPSNA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../api/src/experiments/variants.ts","../src/commands/landing/repoint.ts"],"sourcesContent":["/**\n * The one structural fact that separates a page from a variant of a page.\n *\n * A page has variants. A variant is never a page. The address it is built at —\n * `src/pages/<page>--<n>/` — says which page it belongs to, so every tool that\n * has to decide \"is this a page?\" decides it locally, from the slug, with no\n * round-trip to Convex and no configuration to be out of date.\n *\n * `--` rather than a dot: `isPageRequest` at the edge treats a last segment\n * containing `.` as a file and skips the experiment lookup entirely, so\n * `oferta.v3` would silently disable the split it exists to be one side of.\n * And rather than `-b`: nine live pages across the fleet already end in `-b`,\n * `-v2` or `version-b`, and under that marker every one of them would be\n * misread as a variant and disappear from the Landings list and the sitemap.\n *\n * `n` is monotonic per page and never reused — an archived variant keeps its\n * number forever, and so do the analytics rows recorded against it.\n *\n * Deliberately free of every import, including `zod`: `apps/worker` ships this\n * to the edge on the hot path of every page request, and the scaffold mirrors\n * it into a client repo that cannot import this package at all.\n */\n\n/** What marks a slug as one page's variant rather than a page of its own. */\nexport const VARIANT_SEPARATOR = \"--\";\n\n/** `<page>--<n>`, `n` a positive integer with no leading zero. */\nconst VARIANT_SLUG_PATTERN = /^(.+)--([1-9][0-9]*)$/;\n\n/**\n * The page this slug is a variant of, or null when it is a page in its own\n * right.\n *\n * Null is the answer for every landing every company has today, which is what\n * makes every consumer of this inert until somebody creates a variant.\n */\nexport function variantOfSlug(slug: string): string | null {\n const match = VARIANT_SLUG_PATTERN.exec(slug);\n return match?.[1] ?? null;\n}\n\n/** Which variant of its page this is, or null when the slug is a page. */\nexport function variantNumberOf(slug: string): number | null {\n const match = VARIANT_SLUG_PATTERN.exec(slug);\n return match?.[2] === undefined ? null : Number(match[2]);\n}\n\n/** The slug of variant `n` of `page`. */\nexport function variantSlug(page: string, n: number): string {\n return `${page}${VARIANT_SEPARATOR}${n}`;\n}\n\n/**\n * The next number for a page, given every variant slug and archive number it\n * has ever had.\n *\n * Takes the archives too, and that is the whole reason it exists: reusing a\n * number would collide with an archived snapshot and with every analytics row\n * recorded against the earlier variant of the same name.\n */\nexport function nextVariantNumber(page: string, existingSlugs: readonly string[], archived: readonly number[]): number {\n const used = [\n ...existingSlugs.filter((slug) => variantOfSlug(slug) === page).map((slug) => variantNumberOf(slug) ?? 0),\n ...archived,\n ];\n return used.length === 0 ? 1 : Math.max(...used) + 1;\n}\n","import path from \"node:path\";\n\n/**\n * Moving a file between two landing folders without breaking what it points at.\n *\n * A variant page is a copy of its control that borrows the control's sections\n * instead of duplicating them, so every relative path in the copied file has to\n * be re-aimed at what it originally meant:\n *\n * src/pages/oferta/index.astro \"./_components/Proof.astro\"\n * src/pages/oferta--1/index.astro \"../oferta/_components/Proof.astro\"\n *\n * The rule is resolve-then-relativise rather than string surgery, because the\n * two files sit at different depths depending on what is being copied — an\n * `index.astro` and a `_components/Hero.astro` need different prefixes for the\n * same target, and a prefix-counting version gets one of them wrong. Anything\n * that resolves OUTSIDE the control's folder (`../../layouts/Layout.astro`,\n * `../../components/Video.astro`) already means the same thing from the variant\n * and is left exactly as written.\n */\n\n/** Quoted relative specifiers: imports, and `src=\"./_images/…\"` in markup alike. */\nconst QUOTED_RELATIVE = /(['\"])(\\.\\.?\\/[^'\"]*)\\1/g;\n\nexport interface RepointOptions {\n /** Directory of the file as it exists in the control. */\n readonly fromDir: string;\n /** Directory the copy is being written to. */\n readonly toDir: string;\n /** The control's landing folder. */\n readonly controlDir: string;\n /** The variant's landing folder. */\n readonly variantDir: string;\n /**\n * Absolute paths (in the CONTROL) the variant owns its own copy of. These\n * point at the variant's copy rather than back at the control — that fork is\n * the entire difference the test is measuring.\n */\n readonly forkedTargets?: ReadonlySet<string>;\n}\n\nfunction isInside(abs: string, dir: string): boolean {\n return abs === dir || abs.startsWith(dir + path.sep);\n}\n\nfunction toSpecifier(from: string, to: string): string {\n const rel = path.relative(from, to).split(path.sep).join(\"/\");\n return rel.startsWith(\".\") ? rel : `./${rel}`;\n}\n\n/** Re-aim one specifier written in `fromDir` so it means the same thing in `toDir`. */\nexport function repointSpecifier(spec: string, opts: RepointOptions): string {\n if (!spec.startsWith(\".\")) return spec;\n const abs = path.resolve(opts.fromDir, spec);\n\n if (opts.forkedTargets?.has(abs)) {\n // The variant's copy sits at the same sub-path under the variant's folder.\n const withinControl = path.relative(opts.controlDir, abs);\n return toSpecifier(opts.toDir, path.resolve(opts.variantDir, withinControl));\n }\n\n // Points outside the control — same meaning from the variant, leave it alone.\n if (!isInside(abs, opts.controlDir)) return spec;\n\n return toSpecifier(opts.toDir, abs);\n}\n\n/** Re-aim every quoted relative path in a file's text. */\nexport function repointFile(text: string, opts: RepointOptions): string {\n return text.replace(QUOTED_RELATIVE, (_match, quote: string, spec: string) => {\n return `${quote}${repointSpecifier(spec, opts)}${quote}`;\n });\n}\n\n/**\n * Re-aim a file that is MOVING from one landing folder into another.\n *\n * The fold, and the exact inverse of what {@link repointFile} does when a\n * variant is created. Three cases, and all three fall out of one walk:\n *\n * - a section the variant **borrowed** (`../oferta/_components/Proof.astro`)\n * resolves into the page's own folder and becomes `./_components/Proof.astro`;\n * - a section the variant **owns** (`./_components/Hero.astro`) is moving too,\n * so it is remapped from the variant's folder to the page's before being\n * relativised — and lands on `./_components/Hero.astro`, overwriting the\n * version that lost, which is the whole point of a fold;\n * - anything outside both (`../../layouts/Layout.astro`) is unchanged, because\n * the two files sit at the same depth.\n *\n * Resolve-then-relativise rather than string surgery, for the same reason as\n * above: `index.astro` and `_components/Hero.astro` need different prefixes for\n * the same target, and a prefix-counting version gets one of them wrong.\n */\nexport function repointMoved(\n text: string,\n opts: { fromDir: string; toDir: string; movedFrom: string; movedTo: string },\n): string {\n return text.replace(QUOTED_RELATIVE, (_match, quote: string, spec: string) => {\n const abs = path.resolve(opts.fromDir, spec);\n const within = path.relative(opts.movedFrom, abs);\n const target = within.startsWith(\"..\") || path.isAbsolute(within) ? abs : path.resolve(opts.movedTo, within);\n return `${quote}${toSpecifier(opts.toDir, target)}${quote}`;\n });\n}\n"],"mappings":";AAwBO,IAAM,oBAAoB;AAGjC,IAAM,uBAAuB;AAStB,SAAS,cAAc,MAA6B;AACzD,QAAM,QAAQ,qBAAqB,KAAK,IAAI;AAC5C,SAAO,QAAQ,CAAC,KAAK;AACvB;AAGO,SAAS,gBAAgB,MAA6B;AAC3D,QAAM,QAAQ,qBAAqB,KAAK,IAAI;AAC5C,SAAO,QAAQ,CAAC,MAAM,SAAY,OAAO,OAAO,MAAM,CAAC,CAAC;AAC1D;AAGO,SAAS,YAAY,MAAc,GAAmB;AAC3D,SAAO,GAAG,IAAI,GAAG,iBAAiB,GAAG,CAAC;AACxC;AAUO,SAAS,kBAAkB,MAAc,eAAkC,UAAqC;AACrH,QAAM,OAAO;AAAA,IACX,GAAG,cAAc,OAAO,CAAC,SAAS,cAAc,IAAI,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,gBAAgB,IAAI,KAAK,CAAC;AAAA,IACxG,GAAG;AAAA,EACL;AACA,SAAO,KAAK,WAAW,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI;AACrD;;;AClEA,OAAO,UAAU;AAsBjB,IAAM,kBAAkB;AAmBxB,SAAS,SAAS,KAAa,KAAsB;AACnD,SAAO,QAAQ,OAAO,IAAI,WAAW,MAAM,KAAK,GAAG;AACrD;AAEA,SAAS,YAAY,MAAc,IAAoB;AACrD,QAAM,MAAM,KAAK,SAAS,MAAM,EAAE,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,GAAG;AAC5D,SAAO,IAAI,WAAW,GAAG,IAAI,MAAM,KAAK,GAAG;AAC7C;AAGO,SAAS,iBAAiB,MAAc,MAA8B;AAC3E,MAAI,CAAC,KAAK,WAAW,GAAG,EAAG,QAAO;AAClC,QAAM,MAAM,KAAK,QAAQ,KAAK,SAAS,IAAI;AAE3C,MAAI,KAAK,eAAe,IAAI,GAAG,GAAG;AAEhC,UAAM,gBAAgB,KAAK,SAAS,KAAK,YAAY,GAAG;AACxD,WAAO,YAAY,KAAK,OAAO,KAAK,QAAQ,KAAK,YAAY,aAAa,CAAC;AAAA,EAC7E;AAGA,MAAI,CAAC,SAAS,KAAK,KAAK,UAAU,EAAG,QAAO;AAE5C,SAAO,YAAY,KAAK,OAAO,GAAG;AACpC;AAGO,SAAS,YAAY,MAAc,MAA8B;AACtE,SAAO,KAAK,QAAQ,iBAAiB,CAAC,QAAQ,OAAe,SAAiB;AAC5E,WAAO,GAAG,KAAK,GAAG,iBAAiB,MAAM,IAAI,CAAC,GAAG,KAAK;AAAA,EACxD,CAAC;AACH;AAqBO,SAAS,aACd,MACA,MACQ;AACR,SAAO,KAAK,QAAQ,iBAAiB,CAAC,QAAQ,OAAe,SAAiB;AAC5E,UAAM,MAAM,KAAK,QAAQ,KAAK,SAAS,IAAI;AAC3C,UAAM,SAAS,KAAK,SAAS,KAAK,WAAW,GAAG;AAChD,UAAM,SAAS,OAAO,WAAW,IAAI,KAAK,KAAK,WAAW,MAAM,IAAI,MAAM,KAAK,QAAQ,KAAK,SAAS,MAAM;AAC3G,WAAO,GAAG,KAAK,GAAG,YAAY,KAAK,OAAO,MAAM,CAAC,GAAG,KAAK;AAAA,EAC3D,CAAC;AACH;","names":[]}
@@ -0,0 +1,74 @@
1
+ import {
2
+ cacheGet,
3
+ cacheSet,
4
+ handleConnectionError,
5
+ needsConnectionFix,
6
+ writeJsonEnvelope
7
+ } from "./chunk-EIGXX6KI.js";
8
+ import {
9
+ ApiError,
10
+ apiGet
11
+ } from "./chunk-CUL3VB4L.js";
12
+ import {
13
+ getEnv
14
+ } from "./chunk-I4FTS5EE.js";
15
+
16
+ // src/commands/ga4/resolve.ts
17
+ async function fetchProperties(useCache = true) {
18
+ if (useCache) {
19
+ const cached = cacheGet("ga4-properties", "list");
20
+ if (cached) return cached.data;
21
+ }
22
+ const params = !useCache ? { "skip-cache": "true" } : void 0;
23
+ const data = await apiGet("/api/ga4/properties", params);
24
+ if (useCache) {
25
+ cacheSet("ga4-properties", "list", data, 60 * 60 * 1e3);
26
+ }
27
+ return data;
28
+ }
29
+ async function resolvePropertyId(args) {
30
+ const fromArgs = args["property-id"];
31
+ const fromEnv = getEnv().BAKER_GA4_PROPERTY_ID;
32
+ const propertyId = fromArgs || fromEnv;
33
+ if (propertyId) return propertyId;
34
+ const useCache = !args["no-cache"];
35
+ try {
36
+ const properties = await fetchProperties(useCache);
37
+ const [single] = properties;
38
+ if (properties.length === 1 && single) {
39
+ process.stderr.write(`Using property "${single.name}" (${single.externalId})
40
+ `);
41
+ return single.externalId;
42
+ }
43
+ if (properties.length === 0) {
44
+ handleConnectionError("ga4");
45
+ }
46
+ const list = properties.map((p) => ` ${p.externalId} ${p.name}`).join("\n");
47
+ writeJsonEnvelope({
48
+ ok: false,
49
+ error: {
50
+ code: "MULTIPLE_PROPERTIES",
51
+ message: `Multiple properties found. Pass --property-id or set BAKER_GA4_PROPERTY_ID:
52
+ ${list}`
53
+ }
54
+ });
55
+ process.exit(1);
56
+ } catch (err) {
57
+ if (err instanceof ApiError && needsConnectionFix(err.code, err.message)) {
58
+ handleConnectionError("ga4", err.message);
59
+ }
60
+ writeJsonEnvelope({
61
+ ok: false,
62
+ error: {
63
+ code: "RESOLUTION_ERROR",
64
+ message: "Could not auto-detect property. Pass --property-id or set BAKER_GA4_PROPERTY_ID."
65
+ }
66
+ });
67
+ process.exit(1);
68
+ }
69
+ }
70
+
71
+ export {
72
+ resolvePropertyId
73
+ };
74
+ //# sourceMappingURL=chunk-LKPJADL2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ga4/resolve.ts"],"sourcesContent":["import { ApiError, apiGet } from \"../../client.ts\";\nimport { getEnv } from \"../../env.ts\";\nimport { handleConnectionError, needsConnectionFix } from \"../../error-handler.ts\";\nimport { cacheGet, cacheSet } from \"../ads/cache.ts\";\nimport { writeJsonEnvelope } from \"../ads/output.ts\";\n\ninterface Ga4Property {\n externalId: string;\n name: string;\n}\n\nasync function fetchProperties(useCache = true): Promise<Ga4Property[]> {\n if (useCache) {\n const cached = cacheGet<Ga4Property[]>(\"ga4-properties\", \"list\");\n if (cached) return cached.data;\n }\n const params = !useCache ? { \"skip-cache\": \"true\" } : undefined;\n const data = await apiGet<Ga4Property[]>(\"/api/ga4/properties\", params);\n if (useCache) {\n cacheSet(\"ga4-properties\", \"list\", data, 60 * 60 * 1000);\n }\n return data;\n}\n\nexport async function resolvePropertyId(args: Record<string, unknown>): Promise<string> {\n const fromArgs = args[\"property-id\"] as string | undefined;\n const fromEnv = getEnv().BAKER_GA4_PROPERTY_ID;\n const propertyId = fromArgs || fromEnv;\n\n if (propertyId) return propertyId;\n\n const useCache = !args[\"no-cache\"];\n\n try {\n const properties = await fetchProperties(useCache);\n const [single] = properties;\n if (properties.length === 1 && single) {\n process.stderr.write(`Using property \"${single.name}\" (${single.externalId})\\n`);\n return single.externalId;\n }\n if (properties.length === 0) {\n handleConnectionError(\"ga4\");\n }\n const list = properties.map((p) => ` ${p.externalId} ${p.name}`).join(\"\\n\");\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"MULTIPLE_PROPERTIES\",\n message: `Multiple properties found. Pass --property-id or set BAKER_GA4_PROPERTY_ID:\\n${list}`,\n },\n });\n process.exit(1);\n } catch (err) {\n // The listing call is the only thing that can throw here, so a 401/404 from\n // it means the connection is missing — not that resolution is ambiguous.\n if (err instanceof ApiError && needsConnectionFix(err.code, err.message)) {\n handleConnectionError(\"ga4\", err.message);\n }\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"RESOLUTION_ERROR\",\n message: \"Could not auto-detect property. Pass --property-id or set BAKER_GA4_PROPERTY_ID.\",\n },\n });\n process.exit(1);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAWA,eAAe,gBAAgB,WAAW,MAA8B;AACtE,MAAI,UAAU;AACZ,UAAM,SAAS,SAAwB,kBAAkB,MAAM;AAC/D,QAAI,OAAQ,QAAO,OAAO;AAAA,EAC5B;AACA,QAAM,SAAS,CAAC,WAAW,EAAE,cAAc,OAAO,IAAI;AACtD,QAAM,OAAO,MAAM,OAAsB,uBAAuB,MAAM;AACtE,MAAI,UAAU;AACZ,aAAS,kBAAkB,QAAQ,MAAM,KAAK,KAAK,GAAI;AAAA,EACzD;AACA,SAAO;AACT;AAEA,eAAsB,kBAAkB,MAAgD;AACtF,QAAM,WAAW,KAAK,aAAa;AACnC,QAAM,UAAU,OAAO,EAAE;AACzB,QAAM,aAAa,YAAY;AAE/B,MAAI,WAAY,QAAO;AAEvB,QAAM,WAAW,CAAC,KAAK,UAAU;AAEjC,MAAI;AACF,UAAM,aAAa,MAAM,gBAAgB,QAAQ;AACjD,UAAM,CAAC,MAAM,IAAI;AACjB,QAAI,WAAW,WAAW,KAAK,QAAQ;AACrC,cAAQ,OAAO,MAAM,mBAAmB,OAAO,IAAI,MAAM,OAAO,UAAU;AAAA,CAAK;AAC/E,aAAO,OAAO;AAAA,IAChB;AACA,QAAI,WAAW,WAAW,GAAG;AAC3B,4BAAsB,KAAK;AAAA,IAC7B;AACA,UAAM,OAAO,WAAW,IAAI,CAAC,MAAM,KAAK,EAAE,UAAU,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI;AAC5E,sBAAkB;AAAA,MAChB,IAAI;AAAA,MACJ,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,EAAgF,IAAI;AAAA,MAC/F;AAAA,IACF,CAAC;AACD,YAAQ,KAAK,CAAC;AAAA,EAChB,SAAS,KAAK;AAGZ,QAAI,eAAe,YAAY,mBAAmB,IAAI,MAAM,IAAI,OAAO,GAAG;AACxE,4BAAsB,OAAO,IAAI,OAAO;AAAA,IAC1C;AACA,sBAAkB;AAAA,MAChB,IAAI;AAAA,MACJ,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AACD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}
@@ -0,0 +1,74 @@
1
+ import {
2
+ writeOutput
3
+ } from "./chunk-MYTDK3AL.js";
4
+
5
+ // src/commands/images/providerHits.ts
6
+ function asRecord(value) {
7
+ return value && typeof value === "object" ? value : {};
8
+ }
9
+ function str(value) {
10
+ return typeof value === "string" && value.length > 0 ? value : void 0;
11
+ }
12
+ function num(value) {
13
+ return typeof value === "number" ? value : void 0;
14
+ }
15
+ function compactHit(hit) {
16
+ return {
17
+ source: str(hit.source) ?? "",
18
+ url: str(hit.url) ?? "",
19
+ imageId: str(hit.imageId),
20
+ imageUrl: str(hit.imageUrl),
21
+ name: str(hit.name),
22
+ width: num(hit.width),
23
+ height: num(hit.height)
24
+ };
25
+ }
26
+ function providerHitNormalizer(record, full) {
27
+ const compact = compactHit(record);
28
+ if (!full) {
29
+ return compact;
30
+ }
31
+ const group = asRecord(record.group);
32
+ return {
33
+ ...compact,
34
+ externalUrl: str(record.externalUrl),
35
+ externalId: str(record.externalId),
36
+ description: str(record.description),
37
+ tags: Array.isArray(record.tags) ? record.tags : [],
38
+ aspectRatio: num(record.aspectRatio),
39
+ dominantColor: str(record.dominantColor),
40
+ score: num(record.score),
41
+ deduped: typeof record.deduped === "boolean" ? record.deduped : void 0,
42
+ alsoInLibrary: str(record.alsoInLibrary),
43
+ groupKey: str(group.key)
44
+ };
45
+ }
46
+ function readOutputFlags(args) {
47
+ const format = typeof args.output === "string" && args.output.length > 0 ? args.output : "json";
48
+ const rawFields = typeof args.fields === "string" && args.fields.length > 0 ? args.fields : void 0;
49
+ return {
50
+ format,
51
+ fields: rawFields ? rawFields.split(",").filter(Boolean) : void 0,
52
+ full: args.full === true
53
+ };
54
+ }
55
+ function writeProviderHits(data, hits, args, hints) {
56
+ const { format, fields, full } = readOutputFlags(args);
57
+ const envelope = {
58
+ ok: true,
59
+ data: format === "json" ? data : hits,
60
+ ...hints.length > 0 ? { hints } : {}
61
+ };
62
+ writeOutput(envelope, format, fields, full, providerHitNormalizer);
63
+ }
64
+ var OUTPUT_ARGS = {
65
+ output: { type: "string", description: "Output format: json|files|md", required: false, default: "json" },
66
+ fields: { type: "string", description: "Comma-separated field names to include", required: false },
67
+ full: { type: "boolean", description: "Include full metadata", required: false, default: false }
68
+ };
69
+
70
+ export {
71
+ writeProviderHits,
72
+ OUTPUT_ARGS
73
+ };
74
+ //# sourceMappingURL=chunk-LWAEHLKV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/images/providerHits.ts"],"sourcesContent":["/**\n * Table projection for the provider-search commands (`logo`, `icon`, `find`).\n *\n * These returned `{ hits, ingested }` as raw JSON with no `--output`/`--fields`\n * /`--full`, so the only way to pull one field out of a result was\n * `grep -oE '\"imageUrl\": \"[^\"]+\"'`. The library commands already had the flag\n * trio; the provider commands just needed a projection to hand it, because the\n * shared image normalizer expects a library row and would flatten a provider\n * hit into an empty record.\n */\n\nimport { type OutputFormat, writeOutput } from \"../../output.ts\";\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" ? (value as Record<string, unknown>) : {};\n}\n\nfunction str(value: unknown): string | undefined {\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction num(value: unknown): number | undefined {\n return typeof value === \"number\" ? value : undefined;\n}\n\n/**\n * What decides whether a hit is usable and how to keep it: which provider it\n * came from, where the pixels are, and — once auto-ingest ran — the library id\n * and Baker-owned URL that make it durable.\n */\nfunction compactHit(hit: Record<string, unknown>): Record<string, unknown> {\n return {\n source: str(hit.source) ?? \"\",\n url: str(hit.url) ?? \"\",\n imageId: str(hit.imageId),\n imageUrl: str(hit.imageUrl),\n name: str(hit.name),\n width: num(hit.width),\n height: num(hit.height),\n };\n}\n\nexport function providerHitNormalizer(record: Record<string, unknown>, full: boolean): Record<string, unknown> {\n const compact = compactHit(record);\n if (!full) {\n return compact;\n }\n const group = asRecord(record.group);\n return {\n ...compact,\n externalUrl: str(record.externalUrl),\n externalId: str(record.externalId),\n description: str(record.description),\n tags: Array.isArray(record.tags) ? record.tags : [],\n aspectRatio: num(record.aspectRatio),\n dominantColor: str(record.dominantColor),\n score: num(record.score),\n deduped: typeof record.deduped === \"boolean\" ? record.deduped : undefined,\n alsoInLibrary: str(record.alsoInLibrary),\n groupKey: str(group.key),\n };\n}\n\n/** The standard `--output`/`--fields`/`--full` trio, parsed the same way in every provider command. */\nexport interface OutputFlags {\n format: OutputFormat;\n fields: string[] | undefined;\n full: boolean;\n}\n\nexport function readOutputFlags(args: Record<string, unknown>): OutputFlags {\n const format = typeof args.output === \"string\" && args.output.length > 0 ? (args.output as OutputFormat) : \"json\";\n const rawFields = typeof args.fields === \"string\" && args.fields.length > 0 ? args.fields : undefined;\n return {\n format,\n fields: rawFields ? rawFields.split(\",\").filter(Boolean) : undefined,\n full: args.full === true,\n };\n}\n\n/**\n * Emit a provider search result.\n *\n * `json` (the default) emits the backend's response **unchanged** — callers\n * already parse that shape, and `--output` must not rewrite it. The table\n * formats tabulate `hits`, which the caller passes separately because `find`\n * groups its results and has no top-level `hits` key to read.\n */\nexport function writeProviderHits<T>(data: T, hits: unknown[], args: Record<string, unknown>, hints: string[]): void {\n const { format, fields, full } = readOutputFlags(args);\n const envelope = {\n ok: true as const,\n data: format === \"json\" ? data : (hits as Record<string, unknown>[]),\n ...(hints.length > 0 ? { hints } : {}),\n };\n writeOutput(envelope, format, fields, full, providerHitNormalizer);\n}\n\n/** The flag trio, declared identically on every command that emits provider hits. */\nexport const OUTPUT_ARGS = {\n output: { type: \"string\", description: \"Output format: json|files|md\", required: false, default: \"json\" },\n fields: { type: \"string\", description: \"Comma-separated field names to include\", required: false },\n full: { type: \"boolean\", description: \"Include full metadata\", required: false, default: false },\n} as const;\n"],"mappings":";;;;;AAaA,SAAS,SAAS,OAAyC;AACzD,SAAO,SAAS,OAAO,UAAU,WAAY,QAAoC,CAAC;AACpF;AAEA,SAAS,IAAI,OAAoC;AAC/C,SAAO,OAAO,UAAU,YAAY,MAAM,SAAS,IAAI,QAAQ;AACjE;AAEA,SAAS,IAAI,OAAoC;AAC/C,SAAO,OAAO,UAAU,WAAW,QAAQ;AAC7C;AAOA,SAAS,WAAW,KAAuD;AACzE,SAAO;AAAA,IACL,QAAQ,IAAI,IAAI,MAAM,KAAK;AAAA,IAC3B,KAAK,IAAI,IAAI,GAAG,KAAK;AAAA,IACrB,SAAS,IAAI,IAAI,OAAO;AAAA,IACxB,UAAU,IAAI,IAAI,QAAQ;AAAA,IAC1B,MAAM,IAAI,IAAI,IAAI;AAAA,IAClB,OAAO,IAAI,IAAI,KAAK;AAAA,IACpB,QAAQ,IAAI,IAAI,MAAM;AAAA,EACxB;AACF;AAEO,SAAS,sBAAsB,QAAiC,MAAwC;AAC7G,QAAM,UAAU,WAAW,MAAM;AACjC,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,SAAS,OAAO,KAAK;AACnC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,aAAa,IAAI,OAAO,WAAW;AAAA,IACnC,YAAY,IAAI,OAAO,UAAU;AAAA,IACjC,aAAa,IAAI,OAAO,WAAW;AAAA,IACnC,MAAM,MAAM,QAAQ,OAAO,IAAI,IAAI,OAAO,OAAO,CAAC;AAAA,IAClD,aAAa,IAAI,OAAO,WAAW;AAAA,IACnC,eAAe,IAAI,OAAO,aAAa;AAAA,IACvC,OAAO,IAAI,OAAO,KAAK;AAAA,IACvB,SAAS,OAAO,OAAO,YAAY,YAAY,OAAO,UAAU;AAAA,IAChE,eAAe,IAAI,OAAO,aAAa;AAAA,IACvC,UAAU,IAAI,MAAM,GAAG;AAAA,EACzB;AACF;AASO,SAAS,gBAAgB,MAA4C;AAC1E,QAAM,SAAS,OAAO,KAAK,WAAW,YAAY,KAAK,OAAO,SAAS,IAAK,KAAK,SAA0B;AAC3G,QAAM,YAAY,OAAO,KAAK,WAAW,YAAY,KAAK,OAAO,SAAS,IAAI,KAAK,SAAS;AAC5F,SAAO;AAAA,IACL;AAAA,IACA,QAAQ,YAAY,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO,IAAI;AAAA,IAC3D,MAAM,KAAK,SAAS;AAAA,EACtB;AACF;AAUO,SAAS,kBAAqB,MAAS,MAAiB,MAA+B,OAAuB;AACnH,QAAM,EAAE,QAAQ,QAAQ,KAAK,IAAI,gBAAgB,IAAI;AACrD,QAAM,WAAW;AAAA,IACf,IAAI;AAAA,IACJ,MAAM,WAAW,SAAS,OAAQ;AAAA,IAClC,GAAI,MAAM,SAAS,IAAI,EAAE,MAAM,IAAI,CAAC;AAAA,EACtC;AACA,cAAY,UAAU,QAAQ,QAAQ,MAAM,qBAAqB;AACnE;AAGO,IAAM,cAAc;AAAA,EACzB,QAAQ,EAAE,MAAM,UAAU,aAAa,gCAAgC,UAAU,OAAO,SAAS,OAAO;AAAA,EACxG,QAAQ,EAAE,MAAM,UAAU,aAAa,0CAA0C,UAAU,MAAM;AAAA,EACjG,MAAM,EAAE,MAAM,WAAW,aAAa,yBAAyB,UAAU,OAAO,SAAS,MAAM;AACjG;","names":[]}
@@ -0,0 +1,66 @@
1
+ // src/commands/ads/x/error-parser.ts
2
+ function mapXErrorCode(message) {
3
+ if (/UNAUTHORIZED_ACCESS|authentication/i.test(message)) return "AUTH_ERROR";
4
+ if (/UNAUTHORIZED_CLIENT_APPLICATION/i.test(message)) return "PERMISSION_DENIED";
5
+ if (/ACCOUNT_NOT_FOUND|NOT_FOUND/i.test(message)) return "ACCOUNT_NOT_FOUND";
6
+ if (/CAMPAIGN_NOT_FOUND/i.test(message)) return "CAMPAIGN_NOT_FOUND";
7
+ if (/LINE_ITEM_NOT_FOUND/i.test(message)) return "LINE_ITEM_NOT_FOUND";
8
+ if (/MEDIA_NOT_FOUND|TWEET_NOT_FOUND|TAILORED_AUDIENCE_NOT_FOUND/i.test(message)) return "RESOURCE_NOT_FOUND";
9
+ if (/TOO_MANY_REQUESTS|TWEET_RATE_LIMIT_EXCEEDED|rate.*limit/i.test(message)) return "QUOTA_EXCEEDED";
10
+ if (/SPEND_EXCEEDS_BUDGET/i.test(message)) return "BUDGET_EXCEEDED";
11
+ if (/INVALID_PARAMETER|MISSING_PARAMETER|EXCLUSIVE_PARAMETERS|INCLUSIVE_PARAMETERS/i.test(message))
12
+ return "INVALID_PARAMETER";
13
+ if (/SERVICE_UNAVAILABLE|OVER_CAPACITY|INTERNAL_ERROR/i.test(message)) return "SERVICE_UNAVAILABLE";
14
+ if (/CANCELLED_REQUEST|timeout|DEADLINE_EXCEEDED/i.test(message)) return "TIMEOUT";
15
+ return "API_ERROR";
16
+ }
17
+ function isRetryable(code) {
18
+ return code === "QUOTA_EXCEEDED" || code === "TIMEOUT" || code === "SERVICE_UNAVAILABLE";
19
+ }
20
+ function getRetryDelay(code) {
21
+ if (code === "QUOTA_EXCEEDED") return 6e4;
22
+ if (code === "SERVICE_UNAVAILABLE") return 15e3;
23
+ if (code === "TIMEOUT") return 5e3;
24
+ return void 0;
25
+ }
26
+ function parseXApiError(errorMessage, accountId) {
27
+ const code = mapXErrorCode(errorMessage);
28
+ return {
29
+ ok: false,
30
+ error: {
31
+ code,
32
+ message: errorMessage,
33
+ fix: {
34
+ action: code === "AUTH_ERROR" ? "authenticate" : code === "PERMISSION_DENIED" ? "authenticate" : isRetryable(code) ? "wait_and_retry" : "reject",
35
+ explanation: explainFix(code, accountId, errorMessage)
36
+ },
37
+ retryable: isRetryable(code),
38
+ retryAfterMs: getRetryDelay(code)
39
+ }
40
+ };
41
+ }
42
+ function explainFix(code, accountId, message) {
43
+ switch (code) {
44
+ case "AUTH_ERROR":
45
+ return "Token rejected by X. Reconnect the X Ads provider in Baker dashboard settings.";
46
+ case "PERMISSION_DENIED":
47
+ return "App not authorized for this resource. Verify Ads API access at ads.x.com/help and reconnect the provider.";
48
+ case "ACCOUNT_NOT_FOUND":
49
+ return `Account ${accountId} not accessible. Run 'baker ads x accounts' to list visible accounts.`;
50
+ case "QUOTA_EXCEEDED":
51
+ return "X Ads rate limit exceeded. Wait until the x-rate-limit-reset window passes and retry.";
52
+ case "INVALID_PARAMETER":
53
+ return `Invalid parameter sent to X Ads API: ${message}`;
54
+ case "BUDGET_EXCEEDED":
55
+ return "Spend exceeds available budget on the funding instrument.";
56
+ case "SERVICE_UNAVAILABLE":
57
+ return "X Ads API is temporarily unavailable. Retry after a short backoff.";
58
+ default:
59
+ return `Unrecognized X Ads error \u2014 verify request shape against X Ads API docs (${code}).`;
60
+ }
61
+ }
62
+
63
+ export {
64
+ parseXApiError
65
+ };
66
+ //# sourceMappingURL=chunk-M6UNISGO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/x/error-parser.ts"],"sourcesContent":["import type { AdsErrorEnvelope } from \"../types.ts\";\n\nfunction mapXErrorCode(message: string): string {\n if (/UNAUTHORIZED_ACCESS|authentication/i.test(message)) return \"AUTH_ERROR\";\n if (/UNAUTHORIZED_CLIENT_APPLICATION/i.test(message)) return \"PERMISSION_DENIED\";\n if (/ACCOUNT_NOT_FOUND|NOT_FOUND/i.test(message)) return \"ACCOUNT_NOT_FOUND\";\n if (/CAMPAIGN_NOT_FOUND/i.test(message)) return \"CAMPAIGN_NOT_FOUND\";\n if (/LINE_ITEM_NOT_FOUND/i.test(message)) return \"LINE_ITEM_NOT_FOUND\";\n if (/MEDIA_NOT_FOUND|TWEET_NOT_FOUND|TAILORED_AUDIENCE_NOT_FOUND/i.test(message)) return \"RESOURCE_NOT_FOUND\";\n if (/TOO_MANY_REQUESTS|TWEET_RATE_LIMIT_EXCEEDED|rate.*limit/i.test(message)) return \"QUOTA_EXCEEDED\";\n if (/SPEND_EXCEEDS_BUDGET/i.test(message)) return \"BUDGET_EXCEEDED\";\n if (/INVALID_PARAMETER|MISSING_PARAMETER|EXCLUSIVE_PARAMETERS|INCLUSIVE_PARAMETERS/i.test(message))\n return \"INVALID_PARAMETER\";\n if (/SERVICE_UNAVAILABLE|OVER_CAPACITY|INTERNAL_ERROR/i.test(message)) return \"SERVICE_UNAVAILABLE\";\n if (/CANCELLED_REQUEST|timeout|DEADLINE_EXCEEDED/i.test(message)) return \"TIMEOUT\";\n return \"API_ERROR\";\n}\n\nfunction isRetryable(code: string): boolean {\n return code === \"QUOTA_EXCEEDED\" || code === \"TIMEOUT\" || code === \"SERVICE_UNAVAILABLE\";\n}\n\nfunction getRetryDelay(code: string): number | undefined {\n if (code === \"QUOTA_EXCEEDED\") return 60_000;\n if (code === \"SERVICE_UNAVAILABLE\") return 15_000;\n if (code === \"TIMEOUT\") return 5_000;\n return undefined;\n}\n\nexport function parseXApiError(errorMessage: string, accountId: string): AdsErrorEnvelope {\n const code = mapXErrorCode(errorMessage);\n return {\n ok: false,\n error: {\n code,\n message: errorMessage,\n fix: {\n action:\n code === \"AUTH_ERROR\"\n ? \"authenticate\"\n : code === \"PERMISSION_DENIED\"\n ? \"authenticate\"\n : isRetryable(code)\n ? \"wait_and_retry\"\n : \"reject\",\n explanation: explainFix(code, accountId, errorMessage),\n },\n retryable: isRetryable(code),\n retryAfterMs: getRetryDelay(code),\n },\n };\n}\n\nfunction explainFix(code: string, accountId: string, message: string): string {\n switch (code) {\n case \"AUTH_ERROR\":\n return \"Token rejected by X. Reconnect the X Ads provider in Baker dashboard settings.\";\n case \"PERMISSION_DENIED\":\n return \"App not authorized for this resource. Verify Ads API access at ads.x.com/help and reconnect the provider.\";\n case \"ACCOUNT_NOT_FOUND\":\n return `Account ${accountId} not accessible. Run 'baker ads x accounts' to list visible accounts.`;\n case \"QUOTA_EXCEEDED\":\n return \"X Ads rate limit exceeded. Wait until the x-rate-limit-reset window passes and retry.\";\n case \"INVALID_PARAMETER\":\n return `Invalid parameter sent to X Ads API: ${message}`;\n case \"BUDGET_EXCEEDED\":\n return \"Spend exceeds available budget on the funding instrument.\";\n case \"SERVICE_UNAVAILABLE\":\n return \"X Ads API is temporarily unavailable. Retry after a short backoff.\";\n default:\n return `Unrecognized X Ads error — verify request shape against X Ads API docs (${code}).`;\n }\n}\n"],"mappings":";AAEA,SAAS,cAAc,SAAyB;AAC9C,MAAI,sCAAsC,KAAK,OAAO,EAAG,QAAO;AAChE,MAAI,mCAAmC,KAAK,OAAO,EAAG,QAAO;AAC7D,MAAI,+BAA+B,KAAK,OAAO,EAAG,QAAO;AACzD,MAAI,sBAAsB,KAAK,OAAO,EAAG,QAAO;AAChD,MAAI,uBAAuB,KAAK,OAAO,EAAG,QAAO;AACjD,MAAI,+DAA+D,KAAK,OAAO,EAAG,QAAO;AACzF,MAAI,2DAA2D,KAAK,OAAO,EAAG,QAAO;AACrF,MAAI,wBAAwB,KAAK,OAAO,EAAG,QAAO;AAClD,MAAI,iFAAiF,KAAK,OAAO;AAC/F,WAAO;AACT,MAAI,oDAAoD,KAAK,OAAO,EAAG,QAAO;AAC9E,MAAI,+CAA+C,KAAK,OAAO,EAAG,QAAO;AACzE,SAAO;AACT;AAEA,SAAS,YAAY,MAAuB;AAC1C,SAAO,SAAS,oBAAoB,SAAS,aAAa,SAAS;AACrE;AAEA,SAAS,cAAc,MAAkC;AACvD,MAAI,SAAS,iBAAkB,QAAO;AACtC,MAAI,SAAS,sBAAuB,QAAO;AAC3C,MAAI,SAAS,UAAW,QAAO;AAC/B,SAAO;AACT;AAEO,SAAS,eAAe,cAAsB,WAAqC;AACxF,QAAM,OAAO,cAAc,YAAY;AACvC,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,MACT,KAAK;AAAA,QACH,QACE,SAAS,eACL,iBACA,SAAS,sBACP,iBACA,YAAY,IAAI,IACd,mBACA;AAAA,QACV,aAAa,WAAW,MAAM,WAAW,YAAY;AAAA,MACvD;AAAA,MACA,WAAW,YAAY,IAAI;AAAA,MAC3B,cAAc,cAAc,IAAI;AAAA,IAClC;AAAA,EACF;AACF;AAEA,SAAS,WAAW,MAAc,WAAmB,SAAyB;AAC5E,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,WAAW,SAAS;AAAA,IAC7B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,wCAAwC,OAAO;AAAA,IACxD,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO,gFAA2E,IAAI;AAAA,EAC1F;AACF;","names":[]}