@koda-sl/baker-cli 0.447.0-dev.f5788a631 → 0.447.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 (870) hide show
  1. package/README.md +14 -10
  2. package/dist/account-2ZMZFPIU.js +79 -0
  3. package/dist/account-F6MHQ64I.js +80 -0
  4. package/dist/account-writes-ISE4U2FQ.js +66 -0
  5. package/dist/accounts-RHGN5WMU.js +611 -0
  6. package/dist/accounts-VINHZRWA.js +77 -0
  7. package/dist/actions-5F4ZP6M4.js +55 -0
  8. package/dist/ad-group-writes-UU5NNKSO.js +170 -0
  9. package/dist/ad-groups-CGFXZNIA.js +68 -0
  10. package/dist/ad-writes-NALDYWOR.js +174 -0
  11. package/dist/add-KBPMSK2P.js +104 -0
  12. package/dist/add-OGH4DZZ5.js +280 -0
  13. package/dist/ads-56OWZBXZ.js +40 -0
  14. package/dist/ads-H7GH7A26.js +113 -0
  15. package/dist/ads-PV7GZXPR.js +77 -0
  16. package/dist/adsets-H7QT42U6.js +176 -0
  17. package/dist/advertisers-PM4WPG4N.js +120 -0
  18. package/dist/advertisers-PM4WPG4N.js.map +1 -0
  19. package/dist/analytics-5FALU2GL.js +433 -0
  20. package/dist/analytics-JVZKN735.js +1958 -0
  21. package/dist/animate-FWWHSYPL.js +480 -0
  22. package/dist/assign-KLYZ6USE.js +77 -0
  23. package/dist/audience-size-JHB42DB4.js +94 -0
  24. package/dist/audiences-JACGRBNN.js +78 -0
  25. package/dist/audiences-VEKGLWBG.js +268 -0
  26. package/dist/audit-5XH7WZIM.js +151 -0
  27. package/dist/autocomplete-7F3PZLEY.js +111 -0
  28. package/dist/autocomplete-7F3PZLEY.js.map +1 -0
  29. package/dist/avatars-N4SRNQI7.js +38 -0
  30. package/dist/bid-pricing-VYLVGU26.js +99 -0
  31. package/dist/brand-ASBS2HZM.js +22 -0
  32. package/dist/brief-JSZKDPGU.js +477 -0
  33. package/dist/brief-JSZKDPGU.js.map +1 -0
  34. package/dist/campaign-groups-ATE2DE4V.js +95 -0
  35. package/dist/campaign-writes-ETT57KLQ.js +165 -0
  36. package/dist/campaign-writes-SX52CJYW.js +170 -0
  37. package/dist/campaigns-FGBAS6AZ.js +107 -0
  38. package/dist/campaigns-J6VZBIV6.js +109 -0
  39. package/dist/campaigns-WBEG5QA4.js +110 -0
  40. package/dist/campaigns-X3DPCCSN.js +76 -0
  41. package/dist/canvas-K7IN7HLO.js +46 -0
  42. package/dist/capabilities-RDAERPYY.js +144 -0
  43. package/dist/catalog-MENVHL5U.js +65 -0
  44. package/dist/catalog-MENVHL5U.js.map +1 -0
  45. package/dist/catalogs-G3YEVG6S.js +128 -0
  46. package/dist/changes-TP7ZZHB3.js +135 -0
  47. package/dist/chatgpt-QNUN63YS.js +47 -0
  48. package/dist/chats-YIAQGQ3X.js +262 -0
  49. package/dist/chunk-2GK33EJV.js +382 -0
  50. package/dist/chunk-35XWJEWH.js +274 -0
  51. package/dist/chunk-3CWL2LY4.js +206 -0
  52. package/dist/chunk-3CWL2LY4.js.map +1 -0
  53. package/dist/chunk-4NBVGARW.js +1079 -0
  54. package/dist/chunk-5R5ADJ47.js +2880 -0
  55. package/dist/chunk-5R5ADJ47.js.map +1 -0
  56. package/dist/chunk-65RIB7A6.js +592 -0
  57. package/dist/chunk-6DB2B3GF.js +175 -0
  58. package/dist/chunk-7SDFKGQ4.js +363 -0
  59. package/dist/chunk-ACANMASG.js +19 -0
  60. package/dist/chunk-ALTBBAYU.js +96 -0
  61. package/dist/chunk-ANCSKUWI.js +433 -0
  62. package/dist/chunk-AWMFUGVX.js +160 -0
  63. package/dist/chunk-AWMFUGVX.js.map +1 -0
  64. package/dist/chunk-BA7FDXQC.js +197 -0
  65. package/dist/chunk-BNCW67EM.js +534 -0
  66. package/dist/chunk-BSC33FLJ.js +217 -0
  67. package/dist/chunk-CHSNHVYF.js +3182 -0
  68. package/dist/chunk-CHSNHVYF.js.map +1 -0
  69. package/dist/chunk-DKGTQSLR.js +310 -0
  70. package/dist/chunk-DR34ZTWD.js +207 -0
  71. package/dist/chunk-E4MDJBLO.js +163 -0
  72. package/dist/chunk-EH4C4CZK.js +455 -0
  73. package/dist/chunk-FXED3VZK.js +174 -0
  74. package/dist/chunk-G7UTTEBS.js +337 -0
  75. package/dist/chunk-GATKK4RJ.js +440 -0
  76. package/dist/chunk-GATKK4RJ.js.map +1 -0
  77. package/dist/chunk-GIJT3A5U.js +166 -0
  78. package/dist/chunk-GX6VAHY7.js +830 -0
  79. package/dist/chunk-HIPDMQZ6.js +136 -0
  80. package/dist/chunk-HQSCJYZO.js +26 -0
  81. package/dist/chunk-HZ5DR5MX.js +51 -0
  82. package/dist/chunk-I4NEHDSD.js +813 -0
  83. package/dist/chunk-I4NEHDSD.js.map +1 -0
  84. package/dist/chunk-IM52NHGL.js +390 -0
  85. package/dist/chunk-JF47LEPU.js +5163 -0
  86. package/dist/chunk-JF47LEPU.js.map +1 -0
  87. package/dist/chunk-K3PN7TN5.js +84 -0
  88. package/dist/chunk-KBP7WJQB.js +446 -0
  89. package/dist/chunk-KBP7WJQB.js.map +1 -0
  90. package/dist/chunk-KLBTXETO.js +23992 -0
  91. package/dist/chunk-KLBTXETO.js.map +1 -0
  92. package/dist/chunk-KNWHUMVZ.js +4381 -0
  93. package/dist/chunk-KNWHUMVZ.js.map +1 -0
  94. package/dist/chunk-KQTYTCKQ.js +98 -0
  95. package/dist/chunk-LIQ4SQ2T.js +150 -0
  96. package/dist/chunk-LW4VSTL5.js +304 -0
  97. package/dist/chunk-LW4VSTL5.js.map +1 -0
  98. package/dist/chunk-MADAAZZV.js +169 -0
  99. package/dist/chunk-MLU6STIN.js +66 -0
  100. package/dist/chunk-NDXBU22S.js +6145 -0
  101. package/dist/chunk-NDXBU22S.js.map +1 -0
  102. package/dist/chunk-NE4F3FHN.js +1854 -0
  103. package/dist/chunk-NE4F3FHN.js.map +1 -0
  104. package/dist/chunk-OTFHEHIU.js +1706 -0
  105. package/dist/chunk-OTFHEHIU.js.map +1 -0
  106. package/dist/chunk-PDTB5EX6.js +57 -0
  107. package/dist/chunk-SB3GZFCV.js +622 -0
  108. package/dist/chunk-T3BDNJIX.js +494 -0
  109. package/dist/chunk-TEINLN64.js +649 -0
  110. package/dist/chunk-TEINLN64.js.map +1 -0
  111. package/dist/chunk-TIOQ7ZFQ.js +496 -0
  112. package/dist/chunk-U3HAMW5W.js +133 -0
  113. package/dist/chunk-U6SYRIOB.js +486 -0
  114. package/dist/chunk-UC6BWM5J.js +159 -0
  115. package/dist/chunk-ULJ5RFOV.js +76 -0
  116. package/dist/chunk-VAISMQQB.js +346 -0
  117. package/dist/chunk-VB6WJJR3.js +1830 -0
  118. package/dist/chunk-VB6WJJR3.js.map +1 -0
  119. package/dist/chunk-VDHQJ6HD.js +23 -0
  120. package/dist/chunk-VMDAXFRI.js +111 -0
  121. package/dist/chunk-WNFIJAUO.js +98 -0
  122. package/dist/chunk-WNFIJAUO.js.map +1 -0
  123. package/dist/chunk-XCM6XWOB.js +417 -0
  124. package/dist/chunk-XMD4SHFI.js +60 -0
  125. package/dist/chunk-Y6QAJNKP.js +1411 -0
  126. package/dist/chunk-YBP7O5P4.js +103 -0
  127. package/dist/chunk-YC2TQ3VC.js +297 -0
  128. package/dist/chunk-YPZYOJP6.js +6664 -0
  129. package/dist/chunk-YPZYOJP6.js.map +1 -0
  130. package/dist/chunk-ZPU3WDVK.js +92 -0
  131. package/dist/claim-V4F5GZJK.js +197 -0
  132. package/dist/cli.js +29 -29
  133. package/dist/companies-NJGJ7XNN.js +195 -0
  134. package/dist/complete-MGNF5OAK.js +81 -0
  135. package/dist/connect-PJOTRTT4.js +36 -0
  136. package/dist/conversation-4DM26FRD.js +93 -0
  137. package/dist/conversion-report-N4HANYOB.js +125 -0
  138. package/dist/conversion-upload-command-TZTHU2CD.js +438 -0
  139. package/dist/conversion-writes-LW4HQKK5.js +120 -0
  140. package/dist/conversions-JGECVZSY.js +135 -0
  141. package/dist/conversions-TS723AZV.js +76 -0
  142. package/dist/countries-ESAKTQAE.js +82 -0
  143. package/dist/create-DSGQFBI7.js +207 -0
  144. package/dist/create-I2KVDTCQ.js +59 -0
  145. package/dist/create-SBQWVLXG.js +130 -0
  146. package/dist/create-WOHPIGBK.js +235 -0
  147. package/dist/creatives-4JGVZQGC.js +182 -0
  148. package/dist/creatives-DWO5KEQC.js +51 -0
  149. package/dist/creatives-PSWCNY7U.js +87 -0
  150. package/dist/credentials-UULYCN2L.js +1055 -0
  151. package/dist/credentials-UULYCN2L.js.map +1 -0
  152. package/dist/critique-NGMZK5LX.js +213 -0
  153. package/dist/critique-NGMZK5LX.js.map +1 -0
  154. package/dist/critique-TIZJ5GFM.js +1449 -0
  155. package/dist/crm-2WAR565U.js +224 -0
  156. package/dist/crm-VDXUO2YU.js +318 -0
  157. package/dist/currency-XCGKQ7FE.js +88 -0
  158. package/dist/custom-conversions-6P555U2K.js +125 -0
  159. package/dist/customers-ATENMXDO.js +56 -0
  160. package/dist/delete-AVMZYNVT.js +54 -0
  161. package/dist/delete-H744GNS4.js +63 -0
  162. package/dist/delete-OEYPFATY.js +66 -0
  163. package/dist/demographics-M5LJF3RZ.js +138 -0
  164. package/dist/discard-72I6SM7G.js +66 -0
  165. package/dist/discover-BJPZNXUQ.js +172 -0
  166. package/dist/domain-R4EIZD2W.js +98 -0
  167. package/dist/draft-34C3F5U4.js +217 -0
  168. package/dist/draft-BBFJNZ5X.js +328 -0
  169. package/dist/draft-BV2QRPZ4.js +107 -0
  170. package/dist/draft-THPZFASM.js +281 -0
  171. package/dist/draft-YYYRWF7M.js +306 -0
  172. package/dist/engine/index.d.ts +0 -12
  173. package/dist/engine/index.js +6 -7
  174. package/dist/facets-F2H52MS4.js +114 -0
  175. package/dist/feedback-IQKKT4MC.js +66 -0
  176. package/dist/feedback-IQKKT4MC.js.map +1 -0
  177. package/dist/feedback-record-UZV4Y7UD.js +175 -0
  178. package/dist/feedback-record-UZV4Y7UD.js.map +1 -0
  179. package/dist/fetch-ZUAZPLAE.js +176 -0
  180. package/dist/fetch-ZUAZPLAE.js.map +1 -0
  181. package/dist/fit-2CA4JH7N.js +45 -0
  182. package/dist/flows-CWXCXEUD.js +244 -0
  183. package/dist/follow-FN7LV3WV.js +82 -0
  184. package/dist/follow-competitors-MKXFHLXB.js +131 -0
  185. package/dist/fonts-F2XUCIIW.js +34 -0
  186. package/dist/forecast-IDKJYM2B.js +104 -0
  187. package/dist/funnel-RLGQGYKO.js +837 -0
  188. package/dist/generate-MMBYB44G.js +262 -0
  189. package/dist/get-C6UQ22HH.js +54 -0
  190. package/dist/get-EEUR6SAW.js +78 -0
  191. package/dist/google-35GDU3G3.js +1872 -0
  192. package/dist/google-35GDU3G3.js.map +1 -0
  193. package/dist/google-ads-Q37I2D5P.js +195 -0
  194. package/dist/google-ads-Q37I2D5P.js.map +1 -0
  195. package/dist/history-4II5QA4B.js +133 -0
  196. package/dist/history-DBIEYQHY.js +67 -0
  197. package/dist/hubspot-TTITJFBO.js +779 -0
  198. package/dist/ideas-V4Q6JDKV.js +32 -0
  199. package/dist/images-SP5REF6E.js +90 -0
  200. package/dist/ingest-574GIFAR.js +107 -0
  201. package/dist/ingest-IC4T76W6.js +23 -0
  202. package/dist/insights-ZIU6FJMS.js +122 -0
  203. package/dist/inspect-ATHYY6A2.js +189 -0
  204. package/dist/inspiration-P265QJ2H.js +53 -0
  205. package/dist/intent-E3UIVZBN.js +95 -0
  206. package/dist/keyword-gap-BG6M665A.js +130 -0
  207. package/dist/keyword-metrics-J4UPUDN7.js +197 -0
  208. package/dist/keywords-for-site-MWADFEO2.js +128 -0
  209. package/dist/keywords-for-site-MWADFEO2.js.map +1 -0
  210. package/dist/landing-R6DN7XLK.js +28 -0
  211. package/dist/languages-HORKPDNH.js +40 -0
  212. package/dist/languages-JSGWCC7Z.js +55 -0
  213. package/dist/leads-7EVHMNUF.js +293 -0
  214. package/dist/leads-JM6HUERX.js +90 -0
  215. package/dist/learn-LGS2F5TR.js +203 -0
  216. package/dist/learn-LGS2F5TR.js.map +1 -0
  217. package/dist/lighthouse-6ZC45E53.js +75 -0
  218. package/dist/line-item-writes-KUYEXSIH.js +208 -0
  219. package/dist/line-items-GIWLP3FL.js +103 -0
  220. package/dist/link-PVM7XJQI.js +64 -0
  221. package/dist/linkedin-WX54EAX6.js +1008 -0
  222. package/dist/list-4ZKQZBCL.js +151 -0
  223. package/dist/list-MCEFXC6L.js +63 -0
  224. package/dist/list-WR7QYTON.js +303 -0
  225. package/dist/locations-74TPQWAT.js +67 -0
  226. package/dist/locations-J4G5RNPH.js +40 -0
  227. package/dist/log-U6IWZGOF.js +92 -0
  228. package/dist/make-RXFHEGUI.js +593 -0
  229. package/dist/make-RXFHEGUI.js.map +1 -0
  230. package/dist/map-TWL7T4KP.js +404 -0
  231. package/dist/mcp-HVAVJGGS.js +476 -0
  232. package/dist/media-M7E6V2XU.js +15 -0
  233. package/dist/media-sources-JWGO23BZ.js +32 -0
  234. package/dist/members-5FAW4YE7.js +44 -0
  235. package/dist/meta-EZ4SY25M.js +69 -0
  236. package/dist/metrics-SQDJ5NQO.js +152 -0
  237. package/dist/models-7U3GRYHF.js +155 -0
  238. package/dist/normalize-GW4GZNVY.js +138 -0
  239. package/dist/options-NSUCENLU.js +121 -0
  240. package/dist/performance-FGCDWHMC.js +24 -0
  241. package/dist/pixels-45A55MOP.js +60 -0
  242. package/dist/promoted-tweet-writes-BPWTDESL.js +180 -0
  243. package/dist/promoted-tweets-OS3NHYVE.js +119 -0
  244. package/dist/publish-SXZEWBVJ.js +322 -0
  245. package/dist/query-IEZRY6HV.js +1341 -0
  246. package/dist/reddit-TF6K37SB.js +26 -0
  247. package/dist/refresh-APVDWXRZ.js +94 -0
  248. package/dist/release-32SEJU4L.js +60 -0
  249. package/dist/relevant-pages-OWMNUCP7.js +99 -0
  250. package/dist/remove-U64GTHLQ.js +50 -0
  251. package/dist/reopen-5VS233SF.js +63 -0
  252. package/dist/rerun-7Z45QOOO.js +85 -0
  253. package/dist/rerun-7Z45QOOO.js.map +1 -0
  254. package/dist/research-O7CJV5IS.js +62 -0
  255. package/dist/research-O7CJV5IS.js.map +1 -0
  256. package/dist/research-QYSQ6LW4.js +262 -0
  257. package/dist/reset-22FC7BXQ.js +54 -0
  258. package/dist/reset-47B5VPT4.js +54 -0
  259. package/dist/resolve-7KQGVTQT.js +121 -0
  260. package/dist/retry-J5UVLS72.js +62 -0
  261. package/dist/retry-UJ5UF4BM.js +60 -0
  262. package/dist/run-SI4FA32F.js +65 -0
  263. package/dist/run-TFLFBQU2.js +60 -0
  264. package/dist/scaffold-ad-SEXNE2K6.js +1549 -0
  265. package/dist/scaffold-ad-SEXNE2K6.js.map +1 -0
  266. package/dist/scaffold-static-ad-VBOL6CLN.js +966 -0
  267. package/dist/scaffold-static-ad-VBOL6CLN.js.map +1 -0
  268. package/dist/scaffold-video-Z37MIBDI.js +873 -0
  269. package/dist/scaffold-video-Z37MIBDI.js.map +1 -0
  270. package/dist/schedule-52ZM4KRQ.js +61 -0
  271. package/dist/scheduled-agents-PCWCQAKP.js +49 -0
  272. package/dist/schema-FY6ORDXZ.js +129 -0
  273. package/dist/search-NS7XNRZC.js +174 -0
  274. package/dist/search-UO5KJTYS.js +26 -0
  275. package/dist/select-4XCYVV2G.js +94 -0
  276. package/dist/select-4XCYVV2G.js.map +1 -0
  277. package/dist/set-prompt-TRJBYA3D.js +186 -0
  278. package/dist/set-prompt-TRJBYA3D.js.map +1 -0
  279. package/dist/setup-links-V3URI7DL.js +141 -0
  280. package/dist/site-WIQ7SSU3.js +177 -0
  281. package/dist/sources-DWJXOLEH.js +421 -0
  282. package/dist/sources-L453U5MT.js +30 -0
  283. package/dist/stale-6OVG6VME.js +63 -0
  284. package/dist/stale-6OVG6VME.js.map +1 -0
  285. package/dist/status-WXWU54WR.js +62 -0
  286. package/dist/studio-C5K3YX3P.js +49 -0
  287. package/dist/sync-CDZUTGV3.js +54 -0
  288. package/dist/sync-definition-BAJQUBE3.js +53 -0
  289. package/dist/tag-manager-DYZUOIAS.js +43 -0
  290. package/dist/tags-6RY23XOG.js +20 -0
  291. package/dist/tags-BHFQWNPL.js +224 -0
  292. package/dist/tags-SG3NVC3J.js +26 -0
  293. package/dist/tags-VN5HTL35.js +20 -0
  294. package/dist/tags-WR6PDIDR.js +20 -0
  295. package/dist/targeting-criteria-5EXP2NXF.js +113 -0
  296. package/dist/targets-WUVEJPSD.js +102 -0
  297. package/dist/templates-LOJQX2NG.js +178 -0
  298. package/dist/testimonials-6M5DXORT.js +32 -0
  299. package/dist/top-companies-E2OMMPSV.js +108 -0
  300. package/dist/translate-AW4CUKDA.js +598 -0
  301. package/dist/translate-AW4CUKDA.js.map +1 -0
  302. package/dist/triggers-MRXIDCSN.js +141 -0
  303. package/dist/unlink-HNL747YM.js +67 -0
  304. package/dist/unstage-OL2JDCLK.js +84 -0
  305. package/dist/update-4KGIT4BF.js +142 -0
  306. package/dist/update-JPBUF7M2.js +98 -0
  307. package/dist/update-RTTC3SAK.js +155 -0
  308. package/dist/update-YNNRX5B2.js +63 -0
  309. package/dist/upload-UIXPCSXJ.js +126 -0
  310. package/dist/url-options-GGXAL3J4.js +127 -0
  311. package/dist/url-params-K47CE7Y5.js +98 -0
  312. package/dist/validate-TD2BY4VE.js +89 -0
  313. package/dist/validate-TD2BY4VE.js.map +1 -0
  314. package/dist/videos-BP3BKNTY.js +39 -0
  315. package/dist/viewer-check-HFRUJ4ZU.js +69 -0
  316. package/dist/web-RPSGFN4U.js +140 -0
  317. package/dist/web-RPSGFN4U.js.map +1 -0
  318. package/dist/winning-ads-WUENRDVJ.js +62 -0
  319. package/dist/write-commands-4WARNR2T.js +1015 -0
  320. package/dist/write-commands-TAYGTJEZ.js +737 -0
  321. package/dist/x-VZCELH3P.js +47 -0
  322. package/package.json +1 -1
  323. package/dist/account-4H7QVBRK.js +0 -80
  324. package/dist/account-PCEZQUK7.js +0 -79
  325. package/dist/account-writes-AK42HGRM.js +0 -66
  326. package/dist/accounts-5AXLYU7P.js +0 -77
  327. package/dist/accounts-OSXDZZLY.js +0 -611
  328. package/dist/actions-HM4VVTGW.js +0 -55
  329. package/dist/ad-group-writes-QQS4223F.js +0 -170
  330. package/dist/ad-groups-WGPDPUI2.js +0 -68
  331. package/dist/ad-writes-XE2IE4DS.js +0 -174
  332. package/dist/add-4J2EF54O.js +0 -104
  333. package/dist/add-VZAY57M4.js +0 -280
  334. package/dist/ads-6UEDYT3O.js +0 -113
  335. package/dist/ads-BCOSQALY.js +0 -77
  336. package/dist/ads-NUME2UXH.js +0 -40
  337. package/dist/adsets-Q5DWGANV.js +0 -176
  338. package/dist/advertisers-WSNHNCBQ.js +0 -116
  339. package/dist/advertisers-WSNHNCBQ.js.map +0 -1
  340. package/dist/analytics-PHU7H5VY.js +0 -433
  341. package/dist/analytics-QTR2ZITZ.js +0 -1958
  342. package/dist/animate-3Z7HXOLE.js +0 -480
  343. package/dist/assign-IIAVNATI.js +0 -77
  344. package/dist/audience-size-2L7XMYJL.js +0 -94
  345. package/dist/audiences-AMRFZRZ7.js +0 -78
  346. package/dist/audiences-TGD5US2M.js +0 -268
  347. package/dist/audit-ZCUFJLUG.js +0 -151
  348. package/dist/autocomplete-6PYFCOMX.js +0 -107
  349. package/dist/autocomplete-6PYFCOMX.js.map +0 -1
  350. package/dist/avatars-OEK3FYKK.js +0 -38
  351. package/dist/bid-pricing-FDW3IY6G.js +0 -99
  352. package/dist/brand-OXYFSNA5.js +0 -22
  353. package/dist/brief-TBSXPEXI.js +0 -478
  354. package/dist/brief-TBSXPEXI.js.map +0 -1
  355. package/dist/campaign-groups-5GCFQT2W.js +0 -95
  356. package/dist/campaign-writes-3SJQSCUK.js +0 -165
  357. package/dist/campaign-writes-SXLZFYF6.js +0 -170
  358. package/dist/campaigns-7QDDWZ76.js +0 -107
  359. package/dist/campaigns-D6B6Z67Y.js +0 -110
  360. package/dist/campaigns-SYEOFKFV.js +0 -109
  361. package/dist/campaigns-YS3OGQXO.js +0 -76
  362. package/dist/canvas-B6DPRQGN.js +0 -46
  363. package/dist/capabilities-GVHPHH2G.js +0 -144
  364. package/dist/catalog-TNNG66MH.js +0 -66
  365. package/dist/catalog-TNNG66MH.js.map +0 -1
  366. package/dist/catalogs-BRXEDE56.js +0 -128
  367. package/dist/changes-6QBJMGJC.js +0 -135
  368. package/dist/chatgpt-7W75X3ER.js +0 -47
  369. package/dist/chats-54CWM7DL.js +0 -262
  370. package/dist/chunk-2SCPDSFN.js +0 -150
  371. package/dist/chunk-3X3446TG.js +0 -169
  372. package/dist/chunk-4SJDDGPV.js +0 -1411
  373. package/dist/chunk-4SNOWJV7.js +0 -103
  374. package/dist/chunk-5EEDEVOR.js +0 -486
  375. package/dist/chunk-5VC6IK7B.js +0 -390
  376. package/dist/chunk-654U6NU6.js +0 -534
  377. package/dist/chunk-6HJAHLLA.js +0 -6086
  378. package/dist/chunk-6HJAHLLA.js.map +0 -1
  379. package/dist/chunk-6TCDQSM7.js +0 -111
  380. package/dist/chunk-6YYEBLYI.js +0 -92
  381. package/dist/chunk-7FVWIZHM.js +0 -382
  382. package/dist/chunk-7J6EHOH6.js +0 -274
  383. package/dist/chunk-7JUUKYKG.js +0 -57
  384. package/dist/chunk-ACFWVULZ.js +0 -304
  385. package/dist/chunk-ACFWVULZ.js.map +0 -1
  386. package/dist/chunk-AO5UQQLJ.js +0 -197
  387. package/dist/chunk-CKU4WYTF.js +0 -175
  388. package/dist/chunk-CLMM6P6B.js +0 -1751
  389. package/dist/chunk-CLMM6P6B.js.map +0 -1
  390. package/dist/chunk-DE6ANJLU.js +0 -310
  391. package/dist/chunk-DZSIUEGH.js +0 -136
  392. package/dist/chunk-E5IFTZJ3.js +0 -622
  393. package/dist/chunk-EAHP7L2R.js +0 -363
  394. package/dist/chunk-EPMN4BK7.js +0 -217
  395. package/dist/chunk-EVYXTT7V.js +0 -417
  396. package/dist/chunk-F46KAIBS.js +0 -159
  397. package/dist/chunk-FGH4Z5K5.js +0 -433
  398. package/dist/chunk-FTWJFDIN.js +0 -23992
  399. package/dist/chunk-FTWJFDIN.js.map +0 -1
  400. package/dist/chunk-FYQPB2SS.js +0 -207
  401. package/dist/chunk-GTK46DE3.js +0 -346
  402. package/dist/chunk-H2QNBOPS.js +0 -819
  403. package/dist/chunk-H2QNBOPS.js.map +0 -1
  404. package/dist/chunk-HDWKLFF5.js +0 -96
  405. package/dist/chunk-HO3IUJ4K.js +0 -70
  406. package/dist/chunk-HO3IUJ4K.js.map +0 -1
  407. package/dist/chunk-HRYOZUSK.js +0 -1711
  408. package/dist/chunk-HRYOZUSK.js.map +0 -1
  409. package/dist/chunk-HYCIBVDW.js +0 -98
  410. package/dist/chunk-HYUUH4BE.js +0 -3149
  411. package/dist/chunk-HYUUH4BE.js.map +0 -1
  412. package/dist/chunk-IH4UQ2OK.js +0 -6668
  413. package/dist/chunk-IH4UQ2OK.js.map +0 -1
  414. package/dist/chunk-IKYNOT57.js +0 -131
  415. package/dist/chunk-IKYNOT57.js.map +0 -1
  416. package/dist/chunk-J5IU4OX2.js +0 -297
  417. package/dist/chunk-KMEMA7AZ.js +0 -496
  418. package/dist/chunk-KV5BCSUR.js +0 -337
  419. package/dist/chunk-KWAOTV7F.js +0 -830
  420. package/dist/chunk-L27H2R2N.js +0 -174
  421. package/dist/chunk-NK2UFFVH.js +0 -19
  422. package/dist/chunk-NSA6HRG6.js +0 -60
  423. package/dist/chunk-NTPXZU3V.js +0 -163
  424. package/dist/chunk-OAQPHP6V.js +0 -592
  425. package/dist/chunk-OBDAYP2P.js +0 -3155
  426. package/dist/chunk-OBDAYP2P.js.map +0 -1
  427. package/dist/chunk-PIWMNKWI.js +0 -164
  428. package/dist/chunk-PIWMNKWI.js.map +0 -1
  429. package/dist/chunk-RB5DB3WN.js +0 -1079
  430. package/dist/chunk-RCQJHKK5.js +0 -4374
  431. package/dist/chunk-RCQJHKK5.js.map +0 -1
  432. package/dist/chunk-SKT3SAHG.js +0 -133
  433. package/dist/chunk-T4DD5YMP.js +0 -166
  434. package/dist/chunk-TBEUMOEL.js +0 -95
  435. package/dist/chunk-TBEUMOEL.js.map +0 -1
  436. package/dist/chunk-V2X3KK52.js +0 -420
  437. package/dist/chunk-V2X3KK52.js.map +0 -1
  438. package/dist/chunk-V5WSJP5A.js +0 -51
  439. package/dist/chunk-VJZHVOA4.js +0 -509
  440. package/dist/chunk-VJZHVOA4.js.map +0 -1
  441. package/dist/chunk-WRIC2RPQ.js +0 -23
  442. package/dist/chunk-WTOYCUKH.js +0 -84
  443. package/dist/chunk-WYCVJIHD.js +0 -638
  444. package/dist/chunk-WYCVJIHD.js.map +0 -1
  445. package/dist/chunk-XDNEG2H6.js +0 -5189
  446. package/dist/chunk-XDNEG2H6.js.map +0 -1
  447. package/dist/chunk-XG3XCHN6.js +0 -26
  448. package/dist/chunk-XML7AJM3.js +0 -1854
  449. package/dist/chunk-XML7AJM3.js.map +0 -1
  450. package/dist/chunk-XV6XCFF7.js +0 -494
  451. package/dist/chunk-YUPRCOEN.js +0 -455
  452. package/dist/chunk-ZNBDKK4Y.js +0 -76
  453. package/dist/chunk-ZZQXVYUY.js +0 -66
  454. package/dist/claim-CIASHKMC.js +0 -197
  455. package/dist/companies-ECVMO24S.js +0 -195
  456. package/dist/complete-32CPBFIG.js +0 -81
  457. package/dist/connect-OJSOM6PY.js +0 -36
  458. package/dist/conversation-7FHN5ESN.js +0 -93
  459. package/dist/conversion-report-XQBJ6LG4.js +0 -125
  460. package/dist/conversion-upload-command-BBUXLFT3.js +0 -438
  461. package/dist/conversion-writes-UBCVXP2E.js +0 -120
  462. package/dist/conversions-7YJDNZ7Y.js +0 -135
  463. package/dist/conversions-D236RTUK.js +0 -76
  464. package/dist/countries-FYHM3IMJ.js +0 -82
  465. package/dist/create-2TBDXHAM.js +0 -130
  466. package/dist/create-FE5QLW7V.js +0 -207
  467. package/dist/create-OYT76OMJ.js +0 -235
  468. package/dist/create-ZGRL7YCV.js +0 -59
  469. package/dist/creatives-5MUTX4DQ.js +0 -51
  470. package/dist/creatives-IUB57I3T.js +0 -182
  471. package/dist/creatives-UEPLNCPN.js +0 -87
  472. package/dist/credentials-AETHKP5T.js +0 -1055
  473. package/dist/credentials-AETHKP5T.js.map +0 -1
  474. package/dist/critique-C53EJDPA.js +0 -214
  475. package/dist/critique-C53EJDPA.js.map +0 -1
  476. package/dist/critique-T7HJ42D4.js +0 -1449
  477. package/dist/crm-JP4UOPMN.js +0 -318
  478. package/dist/crm-KH6XX2TT.js +0 -224
  479. package/dist/currency-DJDVIR3C.js +0 -88
  480. package/dist/custom-conversions-2VLJGPRV.js +0 -125
  481. package/dist/customers-7I7UY5PS.js +0 -56
  482. package/dist/delete-6IOUDEWY.js +0 -54
  483. package/dist/delete-ODFKNHAI.js +0 -63
  484. package/dist/delete-RAETUVO2.js +0 -66
  485. package/dist/demographics-2FTDKPBD.js +0 -138
  486. package/dist/discard-ZX5TLFYH.js +0 -66
  487. package/dist/discover-M3ZKKFEL.js +0 -172
  488. package/dist/domain-TH7KIC2T.js +0 -98
  489. package/dist/draft-CRE2Y24G.js +0 -328
  490. package/dist/draft-MNFJ4G3C.js +0 -281
  491. package/dist/draft-S2FSQOJN.js +0 -217
  492. package/dist/draft-SH25PKST.js +0 -107
  493. package/dist/draft-YHUIFDDR.js +0 -306
  494. package/dist/facets-6B2U4BSM.js +0 -114
  495. package/dist/feedback-QGSAJJVC.js +0 -66
  496. package/dist/feedback-QGSAJJVC.js.map +0 -1
  497. package/dist/feedback-record-NUAJ6UBL.js +0 -176
  498. package/dist/feedback-record-NUAJ6UBL.js.map +0 -1
  499. package/dist/fetch-UTTJAOLC.js +0 -171
  500. package/dist/fetch-UTTJAOLC.js.map +0 -1
  501. package/dist/fit-FJ5CLQS4.js +0 -43
  502. package/dist/flows-OGGSWWGT.js +0 -244
  503. package/dist/follow-DUIEGDVK.js +0 -82
  504. package/dist/follow-competitors-IT5ZVJPE.js +0 -131
  505. package/dist/fonts-GCJRLEGD.js +0 -34
  506. package/dist/forecast-2AGTFMXH.js +0 -104
  507. package/dist/funnel-7U55LNJ4.js +0 -837
  508. package/dist/generate-DMQUS665.js +0 -262
  509. package/dist/get-IRJIHOQK.js +0 -78
  510. package/dist/get-N7FR6NFX.js +0 -54
  511. package/dist/google-NYRI2NDZ.js +0 -1872
  512. package/dist/google-NYRI2NDZ.js.map +0 -1
  513. package/dist/history-PSNJAUTW.js +0 -133
  514. package/dist/history-Q3QCT64S.js +0 -67
  515. package/dist/hubspot-2NHL47R2.js +0 -779
  516. package/dist/ideas-22MRXKT7.js +0 -32
  517. package/dist/images-LXFWEON7.js +0 -90
  518. package/dist/ingest-W7VEDEYD.js +0 -107
  519. package/dist/ingest-ZN3DEZHY.js +0 -23
  520. package/dist/insights-LNAXV2CG.js +0 -122
  521. package/dist/inspect-3LBIHMMP.js +0 -189
  522. package/dist/inspiration-I4MMKAWA.js +0 -53
  523. package/dist/intent-ICKFJRT2.js +0 -95
  524. package/dist/keyword-gap-NGPH32FN.js +0 -130
  525. package/dist/keyword-metrics-PZXFB4NG.js +0 -197
  526. package/dist/keywords-for-site-RH47P4GJ.js +0 -124
  527. package/dist/keywords-for-site-RH47P4GJ.js.map +0 -1
  528. package/dist/landing-D7QS42GK.js +0 -28
  529. package/dist/languages-JDYL2N5F.js +0 -40
  530. package/dist/languages-JMVNOHMG.js +0 -55
  531. package/dist/leads-ARUWPHBM.js +0 -293
  532. package/dist/leads-E22XFSX2.js +0 -90
  533. package/dist/learn-Y4KIZNRF.js +0 -204
  534. package/dist/learn-Y4KIZNRF.js.map +0 -1
  535. package/dist/lighthouse-NQBUCHTW.js +0 -75
  536. package/dist/line-item-writes-KA5PVKFO.js +0 -208
  537. package/dist/line-items-3ZFFZCNH.js +0 -103
  538. package/dist/link-AEU6BV75.js +0 -64
  539. package/dist/linkedin-WCB2H5NH.js +0 -1008
  540. package/dist/list-OLX7AI3O.js +0 -63
  541. package/dist/list-PAMYQS4X.js +0 -151
  542. package/dist/list-TOUUGHMS.js +0 -303
  543. package/dist/locations-2NKBJKBT.js +0 -67
  544. package/dist/locations-S4U6IJIS.js +0 -40
  545. package/dist/log-UGVWSK7Z.js +0 -92
  546. package/dist/make-3PZLTEXT.js +0 -516
  547. package/dist/make-3PZLTEXT.js.map +0 -1
  548. package/dist/map-BW4CHSIO.js +0 -404
  549. package/dist/mcp-JOXKA5HY.js +0 -476
  550. package/dist/media-53DJRC4N.js +0 -15
  551. package/dist/media-sources-SJZUOMI2.js +0 -32
  552. package/dist/members-VAX6KAFN.js +0 -44
  553. package/dist/meta-A7KM6TF5.js +0 -69
  554. package/dist/metrics-AY4RP54F.js +0 -152
  555. package/dist/models-5NTC7A5G.js +0 -155
  556. package/dist/normalize-IVQ7I54Z.js +0 -138
  557. package/dist/options-V7C6CU6M.js +0 -121
  558. package/dist/performance-L6RJZPXX.js +0 -24
  559. package/dist/pixels-TZPF746S.js +0 -60
  560. package/dist/promoted-tweet-writes-DBATH765.js +0 -180
  561. package/dist/promoted-tweets-AU3XF3JD.js +0 -119
  562. package/dist/publish-G6DYVT4S.js +0 -322
  563. package/dist/query-CPZZNMDY.js +0 -1341
  564. package/dist/reddit-S2S6C4RT.js +0 -26
  565. package/dist/refresh-ARJ2SOMY.js +0 -94
  566. package/dist/release-3WCBAHPO.js +0 -60
  567. package/dist/relevant-pages-MTMFMBPD.js +0 -99
  568. package/dist/remove-FUAARCSC.js +0 -50
  569. package/dist/reopen-PZI5H4X2.js +0 -63
  570. package/dist/rerun-AUP4XT6T.js +0 -86
  571. package/dist/rerun-AUP4XT6T.js.map +0 -1
  572. package/dist/research-SY3QRGOC.js +0 -262
  573. package/dist/research-TISR736S.js +0 -59
  574. package/dist/research-TISR736S.js.map +0 -1
  575. package/dist/reset-E6F5NXOI.js +0 -54
  576. package/dist/reset-ZWM7DDD7.js +0 -54
  577. package/dist/resolve-I5R5ELMZ.js +0 -121
  578. package/dist/retry-7CFZTKWI.js +0 -60
  579. package/dist/retry-JO3JXXT2.js +0 -62
  580. package/dist/run-JR6SILHL.js +0 -61
  581. package/dist/run-UKB647DI.js +0 -65
  582. package/dist/scaffold-ad-BYGVU7MT.js +0 -1550
  583. package/dist/scaffold-ad-BYGVU7MT.js.map +0 -1
  584. package/dist/scaffold-static-ad-U57V5UV3.js +0 -948
  585. package/dist/scaffold-static-ad-U57V5UV3.js.map +0 -1
  586. package/dist/scaffold-video-POZTINEV.js +0 -874
  587. package/dist/scaffold-video-POZTINEV.js.map +0 -1
  588. package/dist/schedule-SOAHLZZF.js +0 -61
  589. package/dist/scheduled-agents-K5WU7SVJ.js +0 -49
  590. package/dist/schema-SOPL6GJP.js +0 -129
  591. package/dist/search-5VUDFOHI.js +0 -174
  592. package/dist/search-XUIVHGAY.js +0 -26
  593. package/dist/select-T36UH4HL.js +0 -95
  594. package/dist/select-T36UH4HL.js.map +0 -1
  595. package/dist/set-prompt-Y4X7GV2Q.js +0 -187
  596. package/dist/set-prompt-Y4X7GV2Q.js.map +0 -1
  597. package/dist/setup-links-KFROCISS.js +0 -141
  598. package/dist/site-MXPKMRQT.js +0 -177
  599. package/dist/sources-FFHNWVLV.js +0 -30
  600. package/dist/sources-MLDLMEDT.js +0 -421
  601. package/dist/stale-UXL4X4AD.js +0 -64
  602. package/dist/stale-UXL4X4AD.js.map +0 -1
  603. package/dist/status-M47G5HD4.js +0 -62
  604. package/dist/studio-HUEBE6DS.js +0 -49
  605. package/dist/sync-HS7VZJ2H.js +0 -54
  606. package/dist/sync-definition-PY6REQ4J.js +0 -54
  607. package/dist/tag-manager-HREEYGVM.js +0 -43
  608. package/dist/tags-DIXLYB5P.js +0 -224
  609. package/dist/tags-DYRZTYHD.js +0 -20
  610. package/dist/tags-MRG56YOE.js +0 -26
  611. package/dist/tags-WAW6MQAY.js +0 -20
  612. package/dist/tags-Y4HHJJGE.js +0 -20
  613. package/dist/targeting-criteria-5UUESFWC.js +0 -113
  614. package/dist/targets-COZPVG52.js +0 -102
  615. package/dist/templates-75VFYZ3E.js +0 -178
  616. package/dist/testimonials-WJBRWLNW.js +0 -32
  617. package/dist/top-companies-C2R4FG6H.js +0 -108
  618. package/dist/translate-RYAJAFV7.js +0 -599
  619. package/dist/translate-RYAJAFV7.js.map +0 -1
  620. package/dist/triggers-5UHVJPBV.js +0 -141
  621. package/dist/unlink-PLOOAGM3.js +0 -67
  622. package/dist/unstage-JIIOTBTF.js +0 -84
  623. package/dist/update-G6R5ZHUI.js +0 -63
  624. package/dist/update-QYM6U7LL.js +0 -142
  625. package/dist/update-RCP7F5L5.js +0 -98
  626. package/dist/update-RGVNTA5X.js +0 -155
  627. package/dist/upload-EEJ34Q3Y.js +0 -126
  628. package/dist/url-options-QEWKRKZ3.js +0 -127
  629. package/dist/url-params-2G5M2B3J.js +0 -98
  630. package/dist/validate-M33VLUG4.js +0 -90
  631. package/dist/validate-M33VLUG4.js.map +0 -1
  632. package/dist/videos-FVVID55J.js +0 -39
  633. package/dist/viewer-check-2Q3WHSEL.js +0 -70
  634. package/dist/web-WUGLSULO.js +0 -135
  635. package/dist/web-WUGLSULO.js.map +0 -1
  636. package/dist/winning-ads-OSRFHVLV.js +0 -62
  637. package/dist/write-commands-CLJOD2XF.js +0 -1015
  638. package/dist/write-commands-CT74VHH6.js +0 -737
  639. package/dist/x-EBKLJJPJ.js +0 -47
  640. /package/dist/{account-PCEZQUK7.js.map → account-2ZMZFPIU.js.map} +0 -0
  641. /package/dist/{account-4H7QVBRK.js.map → account-F6MHQ64I.js.map} +0 -0
  642. /package/dist/{account-writes-AK42HGRM.js.map → account-writes-ISE4U2FQ.js.map} +0 -0
  643. /package/dist/{accounts-OSXDZZLY.js.map → accounts-RHGN5WMU.js.map} +0 -0
  644. /package/dist/{accounts-5AXLYU7P.js.map → accounts-VINHZRWA.js.map} +0 -0
  645. /package/dist/{actions-HM4VVTGW.js.map → actions-5F4ZP6M4.js.map} +0 -0
  646. /package/dist/{ad-group-writes-QQS4223F.js.map → ad-group-writes-UU5NNKSO.js.map} +0 -0
  647. /package/dist/{ad-groups-WGPDPUI2.js.map → ad-groups-CGFXZNIA.js.map} +0 -0
  648. /package/dist/{ad-writes-XE2IE4DS.js.map → ad-writes-NALDYWOR.js.map} +0 -0
  649. /package/dist/{add-4J2EF54O.js.map → add-KBPMSK2P.js.map} +0 -0
  650. /package/dist/{add-VZAY57M4.js.map → add-OGH4DZZ5.js.map} +0 -0
  651. /package/dist/{ads-NUME2UXH.js.map → ads-56OWZBXZ.js.map} +0 -0
  652. /package/dist/{ads-6UEDYT3O.js.map → ads-H7GH7A26.js.map} +0 -0
  653. /package/dist/{ads-BCOSQALY.js.map → ads-PV7GZXPR.js.map} +0 -0
  654. /package/dist/{adsets-Q5DWGANV.js.map → adsets-H7QT42U6.js.map} +0 -0
  655. /package/dist/{analytics-PHU7H5VY.js.map → analytics-5FALU2GL.js.map} +0 -0
  656. /package/dist/{analytics-QTR2ZITZ.js.map → analytics-JVZKN735.js.map} +0 -0
  657. /package/dist/{animate-3Z7HXOLE.js.map → animate-FWWHSYPL.js.map} +0 -0
  658. /package/dist/{assign-IIAVNATI.js.map → assign-KLYZ6USE.js.map} +0 -0
  659. /package/dist/{audience-size-2L7XMYJL.js.map → audience-size-JHB42DB4.js.map} +0 -0
  660. /package/dist/{audiences-AMRFZRZ7.js.map → audiences-JACGRBNN.js.map} +0 -0
  661. /package/dist/{audiences-TGD5US2M.js.map → audiences-VEKGLWBG.js.map} +0 -0
  662. /package/dist/{audit-ZCUFJLUG.js.map → audit-5XH7WZIM.js.map} +0 -0
  663. /package/dist/{avatars-OEK3FYKK.js.map → avatars-N4SRNQI7.js.map} +0 -0
  664. /package/dist/{bid-pricing-FDW3IY6G.js.map → bid-pricing-VYLVGU26.js.map} +0 -0
  665. /package/dist/{brand-OXYFSNA5.js.map → brand-ASBS2HZM.js.map} +0 -0
  666. /package/dist/{campaign-groups-5GCFQT2W.js.map → campaign-groups-ATE2DE4V.js.map} +0 -0
  667. /package/dist/{campaign-writes-3SJQSCUK.js.map → campaign-writes-ETT57KLQ.js.map} +0 -0
  668. /package/dist/{campaign-writes-SXLZFYF6.js.map → campaign-writes-SX52CJYW.js.map} +0 -0
  669. /package/dist/{campaigns-7QDDWZ76.js.map → campaigns-FGBAS6AZ.js.map} +0 -0
  670. /package/dist/{campaigns-SYEOFKFV.js.map → campaigns-J6VZBIV6.js.map} +0 -0
  671. /package/dist/{campaigns-D6B6Z67Y.js.map → campaigns-WBEG5QA4.js.map} +0 -0
  672. /package/dist/{campaigns-YS3OGQXO.js.map → campaigns-X3DPCCSN.js.map} +0 -0
  673. /package/dist/{canvas-B6DPRQGN.js.map → canvas-K7IN7HLO.js.map} +0 -0
  674. /package/dist/{capabilities-GVHPHH2G.js.map → capabilities-RDAERPYY.js.map} +0 -0
  675. /package/dist/{catalogs-BRXEDE56.js.map → catalogs-G3YEVG6S.js.map} +0 -0
  676. /package/dist/{changes-6QBJMGJC.js.map → changes-TP7ZZHB3.js.map} +0 -0
  677. /package/dist/{chatgpt-7W75X3ER.js.map → chatgpt-QNUN63YS.js.map} +0 -0
  678. /package/dist/{chats-54CWM7DL.js.map → chats-YIAQGQ3X.js.map} +0 -0
  679. /package/dist/{chunk-7FVWIZHM.js.map → chunk-2GK33EJV.js.map} +0 -0
  680. /package/dist/{chunk-7J6EHOH6.js.map → chunk-35XWJEWH.js.map} +0 -0
  681. /package/dist/{chunk-RB5DB3WN.js.map → chunk-4NBVGARW.js.map} +0 -0
  682. /package/dist/{chunk-OAQPHP6V.js.map → chunk-65RIB7A6.js.map} +0 -0
  683. /package/dist/{chunk-CKU4WYTF.js.map → chunk-6DB2B3GF.js.map} +0 -0
  684. /package/dist/{chunk-EAHP7L2R.js.map → chunk-7SDFKGQ4.js.map} +0 -0
  685. /package/dist/{chunk-NK2UFFVH.js.map → chunk-ACANMASG.js.map} +0 -0
  686. /package/dist/{chunk-HDWKLFF5.js.map → chunk-ALTBBAYU.js.map} +0 -0
  687. /package/dist/{chunk-FGH4Z5K5.js.map → chunk-ANCSKUWI.js.map} +0 -0
  688. /package/dist/{chunk-AO5UQQLJ.js.map → chunk-BA7FDXQC.js.map} +0 -0
  689. /package/dist/{chunk-654U6NU6.js.map → chunk-BNCW67EM.js.map} +0 -0
  690. /package/dist/{chunk-EPMN4BK7.js.map → chunk-BSC33FLJ.js.map} +0 -0
  691. /package/dist/{chunk-DE6ANJLU.js.map → chunk-DKGTQSLR.js.map} +0 -0
  692. /package/dist/{chunk-FYQPB2SS.js.map → chunk-DR34ZTWD.js.map} +0 -0
  693. /package/dist/{chunk-NTPXZU3V.js.map → chunk-E4MDJBLO.js.map} +0 -0
  694. /package/dist/{chunk-YUPRCOEN.js.map → chunk-EH4C4CZK.js.map} +0 -0
  695. /package/dist/{chunk-L27H2R2N.js.map → chunk-FXED3VZK.js.map} +0 -0
  696. /package/dist/{chunk-KV5BCSUR.js.map → chunk-G7UTTEBS.js.map} +0 -0
  697. /package/dist/{chunk-T4DD5YMP.js.map → chunk-GIJT3A5U.js.map} +0 -0
  698. /package/dist/{chunk-KWAOTV7F.js.map → chunk-GX6VAHY7.js.map} +0 -0
  699. /package/dist/{chunk-DZSIUEGH.js.map → chunk-HIPDMQZ6.js.map} +0 -0
  700. /package/dist/{chunk-XG3XCHN6.js.map → chunk-HQSCJYZO.js.map} +0 -0
  701. /package/dist/{chunk-V5WSJP5A.js.map → chunk-HZ5DR5MX.js.map} +0 -0
  702. /package/dist/{chunk-5VC6IK7B.js.map → chunk-IM52NHGL.js.map} +0 -0
  703. /package/dist/{chunk-WTOYCUKH.js.map → chunk-K3PN7TN5.js.map} +0 -0
  704. /package/dist/{chunk-HYCIBVDW.js.map → chunk-KQTYTCKQ.js.map} +0 -0
  705. /package/dist/{chunk-2SCPDSFN.js.map → chunk-LIQ4SQ2T.js.map} +0 -0
  706. /package/dist/{chunk-3X3446TG.js.map → chunk-MADAAZZV.js.map} +0 -0
  707. /package/dist/{chunk-ZZQXVYUY.js.map → chunk-MLU6STIN.js.map} +0 -0
  708. /package/dist/{chunk-7JUUKYKG.js.map → chunk-PDTB5EX6.js.map} +0 -0
  709. /package/dist/{chunk-E5IFTZJ3.js.map → chunk-SB3GZFCV.js.map} +0 -0
  710. /package/dist/{chunk-XV6XCFF7.js.map → chunk-T3BDNJIX.js.map} +0 -0
  711. /package/dist/{chunk-KMEMA7AZ.js.map → chunk-TIOQ7ZFQ.js.map} +0 -0
  712. /package/dist/{chunk-SKT3SAHG.js.map → chunk-U3HAMW5W.js.map} +0 -0
  713. /package/dist/{chunk-5EEDEVOR.js.map → chunk-U6SYRIOB.js.map} +0 -0
  714. /package/dist/{chunk-F46KAIBS.js.map → chunk-UC6BWM5J.js.map} +0 -0
  715. /package/dist/{chunk-ZNBDKK4Y.js.map → chunk-ULJ5RFOV.js.map} +0 -0
  716. /package/dist/{chunk-GTK46DE3.js.map → chunk-VAISMQQB.js.map} +0 -0
  717. /package/dist/{chunk-WRIC2RPQ.js.map → chunk-VDHQJ6HD.js.map} +0 -0
  718. /package/dist/{chunk-6TCDQSM7.js.map → chunk-VMDAXFRI.js.map} +0 -0
  719. /package/dist/{chunk-EVYXTT7V.js.map → chunk-XCM6XWOB.js.map} +0 -0
  720. /package/dist/{chunk-NSA6HRG6.js.map → chunk-XMD4SHFI.js.map} +0 -0
  721. /package/dist/{chunk-4SJDDGPV.js.map → chunk-Y6QAJNKP.js.map} +0 -0
  722. /package/dist/{chunk-4SNOWJV7.js.map → chunk-YBP7O5P4.js.map} +0 -0
  723. /package/dist/{chunk-J5IU4OX2.js.map → chunk-YC2TQ3VC.js.map} +0 -0
  724. /package/dist/{chunk-6YYEBLYI.js.map → chunk-ZPU3WDVK.js.map} +0 -0
  725. /package/dist/{claim-CIASHKMC.js.map → claim-V4F5GZJK.js.map} +0 -0
  726. /package/dist/{companies-ECVMO24S.js.map → companies-NJGJ7XNN.js.map} +0 -0
  727. /package/dist/{complete-32CPBFIG.js.map → complete-MGNF5OAK.js.map} +0 -0
  728. /package/dist/{connect-OJSOM6PY.js.map → connect-PJOTRTT4.js.map} +0 -0
  729. /package/dist/{conversation-7FHN5ESN.js.map → conversation-4DM26FRD.js.map} +0 -0
  730. /package/dist/{conversion-report-XQBJ6LG4.js.map → conversion-report-N4HANYOB.js.map} +0 -0
  731. /package/dist/{conversion-upload-command-BBUXLFT3.js.map → conversion-upload-command-TZTHU2CD.js.map} +0 -0
  732. /package/dist/{conversion-writes-UBCVXP2E.js.map → conversion-writes-LW4HQKK5.js.map} +0 -0
  733. /package/dist/{conversions-7YJDNZ7Y.js.map → conversions-JGECVZSY.js.map} +0 -0
  734. /package/dist/{conversions-D236RTUK.js.map → conversions-TS723AZV.js.map} +0 -0
  735. /package/dist/{countries-FYHM3IMJ.js.map → countries-ESAKTQAE.js.map} +0 -0
  736. /package/dist/{create-FE5QLW7V.js.map → create-DSGQFBI7.js.map} +0 -0
  737. /package/dist/{create-ZGRL7YCV.js.map → create-I2KVDTCQ.js.map} +0 -0
  738. /package/dist/{create-2TBDXHAM.js.map → create-SBQWVLXG.js.map} +0 -0
  739. /package/dist/{create-OYT76OMJ.js.map → create-WOHPIGBK.js.map} +0 -0
  740. /package/dist/{creatives-IUB57I3T.js.map → creatives-4JGVZQGC.js.map} +0 -0
  741. /package/dist/{creatives-5MUTX4DQ.js.map → creatives-DWO5KEQC.js.map} +0 -0
  742. /package/dist/{creatives-UEPLNCPN.js.map → creatives-PSWCNY7U.js.map} +0 -0
  743. /package/dist/{critique-T7HJ42D4.js.map → critique-TIZJ5GFM.js.map} +0 -0
  744. /package/dist/{crm-KH6XX2TT.js.map → crm-2WAR565U.js.map} +0 -0
  745. /package/dist/{crm-JP4UOPMN.js.map → crm-VDXUO2YU.js.map} +0 -0
  746. /package/dist/{currency-DJDVIR3C.js.map → currency-XCGKQ7FE.js.map} +0 -0
  747. /package/dist/{custom-conversions-2VLJGPRV.js.map → custom-conversions-6P555U2K.js.map} +0 -0
  748. /package/dist/{customers-7I7UY5PS.js.map → customers-ATENMXDO.js.map} +0 -0
  749. /package/dist/{delete-6IOUDEWY.js.map → delete-AVMZYNVT.js.map} +0 -0
  750. /package/dist/{delete-ODFKNHAI.js.map → delete-H744GNS4.js.map} +0 -0
  751. /package/dist/{delete-RAETUVO2.js.map → delete-OEYPFATY.js.map} +0 -0
  752. /package/dist/{demographics-2FTDKPBD.js.map → demographics-M5LJF3RZ.js.map} +0 -0
  753. /package/dist/{discard-ZX5TLFYH.js.map → discard-72I6SM7G.js.map} +0 -0
  754. /package/dist/{discover-M3ZKKFEL.js.map → discover-BJPZNXUQ.js.map} +0 -0
  755. /package/dist/{domain-TH7KIC2T.js.map → domain-R4EIZD2W.js.map} +0 -0
  756. /package/dist/{draft-S2FSQOJN.js.map → draft-34C3F5U4.js.map} +0 -0
  757. /package/dist/{draft-CRE2Y24G.js.map → draft-BBFJNZ5X.js.map} +0 -0
  758. /package/dist/{draft-SH25PKST.js.map → draft-BV2QRPZ4.js.map} +0 -0
  759. /package/dist/{draft-MNFJ4G3C.js.map → draft-THPZFASM.js.map} +0 -0
  760. /package/dist/{draft-YHUIFDDR.js.map → draft-YYYRWF7M.js.map} +0 -0
  761. /package/dist/{facets-6B2U4BSM.js.map → facets-F2H52MS4.js.map} +0 -0
  762. /package/dist/{fit-FJ5CLQS4.js.map → fit-2CA4JH7N.js.map} +0 -0
  763. /package/dist/{flows-OGGSWWGT.js.map → flows-CWXCXEUD.js.map} +0 -0
  764. /package/dist/{follow-DUIEGDVK.js.map → follow-FN7LV3WV.js.map} +0 -0
  765. /package/dist/{follow-competitors-IT5ZVJPE.js.map → follow-competitors-MKXFHLXB.js.map} +0 -0
  766. /package/dist/{fonts-GCJRLEGD.js.map → fonts-F2XUCIIW.js.map} +0 -0
  767. /package/dist/{forecast-2AGTFMXH.js.map → forecast-IDKJYM2B.js.map} +0 -0
  768. /package/dist/{funnel-7U55LNJ4.js.map → funnel-RLGQGYKO.js.map} +0 -0
  769. /package/dist/{generate-DMQUS665.js.map → generate-MMBYB44G.js.map} +0 -0
  770. /package/dist/{get-N7FR6NFX.js.map → get-C6UQ22HH.js.map} +0 -0
  771. /package/dist/{get-IRJIHOQK.js.map → get-EEUR6SAW.js.map} +0 -0
  772. /package/dist/{history-PSNJAUTW.js.map → history-4II5QA4B.js.map} +0 -0
  773. /package/dist/{history-Q3QCT64S.js.map → history-DBIEYQHY.js.map} +0 -0
  774. /package/dist/{hubspot-2NHL47R2.js.map → hubspot-TTITJFBO.js.map} +0 -0
  775. /package/dist/{ideas-22MRXKT7.js.map → ideas-V4Q6JDKV.js.map} +0 -0
  776. /package/dist/{images-LXFWEON7.js.map → images-SP5REF6E.js.map} +0 -0
  777. /package/dist/{ingest-W7VEDEYD.js.map → ingest-574GIFAR.js.map} +0 -0
  778. /package/dist/{ingest-ZN3DEZHY.js.map → ingest-IC4T76W6.js.map} +0 -0
  779. /package/dist/{insights-LNAXV2CG.js.map → insights-ZIU6FJMS.js.map} +0 -0
  780. /package/dist/{inspect-3LBIHMMP.js.map → inspect-ATHYY6A2.js.map} +0 -0
  781. /package/dist/{inspiration-I4MMKAWA.js.map → inspiration-P265QJ2H.js.map} +0 -0
  782. /package/dist/{intent-ICKFJRT2.js.map → intent-E3UIVZBN.js.map} +0 -0
  783. /package/dist/{keyword-gap-NGPH32FN.js.map → keyword-gap-BG6M665A.js.map} +0 -0
  784. /package/dist/{keyword-metrics-PZXFB4NG.js.map → keyword-metrics-J4UPUDN7.js.map} +0 -0
  785. /package/dist/{landing-D7QS42GK.js.map → landing-R6DN7XLK.js.map} +0 -0
  786. /package/dist/{languages-JDYL2N5F.js.map → languages-HORKPDNH.js.map} +0 -0
  787. /package/dist/{languages-JMVNOHMG.js.map → languages-JSGWCC7Z.js.map} +0 -0
  788. /package/dist/{leads-ARUWPHBM.js.map → leads-7EVHMNUF.js.map} +0 -0
  789. /package/dist/{leads-E22XFSX2.js.map → leads-JM6HUERX.js.map} +0 -0
  790. /package/dist/{lighthouse-NQBUCHTW.js.map → lighthouse-6ZC45E53.js.map} +0 -0
  791. /package/dist/{line-item-writes-KA5PVKFO.js.map → line-item-writes-KUYEXSIH.js.map} +0 -0
  792. /package/dist/{line-items-3ZFFZCNH.js.map → line-items-GIWLP3FL.js.map} +0 -0
  793. /package/dist/{link-AEU6BV75.js.map → link-PVM7XJQI.js.map} +0 -0
  794. /package/dist/{linkedin-WCB2H5NH.js.map → linkedin-WX54EAX6.js.map} +0 -0
  795. /package/dist/{list-PAMYQS4X.js.map → list-4ZKQZBCL.js.map} +0 -0
  796. /package/dist/{list-OLX7AI3O.js.map → list-MCEFXC6L.js.map} +0 -0
  797. /package/dist/{list-TOUUGHMS.js.map → list-WR7QYTON.js.map} +0 -0
  798. /package/dist/{locations-2NKBJKBT.js.map → locations-74TPQWAT.js.map} +0 -0
  799. /package/dist/{locations-S4U6IJIS.js.map → locations-J4G5RNPH.js.map} +0 -0
  800. /package/dist/{log-UGVWSK7Z.js.map → log-U6IWZGOF.js.map} +0 -0
  801. /package/dist/{map-BW4CHSIO.js.map → map-TWL7T4KP.js.map} +0 -0
  802. /package/dist/{mcp-JOXKA5HY.js.map → mcp-HVAVJGGS.js.map} +0 -0
  803. /package/dist/{media-53DJRC4N.js.map → media-M7E6V2XU.js.map} +0 -0
  804. /package/dist/{media-sources-SJZUOMI2.js.map → media-sources-JWGO23BZ.js.map} +0 -0
  805. /package/dist/{members-VAX6KAFN.js.map → members-5FAW4YE7.js.map} +0 -0
  806. /package/dist/{meta-A7KM6TF5.js.map → meta-EZ4SY25M.js.map} +0 -0
  807. /package/dist/{metrics-AY4RP54F.js.map → metrics-SQDJ5NQO.js.map} +0 -0
  808. /package/dist/{models-5NTC7A5G.js.map → models-7U3GRYHF.js.map} +0 -0
  809. /package/dist/{normalize-IVQ7I54Z.js.map → normalize-GW4GZNVY.js.map} +0 -0
  810. /package/dist/{options-V7C6CU6M.js.map → options-NSUCENLU.js.map} +0 -0
  811. /package/dist/{performance-L6RJZPXX.js.map → performance-FGCDWHMC.js.map} +0 -0
  812. /package/dist/{pixels-TZPF746S.js.map → pixels-45A55MOP.js.map} +0 -0
  813. /package/dist/{promoted-tweet-writes-DBATH765.js.map → promoted-tweet-writes-BPWTDESL.js.map} +0 -0
  814. /package/dist/{promoted-tweets-AU3XF3JD.js.map → promoted-tweets-OS3NHYVE.js.map} +0 -0
  815. /package/dist/{publish-G6DYVT4S.js.map → publish-SXZEWBVJ.js.map} +0 -0
  816. /package/dist/{query-CPZZNMDY.js.map → query-IEZRY6HV.js.map} +0 -0
  817. /package/dist/{reddit-S2S6C4RT.js.map → reddit-TF6K37SB.js.map} +0 -0
  818. /package/dist/{refresh-ARJ2SOMY.js.map → refresh-APVDWXRZ.js.map} +0 -0
  819. /package/dist/{release-3WCBAHPO.js.map → release-32SEJU4L.js.map} +0 -0
  820. /package/dist/{relevant-pages-MTMFMBPD.js.map → relevant-pages-OWMNUCP7.js.map} +0 -0
  821. /package/dist/{remove-FUAARCSC.js.map → remove-U64GTHLQ.js.map} +0 -0
  822. /package/dist/{reopen-PZI5H4X2.js.map → reopen-5VS233SF.js.map} +0 -0
  823. /package/dist/{research-SY3QRGOC.js.map → research-QYSQ6LW4.js.map} +0 -0
  824. /package/dist/{reset-E6F5NXOI.js.map → reset-22FC7BXQ.js.map} +0 -0
  825. /package/dist/{reset-ZWM7DDD7.js.map → reset-47B5VPT4.js.map} +0 -0
  826. /package/dist/{resolve-I5R5ELMZ.js.map → resolve-7KQGVTQT.js.map} +0 -0
  827. /package/dist/{retry-JO3JXXT2.js.map → retry-J5UVLS72.js.map} +0 -0
  828. /package/dist/{retry-7CFZTKWI.js.map → retry-UJ5UF4BM.js.map} +0 -0
  829. /package/dist/{run-UKB647DI.js.map → run-SI4FA32F.js.map} +0 -0
  830. /package/dist/{run-JR6SILHL.js.map → run-TFLFBQU2.js.map} +0 -0
  831. /package/dist/{schedule-SOAHLZZF.js.map → schedule-52ZM4KRQ.js.map} +0 -0
  832. /package/dist/{scheduled-agents-K5WU7SVJ.js.map → scheduled-agents-PCWCQAKP.js.map} +0 -0
  833. /package/dist/{schema-SOPL6GJP.js.map → schema-FY6ORDXZ.js.map} +0 -0
  834. /package/dist/{search-5VUDFOHI.js.map → search-NS7XNRZC.js.map} +0 -0
  835. /package/dist/{search-XUIVHGAY.js.map → search-UO5KJTYS.js.map} +0 -0
  836. /package/dist/{setup-links-KFROCISS.js.map → setup-links-V3URI7DL.js.map} +0 -0
  837. /package/dist/{site-MXPKMRQT.js.map → site-WIQ7SSU3.js.map} +0 -0
  838. /package/dist/{sources-MLDLMEDT.js.map → sources-DWJXOLEH.js.map} +0 -0
  839. /package/dist/{sources-FFHNWVLV.js.map → sources-L453U5MT.js.map} +0 -0
  840. /package/dist/{status-M47G5HD4.js.map → status-WXWU54WR.js.map} +0 -0
  841. /package/dist/{studio-HUEBE6DS.js.map → studio-C5K3YX3P.js.map} +0 -0
  842. /package/dist/{sync-HS7VZJ2H.js.map → sync-CDZUTGV3.js.map} +0 -0
  843. /package/dist/{sync-definition-PY6REQ4J.js.map → sync-definition-BAJQUBE3.js.map} +0 -0
  844. /package/dist/{tag-manager-HREEYGVM.js.map → tag-manager-DYZUOIAS.js.map} +0 -0
  845. /package/dist/{tags-WAW6MQAY.js.map → tags-6RY23XOG.js.map} +0 -0
  846. /package/dist/{tags-DIXLYB5P.js.map → tags-BHFQWNPL.js.map} +0 -0
  847. /package/dist/{tags-MRG56YOE.js.map → tags-SG3NVC3J.js.map} +0 -0
  848. /package/dist/{tags-DYRZTYHD.js.map → tags-VN5HTL35.js.map} +0 -0
  849. /package/dist/{tags-Y4HHJJGE.js.map → tags-WR6PDIDR.js.map} +0 -0
  850. /package/dist/{targeting-criteria-5UUESFWC.js.map → targeting-criteria-5EXP2NXF.js.map} +0 -0
  851. /package/dist/{targets-COZPVG52.js.map → targets-WUVEJPSD.js.map} +0 -0
  852. /package/dist/{templates-75VFYZ3E.js.map → templates-LOJQX2NG.js.map} +0 -0
  853. /package/dist/{testimonials-WJBRWLNW.js.map → testimonials-6M5DXORT.js.map} +0 -0
  854. /package/dist/{top-companies-C2R4FG6H.js.map → top-companies-E2OMMPSV.js.map} +0 -0
  855. /package/dist/{triggers-5UHVJPBV.js.map → triggers-MRXIDCSN.js.map} +0 -0
  856. /package/dist/{unlink-PLOOAGM3.js.map → unlink-HNL747YM.js.map} +0 -0
  857. /package/dist/{unstage-JIIOTBTF.js.map → unstage-OL2JDCLK.js.map} +0 -0
  858. /package/dist/{update-QYM6U7LL.js.map → update-4KGIT4BF.js.map} +0 -0
  859. /package/dist/{update-RCP7F5L5.js.map → update-JPBUF7M2.js.map} +0 -0
  860. /package/dist/{update-RGVNTA5X.js.map → update-RTTC3SAK.js.map} +0 -0
  861. /package/dist/{update-G6R5ZHUI.js.map → update-YNNRX5B2.js.map} +0 -0
  862. /package/dist/{upload-EEJ34Q3Y.js.map → upload-UIXPCSXJ.js.map} +0 -0
  863. /package/dist/{url-options-QEWKRKZ3.js.map → url-options-GGXAL3J4.js.map} +0 -0
  864. /package/dist/{url-params-2G5M2B3J.js.map → url-params-K47CE7Y5.js.map} +0 -0
  865. /package/dist/{videos-FVVID55J.js.map → videos-BP3BKNTY.js.map} +0 -0
  866. /package/dist/{viewer-check-2Q3WHSEL.js.map → viewer-check-HFRUJ4ZU.js.map} +0 -0
  867. /package/dist/{winning-ads-OSRFHVLV.js.map → winning-ads-WUENRDVJ.js.map} +0 -0
  868. /package/dist/{write-commands-CLJOD2XF.js.map → write-commands-4WARNR2T.js.map} +0 -0
  869. /package/dist/{write-commands-CT74VHH6.js.map → write-commands-TAYGTJEZ.js.map} +0 -0
  870. /package/dist/{x-EBKLJJPJ.js.map → x-VZCELH3P.js.map} +0 -0
