@koda-sl/baker-cli 0.559.0 → 0.561.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1347) hide show
  1. package/README.md +8 -1
  2. package/dist/account-B77TBYMN.js +82 -0
  3. package/dist/account-OCFXNHG7.js +139 -0
  4. package/dist/account-U6DFMD2V.js +82 -0
  5. package/dist/account-assets-W7K2PUYB.js +290 -0
  6. package/dist/account-level-Z2JEIJ3X.js +611 -0
  7. package/dist/account-reads-X35O4MCA.js +219 -0
  8. package/dist/account-users-UKKABT5U.js +64 -0
  9. package/dist/account-writes-QSJ74QFR.js +68 -0
  10. package/dist/accounts-55PDBEDN.js +76 -0
  11. package/dist/accounts-AK4QIG24.js +115 -0
  12. package/dist/accounts-HGCR3WFZ.js +119 -0
  13. package/dist/accounts-QYNZXW2E.js +80 -0
  14. package/dist/accounts-XL2TMLGE.js +701 -0
  15. package/dist/actions-CVTRCHPG.js +55 -0
  16. package/dist/active-entities-HR7NJJLU.js +103 -0
  17. package/dist/activecampaign-UNNM6J7M.js +938 -0
  18. package/dist/activities-DEWHKBID.js +75 -0
  19. package/dist/ad-group-writes-QBHOPTT5.js +172 -0
  20. package/dist/ad-groups-JZDUFT6J.js +70 -0
  21. package/dist/ad-writes-QYJO4IB3.js +176 -0
  22. package/dist/add-3GOSW7LW.js +107 -0
  23. package/dist/add-DPCBGUA5.js +305 -0
  24. package/dist/add-IMKVYDQV.js +85 -0
  25. package/dist/add-PZEVRQ7Z.js +81 -0
  26. package/dist/add-QXI627AS.js +148 -0
  27. package/dist/add-SPQ4MOCQ.js +97 -0
  28. package/dist/add-accounts-D4V5K7SO.js +91 -0
  29. package/dist/ads-LDCZ65B5.js +48 -0
  30. package/dist/ads-QKVNPHBH.js +120 -0
  31. package/dist/ads-RTRWWEP5.js +128 -0
  32. package/dist/ads-UMSWEI5X.js +79 -0
  33. package/dist/adsets-FEVYHKAQ.js +182 -0
  34. package/dist/advertisers-2GKICB23.js +125 -0
  35. package/dist/advertisers-3D36UJTQ.js +123 -0
  36. package/dist/analytics-YHOXWFBI.js +2437 -0
  37. package/dist/analytics-ZPPZJETP.js +447 -0
  38. package/dist/animate-WS63CZ3Y.js +480 -0
  39. package/dist/approved-3XFZNRJR.js +73 -0
  40. package/dist/asset-writes-7RFZZYU7.js +50 -0
  41. package/dist/assign-5P7OJBAH.js +80 -0
  42. package/dist/audience-size-PHFJ22TX.js +76 -0
  43. package/dist/audience-writes-RUGU6KEC.js +327 -0
  44. package/dist/audiences-6GVUZUCN.js +106 -0
  45. package/dist/audiences-7OS2ZJYO.js +85 -0
  46. package/dist/audiences-RSAUXKHR.js +280 -0
  47. package/dist/audit-3GRXRDLR.js +154 -0
  48. package/dist/audit-4L7IKIRY.js +88 -0
  49. package/dist/autocomplete-GQLXBG5V.js +114 -0
  50. package/dist/avatars-I73KFB3F.js +38 -0
  51. package/dist/bid-pricing-6MZ7SC72.js +103 -0
  52. package/dist/brief-MI4RLV4N.js +543 -0
  53. package/dist/businesses-42NZP6FP.js +54 -0
  54. package/dist/campaign-groups-QZ2NW5AW.js +99 -0
  55. package/dist/campaign-writes-BGS53O4B.js +168 -0
  56. package/dist/campaign-writes-GKNH2EHV.js +176 -0
  57. package/dist/campaigns-7RV65SXR.js +78 -0
  58. package/dist/campaigns-FGIVPEVA.js +113 -0
  59. package/dist/campaigns-TO74Z7UH.js +130 -0
  60. package/dist/campaigns-YBPXM6B3.js +111 -0
  61. package/dist/canvas-YTSJAEOF.js +46 -0
  62. package/dist/capabilities-YFXCTUJJ.js +147 -0
  63. package/dist/cards-CAOGPPG4.js +85 -0
  64. package/dist/catalogs-5LWEXG5X.js +130 -0
  65. package/dist/catalogs-7IEXGLSR.js +782 -0
  66. package/dist/changes-6CL42LG3.js +167 -0
  67. package/dist/changes-6CL42LG3.js.map +1 -0
  68. package/dist/chatgpt-HLIQ7OJZ.js +47 -0
  69. package/dist/chats-D5W2UWD4.js +449 -0
  70. package/dist/check-FFMWUB72.js +107 -0
  71. package/dist/chunk-2DAWUWA4.js +115 -0
  72. package/dist/chunk-2DVFPCH3.js +91 -0
  73. package/dist/chunk-2LBQNTTH.js +76 -0
  74. package/dist/chunk-2VHYY4RU.js +191 -0
  75. package/dist/chunk-3E74OM2E.js +288 -0
  76. package/dist/chunk-3FLSRUID.js +344 -0
  77. package/dist/chunk-3LYT3NQX.js +42 -0
  78. package/dist/chunk-4UNJ4ENA.js +106 -0
  79. package/dist/chunk-533R4P5O.js +224 -0
  80. package/dist/chunk-5E4Y6RVY.js +56 -0
  81. package/dist/chunk-5H6N36LS.js +217 -0
  82. package/dist/chunk-6I7GJDBX.js +910 -0
  83. package/dist/chunk-6IR7IQPV.js +69 -0
  84. package/dist/chunk-6PO3WSFJ.js +97 -0
  85. package/dist/chunk-6QNXBEIN.js +207 -0
  86. package/dist/chunk-BESCYH3K.js +125 -0
  87. package/dist/chunk-BGMIO2FR.js +64 -0
  88. package/dist/chunk-BVGRKVHL.js +103 -0
  89. package/dist/chunk-C3EX5OKN.js +188 -0
  90. package/dist/chunk-CHVLFACB.js +91 -0
  91. package/dist/chunk-CP6RFWLW.js +69 -0
  92. package/dist/chunk-D2GDHVZP.js +51 -0
  93. package/dist/chunk-D3YAFC6K.js +98 -0
  94. package/dist/chunk-DFDV42NY.js +709 -0
  95. package/dist/chunk-EFTYCX5C.js +46 -0
  96. package/dist/chunk-F62BW6DJ.js +139 -0
  97. package/dist/chunk-FLQNIFG2.js +84 -0
  98. package/dist/chunk-FWHEAR7F.js +138 -0
  99. package/dist/chunk-FXZGRP3F.js +454 -0
  100. package/dist/chunk-GQ4DMO5Q.js +8954 -0
  101. package/dist/chunk-GUH2A5R5.js +66 -0
  102. package/dist/chunk-HJ3Q4NOM.js +58 -0
  103. package/dist/chunk-IDDG4QKO.js +39 -0
  104. package/dist/chunk-ILGRC7LJ.js +287 -0
  105. package/dist/chunk-JQDYH5XP.js +156 -0
  106. package/dist/chunk-JQDYH5XP.js.map +1 -0
  107. package/dist/chunk-JTIWQLY5.js +98 -0
  108. package/dist/chunk-KDVYI4LC.js +35 -0
  109. package/dist/chunk-LAP23AND.js +399 -0
  110. package/dist/chunk-LFPBZL2X.js +163 -0
  111. package/dist/chunk-MSGIF4EC.js +275 -0
  112. package/dist/chunk-MYIOR35H.js +225 -0
  113. package/dist/chunk-NTFNLVZG.js +26 -0
  114. package/dist/chunk-OAJ6LVL2.js +430 -0
  115. package/dist/chunk-OASXBRXQ.js +24026 -0
  116. package/dist/chunk-OFMFBRSL.js +25 -0
  117. package/dist/chunk-ORQ3WBM6.js +225 -0
  118. package/dist/chunk-OSQTSS27.js +74 -0
  119. package/dist/chunk-OTRKBCUB.js +219 -0
  120. package/dist/chunk-OWEON2S7.js +1246 -0
  121. package/dist/chunk-OWEON2S7.js.map +1 -0
  122. package/dist/chunk-PH3FZZIT.js +544 -0
  123. package/dist/chunk-PXLBPOI3.js +203 -0
  124. package/dist/chunk-QEREDRZO.js +246 -0
  125. package/dist/chunk-QEREDRZO.js.map +1 -0
  126. package/dist/chunk-QLXVHWAC.js +685 -0
  127. package/dist/chunk-QPTYTM2X.js +142 -0
  128. package/dist/chunk-R2Z5L5CF.js +297 -0
  129. package/dist/chunk-R4RWQ6YX.js +152 -0
  130. package/dist/chunk-RBCO3C3Q.js +324 -0
  131. package/dist/chunk-RHSKKWPO.js +1902 -0
  132. package/dist/chunk-RJ2ETGAQ.js +73 -0
  133. package/dist/chunk-S37ZZSNM.js +604 -0
  134. package/dist/chunk-SJIEU3VG.js +831 -0
  135. package/dist/chunk-SKI7QMDT.js +170 -0
  136. package/dist/chunk-SLLY4ZTT.js +169 -0
  137. package/dist/chunk-TCR6KI6P.js +1320 -0
  138. package/dist/chunk-TCR6KI6P.js.map +1 -0
  139. package/dist/chunk-UKDILXEA.js +23 -0
  140. package/dist/chunk-ULIQNJ5J.js +274 -0
  141. package/dist/chunk-UR7ENZ3F.js +547 -0
  142. package/dist/chunk-UYZ4FUC7.js +225 -0
  143. package/dist/chunk-WBWEKZQ2.js +191 -0
  144. package/dist/chunk-WYXYAKUP.js +19 -0
  145. package/dist/chunk-X7XFAFU4.js +2209 -0
  146. package/dist/chunk-Y43FKOED.js +89 -0
  147. package/dist/chunk-Y6XWO4V4.js +111 -0
  148. package/dist/chunk-YB6G3B3L.js +45 -0
  149. package/dist/chunk-YD6OZSSY.js +106 -0
  150. package/dist/chunk-YFBHZ57K.js +197 -0
  151. package/dist/chunk-ZD5MNBLA.js +930 -0
  152. package/dist/chunk-ZZ5B2ZRM.js +94 -0
  153. package/dist/cite-AJ5ZQWD2.js +191 -0
  154. package/dist/claim-G4TW75Z2.js +200 -0
  155. package/dist/cli.js +100 -39
  156. package/dist/cli.js.map +1 -1
  157. package/dist/client-F6KOC77S.js +19 -0
  158. package/dist/code-NV4ARLFS.js +76 -0
  159. package/dist/companies-TYDUEKET.js +198 -0
  160. package/dist/company-V5WKGDGU.js +308 -0
  161. package/dist/complete-QEKKP7YL.js +84 -0
  162. package/dist/config-NDL2YP37.js +88 -0
  163. package/dist/connect-5Q2HQ7LT.js +45 -0
  164. package/dist/content-EQZKKIST.js +85 -0
  165. package/dist/conversation-JIVOIZ5E.js +96 -0
  166. package/dist/conversion-report-76S5JOVT.js +127 -0
  167. package/dist/conversion-upload-command-WNHVNVMW.js +439 -0
  168. package/dist/conversion-writes-6HX665JT.js +122 -0
  169. package/dist/conversions-A524MH5C.js +78 -0
  170. package/dist/conversions-PSXVU4JL.js +140 -0
  171. package/dist/copy-writes-X2LM5I4Z.js +170 -0
  172. package/dist/countries-GZSBGSVT.js +82 -0
  173. package/dist/create-7QGB33HI.js +135 -0
  174. package/dist/create-AV7UY4N5.js +239 -0
  175. package/dist/create-CHBC745Y.js +62 -0
  176. package/dist/create-SBQU7B3S.js +218 -0
  177. package/dist/creatives-LNUSBQXQ.js +229 -0
  178. package/dist/creatives-SFPNXJ6Z.js +118 -0
  179. package/dist/creatives-XQILGK6P.js +58 -0
  180. package/dist/credentials-IWF37PAQ.js +290 -0
  181. package/dist/critique-ETRQP3QZ.js +232 -0
  182. package/dist/crm-IDN55BIC.js +323 -0
  183. package/dist/crm-T2ZJNZ6G.js +229 -0
  184. package/dist/crm-T2ZJNZ6G.js.map +1 -0
  185. package/dist/currency-VQMZZXSS.js +88 -0
  186. package/dist/custom-conversions-UHRBVUD2.js +128 -0
  187. package/dist/customers-XANEOEW6.js +65 -0
  188. package/dist/decide-AM6B7WIL.js +199 -0
  189. package/dist/delete-2WL6K24W.js +69 -0
  190. package/dist/delete-46B7DSQV.js +71 -0
  191. package/dist/delete-6K7EZXNR.js +67 -0
  192. package/dist/delete-SCAVFYZL.js +57 -0
  193. package/dist/delete-WAPC4XC2.js +69 -0
  194. package/dist/delete-YYIM564B.js +85 -0
  195. package/dist/demographics-JJKL7MZC.js +141 -0
  196. package/dist/describe-5OC7XX2U.js +97 -0
  197. package/dist/describe-EAPKNUUU.js +97 -0
  198. package/dist/discard-FQDZ5GKN.js +69 -0
  199. package/dist/discover-4F4USNHE.js +172 -0
  200. package/dist/discover-P7PBB3IV.js +93 -0
  201. package/dist/domain-AFWPUOI7.js +101 -0
  202. package/dist/download-MXKBJPPF.js +172 -0
  203. package/dist/download-YB2DVMRS.js +337 -0
  204. package/dist/draft-44KTLX4P.js +134 -0
  205. package/dist/draft-CKFSZDVI.js +260 -0
  206. package/dist/draft-EKJQGNFT.js +374 -0
  207. package/dist/draft-OJHTFELQ.js +332 -0
  208. package/dist/draft-RSKZSUOS.js +138 -0
  209. package/dist/draft-VIZTQ6W4.js +557 -0
  210. package/dist/draft-WOE7KQ7T.js +315 -0
  211. package/dist/draft-Z5IVHUHR.js +220 -0
  212. package/dist/experiment-EFLKDQ3C.js +1397 -0
  213. package/dist/experiments-YUBVWNB5.js +236 -0
  214. package/dist/export-RPNRPTDK.js +168 -0
  215. package/dist/extract-VHM2UNIE.js +143 -0
  216. package/dist/facets-5GLKSHTA.js +117 -0
  217. package/dist/favorites-536I3GZD.js +178 -0
  218. package/dist/feed-W3ECHUEX.js +177 -0
  219. package/dist/feedback-36TL4GPS.js +115 -0
  220. package/dist/feedback-VCYIVDO2.js +136 -0
  221. package/dist/feedback-record-QGAP4HA4.js +269 -0
  222. package/dist/fetch-X4RIDS7N.js +204 -0
  223. package/dist/find-57WYB4V3.js +144 -0
  224. package/dist/fit-V4CRDVQV.js +65 -0
  225. package/dist/flows-YPBWZR4P.js +250 -0
  226. package/dist/follow-5VX5JWAQ.js +94 -0
  227. package/dist/follow-competitors-D7I33T5C.js +112 -0
  228. package/dist/following-6DI4IZ7P.js +113 -0
  229. package/dist/forecast-E2HJSD6E.js +169 -0
  230. package/dist/forecast-LMYMZHZE.js +121 -0
  231. package/dist/funding-BSAHWU35.js +85 -0
  232. package/dist/funnel-MF2KFXEX.js +397 -0
  233. package/dist/ga4-FCMTGV4S.js +55 -0
  234. package/dist/generate-VGGXTZBP.js +263 -0
  235. package/dist/get-42V7UTNF.js +59 -0
  236. package/dist/get-5SCYUC4G.js +38 -0
  237. package/dist/get-7NI64G6K.js +82 -0
  238. package/dist/get-BQBLPGFE.js +74 -0
  239. package/dist/get-JHOH74X5.js +56 -0
  240. package/dist/get-MVZWQ4BE.js +62 -0
  241. package/dist/get-TBMTBGHJ.js +62 -0
  242. package/dist/get-V4NJXKUR.js +92 -0
  243. package/dist/gif-M2GMVWM4.js +111 -0
  244. package/dist/google-YNVTLX5E.js +163 -0
  245. package/dist/google-ZRZGM2XI.js +3300 -0
  246. package/dist/google-ZRZGM2XI.js.map +1 -0
  247. package/dist/google-ads-UER2CSQN.js +198 -0
  248. package/dist/group-PLTVV7UZ.js +43 -0
  249. package/dist/group-THZPJALS.js +43 -0
  250. package/dist/gsc-A3KB36WH.js +30 -0
  251. package/dist/history-3GRRZSWW.js +102 -0
  252. package/dist/history-LBIA45H3.js +153 -0
  253. package/dist/history-LXRFZNW7.js +69 -0
  254. package/dist/hubspot-NEENQKIP.js +814 -0
  255. package/dist/hubspot-NEENQKIP.js.map +1 -0
  256. package/dist/icon-7WND6UPY.js +138 -0
  257. package/dist/ideas-LDQMFMJM.js +45 -0
  258. package/dist/images-2FDXHKMR.js +92 -0
  259. package/dist/improve-NWFQI63B.js +86 -0
  260. package/dist/ingest-OJDK7AGH.js +131 -0
  261. package/dist/ingest-PS2LOYBM.js +28 -0
  262. package/dist/insights-H6M6VI43.js +132 -0
  263. package/dist/insights-LZJZGNJZ.js +658 -0
  264. package/dist/inspect-ALSHVHUP.js +192 -0
  265. package/dist/inspiration-TQHQNILK.js +53 -0
  266. package/dist/instant-experiences-J4GSS3Y6.js +264 -0
  267. package/dist/intent-ZKLT4DAW.js +95 -0
  268. package/dist/job-UFGGBDG7.js +202 -0
  269. package/dist/job-create-XM4NH322.js +109 -0
  270. package/dist/job-status-47L5Z57J.js +74 -0
  271. package/dist/keep-I6FLGJH4.js +78 -0
  272. package/dist/keyword-gap-QC3ITLNG.js +130 -0
  273. package/dist/keyword-metrics-PERWGH54.js +200 -0
  274. package/dist/keywords-for-site-CCCB6KHE.js +131 -0
  275. package/dist/knowledge-H5PJ6LZB.js +195 -0
  276. package/dist/landing-VE3MHOA3.js +28 -0
  277. package/dist/landings-AELJXEYN.js +151 -0
  278. package/dist/languages-GCRI2PI3.js +55 -0
  279. package/dist/languages-QMLC4QWZ.js +40 -0
  280. package/dist/launches-CKPZFVMQ.js +19 -0
  281. package/dist/layerize-PHY25VNC.js +190 -0
  282. package/dist/lead-routes-ZMKRNL57.js +733 -0
  283. package/dist/leads-SEEJ3KRR.js +541 -0
  284. package/dist/leads-TPMLYLBH.js +115 -0
  285. package/dist/learn-KK3AJS3N.js +207 -0
  286. package/dist/library-5YJCCEFL.js +212 -0
  287. package/dist/lighthouse-W3KAVW2G.js +75 -0
  288. package/dist/line-item-writes-ONKDXKOM.js +211 -0
  289. package/dist/line-items-ILJYVUHX.js +107 -0
  290. package/dist/link-YDHTMDC5.js +67 -0
  291. package/dist/linkedin-N3NGCE5N.js +1344 -0
  292. package/dist/linkedin-person-6F3YJHXM.js +139 -0
  293. package/dist/list-2EJ3XZ6I.js +93 -0
  294. package/dist/list-BQWHFEWY.js +65 -0
  295. package/dist/list-E7JG27WS.js +50 -0
  296. package/dist/list-EKL5HIR7.js +306 -0
  297. package/dist/list-ERCPPED6.js +76 -0
  298. package/dist/list-F7UDUU7C.js +67 -0
  299. package/dist/list-HYZL4576.js +57 -0
  300. package/dist/list-IKQFAJP7.js +51 -0
  301. package/dist/list-WDTPTY2T.js +154 -0
  302. package/dist/locations-5SLLGWZO.js +69 -0
  303. package/dist/locations-DNRK7DY4.js +40 -0
  304. package/dist/log-BZBRXB5P.js +95 -0
  305. package/dist/logo-ODONF6N7.js +19 -0
  306. package/dist/lookup-OU6CLATK.js +23 -0
  307. package/dist/make-W27CB5X4.js +1367 -0
  308. package/dist/map-FNB7IWDY.js +436 -0
  309. package/dist/mcp-QSDCAWMU.js +729 -0
  310. package/dist/media-DGV2AMZI.js +89 -0
  311. package/dist/media-YKCCMLXL.js +18 -0
  312. package/dist/media-sources-NMT4G45B.js +35 -0
  313. package/dist/members-2XQ6E33F.js +47 -0
  314. package/dist/meme-3QYKC4BF.js +108 -0
  315. package/dist/meta-5KQ6CQBT.js +122 -0
  316. package/dist/metrics-P4QDFCVB.js +152 -0
  317. package/dist/normalize-5AU7SKYY.js +144 -0
  318. package/dist/options-CH52EP5K.js +125 -0
  319. package/dist/organization-6T4Q6XYI.js +949 -0
  320. package/dist/output-7X5WPPCA.js +24 -0
  321. package/dist/page-GBLVAKU3.js +105 -0
  322. package/dist/page-photos-VYJU4RNQ.js +118 -0
  323. package/dist/pages-6YMPZDEY.js +67 -0
  324. package/dist/performance-2SCAQSQK.js +27 -0
  325. package/dist/performance-4DMGJCN7.js +5565 -0
  326. package/dist/pinterest-235S7E6H.js +105 -0
  327. package/dist/pixels-DZDVNIVL.js +109 -0
  328. package/dist/pixels-WTTLC4O5.js +62 -0
  329. package/dist/plan-JAWESWJN.js +208 -0
  330. package/dist/posts-TRQCRLYZ.js +36 -0
  331. package/dist/preview-ICZR3SGB.js +101 -0
  332. package/dist/preview-JZXGR4KN.js +245 -0
  333. package/dist/profile-MKKJT2UF.js +159 -0
  334. package/dist/promoted-tweet-writes-DR6V7MHW.js +183 -0
  335. package/dist/promoted-tweets-IRECARIO.js +119 -0
  336. package/dist/properties-Z5S3LRJ5.js +101 -0
  337. package/dist/publish-4HM2CJVF.js +350 -0
  338. package/dist/query-AQ6HNKW7.js +62 -0
  339. package/dist/query-KKXCMH3Q.js +236 -0
  340. package/dist/query-QXKGVHZL.js +231 -0
  341. package/dist/questionnaire-U7UYICEA.js +94 -0
  342. package/dist/read-ENUS7P3L.js +141 -0
  343. package/dist/reddit-KOC7KLYS.js +29 -0
  344. package/dist/refresh-2KEQLXRK.js +97 -0
  345. package/dist/refresh-JSCYTM4B.js +42 -0
  346. package/dist/release-X3Q3RFQC.js +63 -0
  347. package/dist/relevant-pages-NZKXWMNA.js +99 -0
  348. package/dist/remove-6FXTPEB6.js +49 -0
  349. package/dist/remove-RYR6EAJY.js +53 -0
  350. package/dist/reopen-PIKLC5OW.js +66 -0
  351. package/dist/rerun-2HBMXJ55.js +97 -0
  352. package/dist/research-ZBZONY3D.js +75 -0
  353. package/dist/research-ZTA4XKNA.js +265 -0
  354. package/dist/reset-7YTMXVNX.js +57 -0
  355. package/dist/reset-Q3XSD4WI.js +57 -0
  356. package/dist/resolve-P3AT2S6A.js +124 -0
  357. package/dist/retry-CEZLEN7Z.js +63 -0
  358. package/dist/retry-YNNFUDWI.js +65 -0
  359. package/dist/retry-failed-FCS6PNUZ.js +45 -0
  360. package/dist/revenue-6PR3BJFJ.js +91 -0
  361. package/dist/rule-writes-WT6DQZZE.js +530 -0
  362. package/dist/rules-R7NK5X4Z.js +99 -0
  363. package/dist/rules-Y75KR2PC.js +217 -0
  364. package/dist/rules-add-2GIJGODB.js +465 -0
  365. package/dist/run-CDMNDJ7B.js +72 -0
  366. package/dist/run-RORVKARV.js +69 -0
  367. package/dist/scaffold-ad-DDGYTRFK.js +1513 -0
  368. package/dist/scaffold-static-ad-ES5AIQPA.js +1012 -0
  369. package/dist/scaffold-video-NWRJZQ7N.js +885 -0
  370. package/dist/schedule-2ELAAXVW.js +64 -0
  371. package/dist/schedule-XFEPEQTN.js +67 -0
  372. package/dist/scheduled-agents-RRAWQYPE.js +55 -0
  373. package/dist/schema-FHP43TLD.js +135 -0
  374. package/dist/scrape-D3XGARHR.js +2209 -0
  375. package/dist/screenshot-5LWUP5VN.js +103 -0
  376. package/dist/search-4DBP6EH5.js +92 -0
  377. package/dist/search-G6W4LGVZ.js +177 -0
  378. package/dist/search-HNRANK6H.js +51 -0
  379. package/dist/search-KGE3BSSH.js +228 -0
  380. package/dist/search-O3AOWEXC.js +26 -0
  381. package/dist/search-QQDR74KQ.js +91 -0
  382. package/dist/search-copy-EB3TONDS.js +168 -0
  383. package/dist/seeds-RGIFHHYC.js +101 -0
  384. package/dist/select-GFPXXVBU.js +110 -0
  385. package/dist/sends-4ZO6BNZ4.js +349 -0
  386. package/dist/sequences-SSLZ3XTP.js +146 -0
  387. package/dist/set-prompt-TQDOBUFT.js +199 -0
  388. package/dist/setup-links-CK7LBYJK.js +144 -0
  389. package/dist/shared-UPMEBTVP.js +32 -0
  390. package/dist/shopify-SOTGSWXW.js +4009 -0
  391. package/dist/site-IAIGIP3R.js +180 -0
  392. package/dist/sitemaps-P3K5Z4TW.js +77 -0
  393. package/dist/sites-TURWC53D.js +97 -0
  394. package/dist/skills-PDHUHP2T.js +47 -0
  395. package/dist/sources-62MIDG3D.js +457 -0
  396. package/dist/sources-D5XODGIV.js +30 -0
  397. package/dist/stale-4STBM2Z3.js +90 -0
  398. package/dist/stats-XNKAJD2Z.js +34 -0
  399. package/dist/status-BKSOFB53.js +65 -0
  400. package/dist/sticker-MWICUYQM.js +103 -0
  401. package/dist/stock-F5QNFRPM.js +212 -0
  402. package/dist/studies-5G67ODR2.js +250 -0
  403. package/dist/studio-ZRAZ2C25.js +49 -0
  404. package/dist/study-writes-34BJFZAZ.js +471 -0
  405. package/dist/suggest-KCN2NDYE.js +66 -0
  406. package/dist/sync-QVEUQKU5.js +279 -0
  407. package/dist/sync-TANGFXUN.js +55 -0
  408. package/dist/sync-VPE5G6YX.js +57 -0
  409. package/dist/sync-definition-VSNVCRNG.js +70 -0
  410. package/dist/tag-NKAHDL35.js +57 -0
  411. package/dist/tag-manager-3GIW6BPB.js +43 -0
  412. package/dist/tags-CBNWQTFX.js +23 -0
  413. package/dist/tags-IFBIJ7BE.js +23 -0
  414. package/dist/tags-J6IPWIZ5.js +227 -0
  415. package/dist/tags-XPLXA3LV.js +26 -0
  416. package/dist/tags-ZV7JAF6S.js +23 -0
  417. package/dist/targeting-TVZPIUUI.js +762 -0
  418. package/dist/targeting-constants-RJS2STR5.js +118 -0
  419. package/dist/targeting-criteria-VVZQFPNS.js +113 -0
  420. package/dist/targets-EQAZUKT6.js +106 -0
  421. package/dist/terms-AATAGKPT.js +102 -0
  422. package/dist/testimonials-5MA427KH.js +32 -0
  423. package/dist/themes-WMZJWXFT.js +95 -0
  424. package/dist/top-companies-V5FVQMCS.js +111 -0
  425. package/dist/transcript-2TE2R4DH.js +165 -0
  426. package/dist/translate-XIF6VTDN.js +603 -0
  427. package/dist/triggers-ZMNQ6W3M.js +144 -0
  428. package/dist/tweets-MLDLLLDB.js +123 -0
  429. package/dist/unfollow-OEMFPAFS.js +46 -0
  430. package/dist/unlink-HRCAROB3.js +70 -0
  431. package/dist/unstage-5WSEDFNH.js +88 -0
  432. package/dist/unstage-65DUBYNZ.js +96 -0
  433. package/dist/update-A64IC24P.js +101 -0
  434. package/dist/update-BESMEMQU.js +155 -0
  435. package/dist/update-CADTFTYC.js +81 -0
  436. package/dist/update-WU4FAGEA.js +192 -0
  437. package/dist/update-ZUBU5NQP.js +66 -0
  438. package/dist/upload-FR6WRGXI.js +137 -0
  439. package/dist/upload-GXS5CTOR.js +155 -0
  440. package/dist/upscale-BCI42TCP.js +109 -0
  441. package/dist/url-options-QLDSJ7QJ.js +131 -0
  442. package/dist/url-params-YWIBMV3P.js +101 -0
  443. package/dist/use-26VARHJT.js +111 -0
  444. package/dist/validate-5EWYG4QS.js +125 -0
  445. package/dist/variant-F4EEYQJ7.js +338 -0
  446. package/dist/videos-MXEQHDMN.js +41 -0
  447. package/dist/view-X65GETAV.js +133 -0
  448. package/dist/viewer-check-QI4HKF7A.js +83 -0
  449. package/dist/web-DYT5YHEU.js +173 -0
  450. package/dist/winners-5PRDG7GT.js +113 -0
  451. package/dist/winning-ads-YKBB2UZC.js +86 -0
  452. package/dist/write-commands-OBQPQUIE.js +721 -0
  453. package/dist/write-commands-SIOVTRHH.js +1169 -0
  454. package/dist/write-commands-USXHGCVT.js +1524 -0
  455. package/dist/write-commands-XLZCRVTU.js +206 -0
  456. package/dist/x-OIDZY7DM.js +47 -0
  457. package/package.json +1 -1
  458. package/dist/account-DUGYQJEM.js +0 -82
  459. package/dist/account-NSRT5KE6.js +0 -139
  460. package/dist/account-OXD426YD.js +0 -82
  461. package/dist/account-assets-QMKT5AT7.js +0 -290
  462. package/dist/account-level-BELF6JHB.js +0 -611
  463. package/dist/account-reads-GQWTMLTY.js +0 -219
  464. package/dist/account-users-BXJQ4XZV.js +0 -64
  465. package/dist/account-writes-VRRLT356.js +0 -68
  466. package/dist/accounts-45MUDNOM.js +0 -76
  467. package/dist/accounts-DXQ3DHMB.js +0 -80
  468. package/dist/accounts-KQ7NCM4L.js +0 -115
  469. package/dist/accounts-KXQY6WKR.js +0 -701
  470. package/dist/accounts-ZFQYZT3J.js +0 -119
  471. package/dist/actions-LI43PTFN.js +0 -55
  472. package/dist/active-entities-3266UJYN.js +0 -103
  473. package/dist/activecampaign-5A6YHDJW.js +0 -938
  474. package/dist/activities-ORMACIG2.js +0 -75
  475. package/dist/ad-group-writes-Y6CCMPCM.js +0 -172
  476. package/dist/ad-groups-TW2UKDVU.js +0 -70
  477. package/dist/ad-writes-J3UVUH7D.js +0 -176
  478. package/dist/add-CKJXQUVI.js +0 -97
  479. package/dist/add-NJUG3IQ2.js +0 -81
  480. package/dist/add-TJHGYZYH.js +0 -85
  481. package/dist/add-W4HEMTFL.js +0 -107
  482. package/dist/add-XYSUKZSU.js +0 -148
  483. package/dist/add-ZSKEB3CI.js +0 -305
  484. package/dist/add-accounts-IRHBFNNC.js +0 -91
  485. package/dist/ads-5CJQRTUN.js +0 -79
  486. package/dist/ads-DI3J3KCQ.js +0 -128
  487. package/dist/ads-H5AEYIY3.js +0 -120
  488. package/dist/ads-XXSBCX4B.js +0 -48
  489. package/dist/adsets-BUIT7HF2.js +0 -182
  490. package/dist/advertisers-5XCIZ7WS.js +0 -125
  491. package/dist/advertisers-KPVUVXZZ.js +0 -123
  492. package/dist/analytics-4WBRNSUC.js +0 -447
  493. package/dist/analytics-XT4ANMLP.js +0 -2437
  494. package/dist/animate-Q43SOWB4.js +0 -480
  495. package/dist/approved-RP5ADN7E.js +0 -73
  496. package/dist/asset-writes-JVFE457M.js +0 -50
  497. package/dist/assign-SQK4UF3I.js +0 -80
  498. package/dist/audience-size-5Y5Q6UVA.js +0 -76
  499. package/dist/audience-writes-DWSCHYQF.js +0 -327
  500. package/dist/audiences-4MYDTY74.js +0 -280
  501. package/dist/audiences-5TOTVZMK.js +0 -85
  502. package/dist/audiences-PYBJU2GV.js +0 -106
  503. package/dist/audit-GOZNIXNM.js +0 -154
  504. package/dist/audit-SACXTAIP.js +0 -88
  505. package/dist/autocomplete-36S76BGA.js +0 -114
  506. package/dist/avatars-SDQ5LCNG.js +0 -38
  507. package/dist/bid-pricing-6DFGC6YC.js +0 -103
  508. package/dist/brief-2UXKUTFC.js +0 -543
  509. package/dist/businesses-F6PN34WK.js +0 -54
  510. package/dist/campaign-groups-32LDB42N.js +0 -99
  511. package/dist/campaign-writes-62V55CNW.js +0 -168
  512. package/dist/campaign-writes-BHS3POAH.js +0 -176
  513. package/dist/campaigns-2Z6WXIVA.js +0 -130
  514. package/dist/campaigns-I5GSGZDJ.js +0 -111
  515. package/dist/campaigns-IRMLPW6N.js +0 -78
  516. package/dist/campaigns-OGNE4XHM.js +0 -113
  517. package/dist/canvas-HGU7FJ34.js +0 -46
  518. package/dist/capabilities-EDXVGZXC.js +0 -147
  519. package/dist/cards-HUXBNMEM.js +0 -85
  520. package/dist/catalogs-OEUNVE4N.js +0 -782
  521. package/dist/catalogs-WYRRTRCM.js +0 -130
  522. package/dist/changes-MVCX3GLE.js +0 -148
  523. package/dist/changes-MVCX3GLE.js.map +0 -1
  524. package/dist/chatgpt-6KBW7F5S.js +0 -47
  525. package/dist/chats-HFKSZWZD.js +0 -449
  526. package/dist/check-GRVUI3LI.js +0 -107
  527. package/dist/chunk-26UW2GMK.js +0 -8954
  528. package/dist/chunk-2L24FULD.js +0 -134
  529. package/dist/chunk-2L24FULD.js.map +0 -1
  530. package/dist/chunk-2LGDWOD7.js +0 -170
  531. package/dist/chunk-37QHT7J4.js +0 -91
  532. package/dist/chunk-3J52GJAY.js +0 -46
  533. package/dist/chunk-4ICSKDI7.js +0 -454
  534. package/dist/chunk-5G6R3WYN.js +0 -58
  535. package/dist/chunk-5HPKYRTE.js +0 -45
  536. package/dist/chunk-5NJQXV4K.js +0 -142
  537. package/dist/chunk-65CQYRMK.js +0 -98
  538. package/dist/chunk-6KEVNO5O.js +0 -191
  539. package/dist/chunk-6MZFOMLU.js +0 -225
  540. package/dist/chunk-724E32DM.js +0 -399
  541. package/dist/chunk-72JEATZ5.js +0 -51
  542. package/dist/chunk-7SNNQCDD.js +0 -274
  543. package/dist/chunk-AL4MRNYI.js +0 -709
  544. package/dist/chunk-AQ6LJ7EI.js +0 -23
  545. package/dist/chunk-BS4PRGEJ.js +0 -73
  546. package/dist/chunk-BU7W7MKF.js +0 -42
  547. package/dist/chunk-CQMAR4BH.js +0 -69
  548. package/dist/chunk-CXYX6G3I.js +0 -98
  549. package/dist/chunk-CZESYOCC.js +0 -94
  550. package/dist/chunk-CZTKRP6M.js +0 -103
  551. package/dist/chunk-D7FJ5KHG.js +0 -39
  552. package/dist/chunk-DSDI5DY3.js +0 -115
  553. package/dist/chunk-DYWKYP7Z.js +0 -203
  554. package/dist/chunk-EDWW3THE.js +0 -344
  555. package/dist/chunk-EENYLJUN.js +0 -225
  556. package/dist/chunk-EHNORFUW.js +0 -225
  557. package/dist/chunk-EJMPKO6V.js +0 -287
  558. package/dist/chunk-FAV6GUOZ.js +0 -24026
  559. package/dist/chunk-G3ZUMNLG.js +0 -66
  560. package/dist/chunk-G4JTXVLA.js +0 -74
  561. package/dist/chunk-GAP7SOGA.js +0 -188
  562. package/dist/chunk-GFWWHCBF.js +0 -229
  563. package/dist/chunk-GFWWHCBF.js.map +0 -1
  564. package/dist/chunk-H6GTG665.js +0 -106
  565. package/dist/chunk-HHMBHLX6.js +0 -910
  566. package/dist/chunk-HNELOMY2.js +0 -1239
  567. package/dist/chunk-HNELOMY2.js.map +0 -1
  568. package/dist/chunk-IIK4WNWV.js +0 -84
  569. package/dist/chunk-J6KCVW6N.js +0 -207
  570. package/dist/chunk-KDTSXLY7.js +0 -685
  571. package/dist/chunk-KE5TI23P.js +0 -430
  572. package/dist/chunk-KV4E4KGE.js +0 -831
  573. package/dist/chunk-KY6Q4WLC.js +0 -224
  574. package/dist/chunk-LBJ2CLRT.js +0 -106
  575. package/dist/chunk-LIBSSGE4.js +0 -275
  576. package/dist/chunk-LK5OKVCM.js +0 -544
  577. package/dist/chunk-NPDZ4EO6.js +0 -297
  578. package/dist/chunk-NPGPRZW2.js +0 -1313
  579. package/dist/chunk-NPGPRZW2.js.map +0 -1
  580. package/dist/chunk-OEH7ANJJ.js +0 -91
  581. package/dist/chunk-OVC2PIOP.js +0 -111
  582. package/dist/chunk-P5HG6WDH.js +0 -152
  583. package/dist/chunk-PBKUESJD.js +0 -191
  584. package/dist/chunk-PGAYESXE.js +0 -25
  585. package/dist/chunk-PZSOJYER.js +0 -604
  586. package/dist/chunk-QBCZLD3A.js +0 -2209
  587. package/dist/chunk-QFODAMYR.js +0 -69
  588. package/dist/chunk-QY7EK6Q4.js +0 -217
  589. package/dist/chunk-QYH2UZAK.js +0 -324
  590. package/dist/chunk-RIVHJC6L.js +0 -35
  591. package/dist/chunk-SKVQRTDO.js +0 -197
  592. package/dist/chunk-SNSLYZIT.js +0 -64
  593. package/dist/chunk-TLNYAZX5.js +0 -76
  594. package/dist/chunk-TWFZIHKK.js +0 -219
  595. package/dist/chunk-UB34H4VD.js +0 -547
  596. package/dist/chunk-UZEKIMLY.js +0 -163
  597. package/dist/chunk-VAQOSV3I.js +0 -138
  598. package/dist/chunk-VIRPAJEF.js +0 -97
  599. package/dist/chunk-VKYDHIBT.js +0 -169
  600. package/dist/chunk-WLD443MX.js +0 -19
  601. package/dist/chunk-WQIHLJAO.js +0 -1902
  602. package/dist/chunk-XGN3BGSL.js +0 -930
  603. package/dist/chunk-XZMO52BP.js +0 -56
  604. package/dist/chunk-YS7T735Q.js +0 -89
  605. package/dist/chunk-YXUIVOUL.js +0 -139
  606. package/dist/chunk-ZSZ76MUL.js +0 -125
  607. package/dist/chunk-ZU6JW3ZB.js +0 -26
  608. package/dist/chunk-ZW2CN6L6.js +0 -288
  609. package/dist/cite-TRNZYG4W.js +0 -191
  610. package/dist/claim-NUUED375.js +0 -200
  611. package/dist/client-45COYUUH.js +0 -19
  612. package/dist/code-K4YTLOPA.js +0 -76
  613. package/dist/companies-3EKQ6PBV.js +0 -198
  614. package/dist/company-35ZI77NI.js +0 -308
  615. package/dist/complete-V2HNULPO.js +0 -84
  616. package/dist/config-TCAHWE6T.js +0 -88
  617. package/dist/connect-77K3A6WK.js +0 -45
  618. package/dist/content-MKJP7T7L.js +0 -85
  619. package/dist/conversation-MWBPIT4W.js +0 -96
  620. package/dist/conversion-report-OFV4EKTA.js +0 -127
  621. package/dist/conversion-upload-command-U36QYHUT.js +0 -439
  622. package/dist/conversion-writes-B3H6VLA2.js +0 -122
  623. package/dist/conversions-RXNIACU5.js +0 -140
  624. package/dist/conversions-UGRVDRWU.js +0 -78
  625. package/dist/copy-writes-2B36QJUY.js +0 -170
  626. package/dist/countries-6ST54UGJ.js +0 -82
  627. package/dist/create-AE52ZZMG.js +0 -239
  628. package/dist/create-K2EUYE54.js +0 -218
  629. package/dist/create-L53KW6GN.js +0 -62
  630. package/dist/create-RJHGT2S4.js +0 -135
  631. package/dist/creatives-22BYP5VN.js +0 -118
  632. package/dist/creatives-2JP24JNL.js +0 -229
  633. package/dist/creatives-UPZU7BLY.js +0 -58
  634. package/dist/credentials-WRC7ERSS.js +0 -290
  635. package/dist/critique-VTNN6A5I.js +0 -232
  636. package/dist/crm-2MZLMSEV.js +0 -323
  637. package/dist/crm-VO6ZBW64.js +0 -227
  638. package/dist/crm-VO6ZBW64.js.map +0 -1
  639. package/dist/currency-XFY2EX72.js +0 -88
  640. package/dist/custom-conversions-V7QPZIB4.js +0 -128
  641. package/dist/customers-MHQ72YBY.js +0 -65
  642. package/dist/decide-JZXG6LZR.js +0 -199
  643. package/dist/delete-5NEAIDA4.js +0 -85
  644. package/dist/delete-6WKVGKRF.js +0 -57
  645. package/dist/delete-POHL3TKX.js +0 -69
  646. package/dist/delete-Q7J734W2.js +0 -71
  647. package/dist/delete-QFASUSVU.js +0 -67
  648. package/dist/delete-ULI3MVAD.js +0 -69
  649. package/dist/demographics-5SXTDRFU.js +0 -141
  650. package/dist/describe-MA54W67X.js +0 -97
  651. package/dist/describe-MJ5SOVWY.js +0 -97
  652. package/dist/discard-P4PGGYYO.js +0 -69
  653. package/dist/discover-J5344ATV.js +0 -172
  654. package/dist/discover-PPMLFJMU.js +0 -93
  655. package/dist/domain-RINRCQ5G.js +0 -101
  656. package/dist/download-H3ZDQTFG.js +0 -337
  657. package/dist/download-HPYGPNHN.js +0 -172
  658. package/dist/draft-2JVWCYRF.js +0 -134
  659. package/dist/draft-4WMYCA7I.js +0 -315
  660. package/dist/draft-4WPWILSX.js +0 -220
  661. package/dist/draft-7VGBJIJU.js +0 -260
  662. package/dist/draft-DR5BJK7V.js +0 -138
  663. package/dist/draft-FWCF4Y6P.js +0 -332
  664. package/dist/draft-M7XINDQU.js +0 -374
  665. package/dist/draft-OIGJUFOH.js +0 -557
  666. package/dist/experiment-O6726OBP.js +0 -1397
  667. package/dist/experiments-NULZPBF2.js +0 -236
  668. package/dist/export-6WWVO4O6.js +0 -168
  669. package/dist/extract-Y3OZG5DZ.js +0 -143
  670. package/dist/facets-HIADYZQQ.js +0 -117
  671. package/dist/favorites-54Z7PTYR.js +0 -178
  672. package/dist/feed-TAGQWMRK.js +0 -177
  673. package/dist/feedback-WEZEKTCH.js +0 -115
  674. package/dist/feedback-Y4AXR354.js +0 -136
  675. package/dist/feedback-record-YZNGRSNR.js +0 -269
  676. package/dist/fetch-T6WPGAWP.js +0 -204
  677. package/dist/find-TTJH5NVJ.js +0 -144
  678. package/dist/fit-MLDFA4ZK.js +0 -65
  679. package/dist/flows-XWU2XNYP.js +0 -250
  680. package/dist/follow-SX6BV6VZ.js +0 -94
  681. package/dist/follow-competitors-UBJJHX36.js +0 -112
  682. package/dist/following-L7WUEMZ2.js +0 -113
  683. package/dist/forecast-E5QXQFKQ.js +0 -121
  684. package/dist/forecast-HFCRTFIF.js +0 -169
  685. package/dist/funding-7M4TJ3MW.js +0 -85
  686. package/dist/funnel-NMC3JWTF.js +0 -397
  687. package/dist/ga4-XFJO7VK2.js +0 -55
  688. package/dist/generate-22HT24SA.js +0 -263
  689. package/dist/get-AKTMYS57.js +0 -82
  690. package/dist/get-JIB6PMGI.js +0 -59
  691. package/dist/get-JQE7XWKL.js +0 -62
  692. package/dist/get-MK6M4DKF.js +0 -62
  693. package/dist/get-Q4M6G7YN.js +0 -92
  694. package/dist/get-QS2A6YVM.js +0 -56
  695. package/dist/get-UFCNLDE2.js +0 -74
  696. package/dist/get-X44ZCIFN.js +0 -38
  697. package/dist/gif-TBKH7VSP.js +0 -111
  698. package/dist/google-TOO3FDZ6.js +0 -3285
  699. package/dist/google-TOO3FDZ6.js.map +0 -1
  700. package/dist/google-YDGZ2Q3M.js +0 -163
  701. package/dist/google-ads-AFJV5ZJO.js +0 -198
  702. package/dist/group-45M7V46T.js +0 -43
  703. package/dist/group-RAXOR36M.js +0 -43
  704. package/dist/gsc-ILEIJYWP.js +0 -30
  705. package/dist/history-6RCRBB4Q.js +0 -153
  706. package/dist/history-BEEREY26.js +0 -69
  707. package/dist/history-T6Y5IR4V.js +0 -102
  708. package/dist/hubspot-SNLOCDPF.js +0 -782
  709. package/dist/hubspot-SNLOCDPF.js.map +0 -1
  710. package/dist/icon-CYUIAFTE.js +0 -138
  711. package/dist/ideas-VTBVERCN.js +0 -45
  712. package/dist/images-36DGQZMH.js +0 -92
  713. package/dist/improve-PHFWWTOL.js +0 -86
  714. package/dist/ingest-MLIOEHL3.js +0 -131
  715. package/dist/ingest-OJV3CYYK.js +0 -28
  716. package/dist/insights-A5BKVXFQ.js +0 -132
  717. package/dist/insights-U6QAA77O.js +0 -658
  718. package/dist/inspect-6P2WNFAC.js +0 -192
  719. package/dist/inspiration-WGUU7W5Z.js +0 -53
  720. package/dist/instant-experiences-U6U3FYIH.js +0 -264
  721. package/dist/intent-PU3XUDLL.js +0 -95
  722. package/dist/job-RCEPBGZC.js +0 -202
  723. package/dist/job-create-MDVJ3E7K.js +0 -109
  724. package/dist/job-status-53FJIFYR.js +0 -74
  725. package/dist/keep-ZIHW5OEQ.js +0 -78
  726. package/dist/keyword-gap-B6T7ZFTZ.js +0 -130
  727. package/dist/keyword-metrics-IDMR3ES2.js +0 -200
  728. package/dist/keywords-for-site-V3SGYZDW.js +0 -131
  729. package/dist/knowledge-PN3FAZJ2.js +0 -195
  730. package/dist/landing-7PZPYD3M.js +0 -28
  731. package/dist/landings-FBRB3FF5.js +0 -151
  732. package/dist/languages-ETKG5WM3.js +0 -40
  733. package/dist/languages-Q5RMPGI4.js +0 -55
  734. package/dist/launches-EQ4VS2OR.js +0 -19
  735. package/dist/layerize-SX6LQK35.js +0 -190
  736. package/dist/lead-routes-RLYGO47M.js +0 -733
  737. package/dist/leads-IG3IIHXG.js +0 -541
  738. package/dist/leads-TWABHSJH.js +0 -115
  739. package/dist/learn-MXJSGDVI.js +0 -207
  740. package/dist/library-F4GB5X6G.js +0 -212
  741. package/dist/lighthouse-D3BJGHLO.js +0 -75
  742. package/dist/line-item-writes-2R7VSOWO.js +0 -211
  743. package/dist/line-items-MY6JP2W6.js +0 -107
  744. package/dist/link-LR5LSFTA.js +0 -67
  745. package/dist/linkedin-UJEBBO7G.js +0 -1344
  746. package/dist/linkedin-person-5LJEMW54.js +0 -139
  747. package/dist/list-2NWMHKTR.js +0 -93
  748. package/dist/list-5H6UAX6T.js +0 -57
  749. package/dist/list-5O5NB56G.js +0 -306
  750. package/dist/list-6AAKH6UV.js +0 -67
  751. package/dist/list-ACJBOHPS.js +0 -50
  752. package/dist/list-COWCCJ4F.js +0 -65
  753. package/dist/list-EEQJSTLN.js +0 -51
  754. package/dist/list-OTZB7DOX.js +0 -76
  755. package/dist/list-UYQOLFPN.js +0 -154
  756. package/dist/locations-VPZYTFVK.js +0 -40
  757. package/dist/locations-ZO7F75KT.js +0 -69
  758. package/dist/log-LPY5KYGP.js +0 -95
  759. package/dist/logo-SBIDRBA2.js +0 -19
  760. package/dist/lookup-BGNLEZMU.js +0 -23
  761. package/dist/make-UK2OYKCZ.js +0 -1367
  762. package/dist/map-XEJOI63E.js +0 -436
  763. package/dist/mcp-Y43SKNHV.js +0 -729
  764. package/dist/media-422INJCD.js +0 -89
  765. package/dist/media-AT3VV3PU.js +0 -18
  766. package/dist/media-sources-POL5DMD4.js +0 -35
  767. package/dist/members-5EJVXTE7.js +0 -47
  768. package/dist/meme-VR3IHBRW.js +0 -108
  769. package/dist/meta-XUHI3E3L.js +0 -122
  770. package/dist/metrics-J3WD2CUD.js +0 -152
  771. package/dist/normalize-IOW2V6E7.js +0 -144
  772. package/dist/options-YD6XFRZV.js +0 -125
  773. package/dist/organization-KORFOK7Q.js +0 -949
  774. package/dist/output-2MGOSPDE.js +0 -24
  775. package/dist/page-WKWRKLTC.js +0 -105
  776. package/dist/page-photos-ABK4CJME.js +0 -118
  777. package/dist/pages-LT3KCVC3.js +0 -67
  778. package/dist/performance-BXSNPNC3.js +0 -27
  779. package/dist/performance-Z353JXHB.js +0 -5565
  780. package/dist/pinterest-42NLOZW4.js +0 -105
  781. package/dist/pixels-3BHTXTDV.js +0 -62
  782. package/dist/pixels-IGJFC2XC.js +0 -109
  783. package/dist/plan-ATH2VCVA.js +0 -208
  784. package/dist/posts-K3QTBX2B.js +0 -36
  785. package/dist/preview-3UGPTK44.js +0 -101
  786. package/dist/preview-OV2EZ6YF.js +0 -245
  787. package/dist/profile-OWDBNPNI.js +0 -159
  788. package/dist/promoted-tweet-writes-3D6GG6K4.js +0 -183
  789. package/dist/promoted-tweets-BGQJDEQ2.js +0 -119
  790. package/dist/properties-VSOMFI5V.js +0 -101
  791. package/dist/publish-DBUBFV5R.js +0 -350
  792. package/dist/query-5OS6M4ON.js +0 -231
  793. package/dist/query-NTWXOWPZ.js +0 -236
  794. package/dist/query-ZYG5RCCW.js +0 -62
  795. package/dist/questionnaire-HUNGUZNQ.js +0 -94
  796. package/dist/read-DXZJ7UOJ.js +0 -141
  797. package/dist/reddit-GPSRX4TI.js +0 -29
  798. package/dist/refresh-3X45Q6ZM.js +0 -97
  799. package/dist/refresh-BKYZXXRF.js +0 -42
  800. package/dist/release-PE7KBFGK.js +0 -63
  801. package/dist/relevant-pages-7U6I2WPM.js +0 -99
  802. package/dist/remove-2A3XDOKA.js +0 -53
  803. package/dist/remove-MX2FV44C.js +0 -49
  804. package/dist/reopen-LHMLXG6G.js +0 -66
  805. package/dist/rerun-S4VWOIKE.js +0 -97
  806. package/dist/research-55XA4Z2O.js +0 -265
  807. package/dist/research-JN3JGEEL.js +0 -75
  808. package/dist/reset-C5SDRQTX.js +0 -57
  809. package/dist/reset-IY7GNRLF.js +0 -57
  810. package/dist/resolve-PCN7BR7U.js +0 -124
  811. package/dist/retry-2KYMH2IV.js +0 -63
  812. package/dist/retry-KUWJ4GGA.js +0 -65
  813. package/dist/retry-failed-T6PK5SKL.js +0 -45
  814. package/dist/revenue-CRZRJJ7H.js +0 -91
  815. package/dist/rule-writes-HUBHHYEO.js +0 -530
  816. package/dist/rules-47LFGCPW.js +0 -217
  817. package/dist/rules-EKOXAK2O.js +0 -99
  818. package/dist/rules-add-IC3SXNYW.js +0 -465
  819. package/dist/run-WUD5U5GY.js +0 -72
  820. package/dist/run-Y4SEFETX.js +0 -69
  821. package/dist/scaffold-ad-OJ4WOJM6.js +0 -1513
  822. package/dist/scaffold-static-ad-EXUKKYSD.js +0 -1012
  823. package/dist/scaffold-video-7PDZZSKD.js +0 -885
  824. package/dist/schedule-ANIYXLG6.js +0 -67
  825. package/dist/schedule-VCL2OPIL.js +0 -64
  826. package/dist/scheduled-agents-YAHYCFDA.js +0 -55
  827. package/dist/schema-L6DGAUB5.js +0 -135
  828. package/dist/scrape-O4X6VGV2.js +0 -2209
  829. package/dist/screenshot-RR6RA6CN.js +0 -103
  830. package/dist/search-6XKFFDMJ.js +0 -228
  831. package/dist/search-E75B5APM.js +0 -92
  832. package/dist/search-EKTUTXVN.js +0 -51
  833. package/dist/search-OUJUEORX.js +0 -177
  834. package/dist/search-OW3E2Z7Z.js +0 -91
  835. package/dist/search-YARSBZ6D.js +0 -26
  836. package/dist/search-copy-2KO3VR6R.js +0 -168
  837. package/dist/seeds-E64JKXWS.js +0 -101
  838. package/dist/select-R3NT7OI4.js +0 -110
  839. package/dist/sends-DEVRKO4M.js +0 -349
  840. package/dist/sequences-YIQSLKV5.js +0 -146
  841. package/dist/set-prompt-F3SYRT22.js +0 -199
  842. package/dist/setup-links-AHWFGUAO.js +0 -144
  843. package/dist/shared-V5ZS25EO.js +0 -32
  844. package/dist/shopify-BPQCUFFX.js +0 -4009
  845. package/dist/site-KYB2EL72.js +0 -180
  846. package/dist/sitemaps-ZSISKT6L.js +0 -77
  847. package/dist/sites-XMZ3HPHT.js +0 -97
  848. package/dist/skills-6MJC6CSZ.js +0 -47
  849. package/dist/sources-JYOOLCOU.js +0 -30
  850. package/dist/sources-X4URMRLY.js +0 -457
  851. package/dist/stale-KFVY7LSB.js +0 -90
  852. package/dist/stats-FSAXWTSE.js +0 -34
  853. package/dist/status-YVRZBK56.js +0 -65
  854. package/dist/sticker-HMHR7QM7.js +0 -103
  855. package/dist/stock-IAQBUPGQ.js +0 -212
  856. package/dist/studies-QLSKON6M.js +0 -250
  857. package/dist/studio-ZLBBYHNY.js +0 -49
  858. package/dist/study-writes-GBUUKX4O.js +0 -471
  859. package/dist/suggest-DSMKK4FP.js +0 -66
  860. package/dist/sync-KJEXXD3P.js +0 -57
  861. package/dist/sync-WKV3N3LD.js +0 -279
  862. package/dist/sync-XFK4U6TA.js +0 -55
  863. package/dist/sync-definition-BQUVWLCC.js +0 -70
  864. package/dist/tag-L2H5TSFJ.js +0 -57
  865. package/dist/tag-manager-5WZPX2FJ.js +0 -43
  866. package/dist/tags-7CEVWFEZ.js +0 -23
  867. package/dist/tags-BU4KLB37.js +0 -26
  868. package/dist/tags-HKR2GWXV.js +0 -227
  869. package/dist/tags-SKGPECNG.js +0 -23
  870. package/dist/tags-ZLPLHP2G.js +0 -23
  871. package/dist/targeting-DAUTJDUB.js +0 -762
  872. package/dist/targeting-constants-ZS422W5A.js +0 -118
  873. package/dist/targeting-criteria-4C4M3XLJ.js +0 -113
  874. package/dist/targets-C5K2OH3B.js +0 -106
  875. package/dist/terms-NX5CAJXT.js +0 -102
  876. package/dist/testimonials-OJV7EFGS.js +0 -32
  877. package/dist/themes-C4PPU427.js +0 -95
  878. package/dist/top-companies-IZQOKMBU.js +0 -111
  879. package/dist/transcript-K6W7VRA5.js +0 -165
  880. package/dist/translate-M6W6KZZS.js +0 -603
  881. package/dist/triggers-CQFQSODZ.js +0 -144
  882. package/dist/tweets-33OCH74J.js +0 -123
  883. package/dist/unfollow-G26NHR5X.js +0 -46
  884. package/dist/unlink-ITGOP2YH.js +0 -70
  885. package/dist/unstage-EAUF74PI.js +0 -88
  886. package/dist/unstage-OAPP6Z5V.js +0 -96
  887. package/dist/update-GX26VDM4.js +0 -66
  888. package/dist/update-HOFM27UT.js +0 -192
  889. package/dist/update-KXTP3VPI.js +0 -81
  890. package/dist/update-N5NA3JTW.js +0 -101
  891. package/dist/update-PCVDM7HO.js +0 -155
  892. package/dist/upload-3ZGL4WHA.js +0 -155
  893. package/dist/upload-SPCZNAUN.js +0 -137
  894. package/dist/upscale-X3B5CHG3.js +0 -109
  895. package/dist/url-options-C3ZOWN2L.js +0 -131
  896. package/dist/url-params-H4LQAYXG.js +0 -101
  897. package/dist/use-HYK67YKZ.js +0 -111
  898. package/dist/validate-XHQ4MIW5.js +0 -125
  899. package/dist/variant-MEHXEXFK.js +0 -338
  900. package/dist/videos-GY6YCGFH.js +0 -41
  901. package/dist/view-HTCYEBXN.js +0 -133
  902. package/dist/viewer-check-UCNIAY7X.js +0 -83
  903. package/dist/web-E7XDCTVJ.js +0 -173
  904. package/dist/winners-CGLS7SZ3.js +0 -113
  905. package/dist/winning-ads-L7FHCD75.js +0 -86
  906. package/dist/write-commands-F5XPPLOO.js +0 -1169
  907. package/dist/write-commands-HQQOJGP4.js +0 -721
  908. package/dist/write-commands-JESAYUEQ.js +0 -1524
  909. package/dist/write-commands-QNXR5ENS.js +0 -206
  910. package/dist/x-ROAUMBHA.js +0 -47
  911. /package/dist/{account-DUGYQJEM.js.map → account-B77TBYMN.js.map} +0 -0
  912. /package/dist/{account-NSRT5KE6.js.map → account-OCFXNHG7.js.map} +0 -0
  913. /package/dist/{account-OXD426YD.js.map → account-U6DFMD2V.js.map} +0 -0
  914. /package/dist/{account-assets-QMKT5AT7.js.map → account-assets-W7K2PUYB.js.map} +0 -0
  915. /package/dist/{account-level-BELF6JHB.js.map → account-level-Z2JEIJ3X.js.map} +0 -0
  916. /package/dist/{account-reads-GQWTMLTY.js.map → account-reads-X35O4MCA.js.map} +0 -0
  917. /package/dist/{account-users-BXJQ4XZV.js.map → account-users-UKKABT5U.js.map} +0 -0
  918. /package/dist/{account-writes-VRRLT356.js.map → account-writes-QSJ74QFR.js.map} +0 -0
  919. /package/dist/{accounts-45MUDNOM.js.map → accounts-55PDBEDN.js.map} +0 -0
  920. /package/dist/{accounts-KQ7NCM4L.js.map → accounts-AK4QIG24.js.map} +0 -0
  921. /package/dist/{accounts-ZFQYZT3J.js.map → accounts-HGCR3WFZ.js.map} +0 -0
  922. /package/dist/{accounts-DXQ3DHMB.js.map → accounts-QYNZXW2E.js.map} +0 -0
  923. /package/dist/{accounts-KXQY6WKR.js.map → accounts-XL2TMLGE.js.map} +0 -0
  924. /package/dist/{actions-LI43PTFN.js.map → actions-CVTRCHPG.js.map} +0 -0
  925. /package/dist/{active-entities-3266UJYN.js.map → active-entities-HR7NJJLU.js.map} +0 -0
  926. /package/dist/{activecampaign-5A6YHDJW.js.map → activecampaign-UNNM6J7M.js.map} +0 -0
  927. /package/dist/{activities-ORMACIG2.js.map → activities-DEWHKBID.js.map} +0 -0
  928. /package/dist/{ad-group-writes-Y6CCMPCM.js.map → ad-group-writes-QBHOPTT5.js.map} +0 -0
  929. /package/dist/{ad-groups-TW2UKDVU.js.map → ad-groups-JZDUFT6J.js.map} +0 -0
  930. /package/dist/{ad-writes-J3UVUH7D.js.map → ad-writes-QYJO4IB3.js.map} +0 -0
  931. /package/dist/{add-W4HEMTFL.js.map → add-3GOSW7LW.js.map} +0 -0
  932. /package/dist/{add-ZSKEB3CI.js.map → add-DPCBGUA5.js.map} +0 -0
  933. /package/dist/{add-TJHGYZYH.js.map → add-IMKVYDQV.js.map} +0 -0
  934. /package/dist/{add-NJUG3IQ2.js.map → add-PZEVRQ7Z.js.map} +0 -0
  935. /package/dist/{add-XYSUKZSU.js.map → add-QXI627AS.js.map} +0 -0
  936. /package/dist/{add-CKJXQUVI.js.map → add-SPQ4MOCQ.js.map} +0 -0
  937. /package/dist/{add-accounts-IRHBFNNC.js.map → add-accounts-D4V5K7SO.js.map} +0 -0
  938. /package/dist/{ads-XXSBCX4B.js.map → ads-LDCZ65B5.js.map} +0 -0
  939. /package/dist/{ads-H5AEYIY3.js.map → ads-QKVNPHBH.js.map} +0 -0
  940. /package/dist/{ads-DI3J3KCQ.js.map → ads-RTRWWEP5.js.map} +0 -0
  941. /package/dist/{ads-5CJQRTUN.js.map → ads-UMSWEI5X.js.map} +0 -0
  942. /package/dist/{adsets-BUIT7HF2.js.map → adsets-FEVYHKAQ.js.map} +0 -0
  943. /package/dist/{advertisers-5XCIZ7WS.js.map → advertisers-2GKICB23.js.map} +0 -0
  944. /package/dist/{advertisers-KPVUVXZZ.js.map → advertisers-3D36UJTQ.js.map} +0 -0
  945. /package/dist/{analytics-XT4ANMLP.js.map → analytics-YHOXWFBI.js.map} +0 -0
  946. /package/dist/{analytics-4WBRNSUC.js.map → analytics-ZPPZJETP.js.map} +0 -0
  947. /package/dist/{animate-Q43SOWB4.js.map → animate-WS63CZ3Y.js.map} +0 -0
  948. /package/dist/{approved-RP5ADN7E.js.map → approved-3XFZNRJR.js.map} +0 -0
  949. /package/dist/{asset-writes-JVFE457M.js.map → asset-writes-7RFZZYU7.js.map} +0 -0
  950. /package/dist/{assign-SQK4UF3I.js.map → assign-5P7OJBAH.js.map} +0 -0
  951. /package/dist/{audience-size-5Y5Q6UVA.js.map → audience-size-PHFJ22TX.js.map} +0 -0
  952. /package/dist/{audience-writes-DWSCHYQF.js.map → audience-writes-RUGU6KEC.js.map} +0 -0
  953. /package/dist/{audiences-PYBJU2GV.js.map → audiences-6GVUZUCN.js.map} +0 -0
  954. /package/dist/{audiences-5TOTVZMK.js.map → audiences-7OS2ZJYO.js.map} +0 -0
  955. /package/dist/{audiences-4MYDTY74.js.map → audiences-RSAUXKHR.js.map} +0 -0
  956. /package/dist/{audit-GOZNIXNM.js.map → audit-3GRXRDLR.js.map} +0 -0
  957. /package/dist/{audit-SACXTAIP.js.map → audit-4L7IKIRY.js.map} +0 -0
  958. /package/dist/{autocomplete-36S76BGA.js.map → autocomplete-GQLXBG5V.js.map} +0 -0
  959. /package/dist/{avatars-SDQ5LCNG.js.map → avatars-I73KFB3F.js.map} +0 -0
  960. /package/dist/{bid-pricing-6DFGC6YC.js.map → bid-pricing-6MZ7SC72.js.map} +0 -0
  961. /package/dist/{brief-2UXKUTFC.js.map → brief-MI4RLV4N.js.map} +0 -0
  962. /package/dist/{businesses-F6PN34WK.js.map → businesses-42NZP6FP.js.map} +0 -0
  963. /package/dist/{campaign-groups-32LDB42N.js.map → campaign-groups-QZ2NW5AW.js.map} +0 -0
  964. /package/dist/{campaign-writes-62V55CNW.js.map → campaign-writes-BGS53O4B.js.map} +0 -0
  965. /package/dist/{campaign-writes-BHS3POAH.js.map → campaign-writes-GKNH2EHV.js.map} +0 -0
  966. /package/dist/{campaigns-IRMLPW6N.js.map → campaigns-7RV65SXR.js.map} +0 -0
  967. /package/dist/{campaigns-OGNE4XHM.js.map → campaigns-FGIVPEVA.js.map} +0 -0
  968. /package/dist/{campaigns-2Z6WXIVA.js.map → campaigns-TO74Z7UH.js.map} +0 -0
  969. /package/dist/{campaigns-I5GSGZDJ.js.map → campaigns-YBPXM6B3.js.map} +0 -0
  970. /package/dist/{canvas-HGU7FJ34.js.map → canvas-YTSJAEOF.js.map} +0 -0
  971. /package/dist/{capabilities-EDXVGZXC.js.map → capabilities-YFXCTUJJ.js.map} +0 -0
  972. /package/dist/{cards-HUXBNMEM.js.map → cards-CAOGPPG4.js.map} +0 -0
  973. /package/dist/{catalogs-WYRRTRCM.js.map → catalogs-5LWEXG5X.js.map} +0 -0
  974. /package/dist/{catalogs-OEUNVE4N.js.map → catalogs-7IEXGLSR.js.map} +0 -0
  975. /package/dist/{chatgpt-6KBW7F5S.js.map → chatgpt-HLIQ7OJZ.js.map} +0 -0
  976. /package/dist/{chats-HFKSZWZD.js.map → chats-D5W2UWD4.js.map} +0 -0
  977. /package/dist/{check-GRVUI3LI.js.map → check-FFMWUB72.js.map} +0 -0
  978. /package/dist/{chunk-DSDI5DY3.js.map → chunk-2DAWUWA4.js.map} +0 -0
  979. /package/dist/{chunk-37QHT7J4.js.map → chunk-2DVFPCH3.js.map} +0 -0
  980. /package/dist/{chunk-TLNYAZX5.js.map → chunk-2LBQNTTH.js.map} +0 -0
  981. /package/dist/{chunk-PBKUESJD.js.map → chunk-2VHYY4RU.js.map} +0 -0
  982. /package/dist/{chunk-ZW2CN6L6.js.map → chunk-3E74OM2E.js.map} +0 -0
  983. /package/dist/{chunk-EDWW3THE.js.map → chunk-3FLSRUID.js.map} +0 -0
  984. /package/dist/{chunk-BU7W7MKF.js.map → chunk-3LYT3NQX.js.map} +0 -0
  985. /package/dist/{chunk-LBJ2CLRT.js.map → chunk-4UNJ4ENA.js.map} +0 -0
  986. /package/dist/{chunk-KY6Q4WLC.js.map → chunk-533R4P5O.js.map} +0 -0
  987. /package/dist/{chunk-XZMO52BP.js.map → chunk-5E4Y6RVY.js.map} +0 -0
  988. /package/dist/{chunk-QY7EK6Q4.js.map → chunk-5H6N36LS.js.map} +0 -0
  989. /package/dist/{chunk-HHMBHLX6.js.map → chunk-6I7GJDBX.js.map} +0 -0
  990. /package/dist/{chunk-CQMAR4BH.js.map → chunk-6IR7IQPV.js.map} +0 -0
  991. /package/dist/{chunk-VIRPAJEF.js.map → chunk-6PO3WSFJ.js.map} +0 -0
  992. /package/dist/{chunk-J6KCVW6N.js.map → chunk-6QNXBEIN.js.map} +0 -0
  993. /package/dist/{chunk-ZSZ76MUL.js.map → chunk-BESCYH3K.js.map} +0 -0
  994. /package/dist/{chunk-SNSLYZIT.js.map → chunk-BGMIO2FR.js.map} +0 -0
  995. /package/dist/{chunk-CZTKRP6M.js.map → chunk-BVGRKVHL.js.map} +0 -0
  996. /package/dist/{chunk-GAP7SOGA.js.map → chunk-C3EX5OKN.js.map} +0 -0
  997. /package/dist/{chunk-OEH7ANJJ.js.map → chunk-CHVLFACB.js.map} +0 -0
  998. /package/dist/{chunk-QFODAMYR.js.map → chunk-CP6RFWLW.js.map} +0 -0
  999. /package/dist/{chunk-72JEATZ5.js.map → chunk-D2GDHVZP.js.map} +0 -0
  1000. /package/dist/{chunk-CXYX6G3I.js.map → chunk-D3YAFC6K.js.map} +0 -0
  1001. /package/dist/{chunk-AL4MRNYI.js.map → chunk-DFDV42NY.js.map} +0 -0
  1002. /package/dist/{chunk-3J52GJAY.js.map → chunk-EFTYCX5C.js.map} +0 -0
  1003. /package/dist/{chunk-YXUIVOUL.js.map → chunk-F62BW6DJ.js.map} +0 -0
  1004. /package/dist/{chunk-IIK4WNWV.js.map → chunk-FLQNIFG2.js.map} +0 -0
  1005. /package/dist/{chunk-VAQOSV3I.js.map → chunk-FWHEAR7F.js.map} +0 -0
  1006. /package/dist/{chunk-4ICSKDI7.js.map → chunk-FXZGRP3F.js.map} +0 -0
  1007. /package/dist/{chunk-26UW2GMK.js.map → chunk-GQ4DMO5Q.js.map} +0 -0
  1008. /package/dist/{chunk-G3ZUMNLG.js.map → chunk-GUH2A5R5.js.map} +0 -0
  1009. /package/dist/{chunk-5G6R3WYN.js.map → chunk-HJ3Q4NOM.js.map} +0 -0
  1010. /package/dist/{chunk-D7FJ5KHG.js.map → chunk-IDDG4QKO.js.map} +0 -0
  1011. /package/dist/{chunk-EJMPKO6V.js.map → chunk-ILGRC7LJ.js.map} +0 -0
  1012. /package/dist/{chunk-65CQYRMK.js.map → chunk-JTIWQLY5.js.map} +0 -0
  1013. /package/dist/{chunk-RIVHJC6L.js.map → chunk-KDVYI4LC.js.map} +0 -0
  1014. /package/dist/{chunk-724E32DM.js.map → chunk-LAP23AND.js.map} +0 -0
  1015. /package/dist/{chunk-UZEKIMLY.js.map → chunk-LFPBZL2X.js.map} +0 -0
  1016. /package/dist/{chunk-LIBSSGE4.js.map → chunk-MSGIF4EC.js.map} +0 -0
  1017. /package/dist/{chunk-EHNORFUW.js.map → chunk-MYIOR35H.js.map} +0 -0
  1018. /package/dist/{chunk-ZU6JW3ZB.js.map → chunk-NTFNLVZG.js.map} +0 -0
  1019. /package/dist/{chunk-KE5TI23P.js.map → chunk-OAJ6LVL2.js.map} +0 -0
  1020. /package/dist/{chunk-FAV6GUOZ.js.map → chunk-OASXBRXQ.js.map} +0 -0
  1021. /package/dist/{chunk-PGAYESXE.js.map → chunk-OFMFBRSL.js.map} +0 -0
  1022. /package/dist/{chunk-6MZFOMLU.js.map → chunk-ORQ3WBM6.js.map} +0 -0
  1023. /package/dist/{chunk-G4JTXVLA.js.map → chunk-OSQTSS27.js.map} +0 -0
  1024. /package/dist/{chunk-TWFZIHKK.js.map → chunk-OTRKBCUB.js.map} +0 -0
  1025. /package/dist/{chunk-LK5OKVCM.js.map → chunk-PH3FZZIT.js.map} +0 -0
  1026. /package/dist/{chunk-DYWKYP7Z.js.map → chunk-PXLBPOI3.js.map} +0 -0
  1027. /package/dist/{chunk-KDTSXLY7.js.map → chunk-QLXVHWAC.js.map} +0 -0
  1028. /package/dist/{chunk-5NJQXV4K.js.map → chunk-QPTYTM2X.js.map} +0 -0
  1029. /package/dist/{chunk-NPDZ4EO6.js.map → chunk-R2Z5L5CF.js.map} +0 -0
  1030. /package/dist/{chunk-P5HG6WDH.js.map → chunk-R4RWQ6YX.js.map} +0 -0
  1031. /package/dist/{chunk-QYH2UZAK.js.map → chunk-RBCO3C3Q.js.map} +0 -0
  1032. /package/dist/{chunk-WQIHLJAO.js.map → chunk-RHSKKWPO.js.map} +0 -0
  1033. /package/dist/{chunk-BS4PRGEJ.js.map → chunk-RJ2ETGAQ.js.map} +0 -0
  1034. /package/dist/{chunk-PZSOJYER.js.map → chunk-S37ZZSNM.js.map} +0 -0
  1035. /package/dist/{chunk-KV4E4KGE.js.map → chunk-SJIEU3VG.js.map} +0 -0
  1036. /package/dist/{chunk-2LGDWOD7.js.map → chunk-SKI7QMDT.js.map} +0 -0
  1037. /package/dist/{chunk-VKYDHIBT.js.map → chunk-SLLY4ZTT.js.map} +0 -0
  1038. /package/dist/{chunk-AQ6LJ7EI.js.map → chunk-UKDILXEA.js.map} +0 -0
  1039. /package/dist/{chunk-7SNNQCDD.js.map → chunk-ULIQNJ5J.js.map} +0 -0
  1040. /package/dist/{chunk-UB34H4VD.js.map → chunk-UR7ENZ3F.js.map} +0 -0
  1041. /package/dist/{chunk-EENYLJUN.js.map → chunk-UYZ4FUC7.js.map} +0 -0
  1042. /package/dist/{chunk-6KEVNO5O.js.map → chunk-WBWEKZQ2.js.map} +0 -0
  1043. /package/dist/{chunk-WLD443MX.js.map → chunk-WYXYAKUP.js.map} +0 -0
  1044. /package/dist/{chunk-QBCZLD3A.js.map → chunk-X7XFAFU4.js.map} +0 -0
  1045. /package/dist/{chunk-YS7T735Q.js.map → chunk-Y43FKOED.js.map} +0 -0
  1046. /package/dist/{chunk-OVC2PIOP.js.map → chunk-Y6XWO4V4.js.map} +0 -0
  1047. /package/dist/{chunk-5HPKYRTE.js.map → chunk-YB6G3B3L.js.map} +0 -0
  1048. /package/dist/{chunk-H6GTG665.js.map → chunk-YD6OZSSY.js.map} +0 -0
  1049. /package/dist/{chunk-SKVQRTDO.js.map → chunk-YFBHZ57K.js.map} +0 -0
  1050. /package/dist/{chunk-XGN3BGSL.js.map → chunk-ZD5MNBLA.js.map} +0 -0
  1051. /package/dist/{chunk-CZESYOCC.js.map → chunk-ZZ5B2ZRM.js.map} +0 -0
  1052. /package/dist/{cite-TRNZYG4W.js.map → cite-AJ5ZQWD2.js.map} +0 -0
  1053. /package/dist/{claim-NUUED375.js.map → claim-G4TW75Z2.js.map} +0 -0
  1054. /package/dist/{client-45COYUUH.js.map → client-F6KOC77S.js.map} +0 -0
  1055. /package/dist/{code-K4YTLOPA.js.map → code-NV4ARLFS.js.map} +0 -0
  1056. /package/dist/{companies-3EKQ6PBV.js.map → companies-TYDUEKET.js.map} +0 -0
  1057. /package/dist/{company-35ZI77NI.js.map → company-V5WKGDGU.js.map} +0 -0
  1058. /package/dist/{complete-V2HNULPO.js.map → complete-QEKKP7YL.js.map} +0 -0
  1059. /package/dist/{config-TCAHWE6T.js.map → config-NDL2YP37.js.map} +0 -0
  1060. /package/dist/{connect-77K3A6WK.js.map → connect-5Q2HQ7LT.js.map} +0 -0
  1061. /package/dist/{content-MKJP7T7L.js.map → content-EQZKKIST.js.map} +0 -0
  1062. /package/dist/{conversation-MWBPIT4W.js.map → conversation-JIVOIZ5E.js.map} +0 -0
  1063. /package/dist/{conversion-report-OFV4EKTA.js.map → conversion-report-76S5JOVT.js.map} +0 -0
  1064. /package/dist/{conversion-upload-command-U36QYHUT.js.map → conversion-upload-command-WNHVNVMW.js.map} +0 -0
  1065. /package/dist/{conversion-writes-B3H6VLA2.js.map → conversion-writes-6HX665JT.js.map} +0 -0
  1066. /package/dist/{conversions-UGRVDRWU.js.map → conversions-A524MH5C.js.map} +0 -0
  1067. /package/dist/{conversions-RXNIACU5.js.map → conversions-PSXVU4JL.js.map} +0 -0
  1068. /package/dist/{copy-writes-2B36QJUY.js.map → copy-writes-X2LM5I4Z.js.map} +0 -0
  1069. /package/dist/{countries-6ST54UGJ.js.map → countries-GZSBGSVT.js.map} +0 -0
  1070. /package/dist/{create-RJHGT2S4.js.map → create-7QGB33HI.js.map} +0 -0
  1071. /package/dist/{create-AE52ZZMG.js.map → create-AV7UY4N5.js.map} +0 -0
  1072. /package/dist/{create-L53KW6GN.js.map → create-CHBC745Y.js.map} +0 -0
  1073. /package/dist/{create-K2EUYE54.js.map → create-SBQU7B3S.js.map} +0 -0
  1074. /package/dist/{creatives-2JP24JNL.js.map → creatives-LNUSBQXQ.js.map} +0 -0
  1075. /package/dist/{creatives-22BYP5VN.js.map → creatives-SFPNXJ6Z.js.map} +0 -0
  1076. /package/dist/{creatives-UPZU7BLY.js.map → creatives-XQILGK6P.js.map} +0 -0
  1077. /package/dist/{credentials-WRC7ERSS.js.map → credentials-IWF37PAQ.js.map} +0 -0
  1078. /package/dist/{critique-VTNN6A5I.js.map → critique-ETRQP3QZ.js.map} +0 -0
  1079. /package/dist/{crm-2MZLMSEV.js.map → crm-IDN55BIC.js.map} +0 -0
  1080. /package/dist/{currency-XFY2EX72.js.map → currency-VQMZZXSS.js.map} +0 -0
  1081. /package/dist/{custom-conversions-V7QPZIB4.js.map → custom-conversions-UHRBVUD2.js.map} +0 -0
  1082. /package/dist/{customers-MHQ72YBY.js.map → customers-XANEOEW6.js.map} +0 -0
  1083. /package/dist/{decide-JZXG6LZR.js.map → decide-AM6B7WIL.js.map} +0 -0
  1084. /package/dist/{delete-ULI3MVAD.js.map → delete-2WL6K24W.js.map} +0 -0
  1085. /package/dist/{delete-Q7J734W2.js.map → delete-46B7DSQV.js.map} +0 -0
  1086. /package/dist/{delete-QFASUSVU.js.map → delete-6K7EZXNR.js.map} +0 -0
  1087. /package/dist/{delete-6WKVGKRF.js.map → delete-SCAVFYZL.js.map} +0 -0
  1088. /package/dist/{delete-POHL3TKX.js.map → delete-WAPC4XC2.js.map} +0 -0
  1089. /package/dist/{delete-5NEAIDA4.js.map → delete-YYIM564B.js.map} +0 -0
  1090. /package/dist/{demographics-5SXTDRFU.js.map → demographics-JJKL7MZC.js.map} +0 -0
  1091. /package/dist/{describe-MJ5SOVWY.js.map → describe-5OC7XX2U.js.map} +0 -0
  1092. /package/dist/{describe-MA54W67X.js.map → describe-EAPKNUUU.js.map} +0 -0
  1093. /package/dist/{discard-P4PGGYYO.js.map → discard-FQDZ5GKN.js.map} +0 -0
  1094. /package/dist/{discover-J5344ATV.js.map → discover-4F4USNHE.js.map} +0 -0
  1095. /package/dist/{discover-PPMLFJMU.js.map → discover-P7PBB3IV.js.map} +0 -0
  1096. /package/dist/{domain-RINRCQ5G.js.map → domain-AFWPUOI7.js.map} +0 -0
  1097. /package/dist/{download-HPYGPNHN.js.map → download-MXKBJPPF.js.map} +0 -0
  1098. /package/dist/{download-H3ZDQTFG.js.map → download-YB2DVMRS.js.map} +0 -0
  1099. /package/dist/{draft-2JVWCYRF.js.map → draft-44KTLX4P.js.map} +0 -0
  1100. /package/dist/{draft-7VGBJIJU.js.map → draft-CKFSZDVI.js.map} +0 -0
  1101. /package/dist/{draft-M7XINDQU.js.map → draft-EKJQGNFT.js.map} +0 -0
  1102. /package/dist/{draft-FWCF4Y6P.js.map → draft-OJHTFELQ.js.map} +0 -0
  1103. /package/dist/{draft-DR5BJK7V.js.map → draft-RSKZSUOS.js.map} +0 -0
  1104. /package/dist/{draft-OIGJUFOH.js.map → draft-VIZTQ6W4.js.map} +0 -0
  1105. /package/dist/{draft-4WMYCA7I.js.map → draft-WOE7KQ7T.js.map} +0 -0
  1106. /package/dist/{draft-4WPWILSX.js.map → draft-Z5IVHUHR.js.map} +0 -0
  1107. /package/dist/{experiment-O6726OBP.js.map → experiment-EFLKDQ3C.js.map} +0 -0
  1108. /package/dist/{experiments-NULZPBF2.js.map → experiments-YUBVWNB5.js.map} +0 -0
  1109. /package/dist/{export-6WWVO4O6.js.map → export-RPNRPTDK.js.map} +0 -0
  1110. /package/dist/{extract-Y3OZG5DZ.js.map → extract-VHM2UNIE.js.map} +0 -0
  1111. /package/dist/{facets-HIADYZQQ.js.map → facets-5GLKSHTA.js.map} +0 -0
  1112. /package/dist/{favorites-54Z7PTYR.js.map → favorites-536I3GZD.js.map} +0 -0
  1113. /package/dist/{feed-TAGQWMRK.js.map → feed-W3ECHUEX.js.map} +0 -0
  1114. /package/dist/{feedback-WEZEKTCH.js.map → feedback-36TL4GPS.js.map} +0 -0
  1115. /package/dist/{feedback-Y4AXR354.js.map → feedback-VCYIVDO2.js.map} +0 -0
  1116. /package/dist/{feedback-record-YZNGRSNR.js.map → feedback-record-QGAP4HA4.js.map} +0 -0
  1117. /package/dist/{fetch-T6WPGAWP.js.map → fetch-X4RIDS7N.js.map} +0 -0
  1118. /package/dist/{find-TTJH5NVJ.js.map → find-57WYB4V3.js.map} +0 -0
  1119. /package/dist/{fit-MLDFA4ZK.js.map → fit-V4CRDVQV.js.map} +0 -0
  1120. /package/dist/{flows-XWU2XNYP.js.map → flows-YPBWZR4P.js.map} +0 -0
  1121. /package/dist/{follow-SX6BV6VZ.js.map → follow-5VX5JWAQ.js.map} +0 -0
  1122. /package/dist/{follow-competitors-UBJJHX36.js.map → follow-competitors-D7I33T5C.js.map} +0 -0
  1123. /package/dist/{following-L7WUEMZ2.js.map → following-6DI4IZ7P.js.map} +0 -0
  1124. /package/dist/{forecast-HFCRTFIF.js.map → forecast-E2HJSD6E.js.map} +0 -0
  1125. /package/dist/{forecast-E5QXQFKQ.js.map → forecast-LMYMZHZE.js.map} +0 -0
  1126. /package/dist/{funding-7M4TJ3MW.js.map → funding-BSAHWU35.js.map} +0 -0
  1127. /package/dist/{funnel-NMC3JWTF.js.map → funnel-MF2KFXEX.js.map} +0 -0
  1128. /package/dist/{ga4-XFJO7VK2.js.map → ga4-FCMTGV4S.js.map} +0 -0
  1129. /package/dist/{generate-22HT24SA.js.map → generate-VGGXTZBP.js.map} +0 -0
  1130. /package/dist/{get-JIB6PMGI.js.map → get-42V7UTNF.js.map} +0 -0
  1131. /package/dist/{get-X44ZCIFN.js.map → get-5SCYUC4G.js.map} +0 -0
  1132. /package/dist/{get-AKTMYS57.js.map → get-7NI64G6K.js.map} +0 -0
  1133. /package/dist/{get-UFCNLDE2.js.map → get-BQBLPGFE.js.map} +0 -0
  1134. /package/dist/{get-QS2A6YVM.js.map → get-JHOH74X5.js.map} +0 -0
  1135. /package/dist/{get-JQE7XWKL.js.map → get-MVZWQ4BE.js.map} +0 -0
  1136. /package/dist/{get-MK6M4DKF.js.map → get-TBMTBGHJ.js.map} +0 -0
  1137. /package/dist/{get-Q4M6G7YN.js.map → get-V4NJXKUR.js.map} +0 -0
  1138. /package/dist/{gif-TBKH7VSP.js.map → gif-M2GMVWM4.js.map} +0 -0
  1139. /package/dist/{google-YDGZ2Q3M.js.map → google-YNVTLX5E.js.map} +0 -0
  1140. /package/dist/{google-ads-AFJV5ZJO.js.map → google-ads-UER2CSQN.js.map} +0 -0
  1141. /package/dist/{group-RAXOR36M.js.map → group-PLTVV7UZ.js.map} +0 -0
  1142. /package/dist/{group-45M7V46T.js.map → group-THZPJALS.js.map} +0 -0
  1143. /package/dist/{gsc-ILEIJYWP.js.map → gsc-A3KB36WH.js.map} +0 -0
  1144. /package/dist/{history-T6Y5IR4V.js.map → history-3GRRZSWW.js.map} +0 -0
  1145. /package/dist/{history-6RCRBB4Q.js.map → history-LBIA45H3.js.map} +0 -0
  1146. /package/dist/{history-BEEREY26.js.map → history-LXRFZNW7.js.map} +0 -0
  1147. /package/dist/{icon-CYUIAFTE.js.map → icon-7WND6UPY.js.map} +0 -0
  1148. /package/dist/{ideas-VTBVERCN.js.map → ideas-LDQMFMJM.js.map} +0 -0
  1149. /package/dist/{images-36DGQZMH.js.map → images-2FDXHKMR.js.map} +0 -0
  1150. /package/dist/{improve-PHFWWTOL.js.map → improve-NWFQI63B.js.map} +0 -0
  1151. /package/dist/{ingest-MLIOEHL3.js.map → ingest-OJDK7AGH.js.map} +0 -0
  1152. /package/dist/{ingest-OJV3CYYK.js.map → ingest-PS2LOYBM.js.map} +0 -0
  1153. /package/dist/{insights-A5BKVXFQ.js.map → insights-H6M6VI43.js.map} +0 -0
  1154. /package/dist/{insights-U6QAA77O.js.map → insights-LZJZGNJZ.js.map} +0 -0
  1155. /package/dist/{inspect-6P2WNFAC.js.map → inspect-ALSHVHUP.js.map} +0 -0
  1156. /package/dist/{inspiration-WGUU7W5Z.js.map → inspiration-TQHQNILK.js.map} +0 -0
  1157. /package/dist/{instant-experiences-U6U3FYIH.js.map → instant-experiences-J4GSS3Y6.js.map} +0 -0
  1158. /package/dist/{intent-PU3XUDLL.js.map → intent-ZKLT4DAW.js.map} +0 -0
  1159. /package/dist/{job-RCEPBGZC.js.map → job-UFGGBDG7.js.map} +0 -0
  1160. /package/dist/{job-create-MDVJ3E7K.js.map → job-create-XM4NH322.js.map} +0 -0
  1161. /package/dist/{job-status-53FJIFYR.js.map → job-status-47L5Z57J.js.map} +0 -0
  1162. /package/dist/{keep-ZIHW5OEQ.js.map → keep-I6FLGJH4.js.map} +0 -0
  1163. /package/dist/{keyword-gap-B6T7ZFTZ.js.map → keyword-gap-QC3ITLNG.js.map} +0 -0
  1164. /package/dist/{keyword-metrics-IDMR3ES2.js.map → keyword-metrics-PERWGH54.js.map} +0 -0
  1165. /package/dist/{keywords-for-site-V3SGYZDW.js.map → keywords-for-site-CCCB6KHE.js.map} +0 -0
  1166. /package/dist/{knowledge-PN3FAZJ2.js.map → knowledge-H5PJ6LZB.js.map} +0 -0
  1167. /package/dist/{landing-7PZPYD3M.js.map → landing-VE3MHOA3.js.map} +0 -0
  1168. /package/dist/{landings-FBRB3FF5.js.map → landings-AELJXEYN.js.map} +0 -0
  1169. /package/dist/{languages-Q5RMPGI4.js.map → languages-GCRI2PI3.js.map} +0 -0
  1170. /package/dist/{languages-ETKG5WM3.js.map → languages-QMLC4QWZ.js.map} +0 -0
  1171. /package/dist/{launches-EQ4VS2OR.js.map → launches-CKPZFVMQ.js.map} +0 -0
  1172. /package/dist/{layerize-SX6LQK35.js.map → layerize-PHY25VNC.js.map} +0 -0
  1173. /package/dist/{lead-routes-RLYGO47M.js.map → lead-routes-ZMKRNL57.js.map} +0 -0
  1174. /package/dist/{leads-IG3IIHXG.js.map → leads-SEEJ3KRR.js.map} +0 -0
  1175. /package/dist/{leads-TWABHSJH.js.map → leads-TPMLYLBH.js.map} +0 -0
  1176. /package/dist/{learn-MXJSGDVI.js.map → learn-KK3AJS3N.js.map} +0 -0
  1177. /package/dist/{library-F4GB5X6G.js.map → library-5YJCCEFL.js.map} +0 -0
  1178. /package/dist/{lighthouse-D3BJGHLO.js.map → lighthouse-W3KAVW2G.js.map} +0 -0
  1179. /package/dist/{line-item-writes-2R7VSOWO.js.map → line-item-writes-ONKDXKOM.js.map} +0 -0
  1180. /package/dist/{line-items-MY6JP2W6.js.map → line-items-ILJYVUHX.js.map} +0 -0
  1181. /package/dist/{link-LR5LSFTA.js.map → link-YDHTMDC5.js.map} +0 -0
  1182. /package/dist/{linkedin-UJEBBO7G.js.map → linkedin-N3NGCE5N.js.map} +0 -0
  1183. /package/dist/{linkedin-person-5LJEMW54.js.map → linkedin-person-6F3YJHXM.js.map} +0 -0
  1184. /package/dist/{list-2NWMHKTR.js.map → list-2EJ3XZ6I.js.map} +0 -0
  1185. /package/dist/{list-COWCCJ4F.js.map → list-BQWHFEWY.js.map} +0 -0
  1186. /package/dist/{list-ACJBOHPS.js.map → list-E7JG27WS.js.map} +0 -0
  1187. /package/dist/{list-5O5NB56G.js.map → list-EKL5HIR7.js.map} +0 -0
  1188. /package/dist/{list-OTZB7DOX.js.map → list-ERCPPED6.js.map} +0 -0
  1189. /package/dist/{list-6AAKH6UV.js.map → list-F7UDUU7C.js.map} +0 -0
  1190. /package/dist/{list-5H6UAX6T.js.map → list-HYZL4576.js.map} +0 -0
  1191. /package/dist/{list-EEQJSTLN.js.map → list-IKQFAJP7.js.map} +0 -0
  1192. /package/dist/{list-UYQOLFPN.js.map → list-WDTPTY2T.js.map} +0 -0
  1193. /package/dist/{locations-ZO7F75KT.js.map → locations-5SLLGWZO.js.map} +0 -0
  1194. /package/dist/{locations-VPZYTFVK.js.map → locations-DNRK7DY4.js.map} +0 -0
  1195. /package/dist/{log-LPY5KYGP.js.map → log-BZBRXB5P.js.map} +0 -0
  1196. /package/dist/{logo-SBIDRBA2.js.map → logo-ODONF6N7.js.map} +0 -0
  1197. /package/dist/{lookup-BGNLEZMU.js.map → lookup-OU6CLATK.js.map} +0 -0
  1198. /package/dist/{make-UK2OYKCZ.js.map → make-W27CB5X4.js.map} +0 -0
  1199. /package/dist/{map-XEJOI63E.js.map → map-FNB7IWDY.js.map} +0 -0
  1200. /package/dist/{mcp-Y43SKNHV.js.map → mcp-QSDCAWMU.js.map} +0 -0
  1201. /package/dist/{media-422INJCD.js.map → media-DGV2AMZI.js.map} +0 -0
  1202. /package/dist/{media-AT3VV3PU.js.map → media-YKCCMLXL.js.map} +0 -0
  1203. /package/dist/{media-sources-POL5DMD4.js.map → media-sources-NMT4G45B.js.map} +0 -0
  1204. /package/dist/{members-5EJVXTE7.js.map → members-2XQ6E33F.js.map} +0 -0
  1205. /package/dist/{meme-VR3IHBRW.js.map → meme-3QYKC4BF.js.map} +0 -0
  1206. /package/dist/{meta-XUHI3E3L.js.map → meta-5KQ6CQBT.js.map} +0 -0
  1207. /package/dist/{metrics-J3WD2CUD.js.map → metrics-P4QDFCVB.js.map} +0 -0
  1208. /package/dist/{normalize-IOW2V6E7.js.map → normalize-5AU7SKYY.js.map} +0 -0
  1209. /package/dist/{options-YD6XFRZV.js.map → options-CH52EP5K.js.map} +0 -0
  1210. /package/dist/{organization-KORFOK7Q.js.map → organization-6T4Q6XYI.js.map} +0 -0
  1211. /package/dist/{output-2MGOSPDE.js.map → output-7X5WPPCA.js.map} +0 -0
  1212. /package/dist/{page-WKWRKLTC.js.map → page-GBLVAKU3.js.map} +0 -0
  1213. /package/dist/{page-photos-ABK4CJME.js.map → page-photos-VYJU4RNQ.js.map} +0 -0
  1214. /package/dist/{pages-LT3KCVC3.js.map → pages-6YMPZDEY.js.map} +0 -0
  1215. /package/dist/{performance-BXSNPNC3.js.map → performance-2SCAQSQK.js.map} +0 -0
  1216. /package/dist/{performance-Z353JXHB.js.map → performance-4DMGJCN7.js.map} +0 -0
  1217. /package/dist/{pinterest-42NLOZW4.js.map → pinterest-235S7E6H.js.map} +0 -0
  1218. /package/dist/{pixels-IGJFC2XC.js.map → pixels-DZDVNIVL.js.map} +0 -0
  1219. /package/dist/{pixels-3BHTXTDV.js.map → pixels-WTTLC4O5.js.map} +0 -0
  1220. /package/dist/{plan-ATH2VCVA.js.map → plan-JAWESWJN.js.map} +0 -0
  1221. /package/dist/{posts-K3QTBX2B.js.map → posts-TRQCRLYZ.js.map} +0 -0
  1222. /package/dist/{preview-3UGPTK44.js.map → preview-ICZR3SGB.js.map} +0 -0
  1223. /package/dist/{preview-OV2EZ6YF.js.map → preview-JZXGR4KN.js.map} +0 -0
  1224. /package/dist/{profile-OWDBNPNI.js.map → profile-MKKJT2UF.js.map} +0 -0
  1225. /package/dist/{promoted-tweet-writes-3D6GG6K4.js.map → promoted-tweet-writes-DR6V7MHW.js.map} +0 -0
  1226. /package/dist/{promoted-tweets-BGQJDEQ2.js.map → promoted-tweets-IRECARIO.js.map} +0 -0
  1227. /package/dist/{properties-VSOMFI5V.js.map → properties-Z5S3LRJ5.js.map} +0 -0
  1228. /package/dist/{publish-DBUBFV5R.js.map → publish-4HM2CJVF.js.map} +0 -0
  1229. /package/dist/{query-ZYG5RCCW.js.map → query-AQ6HNKW7.js.map} +0 -0
  1230. /package/dist/{query-NTWXOWPZ.js.map → query-KKXCMH3Q.js.map} +0 -0
  1231. /package/dist/{query-5OS6M4ON.js.map → query-QXKGVHZL.js.map} +0 -0
  1232. /package/dist/{questionnaire-HUNGUZNQ.js.map → questionnaire-U7UYICEA.js.map} +0 -0
  1233. /package/dist/{read-DXZJ7UOJ.js.map → read-ENUS7P3L.js.map} +0 -0
  1234. /package/dist/{reddit-GPSRX4TI.js.map → reddit-KOC7KLYS.js.map} +0 -0
  1235. /package/dist/{refresh-3X45Q6ZM.js.map → refresh-2KEQLXRK.js.map} +0 -0
  1236. /package/dist/{refresh-BKYZXXRF.js.map → refresh-JSCYTM4B.js.map} +0 -0
  1237. /package/dist/{release-PE7KBFGK.js.map → release-X3Q3RFQC.js.map} +0 -0
  1238. /package/dist/{relevant-pages-7U6I2WPM.js.map → relevant-pages-NZKXWMNA.js.map} +0 -0
  1239. /package/dist/{remove-MX2FV44C.js.map → remove-6FXTPEB6.js.map} +0 -0
  1240. /package/dist/{remove-2A3XDOKA.js.map → remove-RYR6EAJY.js.map} +0 -0
  1241. /package/dist/{reopen-LHMLXG6G.js.map → reopen-PIKLC5OW.js.map} +0 -0
  1242. /package/dist/{rerun-S4VWOIKE.js.map → rerun-2HBMXJ55.js.map} +0 -0
  1243. /package/dist/{research-JN3JGEEL.js.map → research-ZBZONY3D.js.map} +0 -0
  1244. /package/dist/{research-55XA4Z2O.js.map → research-ZTA4XKNA.js.map} +0 -0
  1245. /package/dist/{reset-IY7GNRLF.js.map → reset-7YTMXVNX.js.map} +0 -0
  1246. /package/dist/{reset-C5SDRQTX.js.map → reset-Q3XSD4WI.js.map} +0 -0
  1247. /package/dist/{resolve-PCN7BR7U.js.map → resolve-P3AT2S6A.js.map} +0 -0
  1248. /package/dist/{retry-2KYMH2IV.js.map → retry-CEZLEN7Z.js.map} +0 -0
  1249. /package/dist/{retry-KUWJ4GGA.js.map → retry-YNNFUDWI.js.map} +0 -0
  1250. /package/dist/{retry-failed-T6PK5SKL.js.map → retry-failed-FCS6PNUZ.js.map} +0 -0
  1251. /package/dist/{revenue-CRZRJJ7H.js.map → revenue-6PR3BJFJ.js.map} +0 -0
  1252. /package/dist/{rule-writes-HUBHHYEO.js.map → rule-writes-WT6DQZZE.js.map} +0 -0
  1253. /package/dist/{rules-EKOXAK2O.js.map → rules-R7NK5X4Z.js.map} +0 -0
  1254. /package/dist/{rules-47LFGCPW.js.map → rules-Y75KR2PC.js.map} +0 -0
  1255. /package/dist/{rules-add-IC3SXNYW.js.map → rules-add-2GIJGODB.js.map} +0 -0
  1256. /package/dist/{run-WUD5U5GY.js.map → run-CDMNDJ7B.js.map} +0 -0
  1257. /package/dist/{run-Y4SEFETX.js.map → run-RORVKARV.js.map} +0 -0
  1258. /package/dist/{scaffold-ad-OJ4WOJM6.js.map → scaffold-ad-DDGYTRFK.js.map} +0 -0
  1259. /package/dist/{scaffold-static-ad-EXUKKYSD.js.map → scaffold-static-ad-ES5AIQPA.js.map} +0 -0
  1260. /package/dist/{scaffold-video-7PDZZSKD.js.map → scaffold-video-NWRJZQ7N.js.map} +0 -0
  1261. /package/dist/{schedule-VCL2OPIL.js.map → schedule-2ELAAXVW.js.map} +0 -0
  1262. /package/dist/{schedule-ANIYXLG6.js.map → schedule-XFEPEQTN.js.map} +0 -0
  1263. /package/dist/{scheduled-agents-YAHYCFDA.js.map → scheduled-agents-RRAWQYPE.js.map} +0 -0
  1264. /package/dist/{schema-L6DGAUB5.js.map → schema-FHP43TLD.js.map} +0 -0
  1265. /package/dist/{scrape-O4X6VGV2.js.map → scrape-D3XGARHR.js.map} +0 -0
  1266. /package/dist/{screenshot-RR6RA6CN.js.map → screenshot-5LWUP5VN.js.map} +0 -0
  1267. /package/dist/{search-E75B5APM.js.map → search-4DBP6EH5.js.map} +0 -0
  1268. /package/dist/{search-OUJUEORX.js.map → search-G6W4LGVZ.js.map} +0 -0
  1269. /package/dist/{search-EKTUTXVN.js.map → search-HNRANK6H.js.map} +0 -0
  1270. /package/dist/{search-6XKFFDMJ.js.map → search-KGE3BSSH.js.map} +0 -0
  1271. /package/dist/{search-YARSBZ6D.js.map → search-O3AOWEXC.js.map} +0 -0
  1272. /package/dist/{search-OW3E2Z7Z.js.map → search-QQDR74KQ.js.map} +0 -0
  1273. /package/dist/{search-copy-2KO3VR6R.js.map → search-copy-EB3TONDS.js.map} +0 -0
  1274. /package/dist/{seeds-E64JKXWS.js.map → seeds-RGIFHHYC.js.map} +0 -0
  1275. /package/dist/{select-R3NT7OI4.js.map → select-GFPXXVBU.js.map} +0 -0
  1276. /package/dist/{sends-DEVRKO4M.js.map → sends-4ZO6BNZ4.js.map} +0 -0
  1277. /package/dist/{sequences-YIQSLKV5.js.map → sequences-SSLZ3XTP.js.map} +0 -0
  1278. /package/dist/{set-prompt-F3SYRT22.js.map → set-prompt-TQDOBUFT.js.map} +0 -0
  1279. /package/dist/{setup-links-AHWFGUAO.js.map → setup-links-CK7LBYJK.js.map} +0 -0
  1280. /package/dist/{shared-V5ZS25EO.js.map → shared-UPMEBTVP.js.map} +0 -0
  1281. /package/dist/{shopify-BPQCUFFX.js.map → shopify-SOTGSWXW.js.map} +0 -0
  1282. /package/dist/{site-KYB2EL72.js.map → site-IAIGIP3R.js.map} +0 -0
  1283. /package/dist/{sitemaps-ZSISKT6L.js.map → sitemaps-P3K5Z4TW.js.map} +0 -0
  1284. /package/dist/{sites-XMZ3HPHT.js.map → sites-TURWC53D.js.map} +0 -0
  1285. /package/dist/{skills-6MJC6CSZ.js.map → skills-PDHUHP2T.js.map} +0 -0
  1286. /package/dist/{sources-X4URMRLY.js.map → sources-62MIDG3D.js.map} +0 -0
  1287. /package/dist/{sources-JYOOLCOU.js.map → sources-D5XODGIV.js.map} +0 -0
  1288. /package/dist/{stale-KFVY7LSB.js.map → stale-4STBM2Z3.js.map} +0 -0
  1289. /package/dist/{stats-FSAXWTSE.js.map → stats-XNKAJD2Z.js.map} +0 -0
  1290. /package/dist/{status-YVRZBK56.js.map → status-BKSOFB53.js.map} +0 -0
  1291. /package/dist/{sticker-HMHR7QM7.js.map → sticker-MWICUYQM.js.map} +0 -0
  1292. /package/dist/{stock-IAQBUPGQ.js.map → stock-F5QNFRPM.js.map} +0 -0
  1293. /package/dist/{studies-QLSKON6M.js.map → studies-5G67ODR2.js.map} +0 -0
  1294. /package/dist/{studio-ZLBBYHNY.js.map → studio-ZRAZ2C25.js.map} +0 -0
  1295. /package/dist/{study-writes-GBUUKX4O.js.map → study-writes-34BJFZAZ.js.map} +0 -0
  1296. /package/dist/{suggest-DSMKK4FP.js.map → suggest-KCN2NDYE.js.map} +0 -0
  1297. /package/dist/{sync-WKV3N3LD.js.map → sync-QVEUQKU5.js.map} +0 -0
  1298. /package/dist/{sync-XFK4U6TA.js.map → sync-TANGFXUN.js.map} +0 -0
  1299. /package/dist/{sync-KJEXXD3P.js.map → sync-VPE5G6YX.js.map} +0 -0
  1300. /package/dist/{sync-definition-BQUVWLCC.js.map → sync-definition-VSNVCRNG.js.map} +0 -0
  1301. /package/dist/{tag-L2H5TSFJ.js.map → tag-NKAHDL35.js.map} +0 -0
  1302. /package/dist/{tag-manager-5WZPX2FJ.js.map → tag-manager-3GIW6BPB.js.map} +0 -0
  1303. /package/dist/{tags-7CEVWFEZ.js.map → tags-CBNWQTFX.js.map} +0 -0
  1304. /package/dist/{tags-ZLPLHP2G.js.map → tags-IFBIJ7BE.js.map} +0 -0
  1305. /package/dist/{tags-HKR2GWXV.js.map → tags-J6IPWIZ5.js.map} +0 -0
  1306. /package/dist/{tags-BU4KLB37.js.map → tags-XPLXA3LV.js.map} +0 -0
  1307. /package/dist/{tags-SKGPECNG.js.map → tags-ZV7JAF6S.js.map} +0 -0
  1308. /package/dist/{targeting-DAUTJDUB.js.map → targeting-TVZPIUUI.js.map} +0 -0
  1309. /package/dist/{targeting-constants-ZS422W5A.js.map → targeting-constants-RJS2STR5.js.map} +0 -0
  1310. /package/dist/{targeting-criteria-4C4M3XLJ.js.map → targeting-criteria-VVZQFPNS.js.map} +0 -0
  1311. /package/dist/{targets-C5K2OH3B.js.map → targets-EQAZUKT6.js.map} +0 -0
  1312. /package/dist/{terms-NX5CAJXT.js.map → terms-AATAGKPT.js.map} +0 -0
  1313. /package/dist/{testimonials-OJV7EFGS.js.map → testimonials-5MA427KH.js.map} +0 -0
  1314. /package/dist/{themes-C4PPU427.js.map → themes-WMZJWXFT.js.map} +0 -0
  1315. /package/dist/{top-companies-IZQOKMBU.js.map → top-companies-V5FVQMCS.js.map} +0 -0
  1316. /package/dist/{transcript-K6W7VRA5.js.map → transcript-2TE2R4DH.js.map} +0 -0
  1317. /package/dist/{translate-M6W6KZZS.js.map → translate-XIF6VTDN.js.map} +0 -0
  1318. /package/dist/{triggers-CQFQSODZ.js.map → triggers-ZMNQ6W3M.js.map} +0 -0
  1319. /package/dist/{tweets-33OCH74J.js.map → tweets-MLDLLLDB.js.map} +0 -0
  1320. /package/dist/{unfollow-G26NHR5X.js.map → unfollow-OEMFPAFS.js.map} +0 -0
  1321. /package/dist/{unlink-ITGOP2YH.js.map → unlink-HRCAROB3.js.map} +0 -0
  1322. /package/dist/{unstage-EAUF74PI.js.map → unstage-5WSEDFNH.js.map} +0 -0
  1323. /package/dist/{unstage-OAPP6Z5V.js.map → unstage-65DUBYNZ.js.map} +0 -0
  1324. /package/dist/{update-N5NA3JTW.js.map → update-A64IC24P.js.map} +0 -0
  1325. /package/dist/{update-PCVDM7HO.js.map → update-BESMEMQU.js.map} +0 -0
  1326. /package/dist/{update-KXTP3VPI.js.map → update-CADTFTYC.js.map} +0 -0
  1327. /package/dist/{update-HOFM27UT.js.map → update-WU4FAGEA.js.map} +0 -0
  1328. /package/dist/{update-GX26VDM4.js.map → update-ZUBU5NQP.js.map} +0 -0
  1329. /package/dist/{upload-SPCZNAUN.js.map → upload-FR6WRGXI.js.map} +0 -0
  1330. /package/dist/{upload-3ZGL4WHA.js.map → upload-GXS5CTOR.js.map} +0 -0
  1331. /package/dist/{upscale-X3B5CHG3.js.map → upscale-BCI42TCP.js.map} +0 -0
  1332. /package/dist/{url-options-C3ZOWN2L.js.map → url-options-QLDSJ7QJ.js.map} +0 -0
  1333. /package/dist/{url-params-H4LQAYXG.js.map → url-params-YWIBMV3P.js.map} +0 -0
  1334. /package/dist/{use-HYK67YKZ.js.map → use-26VARHJT.js.map} +0 -0
  1335. /package/dist/{validate-XHQ4MIW5.js.map → validate-5EWYG4QS.js.map} +0 -0
  1336. /package/dist/{variant-MEHXEXFK.js.map → variant-F4EEYQJ7.js.map} +0 -0
  1337. /package/dist/{videos-GY6YCGFH.js.map → videos-MXEQHDMN.js.map} +0 -0
  1338. /package/dist/{view-HTCYEBXN.js.map → view-X65GETAV.js.map} +0 -0
  1339. /package/dist/{viewer-check-UCNIAY7X.js.map → viewer-check-QI4HKF7A.js.map} +0 -0
  1340. /package/dist/{web-E7XDCTVJ.js.map → web-DYT5YHEU.js.map} +0 -0
  1341. /package/dist/{winners-CGLS7SZ3.js.map → winners-5PRDG7GT.js.map} +0 -0
  1342. /package/dist/{winning-ads-L7FHCD75.js.map → winning-ads-YKBB2UZC.js.map} +0 -0
  1343. /package/dist/{write-commands-HQQOJGP4.js.map → write-commands-OBQPQUIE.js.map} +0 -0
  1344. /package/dist/{write-commands-F5XPPLOO.js.map → write-commands-SIOVTRHH.js.map} +0 -0
  1345. /package/dist/{write-commands-JESAYUEQ.js.map → write-commands-USXHGCVT.js.map} +0 -0
  1346. /package/dist/{write-commands-QNXR5ENS.js.map → write-commands-XLZCRVTU.js.map} +0 -0
  1347. /package/dist/{x-ROAUMBHA.js.map → x-OIDZY7DM.js.map} +0 -0