@@ -0,0 +1,830 @@
1
+ import {
2
+ CHANGE_SCOPES,
3
+ CHANGE_SCOPE_MAX_DAYS,
4
+ DEFAULT_CHANGE_DAYS,
5
+ isChangeLookbackWithinReach
6
+ } from "./chunk-XCM6XWOB.js";
7
+ import {
8
+ connectionFixExplanation,
9
+ isNotConnectedError
10
+ } from "./chunk-VFIOJD5M.js";
11
+
12
+ // src/commands/ads/google/during-literals.ts
13
+ var GAQL_DURING_LITERALS = [
14
+ "TODAY",
15
+ "YESTERDAY",
16
+ "LAST_7_DAYS",
17
+ "LAST_14_DAYS",
18
+ "LAST_30_DAYS",
19
+ "LAST_BUSINESS_WEEK",
20
+ "THIS_MONTH",
21
+ "LAST_MONTH",
22
+ "THIS_WEEK_SUN_TODAY",
23
+ "THIS_WEEK_MON_TODAY",
24
+ "LAST_WEEK_SUN_SAT",
25
+ "LAST_WEEK_MON_SUN"
26
+ ];
27
+ function isDuringLiteral(value) {
28
+ return GAQL_DURING_LITERALS.includes(value.toUpperCase());
29
+ }
30
+ function isoDay(date) {
31
+ return date.toISOString().slice(0, 10);
32
+ }
33
+ function utcDate(year, month, day) {
34
+ return new Date(Date.UTC(year, month, day));
35
+ }
36
+ function monthsBefore(date, months) {
37
+ const lastDayOfTarget = utcDate(date.getUTCFullYear(), date.getUTCMonth() - months + 1, 0).getUTCDate();
38
+ return utcDate(date.getUTCFullYear(), date.getUTCMonth() - months, Math.min(date.getUTCDate(), lastDayOfTarget));
39
+ }
40
+ function equivalentBetween(literal, now) {
41
+ const upper = literal.toUpperCase();
42
+ const today = utcDate(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate());
43
+ const yesterday = utcDate(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate() - 1);
44
+ const range = (from, to) => `BETWEEN '${isoDay(from)}' AND '${isoDay(to)}'`;
45
+ const year = today.getUTCFullYear();
46
+ const quarterStart = Math.floor(today.getUTCMonth() / 3) * 3;
47
+ const rolling = upper.match(/^LAST_(\d+)_(DAYS|WEEKS|MONTHS|YEARS)$/);
48
+ if (rolling) {
49
+ const n = Number(rolling[1]);
50
+ const unit = rolling[2];
51
+ if (n < 1) return null;
52
+ if (unit === "DAYS" || unit === "WEEKS") {
53
+ const days = unit === "DAYS" ? n : n * 7;
54
+ return range(utcDate(year, today.getUTCMonth(), today.getUTCDate() - days), yesterday);
55
+ }
56
+ const months = unit === "MONTHS" ? n : n * 12;
57
+ return range(monthsBefore(today, months), yesterday);
58
+ }
59
+ switch (upper) {
60
+ case "THIS_YEAR":
61
+ return range(utcDate(year, 0, 1), today);
62
+ case "LAST_YEAR":
63
+ return range(utcDate(year - 1, 0, 1), utcDate(year - 1, 11, 31));
64
+ case "THIS_QUARTER":
65
+ return range(utcDate(year, quarterStart, 1), today);
66
+ case "LAST_QUARTER":
67
+ return range(utcDate(year, quarterStart - 3, 1), utcDate(year, quarterStart, 0));
68
+ default:
69
+ return null;
70
+ }
71
+ }
72
+ function duringLiteralExplanation(literal, between) {
73
+ const accepted = GAQL_DURING_LITERALS.join(", ");
74
+ const lead = between ? `Google does not accept ${literal} after DURING. The same window as explicit dates is ${between}.` : `Google does not accept ${literal} after DURING, and it names no fixed window \u2014 use BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD', or drop the date filter.`;
75
+ return `${lead} DURING accepts only: ${accepted}. Any other window needs BETWEEN.`;
76
+ }
77
+
78
+ // src/commands/ads/google/changes-window.ts
79
+ function monthlySpendTrendQuery(now = /* @__PURE__ */ new Date()) {
80
+ return `SELECT campaign.name, segments.month, metrics.cost_micros, metrics.conversions FROM campaign WHERE segments.date ${equivalentBetween("LAST_12_MONTHS", now)}`;
81
+ }
82
+ function isChangeScope(value) {
83
+ return CHANGE_SCOPES.includes(value);
84
+ }
85
+ function resolveChangesWindow(input) {
86
+ const scope = input.scope ?? "detail";
87
+ if (!isChangeScope(scope)) {
88
+ return {
89
+ ok: false,
90
+ error: {
91
+ code: "INVALID_SCOPE",
92
+ message: `Unknown scope '${scope}'. Use 'detail' (field-level changes, 30 days) or 'summary' (which resources changed, 90 days).`,
93
+ fix: {
94
+ action: "retry_with_flag",
95
+ explanation: "Pass --scope detail or --scope summary."
96
+ }
97
+ }
98
+ };
99
+ }
100
+ const days = input.days ?? DEFAULT_CHANGE_DAYS;
101
+ if (!Number.isInteger(days) || days < 1) {
102
+ return {
103
+ ok: false,
104
+ error: {
105
+ code: "INVALID_LOOKBACK",
106
+ message: `--days must be a whole number of days, got '${days}'.`,
107
+ fix: {
108
+ action: "retry_with_flag",
109
+ explanation: `Pass --days as a positive integer, e.g. --days ${DEFAULT_CHANGE_DAYS}.`
110
+ }
111
+ }
112
+ };
113
+ }
114
+ if (!isChangeLookbackWithinReach(days, scope)) {
115
+ return { ok: false, error: lookbackTooLong(scope, days, CHANGE_SCOPE_MAX_DAYS[scope]) };
116
+ }
117
+ return { ok: true, scope, days, hints: hintsFor(scope, days) };
118
+ }
119
+ function lookbackTooLong(scope, days, max) {
120
+ if (scope === "detail" && days <= CHANGE_SCOPE_MAX_DAYS.summary) {
121
+ return {
122
+ code: "LOOKBACK_TOO_LONG",
123
+ message: `Google keeps field-level change detail for ${max} days only; ${days} days is outside that window.`,
124
+ fix: {
125
+ action: "narrow_date_range",
126
+ explanation: `Re-run with --scope summary --days ${days} to reach back ${CHANGE_SCOPE_MAX_DAYS.summary} days. Summary tells you which campaigns, ad groups, ads and criteria changed and when, but not the old and new values \u2014 read the resource itself for current values.`
127
+ }
128
+ };
129
+ }
130
+ return {
131
+ code: "LOOKBACK_TOO_LONG",
132
+ message: `Google's account history API reaches back ${CHANGE_SCOPE_MAX_DAYS.summary} days at most; ${days} days is outside that window.`,
133
+ fix: {
134
+ action: "use_different_resource",
135
+ explanation: `Do not abort \u2014 infer the change from performance instead. Query monthly metrics per campaign (${monthlySpendTrendQuery()}) to see which campaigns stopped or started spending. That shows what changed and when, though not who changed it. Older history exists only in the Google Ads web UI, which has no API \u2014 ask the user to check it if the 'who' matters.`
136
+ }
137
+ };
138
+ }
139
+ function hintsFor(scope, days) {
140
+ const hints = [];
141
+ if (scope === "detail") {
142
+ hints.push(
143
+ `Detailed history covers the last ${CHANGE_SCOPE_MAX_DAYS.detail} days. For anything older use --scope summary (reaches ${CHANGE_SCOPE_MAX_DAYS.summary} days, reports which resources changed but not their values).`
144
+ );
145
+ } else {
146
+ hints.push(
147
+ "Summary history reports which resources changed and when, not old and new values. To see what a changed resource looks like now, query it by resource_name."
148
+ );
149
+ if (days > CHANGE_SCOPE_MAX_DAYS.detail) {
150
+ hints.push(
151
+ `Changes inside the last ${CHANGE_SCOPE_MAX_DAYS.detail} days also have field-level detail \u2014 re-run with --scope detail for those.`
152
+ );
153
+ }
154
+ }
155
+ return hints;
156
+ }
157
+
158
+ // src/commands/ads/google/list-fields.ts
159
+ var LIST_FIELDS = /* @__PURE__ */ new Set([
160
+ "ad.final_mobile_urls",
161
+ "ad.final_urls",
162
+ "ad_group.excluded_parent_asset_field_types",
163
+ "ad_group.excluded_parent_asset_set_types",
164
+ "ad_group.labels",
165
+ "ad_group.primary_status_reasons",
166
+ "ad_group_ad.ad.final_mobile_urls",
167
+ "ad_group_ad.ad.final_urls",
168
+ "ad_group_ad.labels",
169
+ "ad_group_ad.primary_status_reasons",
170
+ "ad_group_asset.primary_status_reasons",
171
+ "ad_group_criterion.disapproval_reasons",
172
+ "ad_group_criterion.final_mobile_urls",
173
+ "ad_group_criterion.final_urls",
174
+ "ad_group_criterion.labels",
175
+ "ad_group_criterion.primary_status_reasons",
176
+ "ad_group_criterion.topic.path",
177
+ "ad_group_criterion.webpage.sample.sample_urls",
178
+ "asset.dynamic_custom_asset.contextual_keywords",
179
+ "asset.dynamic_custom_asset.similar_ids",
180
+ "asset.dynamic_education_asset.contextual_keywords",
181
+ "asset.dynamic_education_asset.similar_program_ids",
182
+ "asset.dynamic_flights_asset.similar_destination_ids",
183
+ "asset.dynamic_hotels_and_rentals_asset.contextual_keywords",
184
+ "asset.dynamic_hotels_and_rentals_asset.similar_property_ids",
185
+ "asset.dynamic_jobs_asset.contextual_keywords",
186
+ "asset.dynamic_jobs_asset.similar_job_ids",
187
+ "asset.dynamic_local_asset.contextual_keywords",
188
+ "asset.dynamic_local_asset.similar_deal_ids",
189
+ "asset.dynamic_real_estate_asset.contextual_keywords",
190
+ "asset.dynamic_real_estate_asset.similar_listing_ids",
191
+ "asset.dynamic_travel_asset.contextual_keywords",
192
+ "asset.dynamic_travel_asset.similar_destination_ids",
193
+ "asset.final_mobile_urls",
194
+ "asset.final_urls",
195
+ "asset.page_feed_asset.labels",
196
+ "asset.structured_snippet_asset.values",
197
+ "asset_group.final_mobile_urls",
198
+ "asset_group.final_urls",
199
+ "asset_group.primary_status_reasons",
200
+ "asset_group_asset.primary_status_reasons",
201
+ "asset_group_signal.disapproval_reasons",
202
+ "asset_set.business_profile_location_group.dynamic_business_profile_location_group_filter.label_filters",
203
+ "asset_set.business_profile_location_group.dynamic_business_profile_location_group_filter.listing_id_filters",
204
+ "asset_set.location_set.business_profile_location_set.label_filters",
205
+ "asset_set.location_set.business_profile_location_set.listing_id_filters",
206
+ "bidding_data_exclusion.advertising_channel_types",
207
+ "bidding_data_exclusion.campaigns",
208
+ "bidding_data_exclusion.devices",
209
+ "bidding_seasonality_adjustment.advertising_channel_types",
210
+ "bidding_seasonality_adjustment.campaigns",
211
+ "bidding_seasonality_adjustment.devices",
212
+ "campaign.excluded_parent_asset_field_types",
213
+ "campaign.excluded_parent_asset_set_types",
214
+ "campaign.feed_types",
215
+ "campaign.labels",
216
+ "campaign.optimization_goal_setting.optimization_goal_types",
217
+ "campaign.primary_status_reasons",
218
+ "campaign.selective_optimization.conversion_actions",
219
+ "campaign.shopping_setting.advertising_partner_ids",
220
+ "campaign.text_guidelines.term_exclusions",
221
+ "campaign_asset.primary_status_reasons",
222
+ "campaign_criterion.location_group.geo_target_constants",
223
+ "campaign_criterion.topic.path",
224
+ "campaign_criterion.webpage.sample.sample_urls",
225
+ "conversion_value_rule.audience_condition.user_interests",
226
+ "conversion_value_rule.audience_condition.user_lists",
227
+ "conversion_value_rule.device_condition.device_types",
228
+ "conversion_value_rule.geo_location_condition.excluded_geo_target_constants",
229
+ "conversion_value_rule.geo_location_condition.geo_target_constants",
230
+ "conversion_value_rule_set.conversion_value_rules",
231
+ "conversion_value_rule_set.dimensions",
232
+ "custom_conversion_goal.conversion_actions",
233
+ "customer.pay_per_conversion_eligibility_failure_reasons",
234
+ "customer_asset.primary_status_reasons",
235
+ "customer_client.applied_labels",
236
+ "experiment_arm.campaigns",
237
+ "experiment_arm.in_design_campaigns",
238
+ "keyword_plan_campaign.language_constants",
239
+ "local_services_employee.category_ids",
240
+ "local_services_employee.languages_spoken",
241
+ "metrics.interaction_event_types",
242
+ "recommendation.campaigns",
243
+ "shared_criterion.webpage.sample.sample_urls",
244
+ "shopping_product.target_countries",
245
+ "topic_constant.path",
246
+ "user_list.lookalike_user_list.country_codes",
247
+ "user_list.lookalike_user_list.seed_user_list_ids"
248
+ ]);
249
+ var LIST_FIELD_OPERATORS = "CONTAINS ALL, CONTAINS ANY, CONTAINS NONE";
250
+ function listFieldGuidance(field) {
251
+ return `${field} is a list field: it takes only ${LIST_FIELD_OPERATORS} \u2014 no comparison (=, !=, IN), pattern match or null test. To find rows that have it, drop that condition, keep ${field} in SELECT and filter the rows (rows without it omit the key); to match values, use ${field} CONTAINS ANY ('value')`;
252
+ }
253
+
254
+ // src/commands/ads/google/correction-table.ts
255
+ function buildCommand(query, ctx) {
256
+ return `baker ads google query "${query}" --customer-id ${ctx.customerId}`;
257
+ }
258
+ var CORRECTION_RULES = [
259
+ // 0. EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE — some resources (e.g. campaign_budget)
260
+ // require fields filtered in WHERE to also be selected. The error names the exact field,
261
+ // so add it to SELECT and retry. Kept first: field-specific rules below must not shadow
262
+ // this with an unrelated rewrite when the named field happens to match their pattern.
263
+ {
264
+ matchApiError: /must be present in SELECT clause:\s*'([\w.]+)'/i,
265
+ fix: (ctx) => {
266
+ const field = ctx.apiErrorMessage?.match(/must be present in SELECT clause:\s*'([\w.]+)'/i)?.[1];
267
+ if (!field) {
268
+ return {
269
+ action: "add_required_field",
270
+ explanation: "Add the field named in the error to the SELECT clause and retry"
271
+ };
272
+ }
273
+ const corrected = ctx.originalQuery.replace(/SELECT\s+/i, `SELECT ${field}, `);
274
+ return {
275
+ action: "add_required_field",
276
+ correctedCommand: buildCommand(corrected, ctx),
277
+ explanation: `${field} is used in WHERE but this resource requires it in SELECT too \u2014 added it`
278
+ };
279
+ }
280
+ },
281
+ // 0b. OPERATOR_FIELD_MISMATCH — the field refuses this operator, and Google names the
282
+ // ones it takes. Kept ahead of the field-specific rules for the same reason as rule 0.
283
+ // A repeated field (final_urls, labels, …) takes only CONTAINS ALL/ANY/NONE, so it has
284
+ // no null test at all: read it unfiltered and filter the rows instead.
285
+ {
286
+ matchApiError: /OPERATOR_FIELD_MISMATCH|is not a valid operator to use with/i,
287
+ fix: (ctx) => {
288
+ const message = ctx.apiErrorMessage ?? "";
289
+ const field = message.match(/valid operator to use with '([\w.]+)'/i)?.[1] ?? "this field";
290
+ const operator = message.match(/([A-Z=!<>][A-Z_ =!<>]*?) is not a valid operator/)?.[1]?.trim();
291
+ const valid = message.match(/Valid operators: (.+?)\.?(?:"|$)/i)?.[1]?.trim();
292
+ const refused = operator ? `${operator} cannot be used on ${field}` : `${field} does not take that operator`;
293
+ const allowed = valid ? `; its valid operators are ${valid}` : "";
294
+ const repeated = valid?.split(",").every((op) => /^CONTAINS (ALL|ANY|NONE)$/i.test(op.trim())) ?? false;
295
+ const guidance = repeated ? `. ${listFieldGuidance(field)}` : ". Rewrite that condition with one of them, or drop it and filter the rows";
296
+ return {
297
+ action: "change_operator",
298
+ explanation: `${refused}${allowed}${guidance}`
299
+ };
300
+ }
301
+ },
302
+ // 1. bare keyword.text → ad_group_criterion.keyword.text (leaves <resource>.keyword.text untouched)
303
+ {
304
+ matchQuery: /(?<![\w.])keyword\.text\b/,
305
+ matchApiError: /keyword\.text/i,
306
+ fix: (ctx) => {
307
+ const corrected = ctx.originalQuery.replace(/(?<![\w.])keyword\.text\b/g, "ad_group_criterion.keyword.text");
308
+ return {
309
+ action: "retry_with_modified_query",
310
+ correctedCommand: buildCommand(corrected, ctx),
311
+ explanation: "Use ad_group_criterion.keyword.text \u2014 keywords are accessed through the criterion resource"
312
+ };
313
+ }
314
+ },
315
+ // 2. bare keyword.match_type → ad_group_criterion.keyword.match_type (leaves <resource>.keyword.match_type untouched)
316
+ {
317
+ matchQuery: /(?<![\w.])keyword\.match_type\b/,
318
+ matchApiError: /keyword\.match_type/i,
319
+ fix: (ctx) => {
320
+ const corrected = ctx.originalQuery.replace(
321
+ /(?<![\w.])keyword\.match_type\b/g,
322
+ "ad_group_criterion.keyword.match_type"
323
+ );
324
+ return {
325
+ action: "retry_with_modified_query",
326
+ correctedCommand: buildCommand(corrected, ctx),
327
+ explanation: "Use ad_group_criterion.keyword.match_type for keyword match type"
328
+ };
329
+ }
330
+ },
331
+ // 3. campaign_budget.* queried FROM campaign
332
+ {
333
+ matchQuery: /campaign_budget\.\w+.*FROM\s+campaign\b/i,
334
+ matchApiError: /campaign_budget.*not.*valid.*campaign|cannot.*select.*campaign_budget/i,
335
+ fix: (ctx) => {
336
+ const corrected = ctx.originalQuery.replace(/FROM\s+campaign\b/i, "FROM campaign_budget");
337
+ return {
338
+ action: "use_different_resource",
339
+ correctedCommand: buildCommand(corrected, ctx),
340
+ explanation: "campaign_budget fields must be queried FROM campaign_budget, not FROM campaign"
341
+ };
342
+ }
343
+ },
344
+ // 4. CONTAINS → LIKE. Keyed on the query alone: Google's error envelope ("Request contains an
345
+ // invalid argument … Valid operators: CONTAINS ANY") matches any loose error pattern, and this
346
+ // advice only makes sense when the query actually wrote CONTAINS(…).
347
+ {
348
+ matchQuery: /CONTAINS\s*\(/i,
349
+ fix: (ctx) => {
350
+ const match = ctx.originalQuery.match(/CONTAINS\s*\(\s*([^,]+),\s*'([^']+)'\s*\)/i);
351
+ if (match) {
352
+ const field = match[1]?.trim();
353
+ const value = match[2] ?? "";
354
+ const corrected = ctx.originalQuery.replace(
355
+ /CONTAINS\s*\(\s*[^,]+,\s*'[^']+'\s*\)/i,
356
+ `${field} LIKE '%${value}%'`
357
+ );
358
+ return {
359
+ action: "change_operator",
360
+ correctedCommand: buildCommand(corrected, ctx),
361
+ explanation: "GAQL uses LIKE '%value%' for substring matching, not CONTAINS()"
362
+ };
363
+ }
364
+ return {
365
+ action: "change_operator",
366
+ explanation: "Replace CONTAINS(field, 'value') with field LIKE '%value%'"
367
+ };
368
+ }
369
+ },
370
+ // 5. ad_group_criterion query without negative filter — auto-add the field
371
+ {
372
+ matchQuery: /FROM\s+ad_group_criterion\b(?!.*ad_group_criterion\.negative)/i,
373
+ fix: (ctx) => {
374
+ const corrected = ctx.originalQuery.replace(/SELECT\s+/i, "SELECT ad_group_criterion.negative, ");
375
+ return {
376
+ action: "add_required_field",
377
+ correctedCommand: buildCommand(corrected, ctx),
378
+ explanation: "Added ad_group_criterion.negative to distinguish positive (targeting) from negative (blocking) keywords. Filter with WHERE ad_group_criterion.negative = FALSE for positives only."
379
+ };
380
+ }
381
+ },
382
+ // 6. Missing campaign.id in ad_group queries
383
+ {
384
+ matchQuery: /FROM\s+ad_group\b/i,
385
+ matchApiError: /campaign\.id.*required|must.*include.*campaign\.id/i,
386
+ fix: (ctx) => {
387
+ const corrected = ctx.originalQuery.replace(/SELECT\s+/i, "SELECT campaign.id, ");
388
+ return {
389
+ action: "add_required_field",
390
+ correctedCommand: buildCommand(corrected, ctx),
391
+ explanation: "Ad group queries require campaign.id in SELECT for parent context"
392
+ };
393
+ }
394
+ },
395
+ // 6. Missing campaign.id in keyword_view queries
396
+ {
397
+ matchQuery: /FROM\s+keyword_view\b/i,
398
+ matchApiError: /campaign\.id.*required.*keyword/i,
399
+ fix: (ctx) => {
400
+ const corrected = ctx.originalQuery.replace(/SELECT\s+/i, "SELECT campaign.id, ");
401
+ return {
402
+ action: "add_required_field",
403
+ correctedCommand: buildCommand(corrected, ctx),
404
+ explanation: "Keyword view queries require campaign.id in SELECT"
405
+ };
406
+ }
407
+ },
408
+ // 7. shopping_performance_view.product_* → segments.product_*
409
+ {
410
+ matchQuery: /shopping_performance_view\.product_\w+/,
411
+ matchApiError: /shopping_performance_view\.product/i,
412
+ fix: (ctx) => {
413
+ const corrected = ctx.originalQuery.replace(/shopping_performance_view\.product_(\w+)/g, "segments.product_$1");
414
+ return {
415
+ action: "retry_with_modified_query",
416
+ correctedCommand: buildCommand(corrected, ctx),
417
+ explanation: "Product fields are segments (segments.product_*), not fields on shopping_performance_view"
418
+ };
419
+ }
420
+ },
421
+ // 8. Open-ended date range
422
+ {
423
+ matchQuery: /segments\.date\s*>=\s*'(\d{4}-\d{2}-\d{2})'/i,
424
+ matchApiError: /date.*range.*must.*finite|open.*ended/i,
425
+ fix: (ctx) => {
426
+ const match = ctx.originalQuery.match(/segments\.date\s*>=\s*'(\d{4}-\d{2}-\d{2})'/i);
427
+ const startDate = match?.[1] ?? "2024-01-01";
428
+ const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
429
+ const corrected = ctx.originalQuery.replace(
430
+ /segments\.date\s*>=\s*'(\d{4}-\d{2}-\d{2})'/i,
431
+ `segments.date BETWEEN '${startDate}' AND '${today}'`
432
+ );
433
+ return {
434
+ action: "narrow_date_range",
435
+ correctedCommand: buildCommand(corrected, ctx),
436
+ explanation: "Use BETWEEN with explicit end date \u2014 open-ended ranges are not supported"
437
+ };
438
+ }
439
+ },
440
+ // 9. Missing LIMIT
441
+ {
442
+ matchQuery: /^(?!.*\bLIMIT\b)/is,
443
+ fix: (ctx) => {
444
+ const corrected = `${ctx.originalQuery.trimEnd()} LIMIT 200`;
445
+ return {
446
+ action: "retry_with_modified_query",
447
+ correctedCommand: buildCommand(corrected, ctx),
448
+ explanation: "Added LIMIT 200 to prevent excessive data transfer"
449
+ };
450
+ }
451
+ },
452
+ // 10a. Customer not found (wrong customer ID)
453
+ {
454
+ matchApiError: /CUSTOMER_NOT_FOUND|not.*found.*customer/i,
455
+ fix: () => ({
456
+ action: "reject",
457
+ explanation: "Customer ID not found. Run 'baker ads google accounts' to list valid customer IDs, then retry with a valid --customer-id."
458
+ })
459
+ },
460
+ // 10b. Not accessible / login-customer-id required
461
+ {
462
+ matchApiError: /not.*accessible|login.customer.id/i,
463
+ fix: (ctx) => ({
464
+ action: "reject",
465
+ correctedCommand: buildCommand(ctx.originalQuery, ctx),
466
+ explanation: "Account not accessible \u2014 may need a manager (MCC) login-customer-id. Run 'baker ads google accounts' to refresh the accounts cache, then retry."
467
+ })
468
+ },
469
+ // 11. Campaign type by name matching
470
+ {
471
+ matchQuery: /campaign\.name\s*LIKE\s*'%\s*(shopping|pmax|search|display|video)\s*%'/i,
472
+ fix: (ctx) => {
473
+ const match = ctx.originalQuery.match(/campaign\.name\s*LIKE\s*'%\s*(shopping|pmax|search|display|video)\s*%'/i);
474
+ const typeMap = {
475
+ shopping: "SHOPPING",
476
+ pmax: "PERFORMANCE_MAX",
477
+ search: "SEARCH",
478
+ display: "DISPLAY",
479
+ video: "VIDEO"
480
+ };
481
+ const channelType = typeMap[match?.[1]?.toLowerCase() ?? ""] ?? "SEARCH";
482
+ const corrected = ctx.originalQuery.replace(
483
+ /campaign\.name\s*LIKE\s*'%[^']*%'/i,
484
+ `campaign.advertising_channel_type = '${channelType}'`
485
+ );
486
+ return {
487
+ action: "retry_with_modified_query",
488
+ correctedCommand: buildCommand(corrected, ctx),
489
+ explanation: "Filter by campaign.advertising_channel_type enum, not by name pattern"
490
+ };
491
+ }
492
+ },
493
+ // 12. Incompatible fields
494
+ {
495
+ matchApiError: /incompatible|mutually.*exclusive|cannot.*select.*together/i,
496
+ fix: () => ({
497
+ action: "split_query",
498
+ explanation: "These fields cannot be in the same query \u2014 split into separate queries and join client-side"
499
+ })
500
+ },
501
+ // 13. campaign.status = 'ACTIVE' → 'ENABLED'
502
+ {
503
+ matchQuery: /campaign\.status\s*=\s*'ACTIVE'/i,
504
+ fix: (ctx) => {
505
+ const corrected = ctx.originalQuery.replace(/campaign\.status\s*=\s*'ACTIVE'/gi, "campaign.status = 'ENABLED'");
506
+ return {
507
+ action: "retry_with_modified_query",
508
+ correctedCommand: buildCommand(corrected, ctx),
509
+ explanation: "Campaign status uses ENABLED, not ACTIVE"
510
+ };
511
+ }
512
+ },
513
+ // 14. ad_group.status = 'ACTIVE' → 'ENABLED'
514
+ {
515
+ matchQuery: /ad_group\.status\s*=\s*'ACTIVE'/i,
516
+ fix: (ctx) => {
517
+ const corrected = ctx.originalQuery.replace(/ad_group\.status\s*=\s*'ACTIVE'/gi, "ad_group.status = 'ENABLED'");
518
+ return {
519
+ action: "retry_with_modified_query",
520
+ correctedCommand: buildCommand(corrected, ctx),
521
+ explanation: "Ad group status uses ENABLED, not ACTIVE"
522
+ };
523
+ }
524
+ },
525
+ // 15. ad.final_urls → ad_group_ad.ad.final_urls
526
+ {
527
+ matchQuery: /\bad\.final_urls\b(?!.*ad_group_ad)/,
528
+ matchApiError: /ad\.final_urls/i,
529
+ fix: (ctx) => {
530
+ const corrected = ctx.originalQuery.replace(/\bad\.final_urls\b/g, "ad_group_ad.ad.final_urls");
531
+ return {
532
+ action: "retry_with_modified_query",
533
+ correctedCommand: buildCommand(corrected, ctx),
534
+ explanation: "Use the full path: ad_group_ad.ad.final_urls"
535
+ };
536
+ }
537
+ },
538
+ // 15b. asset.<type>_asset.final_urls → asset.final_urls (final URLs live on the asset
539
+ // itself; the typed sub-message only carries type-specific fields like link_text)
540
+ {
541
+ matchQuery: /asset\.\w+_asset\.final_(mobile_)?urls\b/,
542
+ matchApiError: /asset\.\w+_asset\.final_(mobile_)?urls/i,
543
+ fix: (ctx) => {
544
+ const corrected = ctx.originalQuery.replace(/asset\.\w+_asset\.final_(mobile_)?urls\b/g, "asset.final_$1urls");
545
+ return {
546
+ action: "retry_with_modified_query",
547
+ correctedCommand: buildCommand(corrected, ctx),
548
+ explanation: "Final URLs are on the asset itself \u2014 use asset.final_urls, not asset.<type>_asset.final_urls"
549
+ };
550
+ }
551
+ },
552
+ // 16. Rate limit / quota
553
+ {
554
+ matchApiError: /RESOURCE_EXHAUSTED|quota.*exceeded|rate.*limit/i,
555
+ fix: () => ({
556
+ action: "wait_and_retry",
557
+ explanation: "API quota exceeded \u2014 wait 30 seconds before retrying"
558
+ })
559
+ },
560
+ // 17. WHERE on metrics
561
+ {
562
+ matchApiError: /cannot.*filter.*metric|WHERE.*metrics|prohibited.*where/i,
563
+ fix: () => ({
564
+ action: "reject",
565
+ explanation: "Cannot filter on metrics in WHERE clause \u2014 remove the metrics filter and filter results client-side"
566
+ })
567
+ },
568
+ // 18. ORDER BY field not in SELECT
569
+ {
570
+ matchApiError: /order.*by.*field.*not.*selected|must.*select.*field.*order/i,
571
+ fix: (ctx) => {
572
+ const orderMatch = ctx.originalQuery.match(/ORDER\s+BY\s+([\w.]+)/i);
573
+ const field = orderMatch?.[1] ?? "field";
574
+ const corrected = ctx.originalQuery.replace(/SELECT\s+/i, `SELECT ${field}, `);
575
+ return {
576
+ action: "add_required_field",
577
+ correctedCommand: buildCommand(corrected, ctx),
578
+ explanation: `Add ${field} to SELECT \u2014 ORDER BY fields must be selected`
579
+ };
580
+ }
581
+ },
582
+ // The change-history rules must stay ahead of rule 19: its `status.*filter`
583
+ // pattern also matches Google's change_status errors ("the change_status request
584
+ // is missing filters on ..."), and the first matching rule wins.
585
+ // 18a. change_event past its 30-day reach → change_status, which reaches 90 days.
586
+ // These three rules match on the error code only, never on the resource in the query.
587
+ // A `matchQuery` here would also fire in the query-pattern pass — the fallback used
588
+ // when no rule recognised the error — and answer every unrelated failure on a history
589
+ // query with "switch resources", which is never the real fix. The backend forwards the
590
+ // code as JSON (`"changeEventError":"START_DATE_TOO_OLD"`), so match that shape as well
591
+ // as the dotted enum spelling.
592
+ {
593
+ matchApiError: /changeEventError\W{0,4}START_DATE_TOO_OLD/i,
594
+ fix: (ctx) => {
595
+ const limit = ctx.originalQuery.match(/LIMIT\s+(\d+)/i)?.[1] ?? "50";
596
+ const requested = ctx.originalQuery.match(/change_date_time\s*>=\s*'([^']+)'/i)?.[1]?.slice(0, 10);
597
+ const oldestStart = new Date(Date.now() - 89 * 24 * 60 * 60 * 1e3).toISOString().slice(0, 10);
598
+ const start = requested && requested > oldestStart ? requested : oldestStart;
599
+ const corrected = `SELECT change_status.last_change_date_time, change_status.resource_type, change_status.resource_status, change_status.resource_name, change_status.campaign, change_status.ad_group FROM change_status WHERE change_status.last_change_date_time >= '${start}' ORDER BY change_status.last_change_date_time DESC LIMIT ${limit}`;
600
+ return {
601
+ action: "use_different_resource",
602
+ correctedCommand: buildCommand(corrected, ctx),
603
+ explanation: `change_event only reaches back 30 days. change_status reaches 90 (from ${start}) but reports only which resources changed and whether they were added, changed or removed \u2014 no old/new values and no user email. Read a changed resource by its resource_name to see its current values.`
604
+ };
605
+ }
606
+ },
607
+ // 18b. Past 90 days no history resource reaches — infer the change from spend instead.
608
+ {
609
+ matchApiError: /changeStatusError\W{0,4}START_DATE_TOO_OLD/i,
610
+ fix: () => ({
611
+ action: "use_different_resource",
612
+ explanation: `Google's account history reaches back 90 days at most, and this query asks for more. Do not abort \u2014 infer the change from performance: ${monthlySpendTrendQuery()} shows which campaigns started or stopped spending and when, though not who changed them. Anything older with attribution exists only in the Google Ads web UI, which has no API.`
613
+ })
614
+ },
615
+ // 18c. change_status rejects a date range it cannot bound. Google raises this both for
616
+ // a half-open range and for no date filter at all, so supply whichever end is missing.
617
+ {
618
+ matchApiError: /CHANGE_DATE_RANGE_INFINITE/i,
619
+ fix: (ctx) => {
620
+ const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
621
+ const oldestStart = new Date(Date.now() - 89 * 24 * 60 * 60 * 1e3).toISOString().slice(0, 10);
622
+ const hasLowerBound = /last_change_date_time\s*>=?/i.test(ctx.originalQuery);
623
+ const hasUpperBound = /last_change_date_time\s*<=?/i.test(ctx.originalQuery);
624
+ const bounds = [
625
+ ...hasLowerBound ? [] : [`change_status.last_change_date_time >= '${oldestStart}'`],
626
+ ...hasUpperBound ? [] : [`change_status.last_change_date_time <= '${today}'`]
627
+ ];
628
+ const hasWhere = /\bWHERE\b/i.test(ctx.originalQuery);
629
+ const clause = hasWhere ? ` AND ${bounds.join(" AND ")}` : ` WHERE ${bounds.join(" AND ")}`;
630
+ const corrected = /\s+(ORDER\s+BY|LIMIT)\b/i.test(ctx.originalQuery) ? ctx.originalQuery.replace(/(\s+)(ORDER\s+BY|LIMIT)\b/i, `${clause}$1$2`) : ctx.originalQuery.trimEnd() + clause;
631
+ return {
632
+ action: "add_required_field",
633
+ correctedCommand: buildCommand(corrected, ctx),
634
+ explanation: "change_status needs a date range bounded at both ends \u2014 added the missing bound(s) on last_change_date_time."
635
+ };
636
+ }
637
+ },
638
+ // 19. Results include REMOVED entities
639
+ {
640
+ matchApiError: /REMOVED.*entities|status.*filter/i,
641
+ fix: (ctx) => {
642
+ const resourceMatch = ctx.originalQuery.match(/FROM\s+(\w+)/i);
643
+ const resource = resourceMatch?.[1] ?? "campaign";
644
+ const hasWhere = /WHERE/i.test(ctx.originalQuery);
645
+ const suffix = hasWhere ? ` AND ${resource}.status != 'REMOVED'` : ` WHERE ${resource}.status != 'REMOVED'`;
646
+ const limitMatch = ctx.originalQuery.match(/(\s+LIMIT\s+\d+)/i);
647
+ let corrected;
648
+ if (limitMatch) {
649
+ corrected = ctx.originalQuery.replace(/(\s+LIMIT\s+\d+)/i, `${suffix}$1`);
650
+ } else {
651
+ corrected = ctx.originalQuery.trimEnd() + suffix;
652
+ }
653
+ return {
654
+ action: "retry_with_modified_query",
655
+ correctedCommand: buildCommand(corrected, ctx),
656
+ explanation: `Add status filter to exclude REMOVED ${resource}s`
657
+ };
658
+ }
659
+ },
660
+ // 20. change_event without date constraint
661
+ {
662
+ matchQuery: /FROM\s+change_event\b(?!.*change_date_time)/i,
663
+ matchApiError: /change_event.*date|date.*required.*change/i,
664
+ fix: (ctx) => {
665
+ const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1e3).toISOString().slice(0, 10);
666
+ const hasWhere = /WHERE/i.test(ctx.originalQuery);
667
+ const suffix = hasWhere ? ` AND change_event.change_date_time >= '${sevenDaysAgo}'` : ` WHERE change_event.change_date_time >= '${sevenDaysAgo}'`;
668
+ const corrected = ctx.originalQuery.trimEnd() + suffix;
669
+ return {
670
+ action: "add_required_field",
671
+ correctedCommand: buildCommand(corrected, ctx),
672
+ explanation: "change_event queries require a date constraint on change_date_time"
673
+ };
674
+ }
675
+ },
676
+ // 21. resource_name = 'customers/X/Y/Z' → resource.id = Z
677
+ {
678
+ matchQuery: /(\w+)\.resource_name\s*=\s*'customers\/\d+\/\w+\/(\d+)'/i,
679
+ fix: (ctx) => {
680
+ const match = ctx.originalQuery.match(/(\w+)\.resource_name\s*=\s*'customers\/\d+\/\w+\/(\d+)'/i);
681
+ const resource = match?.[1] ?? "campaign";
682
+ const id = match?.[2] ?? "ID";
683
+ const corrected = ctx.originalQuery.replace(
684
+ /(\w+)\.resource_name\s*=\s*'customers\/\d+\/\w+\/(\d+)'/i,
685
+ `${resource}.id = ${id}`
686
+ );
687
+ return {
688
+ action: "retry_with_modified_query",
689
+ correctedCommand: buildCommand(corrected, ctx),
690
+ explanation: `Simpler: use ${resource}.id = ${id} instead of resource_name path`
691
+ };
692
+ }
693
+ },
694
+ // 22. segments.click_type incompatibility
695
+ {
696
+ matchApiError: /click_type.*incompatible|cannot.*click_type/i,
697
+ fix: (ctx) => {
698
+ const corrected = ctx.originalQuery.replace(/,?\s*segments\.click_type/g, "");
699
+ return {
700
+ action: "split_query",
701
+ correctedCommand: buildCommand(corrected, ctx),
702
+ explanation: "segments.click_type is incompatible with other segments \u2014 remove it or query separately"
703
+ };
704
+ }
705
+ },
706
+ // 23. Bare resource in SELECT
707
+ {
708
+ matchApiError: /cannot.*select.*bare.*resource|invalid.*field/i,
709
+ fix: () => ({
710
+ action: "retry_with_modified_query",
711
+ explanation: "Cannot SELECT a bare resource name \u2014 use resource.id, resource.name, or resource.resource_name"
712
+ })
713
+ },
714
+ // 24. Authentication error
715
+ {
716
+ matchApiError: /unauthenticated|authentication.*required|invalid.*credentials/i,
717
+ fix: () => ({
718
+ action: "authenticate",
719
+ explanation: "Google Ads authentication failed \u2014 reconnect Google Ads in dashboard settings"
720
+ })
721
+ },
722
+ // 25. Timeout / deadline exceeded
723
+ {
724
+ matchApiError: /timeout|deadline.*exceeded|DEADLINE_EXCEEDED/i,
725
+ fix: (ctx) => ({
726
+ action: "retry_with_modified_query",
727
+ correctedCommand: buildCommand(ctx.originalQuery, ctx),
728
+ explanation: "Query timed out \u2014 narrow the date range, add more WHERE filters, or reduce LIMIT"
729
+ })
730
+ }
731
+ ];
732
+
733
+ // src/commands/ads/google/error-parser.ts
734
+ function mapErrorCode(message) {
735
+ if (/must be present in SELECT clause/i.test(message)) return "MISSING_SELECT_FIELD";
736
+ if (/field.*not.*found|unrecognized.*field|not.*valid.*field/i.test(message)) return "FIELD_NOT_FOUND";
737
+ if (/not.*valid.*resource|cannot.*select.*from/i.test(message)) return "WRONG_RESOURCE";
738
+ if (/operator|CONTAINS|LIKE/i.test(message)) return "INVALID_OPERATOR";
739
+ if (/CUSTOMER_NOT_FOUND/i.test(message)) return "CUSTOMER_NOT_FOUND";
740
+ if (/login.customer.id|not.*accessible/i.test(message)) return "MISSING_MANAGER_ID";
741
+ if (/incompatible|mutually.*exclusive|PROHIBITED_SEGMENT_WITH_METRIC/i.test(message)) return "INCOMPATIBLE_FIELDS";
742
+ if (/unauthenticated|authentication/i.test(message)) return "AUTH_ERROR";
743
+ if (/permission/i.test(message)) return "PERMISSION_DENIED";
744
+ if (/RESOURCE_EXHAUSTED|quota|rate.*limit/i.test(message)) return "QUOTA_EXCEEDED";
745
+ if (/timeout|DEADLINE_EXCEEDED/i.test(message)) return "TIMEOUT";
746
+ return "API_ERROR";
747
+ }
748
+ function isRetryable(code) {
749
+ return code === "QUOTA_EXCEEDED" || code === "TIMEOUT";
750
+ }
751
+ function getRetryDelay(code) {
752
+ if (code === "QUOTA_EXCEEDED") return 3e4;
753
+ if (code === "TIMEOUT") return 5e3;
754
+ return void 0;
755
+ }
756
+ function parseApiError(errorMessage, originalQuery, customerId, apiCode) {
757
+ const ctx = {
758
+ originalQuery,
759
+ customerId,
760
+ apiErrorMessage: errorMessage
761
+ };
762
+ if (apiCode && isNotConnectedError(apiCode, errorMessage)) {
763
+ return {
764
+ ok: false,
765
+ error: {
766
+ code: "NO_GOOGLE_ADS_CONNECTION",
767
+ message: errorMessage,
768
+ fix: { action: "request_connection", explanation: connectionFixExplanation("google_ads") },
769
+ retryable: false
770
+ }
771
+ };
772
+ }
773
+ for (const rule of CORRECTION_RULES) {
774
+ if (rule.matchApiError?.test(errorMessage)) {
775
+ const fix = rule.fix(ctx);
776
+ const code2 = mapErrorCode(errorMessage);
777
+ return {
778
+ ok: false,
779
+ error: {
780
+ code: code2,
781
+ message: errorMessage,
782
+ fix,
783
+ retryable: isRetryable(code2),
784
+ retryAfterMs: getRetryDelay(code2)
785
+ }
786
+ };
787
+ }
788
+ }
789
+ for (const rule of CORRECTION_RULES) {
790
+ if (rule.matchQuery?.test(originalQuery)) {
791
+ const fix = rule.fix(ctx);
792
+ const code2 = mapErrorCode(errorMessage);
793
+ return {
794
+ ok: false,
795
+ error: {
796
+ code: code2,
797
+ message: errorMessage,
798
+ fix,
799
+ retryable: isRetryable(code2),
800
+ retryAfterMs: getRetryDelay(code2)
801
+ }
802
+ };
803
+ }
804
+ }
805
+ const code = mapErrorCode(errorMessage);
806
+ return {
807
+ ok: false,
808
+ error: {
809
+ code,
810
+ message: errorMessage,
811
+ fix: {
812
+ action: "reject",
813
+ explanation: "Unrecognized error \u2014 verify query syntax against Google Ads GAQL reference"
814
+ },
815
+ retryable: isRetryable(code),
816
+ retryAfterMs: getRetryDelay(code)
817
+ }
818
+ };
819
+ }
820
+
821
+ export {
822
+ isDuringLiteral,
823
+ equivalentBetween,
824
+ duringLiteralExplanation,
825
+ resolveChangesWindow,
826
+ LIST_FIELDS,
827
+ listFieldGuidance,
828
+ parseApiError
829
+ };
830
+ //# sourceMappingURL=chunk-GX6VAHY7.js.map