@@ -0,0 +1,1246 @@
1
+ import {
2
+ googlePresetSyncedHint
3
+ } from "./chunk-Y2FAUFWK.js";
4
+ import {
5
+ getFieldDescriptions,
6
+ parseCampaignIds
7
+ } from "./chunk-JQDYH5XP.js";
8
+ import {
9
+ LIST_FIELDS,
10
+ NO_OR_EXPLANATION,
11
+ PRESETS,
12
+ SERVING_CHAINS,
13
+ duringLiteralExplanation,
14
+ equivalentBetween,
15
+ expandPreset,
16
+ getPreset,
17
+ isDuringLiteral,
18
+ isInventoryPreset,
19
+ listFieldGuidance,
20
+ parseApiError
21
+ } from "./chunk-TCR6KI6P.js";
22
+ import {
23
+ buildQueryCacheKey,
24
+ cacheGet,
25
+ cacheSet,
26
+ getManagerIdForCustomer,
27
+ getQueryTtl,
28
+ resolveCustomerId,
29
+ toCsvRow,
30
+ writeAdsJson
31
+ } from "./chunk-RBCO3C3Q.js";
32
+ import {
33
+ GOOGLE_ADS_QUERY_MAX_PAGE_SIZE
34
+ } from "./chunk-MSMTG6OC.js";
35
+ import {
36
+ ApiError,
37
+ apiPost
38
+ } from "./chunk-QEREDRZO.js";
39
+ import {
40
+ registerSchema
41
+ } from "./chunk-CCYZJMZ7.js";
42
+
43
+ // src/commands/ads/google/query.ts
44
+ import { appendFileSync, existsSync, readFileSync, writeFileSync } from "fs";
45
+ import { resolve } from "path";
46
+ import { defineCommand } from "citty";
47
+
48
+ // src/commands/ads/google/preflight.ts
49
+ function buildCommand(query, customerId) {
50
+ return `baker ads google query "${query}" --customer-id ${customerId}`;
51
+ }
52
+ var RUNG_PIN_FIELDS = {
53
+ "campaign.status": ["campaign.id", "campaign.resource_name"],
54
+ "ad_group.status": ["ad_group.id", "ad_group.resource_name"],
55
+ "ad_group_criterion.status": ["ad_group_criterion.criterion_id", "ad_group_criterion.resource_name"],
56
+ "ad_group_ad.status": ["ad_group_ad.ad.id", "ad_group_ad.resource_name"],
57
+ "asset_group.status": ["asset_group.id", "asset_group.resource_name"],
58
+ "asset_group_asset.status": ["asset_group_asset.resource_name"],
59
+ "campaign_asset.status": ["campaign_asset.resource_name"],
60
+ "ad_group_asset.status": ["ad_group_asset.resource_name"]
61
+ };
62
+ function whereClause(query) {
63
+ const match = query.match(/\bWHERE\b([\s\S]*)$/i);
64
+ if (!match?.[1]) return "";
65
+ let rest = match[1];
66
+ for (const trailing of [/\bORDER\s+BY\b/i, /\bLIMIT\b/i, /\bPARAMETERS\b/i]) {
67
+ const idx = rest.search(trailing);
68
+ if (idx !== -1) rest = rest.slice(0, idx);
69
+ }
70
+ return rest;
71
+ }
72
+ function selectClause(query) {
73
+ return query.split(/\bFROM\b/i)[0] ?? "";
74
+ }
75
+ function mentions(clause, field) {
76
+ return new RegExp(`(?<![\\w.])${field.replace(/\./g, "\\.")}\\b`, "i").test(clause);
77
+ }
78
+ function analyzeServingChain(query) {
79
+ const resource = fromResource(query);
80
+ const chain = resource ? SERVING_CHAINS[resource] : void 0;
81
+ if (!chain) return null;
82
+ const where = whereClause(query);
83
+ if (/ad_group_criterion\.negative\s*=\s*TRUE/i.test(where)) return null;
84
+ const unscoped = chain.filter((rung) => {
85
+ if (mentions(where, rung)) return false;
86
+ return !(RUNG_PIN_FIELDS[rung] ?? []).some((pin) => mentions(where, pin));
87
+ });
88
+ const assertsServing = chain.some(
89
+ (rung) => new RegExp(`${rung.replace(/\./g, "\\.")}\\s*=\\s*'ENABLED'`, "i").test(where)
90
+ );
91
+ return { chain, unscoped, assertsServing };
92
+ }
93
+ function rejectPartialChain(query, customerId, analysis) {
94
+ if (!analysis.assertsServing || analysis.unscoped.length === 0) return null;
95
+ const added = analysis.unscoped.map((rung) => `${rung} = 'ENABLED'`).join(" AND ");
96
+ const fixed = addRequiredAncestorFields(query.replace(/\bWHERE\b/i, `WHERE ${added} AND`)).query;
97
+ return {
98
+ ok: false,
99
+ error: {
100
+ code: "INCOMPLETE_STATUS_CHAIN",
101
+ message: `This query filters on serving status but leaves ${analysis.unscoped.join(", ")} unscoped. Google Ads has no single serving flag \u2014 a row is live only when its whole chain (${analysis.chain.join(" \u2192 ")}) is ENABLED, so rows under a paused parent will come back looking live.`,
102
+ fix: {
103
+ action: "retry_with_modified_query",
104
+ correctedCommand: buildCommand(fixed, customerId),
105
+ explanation: `Add the missing rungs: ${added}. To look at paused entities on purpose, scope every rung explicitly instead (e.g. ${analysis.unscoped.map((rung) => `${rung} != 'REMOVED'`).join(" AND ")}), or use --preset ... --include-paused.`
106
+ },
107
+ retryable: false
108
+ }
109
+ };
110
+ }
111
+ function annotateUnscopedChain(query, analysis) {
112
+ if (analysis.assertsServing || analysis.unscoped.length === 0) return { query, warnings: [] };
113
+ const select = selectClause(query);
114
+ const missing = analysis.unscoped.filter((rung) => !mentions(select, rung));
115
+ if (missing.length === 0) return { query, warnings: [] };
116
+ return {
117
+ query: query.replace(/SELECT\s+/i, `SELECT ${missing.join(", ")}, `),
118
+ warnings: [
119
+ {
120
+ code: "SERVING_STATUS_ADDED",
121
+ message: `Added ${missing.join(", ")} to SELECT \u2014 this query does not scope ${analysis.unscoped.join(", ")}, so it returns paused-parent rows that are not serving. Read those columns before calling any row live; filter every rung = 'ENABLED' to get serving rows only.`
122
+ }
123
+ ]
124
+ };
125
+ }
126
+ var SINGLE_ROW_RESOURCES = ["customer"];
127
+ function fromResource(query) {
128
+ const match = query.match(/\bFROM\s+([A-Za-z_][A-Za-z0-9_]*)/i);
129
+ return match?.[1]?.toLowerCase() ?? null;
130
+ }
131
+ function isSingleRowRead(query) {
132
+ const resource = fromResource(query);
133
+ if (!resource || !SINGLE_ROW_RESOURCES.includes(resource)) return false;
134
+ return !/\bsegments\./i.test(selectClause(query));
135
+ }
136
+ var SEGMENTING_ANCESTORS = {
137
+ campaign_budget: ["campaign"],
138
+ campaign_asset: ["campaign"],
139
+ ad_group_asset: ["campaign", "ad_group"]
140
+ };
141
+ function missingRequiredSelectFields(query) {
142
+ const ancestors = SEGMENTING_ANCESTORS[fromResource(query) ?? ""];
143
+ if (!ancestors) return [];
144
+ const select = selectClause(query);
145
+ const where = query.split(/\bWHERE\b/i)[1] ?? "";
146
+ const filtered = ancestors.flatMap(
147
+ (ancestor) => where.match(new RegExp(`(?<![\\w.])${ancestor}\\.[\\w.]+`, "g")) ?? []
148
+ );
149
+ return [...new Set(filtered)].filter((field) => !mentions(select, field));
150
+ }
151
+ function addRequiredAncestorFields(query) {
152
+ const missing = missingRequiredSelectFields(query);
153
+ if (missing.length === 0) return { query, warnings: [] };
154
+ return {
155
+ query: query.replace(/SELECT\s+/i, `SELECT ${missing.join(", ")}, `),
156
+ warnings: [
157
+ {
158
+ code: "REQUIRED_FIELD_ADDED",
159
+ message: `Added ${missing.join(", ")} to SELECT \u2014 ${fromResource(query)} queries must select the ancestor fields used in WHERE`
160
+ }
161
+ ]
162
+ };
163
+ }
164
+ function applyAutoFixes(query) {
165
+ let corrected = query;
166
+ const warnings = [];
167
+ if (/(?<![\w.])keyword\.text\b/.test(corrected)) {
168
+ corrected = corrected.replace(/(?<![\w.])keyword\.text\b/g, "ad_group_criterion.keyword.text");
169
+ warnings.push({ code: "FIELD_RENAMED", message: "keyword.text \u2192 ad_group_criterion.keyword.text" });
170
+ }
171
+ if (/(?<![\w.])keyword\.match_type\b/.test(corrected)) {
172
+ corrected = corrected.replace(/(?<![\w.])keyword\.match_type\b/g, "ad_group_criterion.keyword.match_type");
173
+ warnings.push({ code: "FIELD_RENAMED", message: "keyword.match_type \u2192 ad_group_criterion.keyword.match_type" });
174
+ }
175
+ if (/shopping_performance_view\.product_\w+/.test(corrected)) {
176
+ corrected = corrected.replace(/shopping_performance_view\.product_(\w+)/g, "segments.product_$1");
177
+ warnings.push({ code: "FIELD_RENAMED", message: "shopping_performance_view.product_* \u2192 segments.product_*" });
178
+ }
179
+ if (/asset\.\w+_asset\.final_(mobile_)?urls\b/.test(corrected)) {
180
+ corrected = corrected.replace(/asset\.\w+_asset\.final_(mobile_)?urls\b/g, "asset.final_$1urls");
181
+ warnings.push({ code: "FIELD_RENAMED", message: "asset.<type>_asset.final_urls \u2192 asset.final_urls" });
182
+ }
183
+ const ancestorFix = addRequiredAncestorFields(corrected);
184
+ corrected = ancestorFix.query;
185
+ warnings.push(...ancestorFix.warnings);
186
+ if (/campaign\.status\s*=\s*'ACTIVE'/i.test(corrected)) {
187
+ corrected = corrected.replace(/campaign\.status\s*=\s*'ACTIVE'/gi, "campaign.status = 'ENABLED'");
188
+ warnings.push({ code: "ENUM_CORRECTED", message: "campaign.status ACTIVE \u2192 ENABLED" });
189
+ }
190
+ if (/ad_group\.status\s*=\s*'ACTIVE'/i.test(corrected)) {
191
+ corrected = corrected.replace(/ad_group\.status\s*=\s*'ACTIVE'/gi, "ad_group.status = 'ENABLED'");
192
+ warnings.push({ code: "ENUM_CORRECTED", message: "ad_group.status ACTIVE \u2192 ENABLED" });
193
+ }
194
+ return { query: corrected, warnings };
195
+ }
196
+ var DURING_CLAUSE = /(?<=[a-z_]\.[a-z_.]+\s+)DURING\s+([A-Za-z0-9_]+)/gi;
197
+ function rejectUnsupportedDuring(query, customerId) {
198
+ const unsupported = [...query.matchAll(DURING_CLAUSE)].map((match) => match[1] ?? "").filter((literal2) => !isDuringLiteral(literal2));
199
+ const literal = unsupported[0];
200
+ if (literal === void 0) return null;
201
+ const now = /* @__PURE__ */ new Date();
202
+ const between = equivalentBetween(literal, now);
203
+ const fixed = unsupported.every((l) => equivalentBetween(l, now) !== null) ? query.replace(
204
+ DURING_CLAUSE,
205
+ (clause, l) => isDuringLiteral(l) ? clause : equivalentBetween(l, now) ?? clause
206
+ ) : void 0;
207
+ return {
208
+ ok: false,
209
+ error: {
210
+ code: "INVALID_DATE_RANGE",
211
+ message: `DURING ${literal} is not a Google Ads date range, so Google would refuse this query.`,
212
+ fix: {
213
+ action: "narrow_date_range",
214
+ ...fixed ? { correctedCommand: buildCommand(fixed, customerId) } : {},
215
+ explanation: duringLiteralExplanation(literal, between)
216
+ },
217
+ retryable: false
218
+ }
219
+ };
220
+ }
221
+ var WHERE_OPERATOR = /(?<![\w.])([a-z_]+(?:\.[a-z_]+)+)\s*(CONTAINS\s+(?:ALL|ANY|NONE)|IS\s+NOT\s+NULL|IS\s+NULL|NOT\s+LIKE|NOT\s+IN|NOT\s+REGEXP_MATCH|REGEXP_MATCH|LIKE|IN|BETWEEN|DURING|!=|<=|>=|=|<|>)/gi;
222
+ function escapeRegExp(text) {
223
+ return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
224
+ }
225
+ function withoutNullTest(query, field) {
226
+ const test = `${escapeRegExp(field)}\\s+IS\\s+(?:NOT\\s+)?NULL\\b`;
227
+ const dropped = query.replace(new RegExp(`\\bWHERE\\s+${test}\\s+AND\\s+`, "i"), "WHERE ").replace(new RegExp(`\\s+AND\\s+${test}`, "i"), "").replace(new RegExp(`\\s*\\bWHERE\\s+${test}`, "i"), "");
228
+ return mentions(selectClause(dropped), field) ? dropped : dropped.replace(/SELECT\s+/i, `SELECT ${field}, `);
229
+ }
230
+ function asListCondition(query, field) {
231
+ const condition = new RegExp(
232
+ `(?<![\\w.])${escapeRegExp(field)}\\s*(NOT\\s+IN\\b|IN\\b|!=|=)\\s*('[^']*'|\\([^)]*\\))`,
233
+ "i"
234
+ );
235
+ const match = query.match(condition);
236
+ if (!match) return null;
237
+ const [, operator = "", value = ""] = match;
238
+ const contains = /^(=|IN)$/i.test(operator.trim()) ? "CONTAINS ANY" : "CONTAINS NONE";
239
+ const values = value.startsWith("(") ? value : `(${value})`;
240
+ return query.replace(condition, `${field} ${contains} ${values}`);
241
+ }
242
+ function rejectListFieldOperator(query, customerId) {
243
+ const where = whereClause(query).replace(/'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"/g, "''");
244
+ const refusals = [...where.matchAll(WHERE_OPERATOR)].map(([, field = "", operator = ""]) => ({
245
+ field: field.toLowerCase(),
246
+ operator: operator.toUpperCase().replace(/\s+/g, " ")
247
+ })).filter(({ field, operator }) => LIST_FIELDS.has(field) && !operator.startsWith("CONTAINS"));
248
+ const first = refusals[0];
249
+ if (!first) return null;
250
+ const fixed = refusals.reduce(
251
+ (corrected, { field, operator }) => corrected === null ? null : operator.startsWith("IS ") ? withoutNullTest(corrected, field) : asListCondition(corrected, field),
252
+ query
253
+ );
254
+ return {
255
+ ok: false,
256
+ error: {
257
+ code: "INVALID_OPERATOR",
258
+ message: `${first.operator} cannot be used on ${first.field}: it is a list field, so Google would refuse this query.`,
259
+ fix: {
260
+ action: "change_operator",
261
+ ...fixed ? { correctedCommand: buildCommand(fixed, customerId) } : {},
262
+ explanation: listFieldGuidance(first.field)
263
+ },
264
+ retryable: false
265
+ }
266
+ };
267
+ }
268
+ function rejectContainsCall(query, customerId) {
269
+ const containsMatch = query.match(/CONTAINS\s*\(\s*([^,]+),\s*'([^']+)'\s*\)/i);
270
+ if (!containsMatch) return null;
271
+ const field = containsMatch[1]?.trim();
272
+ const value = containsMatch[2] ?? "";
273
+ const fixed = query.replace(/CONTAINS\s*\(\s*[^,]+,\s*'[^']+'\s*\)/i, `${field} LIKE '%${value}%'`);
274
+ return {
275
+ ok: false,
276
+ error: {
277
+ code: "INVALID_OPERATOR",
278
+ message: "GAQL does not support CONTAINS. Use LIKE with % wildcards.",
279
+ fix: {
280
+ action: "change_operator",
281
+ correctedCommand: buildCommand(fixed, customerId),
282
+ explanation: "GAQL uses LIKE '%value%' for substring matching, not CONTAINS()"
283
+ },
284
+ retryable: false
285
+ }
286
+ };
287
+ }
288
+ function rejectOrCondition(query) {
289
+ const where = whereClause(query).replace(/'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"/g, "''");
290
+ const hasOr = /(?<![\w.])OR(?![\w.])/i.test(where);
291
+ const hasGroup = /(?:^|\bAND|\bNOT)\s*\(/i.test(where);
292
+ if (!hasOr && !hasGroup) return null;
293
+ return {
294
+ ok: false,
295
+ error: {
296
+ code: "INVALID_SYNTAX",
297
+ message: `${hasOr ? "OR" : "A parenthesised condition"} in WHERE: Google would refuse this query.`,
298
+ fix: { action: "retry_with_modified_query", explanation: NO_OR_EXPLANATION },
299
+ retryable: false
300
+ }
301
+ };
302
+ }
303
+ function validatePreflight(query, customerId) {
304
+ const warnings = [];
305
+ const corrected = query;
306
+ const firstWord = corrected.trim().split(/\s+/)[0]?.toUpperCase();
307
+ if (firstWord && firstWord !== "SELECT") {
308
+ return {
309
+ valid: false,
310
+ warnings: [],
311
+ error: {
312
+ ok: false,
313
+ error: {
314
+ code: "READ_ONLY",
315
+ message: `Only SELECT queries are allowed. Got: ${firstWord}`,
316
+ fix: {
317
+ action: "reject",
318
+ explanation: "This CLI only supports GAQL SELECT queries for reading data"
319
+ },
320
+ retryable: false
321
+ }
322
+ }
323
+ };
324
+ }
325
+ const openDateMatch = corrected.match(/segments\.date\s*>=\s*'(\d{4}-\d{2}-\d{2})'/i);
326
+ if (openDateMatch && !/BETWEEN/i.test(corrected)) {
327
+ const startDate = openDateMatch[1] ?? "";
328
+ const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
329
+ const fixed = corrected.replace(
330
+ /segments\.date\s*>=\s*'(\d{4}-\d{2}-\d{2})'/i,
331
+ `segments.date BETWEEN '${startDate}' AND '${today}'`
332
+ );
333
+ return {
334
+ valid: false,
335
+ warnings: [],
336
+ error: {
337
+ ok: false,
338
+ error: {
339
+ code: "OPEN_ENDED_DATE",
340
+ message: "Open-ended date ranges are not supported. Use BETWEEN or DURING.",
341
+ fix: {
342
+ action: "narrow_date_range",
343
+ correctedCommand: buildCommand(fixed, customerId),
344
+ explanation: "Use BETWEEN with explicit start and end dates"
345
+ },
346
+ retryable: false
347
+ }
348
+ }
349
+ };
350
+ }
351
+ for (const reject of [rejectContainsCall, rejectOrCondition, rejectListFieldOperator, rejectUnsupportedDuring]) {
352
+ const rejection2 = reject(corrected, customerId);
353
+ if (rejection2) return { valid: false, warnings: [], error: rejection2 };
354
+ }
355
+ if (/\bsegments\.conversion_action_name\b/i.test(corrected) && /\bmetrics\.cost_micros\b/i.test(corrected)) {
356
+ return {
357
+ valid: false,
358
+ warnings: [],
359
+ error: {
360
+ ok: false,
361
+ error: {
362
+ code: "INCOMPATIBLE_FIELDS",
363
+ message: "segments.conversion_action_name cannot be selected with metrics.cost_micros in one GAQL query.",
364
+ fix: {
365
+ action: "split_query",
366
+ explanation: "Run one campaign spend query with metrics.cost_micros and a separate conversion-action query without cost metrics, then join the results by campaign."
367
+ },
368
+ retryable: false
369
+ }
370
+ }
371
+ };
372
+ }
373
+ if (/FROM\s+ad_group_criterion\b/i.test(corrected) && !/ad_group_criterion\.negative/i.test(corrected)) {
374
+ warnings.push({
375
+ code: "NEGATIVE_FIELD_MISSING",
376
+ message: "ad_group_criterion returns BOTH positive and negative keywords. Add ad_group_criterion.negative to SELECT or filter with WHERE ad_group_criterion.negative = FALSE (positives) / TRUE (negatives). Use --preset positive-keywords or negative-keywords instead."
377
+ });
378
+ }
379
+ const { query: autoFixed, warnings: autoFixWarnings } = applyAutoFixes(corrected);
380
+ warnings.push(...autoFixWarnings);
381
+ const analysis = analyzeServingChain(autoFixed);
382
+ if (!analysis) return { valid: true, correctedQuery: autoFixed, warnings };
383
+ const rejection = rejectPartialChain(autoFixed, customerId, analysis);
384
+ if (rejection) return { valid: false, warnings: [], error: rejection };
385
+ const annotated = annotateUnscopedChain(autoFixed, analysis);
386
+ warnings.push(...annotated.warnings);
387
+ return { valid: true, correctedQuery: annotated.query, warnings };
388
+ }
389
+
390
+ // src/commands/ads/google/conversion-mix.ts
391
+ var CONVERSION_METRICS = [
392
+ "METRICS.CONVERSIONS",
393
+ "METRICS.ALL_CONVERSIONS",
394
+ "METRICS.CONVERSIONS_VALUE",
395
+ "METRICS.ALL_CONVERSIONS_VALUE",
396
+ "METRICS.COST_PER_CONVERSION",
397
+ "METRICS.COST_PER_ALL_CONVERSIONS",
398
+ "METRICS.CONVERSIONS_FROM_INTERACTIONS_RATE",
399
+ "METRICS.ALL_CONVERSIONS_FROM_INTERACTIONS_RATE",
400
+ "METRICS.VALUE_PER_CONVERSION",
401
+ "METRICS.VALUE_PER_ALL_CONVERSIONS"
402
+ ];
403
+ var CONVERSION_SEGMENTS = ["SEGMENTS.CONVERSION_ACTION_NAME", "SEGMENTS.CONVERSION_ACTION="];
404
+ var CAMPAIGN_EQUALITY = /\bCAMPAIGN\.(ID|NAME|RESOURCE_NAME)\s*=/;
405
+ function whereClause2(upperQuery) {
406
+ const whereIdx = upperQuery.indexOf(" WHERE ");
407
+ if (whereIdx === -1) return "";
408
+ let rest = upperQuery.slice(whereIdx + 7);
409
+ for (const trailing of [" ORDER BY ", " GROUP BY ", " LIMIT ", " PARAMETERS "]) {
410
+ const idx = rest.indexOf(trailing);
411
+ if (idx !== -1) rest = rest.slice(0, idx);
412
+ }
413
+ return rest;
414
+ }
415
+ function conversionMixWarnings(finalQuery) {
416
+ const upper = ` ${finalQuery.toUpperCase().replace(/\s+/g, " ")} `;
417
+ const readsConversions = CONVERSION_METRICS.some((metric) => upper.includes(metric));
418
+ if (!readsConversions) return [];
419
+ if (CONVERSION_SEGMENTS.some((segment) => upper.includes(segment))) return [];
420
+ if (CAMPAIGN_EQUALITY.test(whereClause2(upper))) return [];
421
+ if (isSingleRowRead(finalQuery)) return [];
422
+ return [
423
+ {
424
+ code: "CONVERSION_MIX",
425
+ message: "MIXED CONVERSION ACTIONS \u2014 this read covers more than one campaign, and a campaign's conversion figures count whatever conversion actions are primary for it. Those differ campaign by campaign (a webinar registration, an info request, a CRM-stage SQL), so a total across these rows adds different events and a conversion rate from one campaign is not comparable with another's. Before totalling or comparing, re-run segmented by segments.conversion_action_name and check the campaigns you are putting side by side count the same action. If they do not, compare only within one action \u2014 and carry that caveat into anything you write for the user, not just the analysis."
426
+ }
427
+ ];
428
+ }
429
+
430
+ // src/commands/ads/google/keyword-serving.ts
431
+ var BELOW_FIRST_PAGE_BID = "AD_GROUP_CRITERION_BELOW_FIRST_PAGE_BID";
432
+ var ACTIONABLE_REASONS = {
433
+ [BELOW_FIRST_PAGE_BID]: {
434
+ label: "Below first page bid",
435
+ advice: "raise the max CPC (keywords update --cpc-bid) to at least the first-page estimate, or move the ad group onto a smart bidding strategy that sets the bid itself"
436
+ },
437
+ AD_GROUP_CRITERION_LOW_QUALITY: {
438
+ label: "Low quality score",
439
+ advice: "a bid raise does not lift quality \u2014 tighten ad relevance to the keyword and the landing page it points at (ad_group_criterion.quality_info.* breaks the score into its three parts)"
440
+ },
441
+ AD_GROUP_CRITERION_RARELY_SERVED: {
442
+ label: "Rarely served",
443
+ advice: "too few people search this term \u2014 broaden the match type or drop it, don't bid it up"
444
+ },
445
+ AD_GROUP_CRITERION_DISAPPROVED: {
446
+ label: "Disapproved",
447
+ advice: "select ad_group_criterion.disapproval_reasons to see which policy blocked it"
448
+ },
449
+ AD_GROUP_CRITERION_RESTRICTED: {
450
+ label: "Restricted",
451
+ advice: "policy limits where and to whom this keyword may show"
452
+ },
453
+ AD_GROUP_CRITERION_UNDER_REVIEW: {
454
+ label: "Under review",
455
+ advice: "waiting on Google's review \u2014 nothing to change yet"
456
+ },
457
+ AD_GROUP_CRITERION_PENDING_REVIEW: {
458
+ label: "Pending review",
459
+ advice: "waiting on Google's review \u2014 nothing to change yet"
460
+ },
461
+ AD_GROUP_CRITERION_PAUSED_DUE_TO_LOW_ACTIVITY: {
462
+ label: "Auto-paused for low activity",
463
+ advice: "Google paused it after prolonged low serving \u2014 resume it only alongside a change that gives it traffic"
464
+ }
465
+ };
466
+ var REASON_ORDER = Object.keys(ACTIONABLE_REASONS);
467
+ var MAX_NAMED_KEYWORDS = 5;
468
+ function toMicros(value) {
469
+ if (typeof value === "number" && Number.isFinite(value)) return value;
470
+ if (typeof value === "string" && value.trim() !== "" && Number.isFinite(Number(value))) return Number(value);
471
+ return null;
472
+ }
473
+ function formatMoney(micros) {
474
+ return (micros / 1e6).toFixed(2);
475
+ }
476
+ function keywordLabel(row) {
477
+ const text = row["ad_group_criterion.keyword.text"];
478
+ const id = row["ad_group_criterion.criterion_id"];
479
+ const name = typeof text === "string" && text !== "" ? text : id == null ? "(unnamed keyword)" : `criterion ${id}`;
480
+ const adGroup = row["ad_group.name"];
481
+ return typeof adGroup === "string" && adGroup !== "" ? `${name} (ad group ${adGroup})` : name;
482
+ }
483
+ function keywordKey(row) {
484
+ const adGroup = row["ad_group.id"] ?? row["ad_group.name"] ?? "";
485
+ const criterion = row["ad_group_criterion.criterion_id"] ?? row["ad_group_criterion.keyword.text"] ?? "";
486
+ return `${String(adGroup)}~${String(criterion)}` === "~" ? keywordLabel(row) : `${adGroup}~${criterion}`;
487
+ }
488
+ function reasonsOn(row) {
489
+ const raw = row["ad_group_criterion.primary_status_reasons"];
490
+ if (!Array.isArray(raw)) return null;
491
+ return raw.filter((r) => typeof r === "string");
492
+ }
493
+ function bidShortfall(row) {
494
+ const bid = toMicros(row["ad_group_criterion.effective_cpc_bid_micros"] ?? row["ad_group_criterion.cpc_bid_micros"]);
495
+ const firstPage = toMicros(row["ad_group_criterion.position_estimates.first_page_cpc_micros"]);
496
+ if (bid == null || firstPage == null || bid >= firstPage) return null;
497
+ return `bids ${formatMoney(bid)} against a ${formatMoney(firstPage)} first-page estimate`;
498
+ }
499
+ function limitsOn(row, options) {
500
+ const reasons = reasonsOn(row);
501
+ const shortfall = bidShortfall(row);
502
+ const label = keywordLabel(row);
503
+ const applicable = reasons ? reasons.filter((reason) => reason in ACTIONABLE_REASONS) : options.statusReasonsSelected || shortfall === null ? [] : [BELOW_FIRST_PAGE_BID];
504
+ return applicable.map((reason) => ({
505
+ reason,
506
+ detail: reason === BELOW_FIRST_PAGE_BID && shortfall ? `"${label}" ${shortfall}` : `"${label}"`
507
+ }));
508
+ }
509
+ function describeLimit(reason, details) {
510
+ const named = details.slice(0, MAX_NAMED_KEYWORDS).join("; ");
511
+ const rest = details.length > MAX_NAMED_KEYWORDS ? ` (+${details.length - MAX_NAMED_KEYWORDS} more)` : "";
512
+ const { label, advice } = ACTIONABLE_REASONS[reason];
513
+ return `${label} \u2014 ${details.length}: ${named}${rest}. Fix: ${advice}.`;
514
+ }
515
+ function collectKeywordLimits(rows, options, acc = { detailsByReason: /* @__PURE__ */ new Map(), keywords: /* @__PURE__ */ new Set() }) {
516
+ for (const row of rows) {
517
+ const limits = limitsOn(row, options);
518
+ if (limits.length === 0) continue;
519
+ acc.keywords.add(keywordKey(row));
520
+ for (const { reason, detail } of limits) {
521
+ const bucket = acc.detailsByReason.get(reason);
522
+ if (bucket) bucket.push(detail);
523
+ else acc.detailsByReason.set(reason, [detail]);
524
+ }
525
+ }
526
+ return acc;
527
+ }
528
+ function renderKeywordLimits(limits) {
529
+ if (limits.detailsByReason.size === 0) return [];
530
+ const sentences = REASON_ORDER.filter((reason) => limits.detailsByReason.has(reason)).map(
531
+ (reason) => describeLimit(reason, limits.detailsByReason.get(reason) ?? [])
532
+ );
533
+ const count = limits.keywords.size;
534
+ return [
535
+ {
536
+ code: "KEYWORD_SERVING_LIMITED",
537
+ message: `${count} ${count === 1 ? "keyword is" : "keywords are"} limited and not getting the traffic they could. ${sentences.join(" ")} Amounts are in the account currency (baker ads google currency).`
538
+ }
539
+ ];
540
+ }
541
+ function keywordServingWarnings(rows, options) {
542
+ return renderKeywordLimits(collectKeywordLimits(rows, options));
543
+ }
544
+
545
+ // src/commands/ads/google/money-units.ts
546
+ function isSettingMicros(field) {
547
+ return field.endsWith("_micros") && !field.startsWith("metrics.") && !field.endsWith("_fraction_micros");
548
+ }
549
+ function moneyUnitWarnings(fields) {
550
+ const example = fields.find(isSettingMicros);
551
+ if (!example) return [];
552
+ return [
553
+ {
554
+ code: "MONEY_IN_MICROS",
555
+ message: `Budgets and bids in these rows are in micros, millionths of the account currency: ${example} 20000000 is 20. Write flags (--amount, --cpc-bid, --max-cpc, --target-cpa, --target-cpc) take whole currency: --amount 20, never the micros.`
556
+ }
557
+ ];
558
+ }
559
+
560
+ // src/commands/ads/google/query.ts
561
+ registerSchema({
562
+ command: "ads.google.query",
563
+ description: "Run a GAQL (Google Ads Query Language) query, one page at a time. Start here: `baker ads google query --preset campaign-performance` (--list-presets for all). Each read returns one page of --limit rows and, when the account holds more, `pagination.cursor` \u2014 pass it back with --cursor for the next page, or use --all --out <file> to read every page. A LIMIT in your own GAQL caps the whole read.",
564
+ args: {
565
+ query: { type: "positional", description: "GAQL SELECT statement (or pass it with --gaql)", required: false },
566
+ gaql: {
567
+ type: "string",
568
+ description: 'GAQL SELECT statement as a flag \u2014 same as the positional, for when quoting a positional is awkward: --gaql "SELECT campaign.name FROM campaign"',
569
+ required: false
570
+ },
571
+ "customer-id": {
572
+ type: "string",
573
+ description: "Google Ads customer ID (10 digits, no dashes). Falls back to BAKER_GOOGLE_ADS_CUSTOMER_ID env var.",
574
+ required: false
575
+ },
576
+ preset: {
577
+ type: "string",
578
+ description: `Named query preset (--list-presets shows each one's GAQL and page size): ${PRESETS.map((p) => p.name).join(", ")}. Presets return only actually-serving entities (enabled campaign AND ad group AND ad) by default \u2014 pass --include-paused to include paused ones.`,
579
+ required: false
580
+ },
581
+ "date-range": {
582
+ type: "string",
583
+ description: "Date range for presets: a Google date literal (TODAY, YESTERDAY, LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH \u2026) or BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD'. Google has no LAST_90_DAYS \u2014 use BETWEEN for any other window.",
584
+ required: false
585
+ },
586
+ "include-paused": {
587
+ type: "boolean",
588
+ description: "Include paused entities in preset results. Off by default: presets return only actually-serving entities. Google Ads has no single serving flag \u2014 an entity serves only when its whole chain (campaign, ad group, ad) is ENABLED, so recommendations should target serving entities unless the user asks about paused ones.",
589
+ required: false
590
+ },
591
+ limit: {
592
+ type: "number",
593
+ description: `Rows per page (default: the preset's page size, else 200; at most ${GOOGLE_ADS_QUERY_MAX_PAGE_SIZE}). A page size, not a cap: when more rows exist the read returns a cursor, and --all keeps paging.`,
594
+ required: false
595
+ },
596
+ "list-presets": { type: "boolean", description: "List all available query presets", required: false },
597
+ cursor: {
598
+ type: "string",
599
+ description: "Resume after a previous page: pass its pagination.cursor with the same query and --limit",
600
+ required: false
601
+ },
602
+ all: {
603
+ type: "boolean",
604
+ description: "Follow every page until the account has no more rows (use with --out for large reads). Needed for any read you will count or total. Only a LIMIT written in the GAQL itself can stop it early.",
605
+ required: false
606
+ },
607
+ out: {
608
+ type: "string",
609
+ description: "Write data to file (format from extension: .csv, .jsonl, .json)",
610
+ required: false
611
+ },
612
+ append: { type: "boolean", description: "Append to existing file (skip CSV headers)", required: false },
613
+ output: {
614
+ type: "string",
615
+ description: "Output format: json|csv|jsonl|md",
616
+ required: false,
617
+ default: "json",
618
+ enum: ["json", "csv", "jsonl", "md"]
619
+ },
620
+ "no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false },
621
+ full: {
622
+ type: "boolean",
623
+ description: "Include the field description glossary in the JSON envelope. Off by default \u2014 rows already carry the data; only ask for this when you need a field's meaning explained.",
624
+ required: false
625
+ }
626
+ }
627
+ });
628
+ function extractFields(rows) {
629
+ const keys = /* @__PURE__ */ new Set();
630
+ foldObservedFields(rows, keys);
631
+ return [...keys];
632
+ }
633
+ function resultColumns(gaql, rows) {
634
+ const observed = extractFields(rows);
635
+ const columns = [];
636
+ for (const field of parseSelectedFields(gaql)) {
637
+ const leaves = observed.filter((key) => key.startsWith(`${field}.`));
638
+ columns.push(...leaves.length > 0 ? leaves : [field]);
639
+ }
640
+ for (const key of observed) columns.push(key);
641
+ return [...new Set(columns)];
642
+ }
643
+ function isCsvPath(filePath) {
644
+ return filePath.split(".").pop()?.toLowerCase() === "csv";
645
+ }
646
+ function writeRowsToFile(filePath, rows, fields, append) {
647
+ if (isCsvPath(filePath)) {
648
+ if (!append || !existsSync(filePath)) {
649
+ writeFileSync(filePath, `${toCsvRow(fields)}
650
+ `, "utf-8");
651
+ }
652
+ const csvRows = rows.map((row) => toCsvRow(fields.map((f) => String(row[f] ?? ""))));
653
+ appendFileSync(filePath, `${csvRows.join("\n")}
654
+ `, "utf-8");
655
+ } else if (filePath.split(".").pop()?.toLowerCase() === "jsonl") {
656
+ const lines = rows.map((row) => JSON.stringify(row));
657
+ if (append && existsSync(filePath)) {
658
+ appendFileSync(filePath, `${lines.join("\n")}
659
+ `, "utf-8");
660
+ } else {
661
+ writeFileSync(filePath, `${lines.join("\n")}
662
+ `, "utf-8");
663
+ }
664
+ } else if (append && existsSync(filePath)) {
665
+ const existing = JSON.parse(readFileSync(filePath, "utf-8"));
666
+ writeFileSync(filePath, JSON.stringify([...existing, ...rows], null, 2), "utf-8");
667
+ } else {
668
+ writeFileSync(filePath, JSON.stringify(rows, null, 2), "utf-8");
669
+ }
670
+ }
671
+ function effectiveRowLimit(finalQuery) {
672
+ if (isSingleRowRead(finalQuery)) return void 0;
673
+ const match = finalQuery.match(/\bLIMIT\s+(\d+)/i);
674
+ return match?.[1] ? Number(match[1]) : void 0;
675
+ }
676
+ function warningLines(warnings, format) {
677
+ return warnings.map((w) => {
678
+ const message = w.message.replace(/\s*\n\s*/g, " ");
679
+ if (format === "jsonl") return JSON.stringify({ _baker_warning: { code: w.code, message } });
680
+ if (format === "md") return `> **${w.code}** \u2014 ${message}`;
681
+ return `# baker ${w.code}: ${message}`;
682
+ });
683
+ }
684
+ function completenessWarnings(read) {
685
+ const cap = read.effectiveLimit;
686
+ const filledTheCap = cap !== void 0 && cap > 0 && read.rowCount >= cap;
687
+ if (!read.hasMore && !filledTheCap) return [];
688
+ const [cause, fix] = read.hasMore ? [
689
+ "More rows are waiting: the account returned a next-page cursor this run did not follow.",
690
+ "Re-run with --all --out <file> to read every page, or pass --cursor <pagination.cursor> (same query, same --limit) for the next page."
691
+ ] : [
692
+ `The ${read.rowCount} rows returned exactly fill the LIMIT in the statement (${cap}).`,
693
+ `Raise the LIMIT in the statement above ${cap}, or drop it \u2014 without a LIMIT, --all pages through every row.`
694
+ ];
695
+ return [
696
+ {
697
+ code: "TRUNCATED_RESULTS",
698
+ message: `INCOMPLETE READ \u2014 ${cause} These rows are a page, not the data set. Don't count, total or describe them as the whole picture. ${fix}`
699
+ }
700
+ ];
701
+ }
702
+ function buildQueryEnvelope(rows, fieldDescs, warnings, options) {
703
+ const notice = summariseWarnings(warnings);
704
+ return {
705
+ ok: true,
706
+ ...options.cached ? { cached: true } : {},
707
+ ...warnings.length > 0 ? { warnings } : {},
708
+ ...options.nextCursor ? { pagination: { hasMore: true, cursor: options.nextCursor } } : {},
709
+ data: rows,
710
+ ...options.full && Object.keys(fieldDescs).length > 0 ? { fields: fieldDescs } : {},
711
+ ...notice ? { notice } : {}
712
+ };
713
+ }
714
+ function summariseWarnings(warnings) {
715
+ if (warnings.length === 0) return void 0;
716
+ const codes = [...new Set(warnings.map((w) => w.code))].join(", ");
717
+ return `Read the "warnings" above before using these rows: ${codes}.`;
718
+ }
719
+ function buildFileSummary(input) {
720
+ const notice = summariseWarnings(input.warnings);
721
+ return {
722
+ ok: true,
723
+ fields: {},
724
+ file: input.file,
725
+ rows: input.rows,
726
+ complete: input.complete,
727
+ ...input.warnings.length > 0 ? { warnings: input.warnings } : {},
728
+ ...notice ? { notice } : {}
729
+ };
730
+ }
731
+ var REPEAT_NOTICE_ABOVE_ROWS = 20;
732
+ function emitToStderr(notices) {
733
+ for (const line of notices) process.stderr.write(`${line}
734
+ `);
735
+ }
736
+ function writeLine(line) {
737
+ process.stdout.write(`${line}
738
+ `);
739
+ }
740
+ var writeCsvRows = (rows, fields, notices) => {
741
+ writeLine(toCsvRow(fields));
742
+ for (const line of notices) writeLine(line);
743
+ for (const row of rows) writeLine(toCsvRow(fields.map((f) => String(row[f] ?? ""))));
744
+ };
745
+ var writeJsonlRows = (rows, _fields, notices) => {
746
+ for (const line of notices) writeLine(line);
747
+ for (const row of rows) writeLine(JSON.stringify(row));
748
+ };
749
+ var OMITTED = "(omitted)";
750
+ var OMITTED_FALSE = `false ${OMITTED}`;
751
+ var OMITTED_LEGEND = `> ${OMITTED} = Google left this field off the row, which is how it sends false, 0 and "not set": the field WAS read. A field with no column here was not read.`;
752
+ function mdCell(row, field, booleanColumns) {
753
+ if (!(field in row)) return booleanColumns.has(field) ? OMITTED_FALSE : OMITTED;
754
+ return String(row[field] ?? "").replace(/\|/g, "\\|");
755
+ }
756
+ var writeMdRows = (rows, fields, notices) => {
757
+ const booleanColumns = new Set(fields.filter((f) => rows.some((row) => typeof row[f] === "boolean")));
758
+ for (const line of notices) writeLine(line);
759
+ writeLine(`| ${fields.join(" | ")} |`);
760
+ writeLine(`| ${fields.map(() => "---").join(" | ")} |`);
761
+ for (const row of rows) writeLine(`| ${fields.map((f) => mdCell(row, f, booleanColumns)).join(" | ")} |`);
762
+ if (rows.some((row) => fields.some((f) => !(f in row)))) writeLine(OMITTED_LEGEND);
763
+ };
764
+ var ROW_WRITERS = { csv: writeCsvRows, jsonl: writeJsonlRows, md: writeMdRows };
765
+ function writeRows(format, rows, columns, notices) {
766
+ const write = ROW_WRITERS[format] ?? writeMdRows;
767
+ write(rows, columns, notices);
768
+ if (rows.length > REPEAT_NOTICE_ABOVE_ROWS) {
769
+ for (const line of notices) writeLine(line);
770
+ }
771
+ }
772
+ function outputResults(rows, fieldDescs, warnings, args, cached, read) {
773
+ const format = args.output || "json";
774
+ const allWarnings = [
775
+ ...warnings,
776
+ ...completenessWarnings({
777
+ rowCount: rows.length,
778
+ effectiveLimit: read.effectiveLimit,
779
+ hasMore: Boolean(read.nextCursor)
780
+ })
781
+ ];
782
+ emitToStderr(warningLines(allWarnings, "csv"));
783
+ if (format === "json") {
784
+ writeAdsJson(
785
+ buildQueryEnvelope(rows, fieldDescs, allWarnings, {
786
+ full: Boolean(args.full),
787
+ cached,
788
+ nextCursor: read.nextCursor
789
+ })
790
+ );
791
+ return;
792
+ }
793
+ writeRows(format, rows, resultColumns(read.gaql, rows), warningLines(allWarnings, format));
794
+ }
795
+ function resolveGaqlInput(args) {
796
+ const positional = typeof args.query === "string" ? args.query.trim() : "";
797
+ const flag = typeof args.gaql === "string" ? args.gaql.trim() : "";
798
+ if (positional && flag && positional !== flag) {
799
+ return { ok: false, message: "Pass the GAQL statement once \u2014 as the positional or as --gaql, not both." };
800
+ }
801
+ return { ok: true, gaql: positional || flag };
802
+ }
803
+ function resolveGaql(args) {
804
+ if (args.preset) {
805
+ const preset = getPreset(args.preset);
806
+ if (!preset) {
807
+ const available = PRESETS.map((p) => p.name).join(", ");
808
+ writeAdsJson({
809
+ ok: false,
810
+ error: { code: "VALIDATION_ERROR", message: `Unknown preset: "${args.preset}". Available: ${available}` }
811
+ });
812
+ return null;
813
+ }
814
+ const campaigns = parseCampaignIds(args["campaign-id"]);
815
+ if (!campaigns.ok) {
816
+ writeAdsJson({ ok: false, error: campaigns.error });
817
+ return null;
818
+ }
819
+ const expanded = expandPreset(preset, {
820
+ dateRange: args["date-range"],
821
+ includePaused: Boolean(args["include-paused"]),
822
+ campaignIds: campaigns.ids
823
+ });
824
+ if (expanded.dateRangeError) {
825
+ writeAdsJson({
826
+ ok: false,
827
+ error: { code: "VALIDATION_ERROR", message: expanded.dateRangeError }
828
+ });
829
+ return null;
830
+ }
831
+ return expanded.query;
832
+ }
833
+ const input = resolveGaqlInput(args);
834
+ if (!input.ok || !input.gaql) {
835
+ writeAdsJson({
836
+ ok: false,
837
+ error: {
838
+ code: "VALIDATION_ERROR",
839
+ message: input.ok ? "Provide a GAQL query (positional or --gaql) or use --preset. Run --list-presets to see options." : input.message
840
+ }
841
+ });
842
+ return null;
843
+ }
844
+ return input.gaql;
845
+ }
846
+ var SERVING_HIERARCHY_RESOURCES = [
847
+ "campaign",
848
+ "ad_group",
849
+ "ad_group_ad",
850
+ "ad_group_criterion",
851
+ "keyword_view",
852
+ "search_term_view",
853
+ "shopping_performance_view",
854
+ "asset_group_asset"
855
+ ].filter((resource) => !(resource in SERVING_CHAINS));
856
+ function whereClause3(upperQuery) {
857
+ const whereIdx = upperQuery.indexOf(" WHERE ");
858
+ if (whereIdx === -1) return "";
859
+ let rest = upperQuery.slice(whereIdx + 7);
860
+ for (const trailing of [" ORDER BY ", " GROUP BY ", " LIMIT ", " PARAMETERS "]) {
861
+ const idx = rest.indexOf(trailing);
862
+ if (idx !== -1) rest = rest.slice(0, idx);
863
+ }
864
+ return rest;
865
+ }
866
+ function servingScopeWarnings(args, finalQuery) {
867
+ if (args.preset) {
868
+ const name = String(args.preset);
869
+ if (!args["include-paused"] || isInventoryPreset(name) || !getPreset(name)?.statusFields?.length) return [];
870
+ return [
871
+ {
872
+ code: "SERVING_SCOPE",
873
+ message: "Paused entities are included (--include-paused). Only recommend changes for actually-serving entities (enabled campaign, ad group, and ad) unless the user asked about paused ones."
874
+ }
875
+ ];
876
+ }
877
+ const upper = finalQuery.toUpperCase();
878
+ const fromMatch = upper.match(/\bFROM\s+([A-Z_]+)/);
879
+ const resource = fromMatch?.[1]?.toLowerCase();
880
+ const hierarchical = resource ? SERVING_HIERARCHY_RESOURCES.includes(resource) : false;
881
+ const filtersStatus = whereClause3(upper).includes(".STATUS");
882
+ if (hierarchical && !filtersStatus) {
883
+ return [
884
+ {
885
+ code: "SERVING_SCOPE",
886
+ message: "This query has no status filter, so it may return paused entities that aren't actually serving. Google Ads has no single serving flag \u2014 an entity serves only when its whole chain is ENABLED. Add campaign.status = 'ENABLED' AND ad_group.status = 'ENABLED' AND ad_group_ad.status = 'ENABLED' (as applicable), or use a --preset, unless you intend to include paused entities."
887
+ }
888
+ ];
889
+ }
890
+ return [];
891
+ }
892
+ function syncedCopyWarnings(args) {
893
+ const hint = googlePresetSyncedHint(typeof args.preset === "string" ? args.preset : void 0);
894
+ return hint ? [{ code: "SYNCED_COPY", message: hint }] : [];
895
+ }
896
+ function parseSelectedFields(gaql) {
897
+ const match = gaql.match(/\bSELECT\b([\s\S]*?)\bFROM\b/i);
898
+ const list = match?.[1];
899
+ if (!list) return [];
900
+ return list.split(",").map((field) => field.trim()).filter((field) => /^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z0-9_]+)*$/.test(field));
901
+ }
902
+ function foldObservedFields(rows, observed) {
903
+ for (const row of rows) {
904
+ for (const key of Object.keys(row)) observed.add(key);
905
+ }
906
+ }
907
+ function unobservedSelectedFields(gaql, rows) {
908
+ const observed = /* @__PURE__ */ new Set();
909
+ foldObservedFields(rows, observed);
910
+ return unobservedFields(gaql, observed);
911
+ }
912
+ function unobservedFields(gaql, observed) {
913
+ return parseSelectedFields(gaql).filter((field) => {
914
+ if (field.endsWith(".resource_name")) return false;
915
+ if (observed.has(field)) return false;
916
+ return ![...observed].some((key) => key.startsWith(`${field}.`));
917
+ });
918
+ }
919
+ function missingFieldWarnings(gaql, rows) {
920
+ const observed = /* @__PURE__ */ new Set();
921
+ foldObservedFields(rows, observed);
922
+ return missingFieldWarningsFor(gaql, observed, rows.length);
923
+ }
924
+ function missingFieldWarningsFor(gaql, observed, rowCount) {
925
+ if (rowCount === 0) return [];
926
+ const missing = unobservedFields(gaql, observed);
927
+ if (missing.length === 0) return [];
928
+ return [
929
+ {
930
+ code: "MISSING_FIELDS",
931
+ message: `These SELECTed fields came back on no row: ${missing.join(", ")}. Google Ads omits a field entirely when it has no value, so this does NOT mean the setting is empty \u2014 it means this read didn't observe it. Check the level that owns the setting before concluding it is unset.`
932
+ }
933
+ ];
934
+ }
935
+ function unwrittenColumnWarnings(header, observed) {
936
+ const written = new Set(header);
937
+ const unwritten = [...observed].filter((key) => !written.has(key));
938
+ if (unwritten.length === 0) return [];
939
+ return [
940
+ {
941
+ code: "UNWRITTEN_COLUMNS",
942
+ message: `The file has no column for ${unwritten.join(", ")}: the header was fixed on the first page, which carried none of them, so their values from later pages are NOT in the file. Do not read those columns as empty. SELECT these fields by name instead of their parent, or write to a .jsonl file, then re-run.`
943
+ }
944
+ ];
945
+ }
946
+ function keywordServingOptions(gaql) {
947
+ return { statusReasonsSelected: parseSelectedFields(gaql).includes("ad_group_criterion.primary_status_reasons") };
948
+ }
949
+ async function fetchAllPages(gaql, body, args, servingOptions) {
950
+ let allRows = [];
951
+ let pageToken = args.cursor;
952
+ let totalRowsWritten = 0;
953
+ let keywordLimits;
954
+ const observedFields = /* @__PURE__ */ new Set();
955
+ let fileColumns;
956
+ do {
957
+ const requestBody = { ...body };
958
+ if (pageToken) requestBody.pageToken = pageToken;
959
+ const response = await apiPost("/api/ads/google/query", requestBody);
960
+ const rows = response.rows ?? [];
961
+ pageToken = response.pageToken;
962
+ if (args.out) {
963
+ const shouldAppend = args.append || totalRowsWritten > 0;
964
+ fileColumns ??= resultColumns(gaql, rows);
965
+ writeRowsToFile(resolve(args.out), rows, fileColumns, shouldAppend);
966
+ totalRowsWritten += rows.length;
967
+ keywordLimits = collectKeywordLimits(rows, servingOptions, keywordLimits);
968
+ foldObservedFields(rows, observedFields);
969
+ } else {
970
+ allRows = allRows.concat(rows);
971
+ }
972
+ if (!args.all) break;
973
+ } while (pageToken);
974
+ return {
975
+ allRows,
976
+ lastPageToken: pageToken,
977
+ totalRowsWritten,
978
+ keywordLimits: keywordLimits ?? collectKeywordLimits([], servingOptions),
979
+ observedFields,
980
+ fileColumns: fileColumns ?? []
981
+ };
982
+ }
983
+ function pageCacheKey(customerId, query, pageSize, cursor) {
984
+ return buildQueryCacheKey(customerId, `${query}\0page=${pageSize}\0cursor=${cursor ?? ""}`);
985
+ }
986
+ async function executeQuery(finalQuery, args, customerId, limit, warnings, useCache, cacheKey) {
987
+ const body = { customerId, query: finalQuery, pageSize: limit };
988
+ const managerId = getManagerIdForCustomer(customerId);
989
+ if (managerId) body.managerId = managerId;
990
+ if (!useCache) body.skipCache = true;
991
+ const servingOptions = keywordServingOptions(finalQuery);
992
+ const { allRows, lastPageToken, totalRowsWritten, keywordLimits, observedFields, fileColumns } = await fetchAllPages(
993
+ finalQuery,
994
+ body,
995
+ args,
996
+ servingOptions
997
+ );
998
+ if (args.out) {
999
+ const truncation = completenessWarnings({
1000
+ rowCount: totalRowsWritten,
1001
+ effectiveLimit: effectiveRowLimit(finalQuery),
1002
+ hasMore: Boolean(lastPageToken)
1003
+ });
1004
+ const fileWarnings = [
1005
+ ...warnings,
1006
+ ...renderKeywordLimits(keywordLimits),
1007
+ ...missingFieldWarningsFor(finalQuery, observedFields, totalRowsWritten),
1008
+ // Only a CSV has a header to fall out of; json and jsonl files carry every row whole.
1009
+ ...isCsvPath(args.out) ? unwrittenColumnWarnings(fileColumns, observedFields) : [],
1010
+ ...conversionMixWarnings(finalQuery),
1011
+ ...moneyUnitWarnings(parseSelectedFields(finalQuery)),
1012
+ ...truncation
1013
+ ];
1014
+ emitToStderr(warningLines(fileWarnings, "csv"));
1015
+ writeAdsJson(
1016
+ buildFileSummary({
1017
+ file: resolve(args.out),
1018
+ rows: totalRowsWritten,
1019
+ warnings: fileWarnings,
1020
+ complete: truncation.length === 0
1021
+ })
1022
+ );
1023
+ return;
1024
+ }
1025
+ if (useCache && !args.all && allRows.length > 0) {
1026
+ const page = { rows: allRows, ...lastPageToken ? { cursor: lastPageToken } : {} };
1027
+ cacheSet("queries", cacheKey, page, getQueryTtl(finalQuery), getFieldDescriptions(extractFields(allRows)));
1028
+ }
1029
+ const fields = extractFields(allRows);
1030
+ outputResults(
1031
+ allRows,
1032
+ getFieldDescriptions(fields),
1033
+ [
1034
+ ...warnings,
1035
+ ...missingFieldWarnings(finalQuery, allRows),
1036
+ ...keywordServingWarnings(allRows, servingOptions),
1037
+ ...conversionMixWarnings(finalQuery),
1038
+ ...moneyUnitWarnings(resultColumns(finalQuery, allRows))
1039
+ ],
1040
+ args,
1041
+ false,
1042
+ {
1043
+ gaql: finalQuery,
1044
+ effectiveLimit: effectiveRowLimit(finalQuery),
1045
+ nextCursor: lastPageToken
1046
+ }
1047
+ );
1048
+ }
1049
+ function shouldReadCache(args) {
1050
+ return !args["no-cache"] && !args.out && !args.all;
1051
+ }
1052
+ var DEFAULT_QUERY_LIMIT = 200;
1053
+ function parseQueryLimit(raw, fallback = DEFAULT_QUERY_LIMIT) {
1054
+ if (raw === void 0 || raw === null || raw === "") return { ok: true, limit: fallback };
1055
+ const limit = Number(raw);
1056
+ if (Number.isInteger(limit) && limit >= 1 && limit <= GOOGLE_ADS_QUERY_MAX_PAGE_SIZE) return { ok: true, limit };
1057
+ return {
1058
+ ok: false,
1059
+ error: {
1060
+ ok: false,
1061
+ error: {
1062
+ code: "VALIDATION_ERROR",
1063
+ message: `--limit must be a whole number from 1 to ${GOOGLE_ADS_QUERY_MAX_PAGE_SIZE}, got '${String(raw)}'.`,
1064
+ fix: {
1065
+ action: "retry_with_flag",
1066
+ explanation: `--limit is the size of one page, at most ${GOOGLE_ADS_QUERY_MAX_PAGE_SIZE} rows. For more rows, keep the page size and add --all --out <file>: it reads every page.`
1067
+ },
1068
+ retryable: false
1069
+ }
1070
+ }
1071
+ };
1072
+ }
1073
+ function queryPageSize(args) {
1074
+ const preset = typeof args.preset === "string" ? getPreset(args.preset) : void 0;
1075
+ return parseQueryLimit(args.limit, preset?.defaultLimit ?? DEFAULT_QUERY_LIMIT);
1076
+ }
1077
+ async function validateArgs(args) {
1078
+ const parsedLimit = queryPageSize(args);
1079
+ if (!parsedLimit.ok) {
1080
+ writeAdsJson(parsedLimit.error);
1081
+ process.exit(1);
1082
+ }
1083
+ const { limit } = parsedLimit;
1084
+ const customerId = await resolveCustomerId(args);
1085
+ const gaql = resolveGaql(args);
1086
+ if (!gaql) {
1087
+ process.exit(1);
1088
+ }
1089
+ const preflight = validatePreflight(gaql, customerId);
1090
+ if (!preflight.valid && preflight.error) {
1091
+ writeAdsJson(preflight.error);
1092
+ process.exit(1);
1093
+ }
1094
+ const finalQuery = preflight.correctedQuery ?? gaql;
1095
+ return {
1096
+ customerId,
1097
+ limit,
1098
+ finalQuery,
1099
+ warnings: [...preflight.warnings, ...servingScopeWarnings(args, finalQuery), ...syncedCopyWarnings(args)],
1100
+ useCache: !args["no-cache"],
1101
+ cacheKey: pageCacheKey(customerId, finalQuery, limit, args.cursor)
1102
+ };
1103
+ }
1104
+ function handleQueryError(err, finalQuery, customerId) {
1105
+ if (err instanceof ApiError) {
1106
+ const envelope = parseApiError(err.message, finalQuery, customerId, err.code);
1107
+ envelope.error.gaqlExecuted = finalQuery;
1108
+ writeAdsJson(envelope);
1109
+ process.exit(1);
1110
+ }
1111
+ writeAdsJson({
1112
+ ok: false,
1113
+ error: {
1114
+ code: "NETWORK_ERROR",
1115
+ message: err instanceof Error ? err.message : "Unexpected error",
1116
+ fix: { action: "wait_and_retry", explanation: "Network error \u2014 check connectivity and retry" },
1117
+ retryable: true,
1118
+ gaqlExecuted: finalQuery
1119
+ }
1120
+ });
1121
+ process.exit(1);
1122
+ }
1123
+ async function runQuery(args) {
1124
+ const validated = await validateArgs(args);
1125
+ if (!validated) return;
1126
+ const { customerId, limit, finalQuery, warnings, useCache, cacheKey } = validated;
1127
+ if (shouldReadCache(args)) {
1128
+ const cached = cacheGet("queries", cacheKey);
1129
+ if (cached && Array.isArray(cached.data.rows)) {
1130
+ const rows = cached.data.rows;
1131
+ outputResults(
1132
+ rows,
1133
+ cached.fields ?? getFieldDescriptions(extractFields(rows)),
1134
+ [
1135
+ ...warnings,
1136
+ ...missingFieldWarnings(finalQuery, rows),
1137
+ ...keywordServingWarnings(rows, keywordServingOptions(finalQuery)),
1138
+ ...conversionMixWarnings(finalQuery),
1139
+ ...moneyUnitWarnings(resultColumns(finalQuery, rows))
1140
+ ],
1141
+ args,
1142
+ true,
1143
+ { gaql: finalQuery, effectiveLimit: effectiveRowLimit(finalQuery), nextCursor: cached.data.cursor }
1144
+ );
1145
+ return;
1146
+ }
1147
+ }
1148
+ try {
1149
+ await executeQuery(finalQuery, args, customerId, limit, warnings, useCache, cacheKey);
1150
+ } catch (err) {
1151
+ handleQueryError(err, finalQuery, customerId);
1152
+ }
1153
+ }
1154
+ var queryCommand = defineCommand({
1155
+ meta: {
1156
+ name: "query",
1157
+ description: `Run GAQL against Google Ads, one page at a time. Supports raw GAQL, presets, paging, file export, and caching.
1158
+
1159
+ Start here:
1160
+ baker ads google query --list-presets
1161
+ baker ads google query --preset campaign-performance --customer-id 1234567890
1162
+
1163
+ Each read returns one page (--limit rows; the preset's page size by default, else 200). When the
1164
+ account holds more, the envelope carries pagination.cursor: pass it with --cursor for the next page,
1165
+ or read everything with --all --out <file>. A LIMIT written in the GAQL caps the whole read.
1166
+
1167
+ Examples:
1168
+ baker ads google query "SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date DURING LAST_7_DAYS" --customer-id 1234567890
1169
+ baker ads google query --gaql "SELECT ad_group.name FROM ad_group WHERE ad_group.status = 'ENABLED'" --customer-id 1234567890
1170
+ baker ads google query --preset search-terms --customer-id 1234567890 --date-range LAST_7_DAYS --all --out terms.csv
1171
+ baker ads google query --preset keyword-serving --customer-id 1234567890 --cursor <pagination.cursor>`
1172
+ },
1173
+ args: {
1174
+ query: { type: "positional", description: "GAQL SELECT statement", required: false },
1175
+ gaql: {
1176
+ type: "string",
1177
+ description: "GAQL SELECT statement as a flag (instead of the positional)",
1178
+ required: false
1179
+ },
1180
+ "customer-id": { type: "string", description: "Google Ads customer ID (10 digits, no dashes)", required: false },
1181
+ preset: { type: "string", description: "Named query preset", required: false },
1182
+ "date-range": { type: "string", description: "Date range override for presets", required: false },
1183
+ "include-paused": {
1184
+ type: "boolean",
1185
+ description: "Include paused entities in preset results (default: serving entities only)",
1186
+ required: false
1187
+ },
1188
+ limit: {
1189
+ type: "string",
1190
+ description: "Rows per page (default: the preset's page size, else 200)",
1191
+ required: false
1192
+ },
1193
+ "list-presets": { type: "boolean", description: "List available presets", required: false },
1194
+ cursor: { type: "string", description: "pagination.cursor from the previous page", required: false },
1195
+ all: { type: "boolean", description: "Follow every page (use with --out for large reads)", required: false },
1196
+ out: { type: "string", description: "File path for output", required: false },
1197
+ append: { type: "boolean", description: "Append to file", required: false },
1198
+ output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" },
1199
+ "no-cache": { type: "boolean", description: "Skip cache", required: false },
1200
+ full: { type: "boolean", description: "Include the field description glossary", required: false }
1201
+ },
1202
+ run: async ({ args }) => {
1203
+ if (args["list-presets"]) {
1204
+ writeAdsJson({
1205
+ ok: true,
1206
+ data: PRESETS.map((p) => ({
1207
+ name: p.name,
1208
+ description: p.description,
1209
+ defaultDateRange: p.defaultDateRange,
1210
+ pageSize: p.defaultLimit,
1211
+ servingOnly: (p.statusFields?.length ?? 0) > 0,
1212
+ gaql: expandPreset(p, {}).query
1213
+ }))
1214
+ });
1215
+ return;
1216
+ }
1217
+ await runQuery(args);
1218
+ }
1219
+ });
1220
+
1221
+ export {
1222
+ resultColumns,
1223
+ effectiveRowLimit,
1224
+ warningLines,
1225
+ completenessWarnings,
1226
+ buildQueryEnvelope,
1227
+ summariseWarnings,
1228
+ buildFileSummary,
1229
+ outputResults,
1230
+ resolveGaqlInput,
1231
+ servingScopeWarnings,
1232
+ parseSelectedFields,
1233
+ unobservedSelectedFields,
1234
+ unobservedFields,
1235
+ missingFieldWarnings,
1236
+ missingFieldWarningsFor,
1237
+ unwrittenColumnWarnings,
1238
+ keywordServingOptions,
1239
+ pageCacheKey,
1240
+ shouldReadCache,
1241
+ parseQueryLimit,
1242
+ queryPageSize,
1243
+ runQuery,
1244
+ queryCommand
1245
+ };
1246
+ //# sourceMappingURL=chunk-OWEON2S7.js.map