@koda-sl/baker-cli 0.567.0 → 0.569.0-dev.1b455b3fe
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.
- package/README.md +10 -9
- package/dist/account-JREYXYNE.js +82 -0
- package/dist/account-OUKPRB7C.js +139 -0
- package/dist/account-WN5MJ5QN.js +82 -0
- package/dist/account-assets-IWJWYNQ3.js +290 -0
- package/dist/account-level-SHZBOMVV.js +612 -0
- package/dist/account-level-SHZBOMVV.js.map +1 -0
- package/dist/account-reads-GF3T25HX.js +220 -0
- package/dist/account-reads-GF3T25HX.js.map +1 -0
- package/dist/account-users-7NKBUVYA.js +65 -0
- package/dist/account-users-7NKBUVYA.js.map +1 -0
- package/dist/account-writes-IUIXIVRC.js +68 -0
- package/dist/accounts-4YRDRLHX.js +80 -0
- package/dist/accounts-HEGADQ6E.js +119 -0
- package/dist/accounts-OSVXKNSI.js +76 -0
- package/dist/accounts-SJOO4MQX.js +115 -0
- package/dist/accounts-V7EOUTNL.js +713 -0
- package/dist/actions-5LYJ3U6G.js +55 -0
- package/dist/active-entities-4KQQSMRZ.js +103 -0
- package/dist/activecampaign-CZHLHGT4.js +938 -0
- package/dist/activities-FRA33VZZ.js +75 -0
- package/dist/ad-group-writes-YQXBUA3Q.js +172 -0
- package/dist/ad-groups-NJR4ILEN.js +70 -0
- package/dist/ad-writes-TZV64CC2.js +176 -0
- package/dist/add-MZUSKY2L.js +305 -0
- package/dist/add-NAUSQKRS.js +107 -0
- package/dist/ads-A2FXTQES.js +120 -0
- package/dist/ads-PYTK3LJE.js +48 -0
- package/dist/ads-Q7DD5VXU.js +79 -0
- package/dist/adsets-ZHEVFOK4.js +182 -0
- package/dist/advertisers-HSTND4HE.js +123 -0
- package/dist/analytics-63Q3FJN4.js +447 -0
- package/dist/analytics-GLJODEIM.js +2437 -0
- package/dist/animate-EI6AYBDI.js +480 -0
- package/dist/asset-writes-MS45UKJ3.js +51 -0
- package/dist/assign-7HT3XSSN.js +80 -0
- package/dist/audience-size-DG7544D2.js +76 -0
- package/dist/audience-writes-IL64HQBS.js +328 -0
- package/dist/audience-writes-IL64HQBS.js.map +1 -0
- package/dist/audiences-2IVVS3SJ.js +280 -0
- package/dist/audiences-RN745R53.js +85 -0
- package/dist/audiences-Z2TQT35L.js +106 -0
- package/dist/audit-BIHMDO5K.js +88 -0
- package/dist/audit-ZYST7KCO.js +154 -0
- package/dist/autocomplete-5BKEMOQ3.js +114 -0
- package/dist/avatars-FQOCDWLW.js +38 -0
- package/dist/bid-pricing-JEW7T2VR.js +103 -0
- package/dist/brand-FR6BKWXN.js +22 -0
- package/dist/brief-32IXDJ4J.js +543 -0
- package/dist/businesses-HECSW3EL.js +54 -0
- package/dist/campaign-groups-LYPVIZT5.js +99 -0
- package/dist/campaign-writes-D5MM5LUH.js +168 -0
- package/dist/campaign-writes-S7A6W5V3.js +176 -0
- package/dist/campaigns-CMDF3P7Y.js +111 -0
- package/dist/campaigns-LIICP5JU.js +113 -0
- package/dist/campaigns-N72TOUQX.js +130 -0
- package/dist/campaigns-ZWJKBF3L.js +78 -0
- package/dist/canvas-3SNC3UUV.js +46 -0
- package/dist/capabilities-GL7P3SWY.js +147 -0
- package/dist/cards-RYQN5JLR.js +85 -0
- package/dist/catalog-PWAWDK42.js +66 -0
- package/dist/catalogs-2R5RV4L7.js +783 -0
- package/dist/catalogs-2R5RV4L7.js.map +1 -0
- package/dist/catalogs-SLPYHA7D.js +130 -0
- package/dist/changes-WOD4EOSN.js +167 -0
- package/dist/chatgpt-3GX4I6NH.js +47 -0
- package/dist/chats-K2WUFVCG.js +584 -0
- package/dist/chats-K2WUFVCG.js.map +1 -0
- package/dist/check-ZSQ4EIFB.js +154 -0
- package/dist/check-ZSQ4EIFB.js.map +1 -0
- package/dist/chunk-34ARMQNL.js +197 -0
- package/dist/chunk-34MZGC2Y.js +207 -0
- package/dist/chunk-3JOGDGGP.js +24026 -0
- package/dist/chunk-3JOGDGGP.js.map +1 -0
- package/dist/chunk-46DHUWMV.js +642 -0
- package/dist/chunk-46DHUWMV.js.map +1 -0
- package/dist/chunk-4KBTW5NE.js +494 -0
- package/dist/chunk-4PAGS7QH.js +76 -0
- package/dist/chunk-53KV66ZZ.js +163 -0
- package/dist/chunk-55AX6DOP.js +86 -0
- package/dist/chunk-55AX6DOP.js.map +1 -0
- package/dist/chunk-5C4RRCKM.js +69 -0
- package/dist/chunk-5I6XOSNI.js +709 -0
- package/dist/chunk-5OE4Z7TP.js +287 -0
- package/dist/chunk-6OIKNJ7G.js +26 -0
- package/dist/chunk-6S4B67KP.js +962 -0
- package/dist/chunk-77LXZAX2.js +930 -0
- package/dist/chunk-7TVVYP7K.js +217 -0
- package/dist/chunk-7URHRPC7.js +3510 -0
- package/dist/chunk-7YMQEAGA.js +399 -0
- package/dist/chunk-A4O3JL6D.js +26 -0
- package/dist/chunk-ANRTDNPQ.js +115 -0
- package/dist/chunk-AQNTVM6S.js +1518 -0
- package/dist/chunk-BPDIY5CF.js +274 -0
- package/dist/chunk-CKHF7UXS.js +831 -0
- package/dist/chunk-CUTTTFAU.js +783 -0
- package/dist/chunk-D32EWSMB.js +150 -0
- package/dist/chunk-D55MN5IH.js +547 -0
- package/dist/chunk-DRQI2CJJ.js +138 -0
- package/dist/chunk-ESSA3AWR.js +133 -0
- package/dist/chunk-ESSA3AWR.js.map +1 -0
- package/dist/chunk-ETI6DGR2.js +312 -0
- package/dist/chunk-F3CZFUXZ.js +3187 -0
- package/dist/chunk-F3CZFUXZ.js.map +1 -0
- package/dist/chunk-FFTD7XDA.js +91 -0
- package/dist/chunk-FTKUHGTC.js +224 -0
- package/dist/chunk-GFYGVIT3.js +392 -0
- package/dist/chunk-GGXPO4NQ.js +225 -0
- package/dist/chunk-H56UJRLV.js +170 -0
- package/dist/chunk-HDMD6LXS.js +142 -0
- package/dist/chunk-HFZZKYUX.js +1320 -0
- package/dist/chunk-IAYJKH4R.js +5471 -0
- package/dist/chunk-IEPCI2EB.js +479 -0
- package/dist/chunk-IKADYUXK.js +344 -0
- package/dist/chunk-IMS53EQU.js +4277 -0
- package/dist/chunk-IMS53EQU.js.map +1 -0
- package/dist/chunk-IUX2LBW4.js +86 -0
- package/dist/chunk-IUX2LBW4.js.map +1 -0
- package/dist/chunk-J32CYEIH.js +74 -0
- package/dist/chunk-J5I3GYSJ.js +156 -0
- package/dist/chunk-JCVXKHVB.js +285 -0
- package/dist/chunk-JESSFI7R.js +468 -0
- package/dist/chunk-K4QPBXV7.js +61 -0
- package/dist/chunk-KJ3J2DYM.js +1919 -0
- package/dist/chunk-L43B2YGZ.js +2209 -0
- package/dist/chunk-L7UD57TV.js +219 -0
- package/dist/chunk-LJYXGUQ3.js +430 -0
- package/dist/chunk-LNYM4PQS.js +203 -0
- package/dist/chunk-LZR7LSYO.js +180 -0
- package/dist/chunk-LZR7LSYO.js.map +1 -0
- package/dist/chunk-MIXUMGJE.js +66 -0
- package/dist/chunk-MK4HCMEA.js +325 -0
- package/dist/chunk-MK4HCMEA.js.map +1 -0
- package/dist/chunk-MTFAG6E3.js +853 -0
- package/dist/chunk-MTFAG6E3.js.map +1 -0
- package/dist/chunk-MWJ6BCZJ.js +455 -0
- package/dist/chunk-MX5NQAK6.js +54 -0
- package/dist/chunk-MX5NQAK6.js.map +1 -0
- package/dist/chunk-O7WRA3JU.js +1902 -0
- package/dist/chunk-OADMSHME.js +334 -0
- package/dist/chunk-OLPABGH3.js +152 -0
- package/dist/chunk-ONGZKI5J.js +57 -0
- package/dist/chunk-OSZOUSK5.js +23 -0
- package/dist/chunk-PK7YNQ2T.js +454 -0
- package/dist/chunk-PN3CHL5W.js +98 -0
- package/dist/chunk-QMQSI4WA.js +89 -0
- package/dist/chunk-QUSDGZFS.js +188 -0
- package/dist/chunk-QXRSFH6M.js +604 -0
- package/dist/chunk-QZ4YHQLW.js +63 -0
- package/dist/chunk-RF3TP643.js +288 -0
- package/dist/chunk-RIRSFFWA.js +191 -0
- package/dist/chunk-ROHICQPK.js +8954 -0
- package/dist/chunk-RP3PC54R.js +169 -0
- package/dist/chunk-SIKCVWM3.js +76 -0
- package/dist/chunk-SOM4OTR5.js +167 -0
- package/dist/chunk-SYDPUGF5.js +126 -0
- package/dist/chunk-SYDPUGF5.js.map +1 -0
- package/dist/chunk-SZZ7BBED.js +148 -0
- package/dist/chunk-TAGJYHVI.js +191 -0
- package/dist/chunk-TB5JZTLN.js +19 -0
- package/dist/chunk-TQJLEVLA.js +131 -0
- package/dist/chunk-TW57RTKN.js +5368 -0
- package/dist/chunk-TXJOYQE2.js +1065 -0
- package/dist/chunk-TXJOYQE2.js.map +1 -0
- package/dist/chunk-UGIF56NZ.js +1254 -0
- package/dist/chunk-UGIF56NZ.js.map +1 -0
- package/dist/chunk-V3ANSXCB.js +51 -0
- package/dist/chunk-WSG4K2TR.js +103 -0
- package/dist/chunk-WXSRSMY3.js +64 -0
- package/dist/chunk-WZXMZFVB.js +238 -0
- package/dist/chunk-X3L5HYQM.js +91 -0
- package/dist/chunk-Y2TOB4N5.js +46 -0
- package/dist/chunk-YOHGEF2N.js +7899 -0
- package/dist/chunk-YOHGEF2N.js.map +1 -0
- package/dist/chunk-Z2LPYAN4.js +297 -0
- package/dist/chunk-ZICB4OI5.js +106 -0
- package/dist/chunk-ZOCAGPS5.js +225 -0
- package/dist/chunk-ZZWZUTEP.js +685 -0
- package/dist/claim-QHYA5UTF.js +200 -0
- package/dist/cli.js +36 -36
- package/dist/companies-BNMAOQUQ.js +198 -0
- package/dist/company-YANP3G62.js +308 -0
- package/dist/complete-ICZCBO6M.js +84 -0
- package/dist/config-GIETKZGS.js +88 -0
- package/dist/connect-ZXGEFS53.js +45 -0
- package/dist/conversation-YIWZIUIK.js +96 -0
- package/dist/conversion-report-E35RCZU7.js +127 -0
- package/dist/conversion-upload-command-QN33HEVV.js +440 -0
- package/dist/conversion-upload-command-QN33HEVV.js.map +1 -0
- package/dist/conversion-writes-MUD7WJDH.js +122 -0
- package/dist/conversions-B7HR6JMC.js +140 -0
- package/dist/conversions-WU7DNFF7.js +78 -0
- package/dist/copy-writes-R7VYSZXC.js +171 -0
- package/dist/copy-writes-R7VYSZXC.js.map +1 -0
- package/dist/create-EL47XN73.js +135 -0
- package/dist/create-GU5MUZ7U.js +62 -0
- package/dist/create-IKQ7A47F.js +239 -0
- package/dist/create-TKQDLX7M.js +218 -0
- package/dist/creatives-PW6HB4JB.js +58 -0
- package/dist/creatives-S4EGN44U.js +118 -0
- package/dist/creatives-VBD4T6C7.js +229 -0
- package/dist/credentials-57U2UQ7G.js +290 -0
- package/dist/critique-JTHSIXUF.js +233 -0
- package/dist/critique-JTHSIXUF.js.map +1 -0
- package/dist/critique-KAOJTSPQ.js +420 -0
- package/dist/critique-KAOJTSPQ.js.map +1 -0
- package/dist/crm-JCYLJQ7K.js +323 -0
- package/dist/crm-LQTYPDMZ.js +229 -0
- package/dist/currency-5NYTOLEL.js +88 -0
- package/dist/custom-conversions-NT7ONTEX.js +128 -0
- package/dist/customers-LP6I7POL.js +65 -0
- package/dist/delete-PZ6GP7J6.js +57 -0
- package/dist/delete-WW4JYQMX.js +69 -0
- package/dist/delete-XZNY426Q.js +67 -0
- package/dist/demographics-HZY2JEYQ.js +141 -0
- package/dist/discard-NRTGRVXR.js +69 -0
- package/dist/discover-5ZFAAPNG.js +172 -0
- package/dist/domain-YGKFTN6D.js +101 -0
- package/dist/download-XERSDEN3.js +172 -0
- package/dist/draft-2EVXU5XB.js +134 -0
- package/dist/draft-CQWYTMSS.js +138 -0
- package/dist/draft-EL74RDAG.js +374 -0
- package/dist/draft-EWB4A3FG.js +579 -0
- package/dist/draft-EWB4A3FG.js.map +1 -0
- package/dist/draft-GFZ3KMRX.js +315 -0
- package/dist/draft-JYZA3BFD.js +260 -0
- package/dist/draft-RBLMOZIL.js +333 -0
- package/dist/draft-RBLMOZIL.js.map +1 -0
- package/dist/draft-UNPTTHP4.js +220 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiment-YAX26BOO.js +1397 -0
- package/dist/experiments-ERXZYY5E.js +237 -0
- package/dist/experiments-ERXZYY5E.js.map +1 -0
- package/dist/extract-QMY6WPTV.js +143 -0
- package/dist/facets-QHM2IQ3E.js +117 -0
- package/dist/feedback-NLPTKWOH.js +114 -0
- package/dist/feedback-X5FNVHKU.js +116 -0
- package/dist/feedback-X5FNVHKU.js.map +1 -0
- package/dist/feedback-record-7QCQTF26.js +270 -0
- package/dist/feedback-record-7QCQTF26.js.map +1 -0
- package/dist/fetch-72ZILZHO.js +204 -0
- package/dist/fit-AURKFPAY.js +65 -0
- package/dist/flows-CZPXHOZW.js +340 -0
- package/dist/fonts-NA26RQ4C.js +40 -0
- package/dist/forecast-ARIHRQAX.js +121 -0
- package/dist/forecast-BU22ZMOW.js +170 -0
- package/dist/forecast-BU22ZMOW.js.map +1 -0
- package/dist/funding-QDKFNQI2.js +85 -0
- package/dist/funnel-4VQB3T3M.js +397 -0
- package/dist/ga4-N6EBLN2W.js +55 -0
- package/dist/generate-IJLMJC4S.js +263 -0
- package/dist/get-LOEUOTG3.js +82 -0
- package/dist/get-W3VJIQBN.js +62 -0
- package/dist/google-5RKO3DND.js +3301 -0
- package/dist/google-5RKO3DND.js.map +1 -0
- package/dist/google-7VEPEBFV.js +163 -0
- package/dist/google-ads-YBOJ3XXK.js +198 -0
- package/dist/gsc-FILOUFCG.js +30 -0
- package/dist/history-6LLGAK7B.js +69 -0
- package/dist/history-H2SHADAM.js +153 -0
- package/dist/history-LJG64M6P.js +102 -0
- package/dist/hubspot-6JDARLIU.js +814 -0
- package/dist/ideas-MTWJDRRK.js +45 -0
- package/dist/images-RIFC6D3H.js +92 -0
- package/dist/ingest-K45T4OLM.js +131 -0
- package/dist/ingest-MSS52UO5.js +28 -0
- package/dist/insights-AVNMRFQ4.js +658 -0
- package/dist/insights-TBIT6DTF.js +132 -0
- package/dist/inspect-EBGYJOZ3.js +192 -0
- package/dist/instant-experiences-EEMQJ7H5.js +265 -0
- package/dist/instant-experiences-EEMQJ7H5.js.map +1 -0
- package/dist/intent-URHTU4AK.js +95 -0
- package/dist/job-OJB6KIDV.js +202 -0
- package/dist/job-create-C6FGCDW4.js +109 -0
- package/dist/job-status-4RJHESID.js +74 -0
- package/dist/keyword-gap-WXM6SN6A.js +130 -0
- package/dist/keyword-metrics-57MUTYMH.js +200 -0
- package/dist/keywords-for-site-ABZS7O5B.js +131 -0
- package/dist/landing-AXCYLUQZ.js +28 -0
- package/dist/languages-6XTVTFZC.js +40 -0
- package/dist/leads-C5BUBBLZ.js +115 -0
- package/dist/leads-IXF647ZC.js +542 -0
- package/dist/leads-IXF647ZC.js.map +1 -0
- package/dist/learn-M64GVGPX.js +207 -0
- package/dist/line-item-writes-HYLWBQTM.js +211 -0
- package/dist/line-items-Y4THDHSE.js +107 -0
- package/dist/link-BU7YCL2M.js +67 -0
- package/dist/linkedin-2SUTGGII.js +1345 -0
- package/dist/linkedin-2SUTGGII.js.map +1 -0
- package/dist/linkedin-person-FEIY7FYQ.js +139 -0
- package/dist/list-BKIL7O4G.js +306 -0
- package/dist/list-H3C345WG.js +154 -0
- package/dist/list-UGTDZ7YI.js +67 -0
- package/dist/locations-F4365X4S.js +40 -0
- package/dist/locations-HOI7AUZ2.js +69 -0
- package/dist/log-54SJV6MW.js +95 -0
- package/dist/lookup-QNLX2535.js +23 -0
- package/dist/make-AQ43J5LH.js +1368 -0
- package/dist/make-AQ43J5LH.js.map +1 -0
- package/dist/map-BPPGQGDV.js +445 -0
- package/dist/mcp-EXOMBMYL.js +729 -0
- package/dist/media-MITWBYVZ.js +18 -0
- package/dist/media-WGIEUEZW.js +89 -0
- package/dist/media-sources-XEC72K7X.js +35 -0
- package/dist/members-VDON57BE.js +47 -0
- package/dist/meta-NUBBKE2V.js +124 -0
- package/dist/metrics-V6FAZO5A.js +152 -0
- package/dist/models-TSMFIOZU.js +155 -0
- package/dist/normalize-632DD2HJ.js +144 -0
- package/dist/options-TZYZQZ3M.js +125 -0
- package/dist/organization-FYRXSGB4.js +949 -0
- package/dist/output-HZW7LNUL.js +24 -0
- package/dist/page-photos-4DNBQZUL.js +119 -0
- package/dist/page-photos-4DNBQZUL.js.map +1 -0
- package/dist/pages-UH6XEZBO.js +67 -0
- package/dist/performance-JKXHQIAV.js +27 -0
- package/dist/performance-OF3N43OP.js +5565 -0
- package/dist/pixels-KXA6R3G3.js +62 -0
- package/dist/pixels-PYNK73UG.js +109 -0
- package/dist/plan-4OYUV2EF.js +208 -0
- package/dist/preview-7E4E3QPT.js +245 -0
- package/dist/preview-FPBM75L2.js +101 -0
- package/dist/promoted-tweet-writes-IJRBFK7W.js +183 -0
- package/dist/promoted-tweets-7PYH3RPV.js +119 -0
- package/dist/properties-RDOGNY2O.js +101 -0
- package/dist/publish-MNSDFPEQ.js +350 -0
- package/dist/query-GMGWJW3X.js +62 -0
- package/dist/query-K7R5GQ4E.js +236 -0
- package/dist/query-PO3RT7BR.js +231 -0
- package/dist/questionnaire-4OH6K2BF.js +94 -0
- package/dist/read-MU5XGWMK.js +141 -0
- package/dist/reddit-JFFMZLJS.js +29 -0
- package/dist/refresh-EJ7WKW3H.js +97 -0
- package/dist/release-AFRLCZWB.js +63 -0
- package/dist/relevant-pages-4YGN3I2U.js +99 -0
- package/dist/remove-QD4PITBL.js +53 -0
- package/dist/reopen-JSC6AVJC.js +66 -0
- package/dist/rerun-QIAUVJX6.js +98 -0
- package/dist/rerun-QIAUVJX6.js.map +1 -0
- package/dist/research-MMFUFZGS.js +265 -0
- package/dist/research-SRISCVBM.js +75 -0
- package/dist/reset-752CNET3.js +57 -0
- package/dist/reset-R3TQAHRU.js +57 -0
- package/dist/resolve-EWHSJNBX.js +124 -0
- package/dist/retry-DVHDVHVP.js +65 -0
- package/dist/retry-PVULTONO.js +63 -0
- package/dist/revenue-B4N6QJM3.js +92 -0
- package/dist/revenue-B4N6QJM3.js.map +1 -0
- package/dist/rule-writes-YXK7HNLR.js +531 -0
- package/dist/rule-writes-YXK7HNLR.js.map +1 -0
- package/dist/rules-4YTY57FM.js +217 -0
- package/dist/rules-LRFDZFF6.js +108 -0
- package/dist/rules-LRFDZFF6.js.map +1 -0
- package/dist/rules-add-XVOGYHQO.js +497 -0
- package/dist/rules-add-XVOGYHQO.js.map +1 -0
- package/dist/run-PCZRYL42.js +69 -0
- package/dist/run-PRSAUWAJ.js +73 -0
- package/dist/scaffold-ad-A6SROV4X.js +1514 -0
- package/dist/scaffold-ad-A6SROV4X.js.map +1 -0
- package/dist/scaffold-static-ad-CRN5XZIZ.js +1013 -0
- package/dist/scaffold-static-ad-CRN5XZIZ.js.map +1 -0
- package/dist/scaffold-video-3F5JVFFR.js +886 -0
- package/dist/scaffold-video-3F5JVFFR.js.map +1 -0
- package/dist/schedule-6YTZBCZA.js +64 -0
- package/dist/scheduled-agents-XCPU57LU.js +55 -0
- package/dist/schema-4PS5BDG3.js +135 -0
- package/dist/search-IMZD5RGD.js +177 -0
- package/dist/select-GSO4BEIL.js +111 -0
- package/dist/select-GSO4BEIL.js.map +1 -0
- package/dist/sends-I2B6F5NW.js +349 -0
- package/dist/set-prompt-D32XJNWM.js +200 -0
- package/dist/set-prompt-D32XJNWM.js.map +1 -0
- package/dist/setup-links-PTL6RF2J.js +144 -0
- package/dist/shared-Z7INVKCZ.js +32 -0
- package/dist/shopify-SDZZ5HTA.js +4009 -0
- package/dist/site-NGQ7K6UD.js +180 -0
- package/dist/sitemaps-EOMSRKOD.js +77 -0
- package/dist/sites-6M73AONG.js +97 -0
- package/dist/sources-NKFSCI6M.js +30 -0
- package/dist/sources-O4CQ5KSX.js +457 -0
- package/dist/stale-CEZJ53RO.js +91 -0
- package/dist/stale-CEZJ53RO.js.map +1 -0
- package/dist/stats-MFEH2TSW.js +34 -0
- package/dist/status-DLYRPGFS.js +65 -0
- package/dist/stock-RDCDVBHX.js +212 -0
- package/dist/studies-SSA3SR2L.js +250 -0
- package/dist/studio-MBHPDGMN.js +49 -0
- package/dist/study-writes-EDV6OH7I.js +472 -0
- package/dist/study-writes-EDV6OH7I.js.map +1 -0
- package/dist/sync-BEW3TZP7.js +57 -0
- package/dist/sync-SI25TKY5.js +279 -0
- package/dist/sync-definition-RECCA3QH.js +71 -0
- package/dist/tag-manager-JFC6YYVP.js +43 -0
- package/dist/tags-IJIGZYR3.js +23 -0
- package/dist/tags-K4HIKHNU.js +26 -0
- package/dist/tags-OTA55BQ6.js +23 -0
- package/dist/tags-QF2V4B3M.js +23 -0
- package/dist/tags-SK7WXMBS.js +227 -0
- package/dist/targeting-NPNBPEHW.js +763 -0
- package/dist/targeting-NPNBPEHW.js.map +1 -0
- package/dist/targeting-constants-RF2732EW.js +118 -0
- package/dist/targeting-criteria-7BUUYDYC.js +113 -0
- package/dist/targets-7V3NCQSD.js +106 -0
- package/dist/terms-XFL6QO7A.js +102 -0
- package/dist/testimonials-XYD5DLBJ.js +32 -0
- package/dist/themes-HYDGH4GM.js +96 -0
- package/dist/themes-HYDGH4GM.js.map +1 -0
- package/dist/top-companies-LI26TONY.js +111 -0
- package/dist/transcript-FTHDWMGU.js +165 -0
- package/dist/translate-YATYKOEX.js +604 -0
- package/dist/translate-YATYKOEX.js.map +1 -0
- package/dist/triggers-3LHJVK5P.js +144 -0
- package/dist/tweets-6PQHJXJC.js +123 -0
- package/dist/unlink-BMOUBGWO.js +70 -0
- package/dist/unstage-O23ILHCY.js +96 -0
- package/dist/unstage-YEW5KXJL.js +88 -0
- package/dist/update-2IWZA5UU.js +101 -0
- package/dist/update-G7YZICSU.js +155 -0
- package/dist/update-T5INCQJZ.js +192 -0
- package/dist/update-UTQVTG45.js +66 -0
- package/dist/upload-UXYJDA2U.js +137 -0
- package/dist/url-options-Y7I5EL55.js +131 -0
- package/dist/url-params-PE4XAQNH.js +101 -0
- package/dist/validate-MMHBTNWU.js +126 -0
- package/dist/validate-MMHBTNWU.js.map +1 -0
- package/dist/videos-AHOLXU42.js +146 -0
- package/dist/videos-EVPJHY3B.js +41 -0
- package/dist/viewer-check-NA4TMNY4.js +83 -0
- package/dist/web-7EODEH25.js +173 -0
- package/dist/winning-ads-5UKX6QV7.js +86 -0
- package/dist/write-commands-HFP5KLYZ.js +1525 -0
- package/dist/write-commands-HFP5KLYZ.js.map +1 -0
- package/dist/write-commands-KVOMOYME.js +1170 -0
- package/dist/write-commands-KVOMOYME.js.map +1 -0
- package/dist/write-commands-LHEJESKL.js +206 -0
- package/dist/write-commands-SD6DXVNK.js +721 -0
- package/dist/x-R72UTFQT.js +47 -0
- package/package.json +1 -1
- package/dist/account-OCFXNHG7.js +0 -139
- package/dist/account-U6DFMD2V.js +0 -82
- package/dist/account-UE6DOQXK.js +0 -82
- package/dist/account-assets-W7K2PUYB.js +0 -290
- package/dist/account-level-Z2JEIJ3X.js +0 -611
- package/dist/account-level-Z2JEIJ3X.js.map +0 -1
- package/dist/account-reads-WPKD2LPB.js +0 -219
- package/dist/account-reads-WPKD2LPB.js.map +0 -1
- package/dist/account-users-USGCCE6I.js +0 -64
- package/dist/account-users-USGCCE6I.js.map +0 -1
- package/dist/account-writes-QSJ74QFR.js +0 -68
- package/dist/accounts-3DS67RX7.js +0 -119
- package/dist/accounts-55PDBEDN.js +0 -76
- package/dist/accounts-AK4QIG24.js +0 -115
- package/dist/accounts-FZCQNX3B.js +0 -713
- package/dist/accounts-PVMTLDJU.js +0 -80
- package/dist/actions-EG23YFYB.js +0 -55
- package/dist/active-entities-HR7NJJLU.js +0 -103
- package/dist/activecampaign-GPT5R647.js +0 -938
- package/dist/activities-DEWHKBID.js +0 -75
- package/dist/ad-group-writes-QBHOPTT5.js +0 -172
- package/dist/ad-groups-JZDUFT6J.js +0 -70
- package/dist/ad-writes-QYJO4IB3.js +0 -176
- package/dist/add-IH6GAMK4.js +0 -107
- package/dist/add-UWTWG4VO.js +0 -305
- package/dist/ads-F3VUMSEV.js +0 -48
- package/dist/ads-QKVNPHBH.js +0 -120
- package/dist/ads-UMSWEI5X.js +0 -79
- package/dist/adsets-FEVYHKAQ.js +0 -182
- package/dist/advertisers-AJNDC3AX.js +0 -123
- package/dist/analytics-PEGA46W5.js +0 -447
- package/dist/analytics-XCQ3G5PM.js +0 -2437
- package/dist/animate-WS63CZ3Y.js +0 -480
- package/dist/asset-writes-7RFZZYU7.js +0 -50
- package/dist/assign-2CZ5C43W.js +0 -80
- package/dist/audience-size-FUHDVYLN.js +0 -76
- package/dist/audience-writes-RUGU6KEC.js +0 -327
- package/dist/audience-writes-RUGU6KEC.js.map +0 -1
- package/dist/audiences-6GVUZUCN.js +0 -106
- package/dist/audiences-7OS2ZJYO.js +0 -85
- package/dist/audiences-RSAUXKHR.js +0 -280
- package/dist/audit-4L7IKIRY.js +0 -88
- package/dist/audit-DECB5PP5.js +0 -154
- package/dist/autocomplete-6XSIFXDA.js +0 -114
- package/dist/avatars-LTV2TSO2.js +0 -38
- package/dist/bid-pricing-GC6YU3LW.js +0 -103
- package/dist/brand-B4QKPCEC.js +0 -22
- package/dist/brief-RYNGM4GX.js +0 -543
- package/dist/businesses-42NZP6FP.js +0 -54
- package/dist/campaign-groups-FHV5A3EC.js +0 -99
- package/dist/campaign-writes-4B7DCAP2.js +0 -168
- package/dist/campaign-writes-GKNH2EHV.js +0 -176
- package/dist/campaigns-7RV65SXR.js +0 -78
- package/dist/campaigns-TL37AY5Y.js +0 -113
- package/dist/campaigns-TO74Z7UH.js +0 -130
- package/dist/campaigns-VNBJV5QD.js +0 -111
- package/dist/canvas-6XSA3VZE.js +0 -46
- package/dist/capabilities-6MOMJZFW.js +0 -147
- package/dist/cards-CAOGPPG4.js +0 -85
- package/dist/catalog-URTZYAPU.js +0 -66
- package/dist/catalogs-5LWEXG5X.js +0 -130
- package/dist/catalogs-7IEXGLSR.js +0 -782
- package/dist/catalogs-7IEXGLSR.js.map +0 -1
- package/dist/changes-WWZYTLC6.js +0 -167
- package/dist/chatgpt-ZI4GWP6S.js +0 -47
- package/dist/chats-GRS6RCDL.js +0 -449
- package/dist/chats-GRS6RCDL.js.map +0 -1
- package/dist/check-VIRAMFKC.js +0 -107
- package/dist/check-VIRAMFKC.js.map +0 -1
- package/dist/chunk-22RM3UOO.js +0 -63
- package/dist/chunk-2DAWUWA4.js +0 -115
- package/dist/chunk-2GFJN2TR.js +0 -163
- package/dist/chunk-2LBQNTTH.js +0 -76
- package/dist/chunk-3D5ABNNW.js +0 -156
- package/dist/chunk-3E74OM2E.js +0 -288
- package/dist/chunk-3GKAVXR3.js +0 -23
- package/dist/chunk-4NZ47VXO.js +0 -137
- package/dist/chunk-4NZ47VXO.js.map +0 -1
- package/dist/chunk-5H6N36LS.js +0 -217
- package/dist/chunk-5T6DUP7V.js +0 -207
- package/dist/chunk-6IR7IQPV.js +0 -69
- package/dist/chunk-6IRB3MHG.js +0 -430
- package/dist/chunk-6MX37ZQZ.js +0 -454
- package/dist/chunk-6QINKM6T.js +0 -46
- package/dist/chunk-7M6GZI5B.js +0 -479
- package/dist/chunk-AE5S5B2S.js +0 -249
- package/dist/chunk-AE5S5B2S.js.map +0 -1
- package/dist/chunk-ARPT74DG.js +0 -312
- package/dist/chunk-B42CHCXX.js +0 -962
- package/dist/chunk-B47TRSMB.js +0 -8954
- package/dist/chunk-BHEOF2MF.js +0 -2209
- package/dist/chunk-BMMXYR7A.js +0 -238
- package/dist/chunk-BRPSY35A.js +0 -468
- package/dist/chunk-C3EX5OKN.js +0 -188
- package/dist/chunk-CDPM6OE6.js +0 -61
- package/dist/chunk-CDTAKCJR.js +0 -178
- package/dist/chunk-CDTAKCJR.js.map +0 -1
- package/dist/chunk-D6YLVDVN.js +0 -103
- package/dist/chunk-DLM5OSHM.js +0 -843
- package/dist/chunk-DLM5OSHM.js.map +0 -1
- package/dist/chunk-DWPOAU4Z.js +0 -5471
- package/dist/chunk-EJBLF2LI.js +0 -167
- package/dist/chunk-FHWYQSMY.js +0 -930
- package/dist/chunk-FWHEAR7F.js +0 -138
- package/dist/chunk-GNTI4KST.js +0 -494
- package/dist/chunk-GR2BPVLX.js +0 -142
- package/dist/chunk-GWLP45WQ.js +0 -1518
- package/dist/chunk-GXAI3EII.js +0 -399
- package/dist/chunk-H3HA22Z3.js +0 -1919
- package/dist/chunk-H3PD2KOF.js +0 -203
- package/dist/chunk-HBRXFQQV.js +0 -3510
- package/dist/chunk-IGCS3X4F.js +0 -150
- package/dist/chunk-ILGRC7LJ.js +0 -287
- package/dist/chunk-IXVVTPG6.js +0 -831
- package/dist/chunk-JAC6JVCI.js +0 -26
- package/dist/chunk-JBABLH5C.js +0 -547
- package/dist/chunk-JHS5PE5Y.js +0 -1246
- package/dist/chunk-JHS5PE5Y.js.map +0 -1
- package/dist/chunk-JTIWQLY5.js +0 -98
- package/dist/chunk-KDAINT54.js +0 -131
- package/dist/chunk-KICGV4JB.js +0 -170
- package/dist/chunk-LDYI7BIQ.js +0 -334
- package/dist/chunk-LXOTNL65.js +0 -7888
- package/dist/chunk-LXOTNL65.js.map +0 -1
- package/dist/chunk-M45SOKI5.js +0 -91
- package/dist/chunk-MCJ5I5LR.js +0 -3187
- package/dist/chunk-MCJ5I5LR.js.map +0 -1
- package/dist/chunk-ME3K6XIS.js +0 -685
- package/dist/chunk-MKG57P2E.js +0 -783
- package/dist/chunk-MU2TTM6Z.js +0 -197
- package/dist/chunk-MZPS46OR.js +0 -76
- package/dist/chunk-N2MGR7HT.js +0 -1902
- package/dist/chunk-N2TXADL7.js +0 -1320
- package/dist/chunk-NTFNLVZG.js +0 -26
- package/dist/chunk-O43QFUOG.js +0 -51
- package/dist/chunk-OASXBRXQ.js +0 -24026
- package/dist/chunk-OASXBRXQ.js.map +0 -1
- package/dist/chunk-ORQ3WBM6.js +0 -225
- package/dist/chunk-OSQTSS27.js +0 -74
- package/dist/chunk-OTRKBCUB.js +0 -219
- package/dist/chunk-P6KTCPJG.js +0 -604
- package/dist/chunk-Q5DFEVLE.js +0 -148
- package/dist/chunk-QVQKCVP7.js +0 -85
- package/dist/chunk-QVQKCVP7.js.map +0 -1
- package/dist/chunk-R4RWQ6YX.js +0 -152
- package/dist/chunk-RBB3UUYP.js +0 -297
- package/dist/chunk-RBCO3C3Q.js +0 -324
- package/dist/chunk-RBCO3C3Q.js.map +0 -1
- package/dist/chunk-RJIFEHEG.js +0 -392
- package/dist/chunk-RYYRGQMM.js +0 -191
- package/dist/chunk-S3ZW3KTX.js +0 -89
- package/dist/chunk-SZET6NTF.js +0 -57
- package/dist/chunk-T4YD5W33.js +0 -66
- package/dist/chunk-TPGFX47R.js +0 -709
- package/dist/chunk-U5LSGCT3.js +0 -455
- package/dist/chunk-UKZKLXTE.js +0 -638
- package/dist/chunk-UKZKLXTE.js.map +0 -1
- package/dist/chunk-ULIQNJ5J.js +0 -274
- package/dist/chunk-URKOGN5B.js +0 -19
- package/dist/chunk-UYZ4FUC7.js +0 -225
- package/dist/chunk-V6TZRCAS.js +0 -169
- package/dist/chunk-WBWEKZQ2.js +0 -191
- package/dist/chunk-X3GWGFZP.js +0 -5368
- package/dist/chunk-X3YYZLBH.js +0 -285
- package/dist/chunk-XHWHBGKX.js +0 -4277
- package/dist/chunk-XHWHBGKX.js.map +0 -1
- package/dist/chunk-XRR5NN2V.js +0 -91
- package/dist/chunk-XZAVBONI.js +0 -64
- package/dist/chunk-YD6OZSSY.js +0 -106
- package/dist/chunk-YXZV6YKH.js +0 -224
- package/dist/chunk-ZREKNWIE.js +0 -344
- package/dist/claim-YCK2XQUL.js +0 -200
- package/dist/companies-SWGL3MQT.js +0 -198
- package/dist/company-XKEQKWPO.js +0 -308
- package/dist/complete-CHEZWF5R.js +0 -84
- package/dist/config-NDL2YP37.js +0 -88
- package/dist/connect-GWLVOOU7.js +0 -45
- package/dist/conversation-QD4UJZ7S.js +0 -96
- package/dist/conversion-report-76S5JOVT.js +0 -127
- package/dist/conversion-upload-command-5OILW65U.js +0 -439
- package/dist/conversion-upload-command-5OILW65U.js.map +0 -1
- package/dist/conversion-writes-6HX665JT.js +0 -122
- package/dist/conversions-BECU3XD2.js +0 -140
- package/dist/conversions-QZJRF4WN.js +0 -78
- package/dist/copy-writes-X2LM5I4Z.js +0 -170
- package/dist/copy-writes-X2LM5I4Z.js.map +0 -1
- package/dist/create-4OA5DOSO.js +0 -239
- package/dist/create-5QPEESSZ.js +0 -135
- package/dist/create-ET3VCGQT.js +0 -62
- package/dist/create-IJSH2LHP.js +0 -218
- package/dist/creatives-AIRQ3FGH.js +0 -229
- package/dist/creatives-L3XSN34M.js +0 -58
- package/dist/creatives-SFPNXJ6Z.js +0 -118
- package/dist/credentials-Q2FM4DP3.js +0 -290
- package/dist/critique-A5FVPC5K.js +0 -1451
- package/dist/critique-A5FVPC5K.js.map +0 -1
- package/dist/critique-RSU7N2NV.js +0 -232
- package/dist/critique-RSU7N2NV.js.map +0 -1
- package/dist/crm-7GTTSEHH.js +0 -229
- package/dist/crm-PQREUPOU.js +0 -323
- package/dist/currency-BZUNQ4XJ.js +0 -88
- package/dist/custom-conversions-UHRBVUD2.js +0 -128
- package/dist/customers-BYNADWKU.js +0 -65
- package/dist/delete-2RAKL577.js +0 -69
- package/dist/delete-EZ525EJV.js +0 -57
- package/dist/delete-ZBYPC5AL.js +0 -67
- package/dist/demographics-5XMZ2TBB.js +0 -141
- package/dist/discard-Q7R5VJ7I.js +0 -69
- package/dist/discover-PDSEJR2P.js +0 -172
- package/dist/domain-MS3BKUYW.js +0 -101
- package/dist/download-F56SAC2G.js +0 -172
- package/dist/draft-44KTLX4P.js +0 -134
- package/dist/draft-4EM4TL25.js +0 -332
- package/dist/draft-4EM4TL25.js.map +0 -1
- package/dist/draft-CKFSZDVI.js +0 -260
- package/dist/draft-JBLWUO3J.js +0 -220
- package/dist/draft-L6XXU2I6.js +0 -374
- package/dist/draft-RSKZSUOS.js +0 -138
- package/dist/draft-WOE7KQ7T.js +0 -315
- package/dist/draft-XOPS4EZW.js +0 -569
- package/dist/draft-XOPS4EZW.js.map +0 -1
- package/dist/experiment-AZUKJ7ZO.js +0 -1397
- package/dist/experiments-34NEL75V.js +0 -236
- package/dist/experiments-34NEL75V.js.map +0 -1
- package/dist/extract-2PG5JB2C.js +0 -143
- package/dist/facets-5CGKHFDQ.js +0 -117
- package/dist/feedback-C7THFXTE.js +0 -114
- package/dist/feedback-SWNIEXMA.js +0 -115
- package/dist/feedback-SWNIEXMA.js.map +0 -1
- package/dist/feedback-record-BNDFZRYJ.js +0 -269
- package/dist/feedback-record-BNDFZRYJ.js.map +0 -1
- package/dist/fetch-LMEYFSM5.js +0 -204
- package/dist/fit-DBA7FD3M.js +0 -65
- package/dist/flows-TQASOYQP.js +0 -340
- package/dist/fonts-MPDK2DXR.js +0 -39
- package/dist/forecast-3KMAJJWJ.js +0 -169
- package/dist/forecast-3KMAJJWJ.js.map +0 -1
- package/dist/forecast-OP2ECNM2.js +0 -121
- package/dist/funding-BSAHWU35.js +0 -85
- package/dist/funnel-BLRQAZ65.js +0 -397
- package/dist/ga4-YVKA3V4V.js +0 -55
- package/dist/generate-VGGXTZBP.js +0 -263
- package/dist/get-DEELBPMG.js +0 -82
- package/dist/get-YATZI6GN.js +0 -62
- package/dist/google-REFD3W2R.js +0 -3300
- package/dist/google-REFD3W2R.js.map +0 -1
- package/dist/google-ULLPGAXN.js +0 -163
- package/dist/google-ads-IEQJEICD.js +0 -198
- package/dist/gsc-OJDMSP6H.js +0 -30
- package/dist/history-2LE4ELLB.js +0 -102
- package/dist/history-FPXZOUHT.js +0 -153
- package/dist/history-LXRFZNW7.js +0 -69
- package/dist/hubspot-MNREQEVI.js +0 -814
- package/dist/ideas-4N7WMX3P.js +0 -45
- package/dist/images-KVMFKQX5.js +0 -92
- package/dist/ingest-GUJNPD6S.js +0 -28
- package/dist/ingest-VG4YGXB2.js +0 -131
- package/dist/insights-H6M6VI43.js +0 -132
- package/dist/insights-LZJZGNJZ.js +0 -658
- package/dist/inspect-VODWKUQY.js +0 -192
- package/dist/instant-experiences-J4GSS3Y6.js +0 -264
- package/dist/instant-experiences-J4GSS3Y6.js.map +0 -1
- package/dist/intent-HXRSLFIO.js +0 -95
- package/dist/job-UFGGBDG7.js +0 -202
- package/dist/job-create-XM4NH322.js +0 -109
- package/dist/job-status-47L5Z57J.js +0 -74
- package/dist/keyword-gap-WUHMSTNR.js +0 -130
- package/dist/keyword-metrics-LOLNR24U.js +0 -200
- package/dist/keywords-for-site-PLTJBXVN.js +0 -131
- package/dist/landing-JMH3WIK2.js +0 -28
- package/dist/languages-SVTYYYOC.js +0 -40
- package/dist/leads-SEEJ3KRR.js +0 -541
- package/dist/leads-SEEJ3KRR.js.map +0 -1
- package/dist/leads-XPIBMZI7.js +0 -115
- package/dist/learn-MOHK6DHI.js +0 -207
- package/dist/line-item-writes-5RVCYHHH.js +0 -211
- package/dist/line-items-OESD2IJ6.js +0 -107
- package/dist/link-PURCDO7A.js +0 -67
- package/dist/linkedin-YWLXEPLB.js +0 -1344
- package/dist/linkedin-YWLXEPLB.js.map +0 -1
- package/dist/linkedin-person-L22XA5LG.js +0 -139
- package/dist/list-KE6PQV2U.js +0 -154
- package/dist/list-L5VZ35AO.js +0 -306
- package/dist/list-T5ZVVC4L.js +0 -67
- package/dist/locations-5SLLGWZO.js +0 -69
- package/dist/locations-7EBZ6KRH.js +0 -40
- package/dist/log-D3WU36FX.js +0 -95
- package/dist/lookup-OU6CLATK.js +0 -23
- package/dist/make-QPE6H3NT.js +0 -1367
- package/dist/make-QPE6H3NT.js.map +0 -1
- package/dist/map-PT7JJYQR.js +0 -445
- package/dist/mcp-62MSONPH.js +0 -729
- package/dist/media-DGV2AMZI.js +0 -89
- package/dist/media-YKCCMLXL.js +0 -18
- package/dist/media-sources-DGVR3YPL.js +0 -35
- package/dist/members-DAHPS3MB.js +0 -47
- package/dist/meta-5TRG7RTQ.js +0 -124
- package/dist/metrics-WRERNMRK.js +0 -152
- package/dist/models-SITHUNAA.js +0 -155
- package/dist/normalize-ZOJ4YROH.js +0 -144
- package/dist/options-DTB2NYBL.js +0 -125
- package/dist/organization-5JHFNUOD.js +0 -949
- package/dist/output-7X5WPPCA.js +0 -24
- package/dist/page-photos-VYJU4RNQ.js +0 -118
- package/dist/page-photos-VYJU4RNQ.js.map +0 -1
- package/dist/pages-6YMPZDEY.js +0 -67
- package/dist/performance-VFDK5PHT.js +0 -5565
- package/dist/performance-W6CJEUHR.js +0 -27
- package/dist/pixels-DZDVNIVL.js +0 -109
- package/dist/pixels-WTTLC4O5.js +0 -62
- package/dist/plan-JAWESWJN.js +0 -208
- package/dist/preview-JZXGR4KN.js +0 -245
- package/dist/preview-PUF62HJU.js +0 -101
- package/dist/promoted-tweet-writes-FW4BAA5O.js +0 -183
- package/dist/promoted-tweets-LYHKCVNV.js +0 -119
- package/dist/properties-Z5S3LRJ5.js +0 -101
- package/dist/publish-S2KD5PCN.js +0 -350
- package/dist/query-3QFT42PG.js +0 -62
- package/dist/query-KKXCMH3Q.js +0 -236
- package/dist/query-QXKGVHZL.js +0 -231
- package/dist/questionnaire-U7UYICEA.js +0 -94
- package/dist/read-ENUS7P3L.js +0 -141
- package/dist/reddit-AF2PPR3K.js +0 -29
- package/dist/refresh-UC7OTPXS.js +0 -97
- package/dist/release-FQOJ2FJ5.js +0 -63
- package/dist/relevant-pages-OFKZYWR3.js +0 -99
- package/dist/remove-H3SU4GJK.js +0 -53
- package/dist/reopen-M2PZEHKF.js +0 -66
- package/dist/rerun-M63ZAYAV.js +0 -97
- package/dist/rerun-M63ZAYAV.js.map +0 -1
- package/dist/research-2N5HAFSB.js +0 -75
- package/dist/research-ILZZTO6Q.js +0 -265
- package/dist/reset-JN437DOZ.js +0 -57
- package/dist/reset-XAKAEDPH.js +0 -57
- package/dist/resolve-WVE6D7CP.js +0 -124
- package/dist/retry-ILL2ZATG.js +0 -63
- package/dist/retry-PMJ22IN4.js +0 -65
- package/dist/revenue-UWU3ACGP.js +0 -91
- package/dist/revenue-UWU3ACGP.js.map +0 -1
- package/dist/rule-writes-WT6DQZZE.js +0 -530
- package/dist/rule-writes-WT6DQZZE.js.map +0 -1
- package/dist/rules-BOOFGKJA.js +0 -99
- package/dist/rules-BOOFGKJA.js.map +0 -1
- package/dist/rules-Y75KR2PC.js +0 -217
- package/dist/rules-add-7K5ESEZQ.js +0 -465
- package/dist/rules-add-7K5ESEZQ.js.map +0 -1
- package/dist/run-2AIXS3KE.js +0 -72
- package/dist/run-OCCY7JHY.js +0 -69
- package/dist/scaffold-ad-JQIOCLDU.js +0 -1513
- package/dist/scaffold-ad-JQIOCLDU.js.map +0 -1
- package/dist/scaffold-static-ad-BW56MVIV.js +0 -1012
- package/dist/scaffold-static-ad-BW56MVIV.js.map +0 -1
- package/dist/scaffold-video-OGPMQO5D.js +0 -885
- package/dist/scaffold-video-OGPMQO5D.js.map +0 -1
- package/dist/schedule-WV6NZ4CK.js +0 -64
- package/dist/scheduled-agents-MZZMHN3T.js +0 -55
- package/dist/schema-ADRFE3AV.js +0 -135
- package/dist/search-GGWTLVG7.js +0 -177
- package/dist/select-HYZ5JYO7.js +0 -110
- package/dist/select-HYZ5JYO7.js.map +0 -1
- package/dist/sends-4ZO6BNZ4.js +0 -349
- package/dist/set-prompt-FMJ32YNG.js +0 -199
- package/dist/set-prompt-FMJ32YNG.js.map +0 -1
- package/dist/setup-links-76AJJR5Z.js +0 -144
- package/dist/shared-UPMEBTVP.js +0 -32
- package/dist/shopify-Q3XMCPHI.js +0 -4009
- package/dist/site-I4HFMTE5.js +0 -180
- package/dist/sitemaps-P3K5Z4TW.js +0 -77
- package/dist/sites-TURWC53D.js +0 -97
- package/dist/sources-GGLP5NQU.js +0 -30
- package/dist/sources-ORL5AEH5.js +0 -457
- package/dist/stale-GVPIUPBX.js +0 -90
- package/dist/stale-GVPIUPBX.js.map +0 -1
- package/dist/stats-XNKAJD2Z.js +0 -34
- package/dist/status-LSHCACMZ.js +0 -65
- package/dist/stock-RZH4SEGS.js +0 -212
- package/dist/studies-5G67ODR2.js +0 -250
- package/dist/studio-D2OMFCZZ.js +0 -49
- package/dist/study-writes-34BJFZAZ.js +0 -471
- package/dist/study-writes-34BJFZAZ.js.map +0 -1
- package/dist/sync-MK7JTH3U.js +0 -57
- package/dist/sync-QVEUQKU5.js +0 -279
- package/dist/sync-definition-EFAJ744M.js +0 -70
- package/dist/tag-manager-3GIW6BPB.js +0 -43
- package/dist/tags-5HX7TDJN.js +0 -23
- package/dist/tags-BE6L5NLG.js +0 -23
- package/dist/tags-EOIC4EQK.js +0 -26
- package/dist/tags-G4HMOLZF.js +0 -23
- package/dist/tags-PF6UJWCF.js +0 -227
- package/dist/targeting-TVZPIUUI.js +0 -762
- package/dist/targeting-TVZPIUUI.js.map +0 -1
- package/dist/targeting-constants-RJS2STR5.js +0 -118
- package/dist/targeting-criteria-DOHSND62.js +0 -113
- package/dist/targets-7AL4HPAW.js +0 -106
- package/dist/terms-AATAGKPT.js +0 -102
- package/dist/testimonials-BNYHKXD2.js +0 -32
- package/dist/themes-5HKRO5RR.js +0 -95
- package/dist/themes-5HKRO5RR.js.map +0 -1
- package/dist/top-companies-ASSEFHI3.js +0 -111
- package/dist/transcript-OTAKTTSA.js +0 -165
- package/dist/translate-ATGQD733.js +0 -603
- package/dist/translate-ATGQD733.js.map +0 -1
- package/dist/triggers-JQYC4JLT.js +0 -144
- package/dist/tweets-MLDLLLDB.js +0 -123
- package/dist/unlink-FVHHULLC.js +0 -70
- package/dist/unstage-65DUBYNZ.js +0 -96
- package/dist/unstage-FIRVPNRC.js +0 -88
- package/dist/update-EO5LVV34.js +0 -101
- package/dist/update-G7RMT4OC.js +0 -192
- package/dist/update-OD75FSPH.js +0 -66
- package/dist/update-RA6TX5NV.js +0 -155
- package/dist/upload-X33VIDOB.js +0 -137
- package/dist/url-options-4J3FRXHO.js +0 -131
- package/dist/url-params-IBE4HUKK.js +0 -101
- package/dist/validate-ZKQN55FV.js +0 -125
- package/dist/validate-ZKQN55FV.js.map +0 -1
- package/dist/videos-NITQKILV.js +0 -146
- package/dist/videos-RGCF3EAE.js +0 -41
- package/dist/viewer-check-AKVX3XFW.js +0 -83
- package/dist/web-QVR2EQ7X.js +0 -173
- package/dist/winning-ads-3R4RU3FL.js +0 -86
- package/dist/write-commands-OBQPQUIE.js +0 -721
- package/dist/write-commands-QQFBJBYD.js +0 -1524
- package/dist/write-commands-QQFBJBYD.js.map +0 -1
- package/dist/write-commands-SIOVTRHH.js +0 -1169
- package/dist/write-commands-SIOVTRHH.js.map +0 -1
- package/dist/write-commands-XLZCRVTU.js +0 -206
- package/dist/x-747NTJKH.js +0 -47
- /package/dist/{account-U6DFMD2V.js.map → account-JREYXYNE.js.map} +0 -0
- /package/dist/{account-OCFXNHG7.js.map → account-OUKPRB7C.js.map} +0 -0
- /package/dist/{account-UE6DOQXK.js.map → account-WN5MJ5QN.js.map} +0 -0
- /package/dist/{account-assets-W7K2PUYB.js.map → account-assets-IWJWYNQ3.js.map} +0 -0
- /package/dist/{account-writes-QSJ74QFR.js.map → account-writes-IUIXIVRC.js.map} +0 -0
- /package/dist/{accounts-PVMTLDJU.js.map → accounts-4YRDRLHX.js.map} +0 -0
- /package/dist/{accounts-3DS67RX7.js.map → accounts-HEGADQ6E.js.map} +0 -0
- /package/dist/{accounts-55PDBEDN.js.map → accounts-OSVXKNSI.js.map} +0 -0
- /package/dist/{accounts-AK4QIG24.js.map → accounts-SJOO4MQX.js.map} +0 -0
- /package/dist/{accounts-FZCQNX3B.js.map → accounts-V7EOUTNL.js.map} +0 -0
- /package/dist/{actions-EG23YFYB.js.map → actions-5LYJ3U6G.js.map} +0 -0
- /package/dist/{active-entities-HR7NJJLU.js.map → active-entities-4KQQSMRZ.js.map} +0 -0
- /package/dist/{activecampaign-GPT5R647.js.map → activecampaign-CZHLHGT4.js.map} +0 -0
- /package/dist/{activities-DEWHKBID.js.map → activities-FRA33VZZ.js.map} +0 -0
- /package/dist/{ad-group-writes-QBHOPTT5.js.map → ad-group-writes-YQXBUA3Q.js.map} +0 -0
- /package/dist/{ad-groups-JZDUFT6J.js.map → ad-groups-NJR4ILEN.js.map} +0 -0
- /package/dist/{ad-writes-QYJO4IB3.js.map → ad-writes-TZV64CC2.js.map} +0 -0
- /package/dist/{add-UWTWG4VO.js.map → add-MZUSKY2L.js.map} +0 -0
- /package/dist/{add-IH6GAMK4.js.map → add-NAUSQKRS.js.map} +0 -0
- /package/dist/{ads-QKVNPHBH.js.map → ads-A2FXTQES.js.map} +0 -0
- /package/dist/{ads-F3VUMSEV.js.map → ads-PYTK3LJE.js.map} +0 -0
- /package/dist/{ads-UMSWEI5X.js.map → ads-Q7DD5VXU.js.map} +0 -0
- /package/dist/{adsets-FEVYHKAQ.js.map → adsets-ZHEVFOK4.js.map} +0 -0
- /package/dist/{advertisers-AJNDC3AX.js.map → advertisers-HSTND4HE.js.map} +0 -0
- /package/dist/{analytics-PEGA46W5.js.map → analytics-63Q3FJN4.js.map} +0 -0
- /package/dist/{analytics-XCQ3G5PM.js.map → analytics-GLJODEIM.js.map} +0 -0
- /package/dist/{animate-WS63CZ3Y.js.map → animate-EI6AYBDI.js.map} +0 -0
- /package/dist/{asset-writes-7RFZZYU7.js.map → asset-writes-MS45UKJ3.js.map} +0 -0
- /package/dist/{assign-2CZ5C43W.js.map → assign-7HT3XSSN.js.map} +0 -0
- /package/dist/{audience-size-FUHDVYLN.js.map → audience-size-DG7544D2.js.map} +0 -0
- /package/dist/{audiences-RSAUXKHR.js.map → audiences-2IVVS3SJ.js.map} +0 -0
- /package/dist/{audiences-7OS2ZJYO.js.map → audiences-RN745R53.js.map} +0 -0
- /package/dist/{audiences-6GVUZUCN.js.map → audiences-Z2TQT35L.js.map} +0 -0
- /package/dist/{audit-4L7IKIRY.js.map → audit-BIHMDO5K.js.map} +0 -0
- /package/dist/{audit-DECB5PP5.js.map → audit-ZYST7KCO.js.map} +0 -0
- /package/dist/{autocomplete-6XSIFXDA.js.map → autocomplete-5BKEMOQ3.js.map} +0 -0
- /package/dist/{avatars-LTV2TSO2.js.map → avatars-FQOCDWLW.js.map} +0 -0
- /package/dist/{bid-pricing-GC6YU3LW.js.map → bid-pricing-JEW7T2VR.js.map} +0 -0
- /package/dist/{brand-B4QKPCEC.js.map → brand-FR6BKWXN.js.map} +0 -0
- /package/dist/{brief-RYNGM4GX.js.map → brief-32IXDJ4J.js.map} +0 -0
- /package/dist/{businesses-42NZP6FP.js.map → businesses-HECSW3EL.js.map} +0 -0
- /package/dist/{campaign-groups-FHV5A3EC.js.map → campaign-groups-LYPVIZT5.js.map} +0 -0
- /package/dist/{campaign-writes-4B7DCAP2.js.map → campaign-writes-D5MM5LUH.js.map} +0 -0
- /package/dist/{campaign-writes-GKNH2EHV.js.map → campaign-writes-S7A6W5V3.js.map} +0 -0
- /package/dist/{campaigns-VNBJV5QD.js.map → campaigns-CMDF3P7Y.js.map} +0 -0
- /package/dist/{campaigns-TL37AY5Y.js.map → campaigns-LIICP5JU.js.map} +0 -0
- /package/dist/{campaigns-TO74Z7UH.js.map → campaigns-N72TOUQX.js.map} +0 -0
- /package/dist/{campaigns-7RV65SXR.js.map → campaigns-ZWJKBF3L.js.map} +0 -0
- /package/dist/{canvas-6XSA3VZE.js.map → canvas-3SNC3UUV.js.map} +0 -0
- /package/dist/{capabilities-6MOMJZFW.js.map → capabilities-GL7P3SWY.js.map} +0 -0
- /package/dist/{cards-CAOGPPG4.js.map → cards-RYQN5JLR.js.map} +0 -0
- /package/dist/{catalog-URTZYAPU.js.map → catalog-PWAWDK42.js.map} +0 -0
- /package/dist/{catalogs-5LWEXG5X.js.map → catalogs-SLPYHA7D.js.map} +0 -0
- /package/dist/{changes-WWZYTLC6.js.map → changes-WOD4EOSN.js.map} +0 -0
- /package/dist/{chatgpt-ZI4GWP6S.js.map → chatgpt-3GX4I6NH.js.map} +0 -0
- /package/dist/{chunk-MU2TTM6Z.js.map → chunk-34ARMQNL.js.map} +0 -0
- /package/dist/{chunk-5T6DUP7V.js.map → chunk-34MZGC2Y.js.map} +0 -0
- /package/dist/{chunk-GNTI4KST.js.map → chunk-4KBTW5NE.js.map} +0 -0
- /package/dist/{chunk-2LBQNTTH.js.map → chunk-4PAGS7QH.js.map} +0 -0
- /package/dist/{chunk-2GFJN2TR.js.map → chunk-53KV66ZZ.js.map} +0 -0
- /package/dist/{chunk-6IR7IQPV.js.map → chunk-5C4RRCKM.js.map} +0 -0
- /package/dist/{chunk-TPGFX47R.js.map → chunk-5I6XOSNI.js.map} +0 -0
- /package/dist/{chunk-ILGRC7LJ.js.map → chunk-5OE4Z7TP.js.map} +0 -0
- /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
- /package/dist/{chunk-B42CHCXX.js.map → chunk-6S4B67KP.js.map} +0 -0
- /package/dist/{chunk-FHWYQSMY.js.map → chunk-77LXZAX2.js.map} +0 -0
- /package/dist/{chunk-5H6N36LS.js.map → chunk-7TVVYP7K.js.map} +0 -0
- /package/dist/{chunk-HBRXFQQV.js.map → chunk-7URHRPC7.js.map} +0 -0
- /package/dist/{chunk-GXAI3EII.js.map → chunk-7YMQEAGA.js.map} +0 -0
- /package/dist/{chunk-NTFNLVZG.js.map → chunk-A4O3JL6D.js.map} +0 -0
- /package/dist/{chunk-2DAWUWA4.js.map → chunk-ANRTDNPQ.js.map} +0 -0
- /package/dist/{chunk-GWLP45WQ.js.map → chunk-AQNTVM6S.js.map} +0 -0
- /package/dist/{chunk-ULIQNJ5J.js.map → chunk-BPDIY5CF.js.map} +0 -0
- /package/dist/{chunk-IXVVTPG6.js.map → chunk-CKHF7UXS.js.map} +0 -0
- /package/dist/{chunk-MKG57P2E.js.map → chunk-CUTTTFAU.js.map} +0 -0
- /package/dist/{chunk-IGCS3X4F.js.map → chunk-D32EWSMB.js.map} +0 -0
- /package/dist/{chunk-JBABLH5C.js.map → chunk-D55MN5IH.js.map} +0 -0
- /package/dist/{chunk-FWHEAR7F.js.map → chunk-DRQI2CJJ.js.map} +0 -0
- /package/dist/{chunk-ARPT74DG.js.map → chunk-ETI6DGR2.js.map} +0 -0
- /package/dist/{chunk-XRR5NN2V.js.map → chunk-FFTD7XDA.js.map} +0 -0
- /package/dist/{chunk-YXZV6YKH.js.map → chunk-FTKUHGTC.js.map} +0 -0
- /package/dist/{chunk-RJIFEHEG.js.map → chunk-GFYGVIT3.js.map} +0 -0
- /package/dist/{chunk-ORQ3WBM6.js.map → chunk-GGXPO4NQ.js.map} +0 -0
- /package/dist/{chunk-KICGV4JB.js.map → chunk-H56UJRLV.js.map} +0 -0
- /package/dist/{chunk-GR2BPVLX.js.map → chunk-HDMD6LXS.js.map} +0 -0
- /package/dist/{chunk-N2TXADL7.js.map → chunk-HFZZKYUX.js.map} +0 -0
- /package/dist/{chunk-DWPOAU4Z.js.map → chunk-IAYJKH4R.js.map} +0 -0
- /package/dist/{chunk-7M6GZI5B.js.map → chunk-IEPCI2EB.js.map} +0 -0
- /package/dist/{chunk-ZREKNWIE.js.map → chunk-IKADYUXK.js.map} +0 -0
- /package/dist/{chunk-OSQTSS27.js.map → chunk-J32CYEIH.js.map} +0 -0
- /package/dist/{chunk-3D5ABNNW.js.map → chunk-J5I3GYSJ.js.map} +0 -0
- /package/dist/{chunk-X3YYZLBH.js.map → chunk-JCVXKHVB.js.map} +0 -0
- /package/dist/{chunk-BRPSY35A.js.map → chunk-JESSFI7R.js.map} +0 -0
- /package/dist/{chunk-CDPM6OE6.js.map → chunk-K4QPBXV7.js.map} +0 -0
- /package/dist/{chunk-H3HA22Z3.js.map → chunk-KJ3J2DYM.js.map} +0 -0
- /package/dist/{chunk-BHEOF2MF.js.map → chunk-L43B2YGZ.js.map} +0 -0
- /package/dist/{chunk-OTRKBCUB.js.map → chunk-L7UD57TV.js.map} +0 -0
- /package/dist/{chunk-6IRB3MHG.js.map → chunk-LJYXGUQ3.js.map} +0 -0
- /package/dist/{chunk-H3PD2KOF.js.map → chunk-LNYM4PQS.js.map} +0 -0
- /package/dist/{chunk-T4YD5W33.js.map → chunk-MIXUMGJE.js.map} +0 -0
- /package/dist/{chunk-U5LSGCT3.js.map → chunk-MWJ6BCZJ.js.map} +0 -0
- /package/dist/{chunk-N2MGR7HT.js.map → chunk-O7WRA3JU.js.map} +0 -0
- /package/dist/{chunk-LDYI7BIQ.js.map → chunk-OADMSHME.js.map} +0 -0
- /package/dist/{chunk-R4RWQ6YX.js.map → chunk-OLPABGH3.js.map} +0 -0
- /package/dist/{chunk-SZET6NTF.js.map → chunk-ONGZKI5J.js.map} +0 -0
- /package/dist/{chunk-3GKAVXR3.js.map → chunk-OSZOUSK5.js.map} +0 -0
- /package/dist/{chunk-6MX37ZQZ.js.map → chunk-PK7YNQ2T.js.map} +0 -0
- /package/dist/{chunk-JTIWQLY5.js.map → chunk-PN3CHL5W.js.map} +0 -0
- /package/dist/{chunk-S3ZW3KTX.js.map → chunk-QMQSI4WA.js.map} +0 -0
- /package/dist/{chunk-C3EX5OKN.js.map → chunk-QUSDGZFS.js.map} +0 -0
- /package/dist/{chunk-P6KTCPJG.js.map → chunk-QXRSFH6M.js.map} +0 -0
- /package/dist/{chunk-22RM3UOO.js.map → chunk-QZ4YHQLW.js.map} +0 -0
- /package/dist/{chunk-3E74OM2E.js.map → chunk-RF3TP643.js.map} +0 -0
- /package/dist/{chunk-WBWEKZQ2.js.map → chunk-RIRSFFWA.js.map} +0 -0
- /package/dist/{chunk-B47TRSMB.js.map → chunk-ROHICQPK.js.map} +0 -0
- /package/dist/{chunk-V6TZRCAS.js.map → chunk-RP3PC54R.js.map} +0 -0
- /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
- /package/dist/{chunk-EJBLF2LI.js.map → chunk-SOM4OTR5.js.map} +0 -0
- /package/dist/{chunk-Q5DFEVLE.js.map → chunk-SZZ7BBED.js.map} +0 -0
- /package/dist/{chunk-RYYRGQMM.js.map → chunk-TAGJYHVI.js.map} +0 -0
- /package/dist/{chunk-URKOGN5B.js.map → chunk-TB5JZTLN.js.map} +0 -0
- /package/dist/{chunk-KDAINT54.js.map → chunk-TQJLEVLA.js.map} +0 -0
- /package/dist/{chunk-X3GWGFZP.js.map → chunk-TW57RTKN.js.map} +0 -0
- /package/dist/{chunk-O43QFUOG.js.map → chunk-V3ANSXCB.js.map} +0 -0
- /package/dist/{chunk-D6YLVDVN.js.map → chunk-WSG4K2TR.js.map} +0 -0
- /package/dist/{chunk-XZAVBONI.js.map → chunk-WXSRSMY3.js.map} +0 -0
- /package/dist/{chunk-BMMXYR7A.js.map → chunk-WZXMZFVB.js.map} +0 -0
- /package/dist/{chunk-M45SOKI5.js.map → chunk-X3L5HYQM.js.map} +0 -0
- /package/dist/{chunk-6QINKM6T.js.map → chunk-Y2TOB4N5.js.map} +0 -0
- /package/dist/{chunk-RBB3UUYP.js.map → chunk-Z2LPYAN4.js.map} +0 -0
- /package/dist/{chunk-YD6OZSSY.js.map → chunk-ZICB4OI5.js.map} +0 -0
- /package/dist/{chunk-UYZ4FUC7.js.map → chunk-ZOCAGPS5.js.map} +0 -0
- /package/dist/{chunk-ME3K6XIS.js.map → chunk-ZZWZUTEP.js.map} +0 -0
- /package/dist/{claim-YCK2XQUL.js.map → claim-QHYA5UTF.js.map} +0 -0
- /package/dist/{companies-SWGL3MQT.js.map → companies-BNMAOQUQ.js.map} +0 -0
- /package/dist/{company-XKEQKWPO.js.map → company-YANP3G62.js.map} +0 -0
- /package/dist/{complete-CHEZWF5R.js.map → complete-ICZCBO6M.js.map} +0 -0
- /package/dist/{config-NDL2YP37.js.map → config-GIETKZGS.js.map} +0 -0
- /package/dist/{connect-GWLVOOU7.js.map → connect-ZXGEFS53.js.map} +0 -0
- /package/dist/{conversation-QD4UJZ7S.js.map → conversation-YIWZIUIK.js.map} +0 -0
- /package/dist/{conversion-report-76S5JOVT.js.map → conversion-report-E35RCZU7.js.map} +0 -0
- /package/dist/{conversion-writes-6HX665JT.js.map → conversion-writes-MUD7WJDH.js.map} +0 -0
- /package/dist/{conversions-BECU3XD2.js.map → conversions-B7HR6JMC.js.map} +0 -0
- /package/dist/{conversions-QZJRF4WN.js.map → conversions-WU7DNFF7.js.map} +0 -0
- /package/dist/{create-5QPEESSZ.js.map → create-EL47XN73.js.map} +0 -0
- /package/dist/{create-ET3VCGQT.js.map → create-GU5MUZ7U.js.map} +0 -0
- /package/dist/{create-4OA5DOSO.js.map → create-IKQ7A47F.js.map} +0 -0
- /package/dist/{create-IJSH2LHP.js.map → create-TKQDLX7M.js.map} +0 -0
- /package/dist/{creatives-L3XSN34M.js.map → creatives-PW6HB4JB.js.map} +0 -0
- /package/dist/{creatives-SFPNXJ6Z.js.map → creatives-S4EGN44U.js.map} +0 -0
- /package/dist/{creatives-AIRQ3FGH.js.map → creatives-VBD4T6C7.js.map} +0 -0
- /package/dist/{credentials-Q2FM4DP3.js.map → credentials-57U2UQ7G.js.map} +0 -0
- /package/dist/{crm-PQREUPOU.js.map → crm-JCYLJQ7K.js.map} +0 -0
- /package/dist/{crm-7GTTSEHH.js.map → crm-LQTYPDMZ.js.map} +0 -0
- /package/dist/{currency-BZUNQ4XJ.js.map → currency-5NYTOLEL.js.map} +0 -0
- /package/dist/{custom-conversions-UHRBVUD2.js.map → custom-conversions-NT7ONTEX.js.map} +0 -0
- /package/dist/{customers-BYNADWKU.js.map → customers-LP6I7POL.js.map} +0 -0
- /package/dist/{delete-EZ525EJV.js.map → delete-PZ6GP7J6.js.map} +0 -0
- /package/dist/{delete-2RAKL577.js.map → delete-WW4JYQMX.js.map} +0 -0
- /package/dist/{delete-ZBYPC5AL.js.map → delete-XZNY426Q.js.map} +0 -0
- /package/dist/{demographics-5XMZ2TBB.js.map → demographics-HZY2JEYQ.js.map} +0 -0
- /package/dist/{discard-Q7R5VJ7I.js.map → discard-NRTGRVXR.js.map} +0 -0
- /package/dist/{discover-PDSEJR2P.js.map → discover-5ZFAAPNG.js.map} +0 -0
- /package/dist/{domain-MS3BKUYW.js.map → domain-YGKFTN6D.js.map} +0 -0
- /package/dist/{download-F56SAC2G.js.map → download-XERSDEN3.js.map} +0 -0
- /package/dist/{draft-44KTLX4P.js.map → draft-2EVXU5XB.js.map} +0 -0
- /package/dist/{draft-RSKZSUOS.js.map → draft-CQWYTMSS.js.map} +0 -0
- /package/dist/{draft-L6XXU2I6.js.map → draft-EL74RDAG.js.map} +0 -0
- /package/dist/{draft-WOE7KQ7T.js.map → draft-GFZ3KMRX.js.map} +0 -0
- /package/dist/{draft-CKFSZDVI.js.map → draft-JYZA3BFD.js.map} +0 -0
- /package/dist/{draft-JBLWUO3J.js.map → draft-UNPTTHP4.js.map} +0 -0
- /package/dist/{experiment-AZUKJ7ZO.js.map → experiment-YAX26BOO.js.map} +0 -0
- /package/dist/{extract-2PG5JB2C.js.map → extract-QMY6WPTV.js.map} +0 -0
- /package/dist/{facets-5CGKHFDQ.js.map → facets-QHM2IQ3E.js.map} +0 -0
- /package/dist/{feedback-C7THFXTE.js.map → feedback-NLPTKWOH.js.map} +0 -0
- /package/dist/{fetch-LMEYFSM5.js.map → fetch-72ZILZHO.js.map} +0 -0
- /package/dist/{fit-DBA7FD3M.js.map → fit-AURKFPAY.js.map} +0 -0
- /package/dist/{flows-TQASOYQP.js.map → flows-CZPXHOZW.js.map} +0 -0
- /package/dist/{fonts-MPDK2DXR.js.map → fonts-NA26RQ4C.js.map} +0 -0
- /package/dist/{forecast-OP2ECNM2.js.map → forecast-ARIHRQAX.js.map} +0 -0
- /package/dist/{funding-BSAHWU35.js.map → funding-QDKFNQI2.js.map} +0 -0
- /package/dist/{funnel-BLRQAZ65.js.map → funnel-4VQB3T3M.js.map} +0 -0
- /package/dist/{ga4-YVKA3V4V.js.map → ga4-N6EBLN2W.js.map} +0 -0
- /package/dist/{generate-VGGXTZBP.js.map → generate-IJLMJC4S.js.map} +0 -0
- /package/dist/{get-DEELBPMG.js.map → get-LOEUOTG3.js.map} +0 -0
- /package/dist/{get-YATZI6GN.js.map → get-W3VJIQBN.js.map} +0 -0
- /package/dist/{google-ULLPGAXN.js.map → google-7VEPEBFV.js.map} +0 -0
- /package/dist/{google-ads-IEQJEICD.js.map → google-ads-YBOJ3XXK.js.map} +0 -0
- /package/dist/{gsc-OJDMSP6H.js.map → gsc-FILOUFCG.js.map} +0 -0
- /package/dist/{history-LXRFZNW7.js.map → history-6LLGAK7B.js.map} +0 -0
- /package/dist/{history-FPXZOUHT.js.map → history-H2SHADAM.js.map} +0 -0
- /package/dist/{history-2LE4ELLB.js.map → history-LJG64M6P.js.map} +0 -0
- /package/dist/{hubspot-MNREQEVI.js.map → hubspot-6JDARLIU.js.map} +0 -0
- /package/dist/{ideas-4N7WMX3P.js.map → ideas-MTWJDRRK.js.map} +0 -0
- /package/dist/{images-KVMFKQX5.js.map → images-RIFC6D3H.js.map} +0 -0
- /package/dist/{ingest-VG4YGXB2.js.map → ingest-K45T4OLM.js.map} +0 -0
- /package/dist/{ingest-GUJNPD6S.js.map → ingest-MSS52UO5.js.map} +0 -0
- /package/dist/{insights-LZJZGNJZ.js.map → insights-AVNMRFQ4.js.map} +0 -0
- /package/dist/{insights-H6M6VI43.js.map → insights-TBIT6DTF.js.map} +0 -0
- /package/dist/{inspect-VODWKUQY.js.map → inspect-EBGYJOZ3.js.map} +0 -0
- /package/dist/{intent-HXRSLFIO.js.map → intent-URHTU4AK.js.map} +0 -0
- /package/dist/{job-UFGGBDG7.js.map → job-OJB6KIDV.js.map} +0 -0
- /package/dist/{job-create-XM4NH322.js.map → job-create-C6FGCDW4.js.map} +0 -0
- /package/dist/{job-status-47L5Z57J.js.map → job-status-4RJHESID.js.map} +0 -0
- /package/dist/{keyword-gap-WUHMSTNR.js.map → keyword-gap-WXM6SN6A.js.map} +0 -0
- /package/dist/{keyword-metrics-LOLNR24U.js.map → keyword-metrics-57MUTYMH.js.map} +0 -0
- /package/dist/{keywords-for-site-PLTJBXVN.js.map → keywords-for-site-ABZS7O5B.js.map} +0 -0
- /package/dist/{landing-JMH3WIK2.js.map → landing-AXCYLUQZ.js.map} +0 -0
- /package/dist/{languages-SVTYYYOC.js.map → languages-6XTVTFZC.js.map} +0 -0
- /package/dist/{leads-XPIBMZI7.js.map → leads-C5BUBBLZ.js.map} +0 -0
- /package/dist/{learn-MOHK6DHI.js.map → learn-M64GVGPX.js.map} +0 -0
- /package/dist/{line-item-writes-5RVCYHHH.js.map → line-item-writes-HYLWBQTM.js.map} +0 -0
- /package/dist/{line-items-OESD2IJ6.js.map → line-items-Y4THDHSE.js.map} +0 -0
- /package/dist/{link-PURCDO7A.js.map → link-BU7YCL2M.js.map} +0 -0
- /package/dist/{linkedin-person-L22XA5LG.js.map → linkedin-person-FEIY7FYQ.js.map} +0 -0
- /package/dist/{list-L5VZ35AO.js.map → list-BKIL7O4G.js.map} +0 -0
- /package/dist/{list-KE6PQV2U.js.map → list-H3C345WG.js.map} +0 -0
- /package/dist/{list-T5ZVVC4L.js.map → list-UGTDZ7YI.js.map} +0 -0
- /package/dist/{locations-7EBZ6KRH.js.map → locations-F4365X4S.js.map} +0 -0
- /package/dist/{locations-5SLLGWZO.js.map → locations-HOI7AUZ2.js.map} +0 -0
- /package/dist/{log-D3WU36FX.js.map → log-54SJV6MW.js.map} +0 -0
- /package/dist/{lookup-OU6CLATK.js.map → lookup-QNLX2535.js.map} +0 -0
- /package/dist/{map-PT7JJYQR.js.map → map-BPPGQGDV.js.map} +0 -0
- /package/dist/{mcp-62MSONPH.js.map → mcp-EXOMBMYL.js.map} +0 -0
- /package/dist/{media-YKCCMLXL.js.map → media-MITWBYVZ.js.map} +0 -0
- /package/dist/{media-DGV2AMZI.js.map → media-WGIEUEZW.js.map} +0 -0
- /package/dist/{media-sources-DGVR3YPL.js.map → media-sources-XEC72K7X.js.map} +0 -0
- /package/dist/{members-DAHPS3MB.js.map → members-VDON57BE.js.map} +0 -0
- /package/dist/{meta-5TRG7RTQ.js.map → meta-NUBBKE2V.js.map} +0 -0
- /package/dist/{metrics-WRERNMRK.js.map → metrics-V6FAZO5A.js.map} +0 -0
- /package/dist/{models-SITHUNAA.js.map → models-TSMFIOZU.js.map} +0 -0
- /package/dist/{normalize-ZOJ4YROH.js.map → normalize-632DD2HJ.js.map} +0 -0
- /package/dist/{options-DTB2NYBL.js.map → options-TZYZQZ3M.js.map} +0 -0
- /package/dist/{organization-5JHFNUOD.js.map → organization-FYRXSGB4.js.map} +0 -0
- /package/dist/{output-7X5WPPCA.js.map → output-HZW7LNUL.js.map} +0 -0
- /package/dist/{pages-6YMPZDEY.js.map → pages-UH6XEZBO.js.map} +0 -0
- /package/dist/{performance-W6CJEUHR.js.map → performance-JKXHQIAV.js.map} +0 -0
- /package/dist/{performance-VFDK5PHT.js.map → performance-OF3N43OP.js.map} +0 -0
- /package/dist/{pixels-WTTLC4O5.js.map → pixels-KXA6R3G3.js.map} +0 -0
- /package/dist/{pixels-DZDVNIVL.js.map → pixels-PYNK73UG.js.map} +0 -0
- /package/dist/{plan-JAWESWJN.js.map → plan-4OYUV2EF.js.map} +0 -0
- /package/dist/{preview-JZXGR4KN.js.map → preview-7E4E3QPT.js.map} +0 -0
- /package/dist/{preview-PUF62HJU.js.map → preview-FPBM75L2.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-FW4BAA5O.js.map → promoted-tweet-writes-IJRBFK7W.js.map} +0 -0
- /package/dist/{promoted-tweets-LYHKCVNV.js.map → promoted-tweets-7PYH3RPV.js.map} +0 -0
- /package/dist/{properties-Z5S3LRJ5.js.map → properties-RDOGNY2O.js.map} +0 -0
- /package/dist/{publish-S2KD5PCN.js.map → publish-MNSDFPEQ.js.map} +0 -0
- /package/dist/{query-3QFT42PG.js.map → query-GMGWJW3X.js.map} +0 -0
- /package/dist/{query-KKXCMH3Q.js.map → query-K7R5GQ4E.js.map} +0 -0
- /package/dist/{query-QXKGVHZL.js.map → query-PO3RT7BR.js.map} +0 -0
- /package/dist/{questionnaire-U7UYICEA.js.map → questionnaire-4OH6K2BF.js.map} +0 -0
- /package/dist/{read-ENUS7P3L.js.map → read-MU5XGWMK.js.map} +0 -0
- /package/dist/{reddit-AF2PPR3K.js.map → reddit-JFFMZLJS.js.map} +0 -0
- /package/dist/{refresh-UC7OTPXS.js.map → refresh-EJ7WKW3H.js.map} +0 -0
- /package/dist/{release-FQOJ2FJ5.js.map → release-AFRLCZWB.js.map} +0 -0
- /package/dist/{relevant-pages-OFKZYWR3.js.map → relevant-pages-4YGN3I2U.js.map} +0 -0
- /package/dist/{remove-H3SU4GJK.js.map → remove-QD4PITBL.js.map} +0 -0
- /package/dist/{reopen-M2PZEHKF.js.map → reopen-JSC6AVJC.js.map} +0 -0
- /package/dist/{research-ILZZTO6Q.js.map → research-MMFUFZGS.js.map} +0 -0
- /package/dist/{research-2N5HAFSB.js.map → research-SRISCVBM.js.map} +0 -0
- /package/dist/{reset-XAKAEDPH.js.map → reset-752CNET3.js.map} +0 -0
- /package/dist/{reset-JN437DOZ.js.map → reset-R3TQAHRU.js.map} +0 -0
- /package/dist/{resolve-WVE6D7CP.js.map → resolve-EWHSJNBX.js.map} +0 -0
- /package/dist/{retry-PMJ22IN4.js.map → retry-DVHDVHVP.js.map} +0 -0
- /package/dist/{retry-ILL2ZATG.js.map → retry-PVULTONO.js.map} +0 -0
- /package/dist/{rules-Y75KR2PC.js.map → rules-4YTY57FM.js.map} +0 -0
- /package/dist/{run-OCCY7JHY.js.map → run-PCZRYL42.js.map} +0 -0
- /package/dist/{run-2AIXS3KE.js.map → run-PRSAUWAJ.js.map} +0 -0
- /package/dist/{schedule-WV6NZ4CK.js.map → schedule-6YTZBCZA.js.map} +0 -0
- /package/dist/{scheduled-agents-MZZMHN3T.js.map → scheduled-agents-XCPU57LU.js.map} +0 -0
- /package/dist/{schema-ADRFE3AV.js.map → schema-4PS5BDG3.js.map} +0 -0
- /package/dist/{search-GGWTLVG7.js.map → search-IMZD5RGD.js.map} +0 -0
- /package/dist/{sends-4ZO6BNZ4.js.map → sends-I2B6F5NW.js.map} +0 -0
- /package/dist/{setup-links-76AJJR5Z.js.map → setup-links-PTL6RF2J.js.map} +0 -0
- /package/dist/{shared-UPMEBTVP.js.map → shared-Z7INVKCZ.js.map} +0 -0
- /package/dist/{shopify-Q3XMCPHI.js.map → shopify-SDZZ5HTA.js.map} +0 -0
- /package/dist/{site-I4HFMTE5.js.map → site-NGQ7K6UD.js.map} +0 -0
- /package/dist/{sitemaps-P3K5Z4TW.js.map → sitemaps-EOMSRKOD.js.map} +0 -0
- /package/dist/{sites-TURWC53D.js.map → sites-6M73AONG.js.map} +0 -0
- /package/dist/{sources-GGLP5NQU.js.map → sources-NKFSCI6M.js.map} +0 -0
- /package/dist/{sources-ORL5AEH5.js.map → sources-O4CQ5KSX.js.map} +0 -0
- /package/dist/{stats-XNKAJD2Z.js.map → stats-MFEH2TSW.js.map} +0 -0
- /package/dist/{status-LSHCACMZ.js.map → status-DLYRPGFS.js.map} +0 -0
- /package/dist/{stock-RZH4SEGS.js.map → stock-RDCDVBHX.js.map} +0 -0
- /package/dist/{studies-5G67ODR2.js.map → studies-SSA3SR2L.js.map} +0 -0
- /package/dist/{studio-D2OMFCZZ.js.map → studio-MBHPDGMN.js.map} +0 -0
- /package/dist/{sync-MK7JTH3U.js.map → sync-BEW3TZP7.js.map} +0 -0
- /package/dist/{sync-QVEUQKU5.js.map → sync-SI25TKY5.js.map} +0 -0
- /package/dist/{sync-definition-EFAJ744M.js.map → sync-definition-RECCA3QH.js.map} +0 -0
- /package/dist/{tag-manager-3GIW6BPB.js.map → tag-manager-JFC6YYVP.js.map} +0 -0
- /package/dist/{tags-5HX7TDJN.js.map → tags-IJIGZYR3.js.map} +0 -0
- /package/dist/{tags-EOIC4EQK.js.map → tags-K4HIKHNU.js.map} +0 -0
- /package/dist/{tags-G4HMOLZF.js.map → tags-OTA55BQ6.js.map} +0 -0
- /package/dist/{tags-BE6L5NLG.js.map → tags-QF2V4B3M.js.map} +0 -0
- /package/dist/{tags-PF6UJWCF.js.map → tags-SK7WXMBS.js.map} +0 -0
- /package/dist/{targeting-constants-RJS2STR5.js.map → targeting-constants-RF2732EW.js.map} +0 -0
- /package/dist/{targeting-criteria-DOHSND62.js.map → targeting-criteria-7BUUYDYC.js.map} +0 -0
- /package/dist/{targets-7AL4HPAW.js.map → targets-7V3NCQSD.js.map} +0 -0
- /package/dist/{terms-AATAGKPT.js.map → terms-XFL6QO7A.js.map} +0 -0
- /package/dist/{testimonials-BNYHKXD2.js.map → testimonials-XYD5DLBJ.js.map} +0 -0
- /package/dist/{top-companies-ASSEFHI3.js.map → top-companies-LI26TONY.js.map} +0 -0
- /package/dist/{transcript-OTAKTTSA.js.map → transcript-FTHDWMGU.js.map} +0 -0
- /package/dist/{triggers-JQYC4JLT.js.map → triggers-3LHJVK5P.js.map} +0 -0
- /package/dist/{tweets-MLDLLLDB.js.map → tweets-6PQHJXJC.js.map} +0 -0
- /package/dist/{unlink-FVHHULLC.js.map → unlink-BMOUBGWO.js.map} +0 -0
- /package/dist/{unstage-65DUBYNZ.js.map → unstage-O23ILHCY.js.map} +0 -0
- /package/dist/{unstage-FIRVPNRC.js.map → unstage-YEW5KXJL.js.map} +0 -0
- /package/dist/{update-EO5LVV34.js.map → update-2IWZA5UU.js.map} +0 -0
- /package/dist/{update-RA6TX5NV.js.map → update-G7YZICSU.js.map} +0 -0
- /package/dist/{update-G7RMT4OC.js.map → update-T5INCQJZ.js.map} +0 -0
- /package/dist/{update-OD75FSPH.js.map → update-UTQVTG45.js.map} +0 -0
- /package/dist/{upload-X33VIDOB.js.map → upload-UXYJDA2U.js.map} +0 -0
- /package/dist/{url-options-4J3FRXHO.js.map → url-options-Y7I5EL55.js.map} +0 -0
- /package/dist/{url-params-IBE4HUKK.js.map → url-params-PE4XAQNH.js.map} +0 -0
- /package/dist/{videos-NITQKILV.js.map → videos-AHOLXU42.js.map} +0 -0
- /package/dist/{videos-RGCF3EAE.js.map → videos-EVPJHY3B.js.map} +0 -0
- /package/dist/{viewer-check-AKVX3XFW.js.map → viewer-check-NA4TMNY4.js.map} +0 -0
- /package/dist/{web-QVR2EQ7X.js.map → web-7EODEH25.js.map} +0 -0
- /package/dist/{winning-ads-3R4RU3FL.js.map → winning-ads-5UKX6QV7.js.map} +0 -0
- /package/dist/{write-commands-XLZCRVTU.js.map → write-commands-LHEJESKL.js.map} +0 -0
- /package/dist/{write-commands-OBQPQUIE.js.map → write-commands-SD6DXVNK.js.map} +0 -0
- /package/dist/{x-747NTJKH.js.map → x-R72UTFQT.js.map} +0 -0
package/dist/draft-XOPS4EZW.js
DELETED
|
@@ -1,569 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
draftRefs,
|
|
3
|
-
removeDraftRefs
|
|
4
|
-
} from "./chunk-2DAWUWA4.js";
|
|
5
|
-
import {
|
|
6
|
-
draftAction,
|
|
7
|
-
draftListAction,
|
|
8
|
-
failWriteValidation,
|
|
9
|
-
handleGoogleError,
|
|
10
|
-
loadJsonPayloads,
|
|
11
|
-
loadPatchArg,
|
|
12
|
-
requireTarget,
|
|
13
|
-
stageGoogleOps
|
|
14
|
-
} from "./chunk-TPGFX47R.js";
|
|
15
|
-
import "./chunk-ERSX3MKH.js";
|
|
16
|
-
import "./chunk-CDTAKCJR.js";
|
|
17
|
-
import "./chunk-4NZ47VXO.js";
|
|
18
|
-
import "./chunk-D5FY4FAK.js";
|
|
19
|
-
import "./chunk-4H6XLX7E.js";
|
|
20
|
-
import "./chunk-QALAJNBG.js";
|
|
21
|
-
import "./chunk-BMMXYR7A.js";
|
|
22
|
-
import {
|
|
23
|
-
writeJsonEnvelope
|
|
24
|
-
} from "./chunk-RBCO3C3Q.js";
|
|
25
|
-
import "./chunk-Y5PNLB24.js";
|
|
26
|
-
import "./chunk-N3PASNUA.js";
|
|
27
|
-
import "./chunk-E56V3RFO.js";
|
|
28
|
-
import "./chunk-EL3TDR5S.js";
|
|
29
|
-
import "./chunk-G6U45QD3.js";
|
|
30
|
-
import "./chunk-X6U3B6YK.js";
|
|
31
|
-
import {
|
|
32
|
-
CHAT_READ_ARG,
|
|
33
|
-
DRAFT_FULL_ARG
|
|
34
|
-
} from "./chunk-X32MFGWW.js";
|
|
35
|
-
import "./chunk-R7XDGNZD.js";
|
|
36
|
-
import {
|
|
37
|
-
GOOGLE_DRAFT_BATCH_MAX
|
|
38
|
-
} from "./chunk-XHWHBGKX.js";
|
|
39
|
-
import {
|
|
40
|
-
apiPost
|
|
41
|
-
} from "./chunk-QEREDRZO.js";
|
|
42
|
-
import "./chunk-JXTNP3B5.js";
|
|
43
|
-
import {
|
|
44
|
-
requireChatId
|
|
45
|
-
} from "./chunk-45D6WRCJ.js";
|
|
46
|
-
import {
|
|
47
|
-
registerSchema
|
|
48
|
-
} from "./chunk-CCYZJMZ7.js";
|
|
49
|
-
import "./chunk-YQSBHWOI.js";
|
|
50
|
-
|
|
51
|
-
// src/commands/ads/google/draft.ts
|
|
52
|
-
import { defineCommand } from "citty";
|
|
53
|
-
|
|
54
|
-
// src/commands/ads/google/draft-batch.ts
|
|
55
|
-
function refuseOversized(count, what) {
|
|
56
|
-
if (count > GOOGLE_DRAFT_BATCH_MAX) {
|
|
57
|
-
failWriteValidation(
|
|
58
|
-
`${count} ${what} exceeds the batch limit of ${GOOGLE_DRAFT_BATCH_MAX} \u2014 split the file and run the command once per part`
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
function stageFileOps(items, customerId) {
|
|
63
|
-
if (items.length === 0) {
|
|
64
|
-
failWriteValidation(
|
|
65
|
-
'pass --file with the ops to stage: a JSON array (or JSON Lines) of {"kind","customerId","target"?,"payload"?}'
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
refuseOversized(items.length, "ops");
|
|
69
|
-
return items.map((item, index) => {
|
|
70
|
-
if (typeof item.kind !== "string") {
|
|
71
|
-
failWriteValidation(
|
|
72
|
-
`item ${index} has no "kind" \u2014 every item is a whole op, e.g. {"kind":"google.keyword.add",\u2026}`
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
return item.customerId === void 0 && customerId ? { ...item, customerId } : item;
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
function amendBatchEntries(items) {
|
|
79
|
-
refuseOversized(items.length, "amends");
|
|
80
|
-
return items.map((item, index) => {
|
|
81
|
-
const { ref, patch } = item;
|
|
82
|
-
if (typeof ref !== "string" || ref.length === 0) {
|
|
83
|
-
failWriteValidation(`item ${index} has no "ref" \u2014 name the staged op (g_temp_* or its target) to amend`);
|
|
84
|
-
}
|
|
85
|
-
if (patch === null || typeof patch !== "object" || Array.isArray(patch)) {
|
|
86
|
-
failWriteValidation(`item ${index} has no "patch" object \u2014 {"ref":"\u2026","patch":{\u2026fields to change\u2026}}`);
|
|
87
|
-
}
|
|
88
|
-
return { ref, patch };
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// src/commands/ads/google/draft-validate.ts
|
|
93
|
-
var QUIET = /* @__PURE__ */ new Set(["accepted", "applied"]);
|
|
94
|
-
function changes(n) {
|
|
95
|
-
return n === 1 ? "1 change" : `${n} changes`;
|
|
96
|
-
}
|
|
97
|
-
function validationHints(data) {
|
|
98
|
-
const { refused, blocked, unchecked } = data.counts;
|
|
99
|
-
const hints = [];
|
|
100
|
-
if (refused > 0) {
|
|
101
|
-
hints.push(
|
|
102
|
-
`${changes(refused)} would fail at publish. Fix each refused op in place with \`draft amend <ref>\` (or \`draft remove <ref>\` if it should not exist), then run \`draft validate\` again before asking the user to publish. Never tell the user a refused change will go live.`
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
if (blocked > 0) {
|
|
106
|
-
hints.push(
|
|
107
|
-
`${changes(blocked)} would not apply only because a refused change they depend on fails \u2014 fixing the refused one clears them.`
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
if (data.publishHeld) {
|
|
111
|
-
hints.push(
|
|
112
|
-
"Baker would hold this whole publish: a refused change stops a first publish from sending anything. Fix it first."
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
if (unchecked > 0) {
|
|
116
|
-
hints.push(
|
|
117
|
-
`${changes(unchecked)} can only be checked by Google at publish (the reason is on each one). Nothing here says they will fail.`
|
|
118
|
-
);
|
|
119
|
-
}
|
|
120
|
-
if (refused + blocked === 0 && !data.publishHeld && data.ops.length > 0) {
|
|
121
|
-
hints.push(
|
|
122
|
-
"Google accepted every change it was asked about. The draft is ready for the user to review and publish."
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
if (data.dailyLimit) {
|
|
126
|
-
hints.push(
|
|
127
|
-
`Not every change may go live the moment the user publishes: Baker sends what Google Ads takes then and the rest again on its own, all by about ${data.dailyLimit.fitsAt}, with nothing for the user to do. If you tell the user anything, say only that some changes will go live over the next hours and by when, in their time zone. Never mention a daily limit, quota, allowance or number of operations, and never ask them to cut down or split their work for it.`
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
return hints;
|
|
131
|
-
}
|
|
132
|
-
function validationEnvelope(data, full = false) {
|
|
133
|
-
const ops = full ? data.ops : data.ops.filter((op) => !QUIET.has(op.verdict));
|
|
134
|
-
return { ok: true, data: { ...data, ops }, hints: validationHints(data) };
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// src/commands/ads/google/draft-where.ts
|
|
138
|
-
function parseDraftWhere(value) {
|
|
139
|
-
const where = { kinds: [], under: [], fields: {} };
|
|
140
|
-
const pairs = value.split(",").map((pair) => pair.trim()).filter(Boolean);
|
|
141
|
-
if (pairs.length === 0) return { error: "--where names no condition" };
|
|
142
|
-
for (const pair of pairs) {
|
|
143
|
-
const eq = pair.indexOf("=");
|
|
144
|
-
const key = pair.slice(0, eq).trim();
|
|
145
|
-
const values = pair.slice(eq + 1).split("|").map((v) => v.trim()).filter(Boolean);
|
|
146
|
-
if (eq <= 0 || values.length === 0) return { error: `--where condition "${pair}" is not key=value` };
|
|
147
|
-
if (key === "kind") where.kinds.push(...values.map((k) => k.startsWith("google.") ? k : `google.${k}`));
|
|
148
|
-
else if (key === "under") where.under.push(...values);
|
|
149
|
-
else where.fields[key] = [...where.fields[key] ?? [], ...values];
|
|
150
|
-
}
|
|
151
|
-
return where;
|
|
152
|
-
}
|
|
153
|
-
function payloadOf(op) {
|
|
154
|
-
return typeof op.payload === "object" && op.payload !== null ? op.payload : {};
|
|
155
|
-
}
|
|
156
|
-
function parentsOf(op, byRef) {
|
|
157
|
-
const seen = /* @__PURE__ */ new Set();
|
|
158
|
-
const queue = [op];
|
|
159
|
-
for (let current = queue.shift(); current; current = queue.shift()) {
|
|
160
|
-
const named = Object.values(payloadOf(current)).filter((v) => typeof v === "string");
|
|
161
|
-
for (const parent of [...current.dependsOn, ...named]) {
|
|
162
|
-
if (seen.has(parent)) continue;
|
|
163
|
-
seen.add(parent);
|
|
164
|
-
const staged = byRef.get(parent);
|
|
165
|
-
if (staged) queue.push(staged);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return seen;
|
|
169
|
-
}
|
|
170
|
-
function selectDraftRefs(ops, where) {
|
|
171
|
-
const byRef = new Map(ops.map((op) => [op.ref, op]));
|
|
172
|
-
return ops.filter((op) => {
|
|
173
|
-
if (where.kinds.length > 0 && !where.kinds.includes(op.kind)) return false;
|
|
174
|
-
if (where.under.length > 0) {
|
|
175
|
-
const parents = parentsOf(op, byRef);
|
|
176
|
-
if (!where.under.some((ref) => parents.has(ref))) return false;
|
|
177
|
-
}
|
|
178
|
-
const payload = payloadOf(op);
|
|
179
|
-
return Object.entries(where.fields).every(([key, values]) => {
|
|
180
|
-
const actual = payload[key];
|
|
181
|
-
if (typeof actual !== "string" && typeof actual !== "number" && typeof actual !== "boolean") return false;
|
|
182
|
-
return values.some((v) => v.toLowerCase() === String(actual).toLowerCase());
|
|
183
|
-
});
|
|
184
|
-
}).map((op) => op.ref);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// src/commands/ads/google/draft.ts
|
|
188
|
-
var VALIDATE_DESCRIPTION = `Ask Google whether the whole staged draft would publish \u2014 without applying anything.
|
|
189
|
-
|
|
190
|
-
Start here, after the last staged change and before telling the user the draft is ready:
|
|
191
|
-
baker ads google draft validate
|
|
192
|
-
|
|
193
|
-
Every staged op is built, batched and sent exactly as publish sends it, with Google's validateOnly
|
|
194
|
-
flag, so each verdict is the answer publish would get: accepted | refused | blocked (a change it
|
|
195
|
-
depends on was refused) | unchecked (only publish can check it) | applied (an earlier publish did).
|
|
196
|
-
Compact by default \u2014 counts, plus only the ops that need attention, each with Google's reason.
|
|
197
|
-
Fix refused ops with \`draft amend <ref>\` and validate again.
|
|
198
|
-
|
|
199
|
-
It also reads Baker's day of Google Ads changes, shared by every company. When the draft does
|
|
200
|
-
not all fit in what is left, the answer carries dailyLimit: operations, room and fitsAt (ISO, when
|
|
201
|
-
all of it should have gone). Publish still works: Baker sends what Google Ads takes and the rest
|
|
202
|
-
again on its own. Never mention the limit, a quota or operation counts to the user, and never ask
|
|
203
|
-
them to cut down or split their work for it; say only that some changes go live over the next
|
|
204
|
-
hours, and by when.
|
|
205
|
-
|
|
206
|
-
Examples:
|
|
207
|
-
baker ads google draft validate
|
|
208
|
-
baker ads google draft validate --full # every op, with its built request and Google's raw answer`;
|
|
209
|
-
registerSchema({
|
|
210
|
-
command: "ads.google.draft.validate",
|
|
211
|
-
description: VALIDATE_DESCRIPTION,
|
|
212
|
-
args: {
|
|
213
|
-
full: {
|
|
214
|
-
type: "boolean",
|
|
215
|
-
description: "List every op with its built request and Google's raw answer",
|
|
216
|
-
required: false
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
var STAGE_DESCRIPTION = `Stage many Google Ads changes from ONE file, in one call \u2014 any mix of kinds, up to 500 ops.
|
|
221
|
-
|
|
222
|
-
Start here whenever a change touches more than a few rows (a keyword cleanup, bid changes, pausing
|
|
223
|
-
ads, a list of negatives): write the ops to a file and stage them together instead of running one
|
|
224
|
-
command per row.
|
|
225
|
-
baker ads google draft stage --file changes.json --customer-id 1234567890
|
|
226
|
-
|
|
227
|
-
The file is a JSON array (or JSON Lines, one op per line). Each op is what the single commands
|
|
228
|
-
build \u2014 kind, customerId (or --customer-id for all), target for a change to something that exists,
|
|
229
|
-
payload. Read the shape for a kind with \`baker capabilities google-ads\`.
|
|
230
|
-
[
|
|
231
|
-
{"kind":"google.keyword.add","payload":{"adGroup":"customers/1234567890/adGroups/111","text":"solar panels","matchType":"PHRASE"}},
|
|
232
|
-
{"kind":"google.keyword.update","target":"customers/1234567890/adGroupCriteria/111~222","payload":{"status":"PAUSED"}},
|
|
233
|
-
{"kind":"google.negativeKeyword.add","payload":{"level":"campaign","parent":"222333","text":"free","matchType":"BROAD"}}
|
|
234
|
-
]
|
|
235
|
-
An op may name a g_temp_* ref an EARLIER call returned (a campaign or ad group staged before), but
|
|
236
|
-
not another op in the same file \u2014 a ref exists only once its op is staged, so stage new parents first.
|
|
237
|
-
All-or-nothing: one invalid op stages nothing. Ops already in effect come back as skipped.
|
|
238
|
-
Then: baker ads google draft validate`;
|
|
239
|
-
registerSchema({
|
|
240
|
-
command: "ads.google.draft.stage",
|
|
241
|
-
description: STAGE_DESCRIPTION,
|
|
242
|
-
args: {
|
|
243
|
-
file: {
|
|
244
|
-
type: "string",
|
|
245
|
-
description: "JSON array or JSON Lines of ops ({kind, customerId?, target?, payload?}), path or inline",
|
|
246
|
-
required: true
|
|
247
|
-
},
|
|
248
|
-
"customer-id": {
|
|
249
|
-
type: "string",
|
|
250
|
-
description: "10-digit customer id for every op that does not name its own",
|
|
251
|
-
required: false
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
var IMPORT_DESCRIPTION = `Move another open chat's staged Google Ads changes into this chat, in one call \u2014 and out of that chat, so the two can never publish the same change twice.
|
|
256
|
-
|
|
257
|
-
Start here when the user wants another chat's changes brought into this one ("bring over", "merge",
|
|
258
|
-
"include what the other chat prepared", "all of them except \u2026"):
|
|
259
|
-
baker ads google draft import --from-chat <chat-id>
|
|
260
|
-
baker ads google draft import --from-chat <chat-id> --exclude g_temp_a,customers/123/adGroupAds/4~5
|
|
261
|
-
baker ads google draft import --from-chat <chat-id> --refs g_temp_b
|
|
262
|
-
|
|
263
|
-
Every op moves exactly as it was staged \u2014 same ref, same payload, nothing retyped \u2014 so never copy
|
|
264
|
-
another chat's changes with \`draft show --chat\` and re-stage them. An op moves with the creates it
|
|
265
|
-
depends on and the ops that depend on it (an asset and the link that attaches it go together).
|
|
266
|
-
The other chat must still be open; its other work (Knowledge, Tasks) stays where it is. Find chat ids
|
|
267
|
-
with \`baker chats list\`, and refs with \`baker ads google draft list --chat <chat-id> --json\`.
|
|
268
|
-
Then: baker ads google draft validate`;
|
|
269
|
-
registerSchema({
|
|
270
|
-
command: "ads.google.draft.import",
|
|
271
|
-
description: IMPORT_DESCRIPTION,
|
|
272
|
-
args: {
|
|
273
|
-
"from-chat": { type: "string", description: "The other open chat whose staged changes move here", required: true },
|
|
274
|
-
refs: {
|
|
275
|
-
type: "string",
|
|
276
|
-
description: "Comma-separated refs to move (default: all); what they depend on comes too",
|
|
277
|
-
required: false
|
|
278
|
-
},
|
|
279
|
-
exclude: {
|
|
280
|
-
type: "string",
|
|
281
|
-
description: "Comma-separated refs to leave in the other chat, with the ops that depend on them",
|
|
282
|
-
required: false
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
|
-
var LIST_DESCRIPTION = "Review everything staged as a campaign \u25B8 ad group \u25B8 ad tree (--json for the raw envelope, --full for every op's payload too)";
|
|
287
|
-
registerSchema({
|
|
288
|
-
command: "ads.google.draft.list",
|
|
289
|
-
description: LIST_DESCRIPTION,
|
|
290
|
-
args: {
|
|
291
|
-
json: { type: "boolean", description: "Print the raw JSON envelope instead of the readable tree", required: false },
|
|
292
|
-
full: { type: "boolean", description: DRAFT_FULL_ARG.description, required: false },
|
|
293
|
-
chat: { type: "string", description: CHAT_READ_ARG.description, required: false }
|
|
294
|
-
}
|
|
295
|
-
});
|
|
296
|
-
var WHERE_ARGS = {
|
|
297
|
-
where: {
|
|
298
|
-
type: "string",
|
|
299
|
-
description: "Select staged ops instead of naming refs: comma-separated key=value \u2014 kind (op kind), under (a campaign/ad group ref or resource name the op sits under), or any payload field (matchType, text, level, parent\u2026); `|` for alternatives",
|
|
300
|
-
required: false
|
|
301
|
-
},
|
|
302
|
-
"dry-run": { type: "boolean", description: "Print the refs that would change, and change nothing", required: false }
|
|
303
|
-
};
|
|
304
|
-
var REMOVE_DESCRIPTION = `Remove staged ops \u2014 one, many, or every op a selector matches, in one call. Each removal cascades to the ops that depend on it.
|
|
305
|
-
|
|
306
|
-
baker ads google draft remove g_temp_a
|
|
307
|
-
baker ads google draft remove g_temp_a g_temp_b g_temp_c # or g_temp_a,g_temp_b,g_temp_c
|
|
308
|
-
baker ads google draft remove --where 'kind=google.negativeKeyword.add,text=twilio|baileys'
|
|
309
|
-
baker ads google draft remove --where kind=google.keyword.add,under=g_temp_c1 --dry-run
|
|
310
|
-
|
|
311
|
-
Prints one summary: every op removed (cascades listed once), and any ref the draft did not hold.`;
|
|
312
|
-
var REMOVE_ARGS = {
|
|
313
|
-
ref: {
|
|
314
|
-
type: "positional",
|
|
315
|
-
description: "Staged op ref(s) (g_temp_* or target) \u2014 several, space- or comma-separated",
|
|
316
|
-
required: false
|
|
317
|
-
},
|
|
318
|
-
...WHERE_ARGS
|
|
319
|
-
};
|
|
320
|
-
registerSchema({ command: "ads.google.draft.remove", description: REMOVE_DESCRIPTION, args: REMOVE_ARGS });
|
|
321
|
-
var AMEND_DESCRIPTION = `Update staged ops in place \u2014 merges a JSON patch into each payload (RFC-7386: objects deep-merge, null deletes a key, arrays/scalars replace) and re-validates. Use this instead of remove + re-create.
|
|
322
|
-
|
|
323
|
-
baker ads google draft amend g_temp_a --patch '{"cpcBidMicros":1500000}'
|
|
324
|
-
baker ads google draft amend g_temp_a g_temp_b --patch '{"status":"ENABLED"}' # same patch, many refs
|
|
325
|
-
baker ads google draft amend --where kind=google.keyword.add,under=g_temp_c1,matchType=EXACT --patch '{"matchType":"BROAD"}'
|
|
326
|
-
baker ads google draft amend --file amends.json # [{"ref":"g_temp_\u2026","patch":{\u2026}}, \u2026] \u2014 a patch per ref
|
|
327
|
-
|
|
328
|
-
Many refs are amended in one call, all or none: one refused amend changes nothing.`;
|
|
329
|
-
var AMEND_ARGS = {
|
|
330
|
-
ref: {
|
|
331
|
-
type: "positional",
|
|
332
|
-
description: "Staged op ref(s) (g_temp_*) or target id/resource name \u2014 several, space- or comma-separated, take the same patch; leave out to amend many from --file",
|
|
333
|
-
required: false
|
|
334
|
-
},
|
|
335
|
-
file: {
|
|
336
|
-
type: "string",
|
|
337
|
-
description: 'JSON file with the patch object \u2014 or, with no ref, a JSON array of {"ref","patch"} amends',
|
|
338
|
-
required: false
|
|
339
|
-
},
|
|
340
|
-
patch: { type: "string", description: "Inline JSON patch object", required: false },
|
|
341
|
-
...WHERE_ARGS
|
|
342
|
-
};
|
|
343
|
-
registerSchema({ command: "ads.google.draft.amend", description: AMEND_DESCRIPTION, args: AMEND_ARGS });
|
|
344
|
-
async function refsWhere(args) {
|
|
345
|
-
if (typeof args.where !== "string") return void 0;
|
|
346
|
-
const where = parseDraftWhere(args.where);
|
|
347
|
-
if ("error" in where) failWriteValidation(where.error);
|
|
348
|
-
if (draftRefs(args._).length > 0) failWriteValidation("pass refs or --where, not both");
|
|
349
|
-
let ops = [];
|
|
350
|
-
try {
|
|
351
|
-
const response = await apiPost("/api/ads/google/draft", {
|
|
352
|
-
chatId: requireChatId(),
|
|
353
|
-
full: true
|
|
354
|
-
});
|
|
355
|
-
ops = response.data?.ops ?? [];
|
|
356
|
-
} catch (err) {
|
|
357
|
-
handleGoogleError(err);
|
|
358
|
-
}
|
|
359
|
-
const refs = selectDraftRefs(ops, where);
|
|
360
|
-
if (refs.length === 0) {
|
|
361
|
-
writeJsonEnvelope({
|
|
362
|
-
ok: false,
|
|
363
|
-
error: {
|
|
364
|
-
code: "NOT_FOUND",
|
|
365
|
-
message: `--where ${args.where} matches no staged op`,
|
|
366
|
-
fix: "Read the staged ops' kinds and payload fields with `baker ads google draft list --full`, then adjust the selector."
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
process.exit(1);
|
|
370
|
-
}
|
|
371
|
-
return refs;
|
|
372
|
-
}
|
|
373
|
-
function printDryRun(refs) {
|
|
374
|
-
writeJsonEnvelope({
|
|
375
|
-
ok: true,
|
|
376
|
-
data: { matched: refs.length, refs },
|
|
377
|
-
hints: ["Nothing changed. Run it again without --dry-run to apply it."]
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
function refList(value) {
|
|
381
|
-
if (typeof value !== "string") return void 0;
|
|
382
|
-
const refs = value.split(",").map((ref) => ref.trim()).filter((ref) => ref.length > 0);
|
|
383
|
-
return refs.length > 0 ? refs : null;
|
|
384
|
-
}
|
|
385
|
-
function importHints(fromChatId, data) {
|
|
386
|
-
const source = data.sourceRemaining > 0 ? `Chat ${fromChatId} still has ${data.sourceRemaining} Google Ads change(s) staged, which publish with that chat.` : `Chat ${fromChatId} has no Google Ads changes staged any more, so publishing it cannot apply these twice. Its other work stays there \u2014 never tell the user to discard it for this.`;
|
|
387
|
-
return [source, "Run `baker ads google draft validate` next."];
|
|
388
|
-
}
|
|
389
|
-
var BULK_STAGE_HINTS = [
|
|
390
|
-
"Run `baker ads google draft validate` next: it asks Google about every staged op at once and lists only the ones it would refuse.",
|
|
391
|
-
'To fix several staged ops, amend them together: `baker ads google draft amend --file amends.json` with [{"ref":"\u2026","patch":{\u2026}}, \u2026].'
|
|
392
|
-
];
|
|
393
|
-
var draftCommand = defineCommand({
|
|
394
|
-
meta: {
|
|
395
|
-
name: "draft",
|
|
396
|
-
description: "Stage many ops from one file, or list, validate, remove, clear, amend, or show staged Google Ads write ops for this chat. `list` and `show` take --chat <id> to read an earlier chat's changes instead; `import --from-chat <id>` moves another open chat's staged changes here."
|
|
397
|
-
},
|
|
398
|
-
subCommands: {
|
|
399
|
-
stage: defineCommand({
|
|
400
|
-
meta: { name: "stage", description: STAGE_DESCRIPTION },
|
|
401
|
-
args: {
|
|
402
|
-
file: {
|
|
403
|
-
type: "string",
|
|
404
|
-
description: "JSON array or JSON Lines of ops ({kind, customerId?, target?, payload?}), path or inline"
|
|
405
|
-
},
|
|
406
|
-
"customer-id": { type: "string", description: "10-digit customer id for every op that does not name its own" }
|
|
407
|
-
},
|
|
408
|
-
run: async ({ args }) => {
|
|
409
|
-
const customerId = typeof args["customer-id"] === "string" ? args["customer-id"] : void 0;
|
|
410
|
-
await stageGoogleOps(stageFileOps(loadJsonPayloads(args.file), customerId), BULK_STAGE_HINTS);
|
|
411
|
-
}
|
|
412
|
-
}),
|
|
413
|
-
import: defineCommand({
|
|
414
|
-
meta: { name: "import", description: IMPORT_DESCRIPTION },
|
|
415
|
-
args: {
|
|
416
|
-
"from-chat": { type: "string", description: "The other open chat whose staged changes move here" },
|
|
417
|
-
refs: { type: "string", description: "Comma-separated refs to move (default: all)" },
|
|
418
|
-
exclude: { type: "string", description: "Comma-separated refs to leave in the other chat" }
|
|
419
|
-
},
|
|
420
|
-
run: async ({ args }) => {
|
|
421
|
-
const fromChatId = typeof args["from-chat"] === "string" ? args["from-chat"].trim() : "";
|
|
422
|
-
if (!fromChatId) {
|
|
423
|
-
writeJsonEnvelope({
|
|
424
|
-
ok: false,
|
|
425
|
-
error: {
|
|
426
|
-
code: "VALIDATION_ERROR",
|
|
427
|
-
message: "--from-chat is required",
|
|
428
|
-
fix: "Name the other chat: baker ads google draft import --from-chat <chat-id> (ids from `baker chats list`)."
|
|
429
|
-
}
|
|
430
|
-
});
|
|
431
|
-
process.exit(1);
|
|
432
|
-
}
|
|
433
|
-
const refs = refList(args.refs);
|
|
434
|
-
const exclude = refList(args.exclude);
|
|
435
|
-
const empty = refs === null ? "--refs" : exclude === null ? "--exclude" : void 0;
|
|
436
|
-
if (empty) {
|
|
437
|
-
writeJsonEnvelope({
|
|
438
|
-
ok: false,
|
|
439
|
-
error: {
|
|
440
|
-
code: "VALIDATION_ERROR",
|
|
441
|
-
message: `${empty} names no change`,
|
|
442
|
-
fix: `Pass the refs, comma-separated (from \`baker ads google draft list --chat ${fromChatId} --json\`), or leave ${empty} off to move every change.`
|
|
443
|
-
}
|
|
444
|
-
});
|
|
445
|
-
process.exit(1);
|
|
446
|
-
}
|
|
447
|
-
try {
|
|
448
|
-
const response = await apiPost(
|
|
449
|
-
"/api/ads/google/draft/import",
|
|
450
|
-
{ chatId: requireChatId(), fromChatId, refs: refs ?? void 0, exclude: exclude ?? void 0 }
|
|
451
|
-
);
|
|
452
|
-
writeJsonEnvelope(
|
|
453
|
-
response.ok && response.data ? { ...response, hints: importHints(fromChatId, response.data) } : response
|
|
454
|
-
);
|
|
455
|
-
} catch (err) {
|
|
456
|
-
handleGoogleError(err);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
}),
|
|
460
|
-
list: defineCommand({
|
|
461
|
-
meta: {
|
|
462
|
-
name: "list",
|
|
463
|
-
description: LIST_DESCRIPTION
|
|
464
|
-
},
|
|
465
|
-
args: {
|
|
466
|
-
json: { type: "boolean", description: "Print the raw JSON envelope instead of the readable tree" },
|
|
467
|
-
full: DRAFT_FULL_ARG,
|
|
468
|
-
chat: CHAT_READ_ARG
|
|
469
|
-
},
|
|
470
|
-
run: async ({ args }) => {
|
|
471
|
-
await draftListAction(args.json === true, args.chat, args.full === true);
|
|
472
|
-
}
|
|
473
|
-
}),
|
|
474
|
-
remove: defineCommand({
|
|
475
|
-
meta: { name: "remove", description: REMOVE_DESCRIPTION },
|
|
476
|
-
args: REMOVE_ARGS,
|
|
477
|
-
run: async ({ args }) => {
|
|
478
|
-
const selected = await refsWhere(args);
|
|
479
|
-
const refs = selected ?? draftRefs(args._);
|
|
480
|
-
if (args["dry-run"] === true) {
|
|
481
|
-
printDryRun(refs);
|
|
482
|
-
return;
|
|
483
|
-
}
|
|
484
|
-
if (selected || refs.length > 1) {
|
|
485
|
-
await removeDraftRefs("/api/ads/google/draft/remove", refs);
|
|
486
|
-
return;
|
|
487
|
-
}
|
|
488
|
-
await draftAction("/api/ads/google/draft/remove", { ref: requireTarget(args, "op") });
|
|
489
|
-
}
|
|
490
|
-
}),
|
|
491
|
-
clear: defineCommand({
|
|
492
|
-
meta: { name: "clear", description: "Discard all staged ops on this chat" },
|
|
493
|
-
run: async () => {
|
|
494
|
-
await draftAction("/api/ads/google/draft/clear", {});
|
|
495
|
-
}
|
|
496
|
-
}),
|
|
497
|
-
amend: defineCommand({
|
|
498
|
-
meta: { name: "amend", description: AMEND_DESCRIPTION },
|
|
499
|
-
args: AMEND_ARGS,
|
|
500
|
-
run: async ({ args }) => {
|
|
501
|
-
const selected = await refsWhere(args);
|
|
502
|
-
const positional = Array.isArray(args._) ? args._[0] : void 0;
|
|
503
|
-
if (!selected && !(args.ref ?? positional) && typeof args.file === "string" && args.file.length > 0) {
|
|
504
|
-
const amends = amendBatchEntries(loadJsonPayloads(args.file));
|
|
505
|
-
if (args["dry-run"] === true) {
|
|
506
|
-
printDryRun(amends.map((amend) => amend.ref));
|
|
507
|
-
return;
|
|
508
|
-
}
|
|
509
|
-
await draftAction("/api/ads/google/draft/amend-batch", { amends });
|
|
510
|
-
return;
|
|
511
|
-
}
|
|
512
|
-
const refs = selected ?? draftRefs(args._);
|
|
513
|
-
if (args["dry-run"] === true) {
|
|
514
|
-
printDryRun(refs);
|
|
515
|
-
return;
|
|
516
|
-
}
|
|
517
|
-
if (selected || refs.length > 1) {
|
|
518
|
-
const patch2 = loadPatchArg(args);
|
|
519
|
-
await draftAction("/api/ads/google/draft/amend-batch", { amends: refs.map((ref2) => ({ ref: ref2, patch: patch2 })) });
|
|
520
|
-
return;
|
|
521
|
-
}
|
|
522
|
-
const ref = requireTarget(args, "op");
|
|
523
|
-
const patch = loadPatchArg(args);
|
|
524
|
-
await draftAction("/api/ads/google/draft/amend", { ref, patch });
|
|
525
|
-
}
|
|
526
|
-
}),
|
|
527
|
-
validate: defineCommand({
|
|
528
|
-
meta: { name: "validate", description: VALIDATE_DESCRIPTION },
|
|
529
|
-
args: {
|
|
530
|
-
full: { type: "boolean", description: "List every op with its built request and Google's raw answer" }
|
|
531
|
-
},
|
|
532
|
-
run: async ({ args }) => {
|
|
533
|
-
try {
|
|
534
|
-
const full = args.full === true;
|
|
535
|
-
const response = await apiPost(
|
|
536
|
-
"/api/ads/google/draft/validate",
|
|
537
|
-
{ chatId: requireChatId(), full }
|
|
538
|
-
);
|
|
539
|
-
writeJsonEnvelope(response.ok && response.data ? validationEnvelope(response.data, full) : response);
|
|
540
|
-
} catch (err) {
|
|
541
|
-
handleGoogleError(err);
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
}),
|
|
545
|
-
show: defineCommand({
|
|
546
|
-
meta: {
|
|
547
|
-
name: "show",
|
|
548
|
-
description: "Print the full staged payload for one op \u2014 the receipt to verify a change looks right before publish (never truncated)."
|
|
549
|
-
},
|
|
550
|
-
args: {
|
|
551
|
-
ref: {
|
|
552
|
-
type: "positional",
|
|
553
|
-
description: "Staged op ref (g_temp_*) or target id/resource name",
|
|
554
|
-
required: false
|
|
555
|
-
},
|
|
556
|
-
chat: CHAT_READ_ARG
|
|
557
|
-
},
|
|
558
|
-
run: async ({ args }) => {
|
|
559
|
-
await draftAction("/api/ads/google/draft/show", { ref: requireTarget(args, "op") }, args.chat);
|
|
560
|
-
}
|
|
561
|
-
})
|
|
562
|
-
}
|
|
563
|
-
});
|
|
564
|
-
export {
|
|
565
|
-
BULK_STAGE_HINTS,
|
|
566
|
-
draftCommand,
|
|
567
|
-
importHints
|
|
568
|
-
};
|
|
569
|
-
//# sourceMappingURL=draft-XOPS4EZW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/ads/google/draft.ts","../src/commands/ads/google/draft-batch.ts","../src/commands/ads/google/draft-validate.ts","../src/commands/ads/google/draft-where.ts"],"sourcesContent":["import type { GoogleDraftListResponse, GoogleDraftValidateResponse } from \"@baker/api/ads-google\";\nimport type { GoogleDraftImportResponse } from \"@baker/api/ads-google/wire\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../../client.ts\";\nimport { requireChatId } from \"../../../env.ts\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { CHAT_READ_ARG, DRAFT_FULL_ARG } from \"../../chat-arg.ts\";\nimport { draftRefs, removeDraftRefs } from \"../../draft-refs.ts\";\nimport { writeJsonEnvelope } from \"../output.ts\";\nimport { amendBatchEntries, stageFileOps } from \"./draft-batch.ts\";\nimport { validationEnvelope } from \"./draft-validate.ts\";\nimport { parseDraftWhere, selectDraftRefs } from \"./draft-where.ts\";\nimport {\n draftAction,\n draftListAction,\n failWriteValidation,\n handleGoogleError,\n loadJsonPayloads,\n loadPatchArg,\n requireTarget,\n stageGoogleOps,\n} from \"./write-shared.ts\";\n\nconst VALIDATE_DESCRIPTION = `Ask Google whether the whole staged draft would publish — without applying anything.\n\nStart here, after the last staged change and before telling the user the draft is ready:\n baker ads google draft validate\n\nEvery staged op is built, batched and sent exactly as publish sends it, with Google's validateOnly\nflag, so each verdict is the answer publish would get: accepted | refused | blocked (a change it\ndepends on was refused) | unchecked (only publish can check it) | applied (an earlier publish did).\nCompact by default — counts, plus only the ops that need attention, each with Google's reason.\nFix refused ops with \\`draft amend <ref>\\` and validate again.\n\nIt also reads Baker's day of Google Ads changes, shared by every company. When the draft does\nnot all fit in what is left, the answer carries dailyLimit: operations, room and fitsAt (ISO, when\nall of it should have gone). Publish still works: Baker sends what Google Ads takes and the rest\nagain on its own. Never mention the limit, a quota or operation counts to the user, and never ask\nthem to cut down or split their work for it; say only that some changes go live over the next\nhours, and by when.\n\nExamples:\n baker ads google draft validate\n baker ads google draft validate --full # every op, with its built request and Google's raw answer`;\n\nregisterSchema({\n command: \"ads.google.draft.validate\",\n description: VALIDATE_DESCRIPTION,\n args: {\n full: {\n type: \"boolean\",\n description: \"List every op with its built request and Google's raw answer\",\n required: false,\n },\n },\n});\n\nconst STAGE_DESCRIPTION = `Stage many Google Ads changes from ONE file, in one call — any mix of kinds, up to 500 ops.\n\nStart here whenever a change touches more than a few rows (a keyword cleanup, bid changes, pausing\nads, a list of negatives): write the ops to a file and stage them together instead of running one\ncommand per row.\n baker ads google draft stage --file changes.json --customer-id 1234567890\n\nThe file is a JSON array (or JSON Lines, one op per line). Each op is what the single commands\nbuild — kind, customerId (or --customer-id for all), target for a change to something that exists,\npayload. Read the shape for a kind with \\`baker capabilities google-ads\\`.\n [\n {\"kind\":\"google.keyword.add\",\"payload\":{\"adGroup\":\"customers/1234567890/adGroups/111\",\"text\":\"solar panels\",\"matchType\":\"PHRASE\"}},\n {\"kind\":\"google.keyword.update\",\"target\":\"customers/1234567890/adGroupCriteria/111~222\",\"payload\":{\"status\":\"PAUSED\"}},\n {\"kind\":\"google.negativeKeyword.add\",\"payload\":{\"level\":\"campaign\",\"parent\":\"222333\",\"text\":\"free\",\"matchType\":\"BROAD\"}}\n ]\nAn op may name a g_temp_* ref an EARLIER call returned (a campaign or ad group staged before), but\nnot another op in the same file — a ref exists only once its op is staged, so stage new parents first.\nAll-or-nothing: one invalid op stages nothing. Ops already in effect come back as skipped.\nThen: baker ads google draft validate`;\n\nregisterSchema({\n command: \"ads.google.draft.stage\",\n description: STAGE_DESCRIPTION,\n args: {\n file: {\n type: \"string\",\n description: \"JSON array or JSON Lines of ops ({kind, customerId?, target?, payload?}), path or inline\",\n required: true,\n },\n \"customer-id\": {\n type: \"string\",\n description: \"10-digit customer id for every op that does not name its own\",\n required: false,\n },\n },\n});\n\nconst IMPORT_DESCRIPTION = `Move another open chat's staged Google Ads changes into this chat, in one call — and out of that chat, so the two can never publish the same change twice.\n\nStart here when the user wants another chat's changes brought into this one (\"bring over\", \"merge\",\n\"include what the other chat prepared\", \"all of them except …\"):\n baker ads google draft import --from-chat <chat-id>\n baker ads google draft import --from-chat <chat-id> --exclude g_temp_a,customers/123/adGroupAds/4~5\n baker ads google draft import --from-chat <chat-id> --refs g_temp_b\n\nEvery op moves exactly as it was staged — same ref, same payload, nothing retyped — so never copy\nanother chat's changes with \\`draft show --chat\\` and re-stage them. An op moves with the creates it\ndepends on and the ops that depend on it (an asset and the link that attaches it go together).\nThe other chat must still be open; its other work (Knowledge, Tasks) stays where it is. Find chat ids\nwith \\`baker chats list\\`, and refs with \\`baker ads google draft list --chat <chat-id> --json\\`.\nThen: baker ads google draft validate`;\n\nregisterSchema({\n command: \"ads.google.draft.import\",\n description: IMPORT_DESCRIPTION,\n args: {\n \"from-chat\": { type: \"string\", description: \"The other open chat whose staged changes move here\", required: true },\n refs: {\n type: \"string\",\n description: \"Comma-separated refs to move (default: all); what they depend on comes too\",\n required: false,\n },\n exclude: {\n type: \"string\",\n description: \"Comma-separated refs to leave in the other chat, with the ops that depend on them\",\n required: false,\n },\n },\n});\n\nconst LIST_DESCRIPTION =\n \"Review everything staged as a campaign ▸ ad group ▸ ad tree (--json for the raw envelope, --full for every op's payload too)\";\n\nregisterSchema({\n command: \"ads.google.draft.list\",\n description: LIST_DESCRIPTION,\n args: {\n json: { type: \"boolean\", description: \"Print the raw JSON envelope instead of the readable tree\", required: false },\n full: { type: \"boolean\", description: DRAFT_FULL_ARG.description, required: false },\n chat: { type: \"string\", description: CHAT_READ_ARG.description, required: false },\n },\n});\n\nconst WHERE_ARGS = {\n where: {\n type: \"string\",\n description:\n \"Select staged ops instead of naming refs: comma-separated key=value — kind (op kind), under (a campaign/ad group ref or resource name the op sits under), or any payload field (matchType, text, level, parent…); `|` for alternatives\",\n required: false,\n },\n \"dry-run\": { type: \"boolean\", description: \"Print the refs that would change, and change nothing\", required: false },\n} as const;\n\nconst REMOVE_DESCRIPTION = `Remove staged ops — one, many, or every op a selector matches, in one call. Each removal cascades to the ops that depend on it.\n\n baker ads google draft remove g_temp_a\n baker ads google draft remove g_temp_a g_temp_b g_temp_c # or g_temp_a,g_temp_b,g_temp_c\n baker ads google draft remove --where 'kind=google.negativeKeyword.add,text=twilio|baileys'\n baker ads google draft remove --where kind=google.keyword.add,under=g_temp_c1 --dry-run\n\nPrints one summary: every op removed (cascades listed once), and any ref the draft did not hold.`;\n\nconst REMOVE_ARGS = {\n ref: {\n type: \"positional\",\n description: \"Staged op ref(s) (g_temp_* or target) — several, space- or comma-separated\",\n required: false,\n },\n ...WHERE_ARGS,\n} as const;\n\nregisterSchema({ command: \"ads.google.draft.remove\", description: REMOVE_DESCRIPTION, args: REMOVE_ARGS });\n\nconst AMEND_DESCRIPTION = `Update staged ops in place — merges a JSON patch into each payload (RFC-7386: objects deep-merge, null deletes a key, arrays/scalars replace) and re-validates. Use this instead of remove + re-create.\n\n baker ads google draft amend g_temp_a --patch '{\"cpcBidMicros\":1500000}'\n baker ads google draft amend g_temp_a g_temp_b --patch '{\"status\":\"ENABLED\"}' # same patch, many refs\n baker ads google draft amend --where kind=google.keyword.add,under=g_temp_c1,matchType=EXACT --patch '{\"matchType\":\"BROAD\"}'\n baker ads google draft amend --file amends.json # [{\"ref\":\"g_temp_…\",\"patch\":{…}}, …] — a patch per ref\n\nMany refs are amended in one call, all or none: one refused amend changes nothing.`;\n\nconst AMEND_ARGS = {\n ref: {\n type: \"positional\",\n description:\n \"Staged op ref(s) (g_temp_*) or target id/resource name — several, space- or comma-separated, take the same patch; leave out to amend many from --file\",\n required: false,\n },\n file: {\n type: \"string\",\n description: 'JSON file with the patch object — or, with no ref, a JSON array of {\"ref\",\"patch\"} amends',\n required: false,\n },\n patch: { type: \"string\", description: \"Inline JSON patch object\", required: false },\n ...WHERE_ARGS,\n} as const;\n\nregisterSchema({ command: \"ads.google.draft.amend\", description: AMEND_DESCRIPTION, args: AMEND_ARGS });\n\n/**\n * The refs `--where` selects from the staged draft, or undefined without it. Exits with the reason\n * when it cannot select: a malformed selector, refs passed too, or nothing staged that matches.\n */\nasync function refsWhere(args: Record<string, unknown>): Promise<string[] | undefined> {\n if (typeof args.where !== \"string\") return undefined;\n const where = parseDraftWhere(args.where);\n if (\"error\" in where) failWriteValidation(where.error);\n if (draftRefs(args._).length > 0) failWriteValidation(\"pass refs or --where, not both\");\n let ops: GoogleDraftListResponse[\"ops\"] = [];\n try {\n const response = await apiPost<{ ok: boolean; data?: GoogleDraftListResponse }>(\"/api/ads/google/draft\", {\n chatId: requireChatId(),\n full: true,\n });\n ops = response.data?.ops ?? [];\n } catch (err) {\n handleGoogleError(err);\n }\n const refs = selectDraftRefs(ops, where);\n if (refs.length === 0) {\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"NOT_FOUND\",\n message: `--where ${args.where} matches no staged op`,\n fix: \"Read the staged ops' kinds and payload fields with `baker ads google draft list --full`, then adjust the selector.\",\n },\n });\n process.exit(1);\n }\n return refs;\n}\n\n/** `--dry-run`: the refs the command would change, printed instead of changing them. */\nfunction printDryRun(refs: string[]): void {\n writeJsonEnvelope({\n ok: true,\n data: { matched: refs.length, refs },\n hints: [\"Nothing changed. Run it again without --dry-run to apply it.\"],\n });\n}\n\n/** The refs a comma-separated flag names: undefined when the flag is absent, null when it names none. */\nfunction refList(value: unknown): string[] | undefined | null {\n if (typeof value !== \"string\") return undefined;\n const refs = value\n .split(\",\")\n .map((ref) => ref.trim())\n .filter((ref) => ref.length > 0);\n return refs.length > 0 ? refs : null;\n}\n\n/** What the agent needs after a move: the next step, and what the other chat now holds. */\nexport function importHints(fromChatId: string, data: GoogleDraftImportResponse): string[] {\n const source =\n data.sourceRemaining > 0\n ? `Chat ${fromChatId} still has ${data.sourceRemaining} Google Ads change(s) staged, which publish with that chat.`\n : `Chat ${fromChatId} has no Google Ads changes staged any more, so publishing it cannot apply these twice. Its other work stays there — never tell the user to discard it for this.`;\n return [source, \"Run `baker ads google draft validate` next.\"];\n}\n\n/** After a bulk stage: what to do next, and the reminder that the file — not a loop — is the tool. */\nexport const BULK_STAGE_HINTS = [\n \"Run `baker ads google draft validate` next: it asks Google about every staged op at once and lists only the ones it would refuse.\",\n 'To fix several staged ops, amend them together: `baker ads google draft amend --file amends.json` with [{\"ref\":\"…\",\"patch\":{…}}, …].',\n];\n\n/** Review and undo staged Google Ads ops on this chat's draft; `list`/`show` can also read another chat's. */\nexport const draftCommand = defineCommand({\n meta: {\n name: \"draft\",\n description:\n \"Stage many ops from one file, or list, validate, remove, clear, amend, or show staged Google Ads write ops for this chat. `list` and `show` take --chat <id> to read an earlier chat's changes instead; `import --from-chat <id>` moves another open chat's staged changes here.\",\n },\n subCommands: {\n stage: defineCommand({\n meta: { name: \"stage\", description: STAGE_DESCRIPTION },\n args: {\n file: {\n type: \"string\",\n description: \"JSON array or JSON Lines of ops ({kind, customerId?, target?, payload?}), path or inline\",\n },\n \"customer-id\": { type: \"string\", description: \"10-digit customer id for every op that does not name its own\" },\n },\n run: async ({ args }) => {\n const customerId = typeof args[\"customer-id\"] === \"string\" ? args[\"customer-id\"] : undefined;\n await stageGoogleOps(stageFileOps(loadJsonPayloads(args.file), customerId), BULK_STAGE_HINTS);\n },\n }),\n import: defineCommand({\n meta: { name: \"import\", description: IMPORT_DESCRIPTION },\n args: {\n \"from-chat\": { type: \"string\", description: \"The other open chat whose staged changes move here\" },\n refs: { type: \"string\", description: \"Comma-separated refs to move (default: all)\" },\n exclude: { type: \"string\", description: \"Comma-separated refs to leave in the other chat\" },\n },\n run: async ({ args }) => {\n const fromChatId = typeof args[\"from-chat\"] === \"string\" ? args[\"from-chat\"].trim() : \"\";\n if (!fromChatId) {\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: \"--from-chat is required\",\n fix: \"Name the other chat: baker ads google draft import --from-chat <chat-id> (ids from `baker chats list`).\",\n },\n });\n process.exit(1);\n }\n const refs = refList(args.refs);\n const exclude = refList(args.exclude);\n const empty = refs === null ? \"--refs\" : exclude === null ? \"--exclude\" : undefined;\n if (empty) {\n // An empty selection must never widen to \"every change\": the move takes them out of the other chat.\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `${empty} names no change`,\n fix: `Pass the refs, comma-separated (from \\`baker ads google draft list --chat ${fromChatId} --json\\`), or leave ${empty} off to move every change.`,\n },\n });\n process.exit(1);\n }\n try {\n const response = await apiPost<{ ok: boolean; data?: GoogleDraftImportResponse }>(\n \"/api/ads/google/draft/import\",\n { chatId: requireChatId(), fromChatId, refs: refs ?? undefined, exclude: exclude ?? undefined },\n );\n writeJsonEnvelope(\n response.ok && response.data ? { ...response, hints: importHints(fromChatId, response.data) } : response,\n );\n } catch (err) {\n handleGoogleError(err);\n }\n },\n }),\n list: defineCommand({\n meta: {\n name: \"list\",\n description: LIST_DESCRIPTION,\n },\n args: {\n json: { type: \"boolean\", description: \"Print the raw JSON envelope instead of the readable tree\" },\n full: DRAFT_FULL_ARG,\n chat: CHAT_READ_ARG,\n },\n run: async ({ args }) => {\n await draftListAction(args.json === true, args.chat, args.full === true);\n },\n }),\n remove: defineCommand({\n meta: { name: \"remove\", description: REMOVE_DESCRIPTION },\n args: REMOVE_ARGS,\n run: async ({ args }) => {\n const selected = await refsWhere(args);\n const refs = selected ?? draftRefs(args._);\n if (args[\"dry-run\"] === true) {\n printDryRun(refs);\n return;\n }\n if (selected || refs.length > 1) {\n await removeDraftRefs(\"/api/ads/google/draft/remove\", refs);\n return;\n }\n await draftAction(\"/api/ads/google/draft/remove\", { ref: requireTarget(args, \"op\") });\n },\n }),\n clear: defineCommand({\n meta: { name: \"clear\", description: \"Discard all staged ops on this chat\" },\n run: async () => {\n await draftAction(\"/api/ads/google/draft/clear\", {});\n },\n }),\n amend: defineCommand({\n meta: { name: \"amend\", description: AMEND_DESCRIPTION },\n args: AMEND_ARGS,\n run: async ({ args }) => {\n const selected = await refsWhere(args);\n const positional = Array.isArray(args._) ? args._[0] : undefined;\n if (!selected && !(args.ref ?? positional) && typeof args.file === \"string\" && args.file.length > 0) {\n const amends = amendBatchEntries(loadJsonPayloads(args.file));\n if (args[\"dry-run\"] === true) {\n printDryRun(amends.map((amend) => amend.ref));\n return;\n }\n await draftAction(\"/api/ads/google/draft/amend-batch\", { amends });\n return;\n }\n const refs = selected ?? draftRefs(args._);\n if (args[\"dry-run\"] === true) {\n printDryRun(refs);\n return;\n }\n if (selected || refs.length > 1) {\n const patch = loadPatchArg(args);\n await draftAction(\"/api/ads/google/draft/amend-batch\", { amends: refs.map((ref) => ({ ref, patch })) });\n return;\n }\n const ref = requireTarget(args, \"op\");\n const patch = loadPatchArg(args);\n await draftAction(\"/api/ads/google/draft/amend\", { ref, patch });\n },\n }),\n validate: defineCommand({\n meta: { name: \"validate\", description: VALIDATE_DESCRIPTION },\n args: {\n full: { type: \"boolean\", description: \"List every op with its built request and Google's raw answer\" },\n },\n run: async ({ args }) => {\n try {\n const full = args.full === true;\n const response = await apiPost<{ ok: boolean; data?: GoogleDraftValidateResponse }>(\n \"/api/ads/google/draft/validate\",\n { chatId: requireChatId(), full },\n );\n writeJsonEnvelope(response.ok && response.data ? validationEnvelope(response.data, full) : response);\n } catch (err) {\n handleGoogleError(err);\n }\n },\n }),\n show: defineCommand({\n meta: {\n name: \"show\",\n description:\n \"Print the full staged payload for one op — the receipt to verify a change looks right before publish (never truncated).\",\n },\n args: {\n ref: {\n type: \"positional\",\n description: \"Staged op ref (g_temp_*) or target id/resource name\",\n required: false,\n },\n chat: CHAT_READ_ARG,\n },\n run: async ({ args }) => {\n await draftAction(\"/api/ads/google/draft/show\", { ref: requireTarget(args, \"op\") }, args.chat);\n },\n }),\n },\n});\n","import { GOOGLE_DRAFT_BATCH_MAX } from \"@baker/api/ads-google\";\nimport { failWriteValidation } from \"./write-shared.ts\";\n\n/**\n * The bulk halves of `draft`: one file of many changes, staged or amended in ONE request. A bulk\n * change done as a loop of single commands is one request, one rate-limit hit and one tool call per\n * row — production saw 1,284 such calls — while a file is one of each for up to 500 rows.\n */\n\nfunction refuseOversized(count: number, what: string): void {\n if (count > GOOGLE_DRAFT_BATCH_MAX) {\n failWriteValidation(\n `${count} ${what} exceeds the batch limit of ${GOOGLE_DRAFT_BATCH_MAX} — split the file and run the command once per part`,\n );\n }\n}\n\n/**\n * `draft stage --file` items → ops: each item is a whole op (`kind`, `customerId`, `target` for a\n * change to something that exists, `payload`); `--customer-id` fills the account on items that leave\n * it out, so a one-account file need not repeat it. The ops are preflighted by `stageGoogleOps`.\n */\nexport function stageFileOps(\n items: ReadonlyArray<Record<string, unknown>>,\n customerId: string | undefined,\n): Array<Record<string, unknown>> {\n if (items.length === 0) {\n failWriteValidation(\n 'pass --file with the ops to stage: a JSON array (or JSON Lines) of {\"kind\",\"customerId\",\"target\"?,\"payload\"?}',\n );\n }\n refuseOversized(items.length, \"ops\");\n return items.map((item, index) => {\n if (typeof item.kind !== \"string\") {\n failWriteValidation(\n `item ${index} has no \"kind\" — every item is a whole op, e.g. {\"kind\":\"google.keyword.add\",…}`,\n );\n }\n return item.customerId === undefined && customerId ? { ...item, customerId } : item;\n });\n}\n\n/** `draft amend --file` items → the amend batch: each `{ ref, patch }` exactly as `draft amend <ref>` takes it. */\nexport function amendBatchEntries(\n items: ReadonlyArray<Record<string, unknown>>,\n): Array<{ ref: string; patch: Record<string, unknown> }> {\n refuseOversized(items.length, \"amends\");\n return items.map((item, index) => {\n const { ref, patch } = item;\n if (typeof ref !== \"string\" || ref.length === 0) {\n failWriteValidation(`item ${index} has no \"ref\" — name the staged op (g_temp_* or its target) to amend`);\n }\n if (patch === null || typeof patch !== \"object\" || Array.isArray(patch)) {\n failWriteValidation(`item ${index} has no \"patch\" object — {\"ref\":\"…\",\"patch\":{…fields to change…}}`);\n }\n return { ref, patch: patch as Record<string, unknown> };\n });\n}\n","import type { GoogleDraftOpVerdict, GoogleDraftValidateResponse } from \"@baker/api/ads-google\";\n\n/** Verdicts that need nothing from the agent — counted, never listed in the compact view. */\nconst QUIET: ReadonlySet<GoogleDraftOpVerdict[\"verdict\"]> = new Set([\"accepted\", \"applied\"]);\n\nfunction changes(n: number): string {\n return n === 1 ? \"1 change\" : `${n} changes`;\n}\n\n/** What to do next, read off the counts — the agent decides from these without re-reading every op. */\nfunction validationHints(data: GoogleDraftValidateResponse): string[] {\n const { refused, blocked, unchecked } = data.counts;\n const hints: string[] = [];\n if (refused > 0) {\n hints.push(\n `${changes(refused)} would fail at publish. Fix each refused op in place with \\`draft amend <ref>\\` (or \\`draft remove <ref>\\` if it should not exist), then run \\`draft validate\\` again before asking the user to publish. Never tell the user a refused change will go live.`,\n );\n }\n if (blocked > 0) {\n hints.push(\n `${changes(blocked)} would not apply only because a refused change they depend on fails — fixing the refused one clears them.`,\n );\n }\n if (data.publishHeld) {\n hints.push(\n \"Baker would hold this whole publish: a refused change stops a first publish from sending anything. Fix it first.\",\n );\n }\n if (unchecked > 0) {\n hints.push(\n `${changes(unchecked)} can only be checked by Google at publish (the reason is on each one). Nothing here says they will fail.`,\n );\n }\n if (refused + blocked === 0 && !data.publishHeld && data.ops.length > 0) {\n hints.push(\n \"Google accepted every change it was asked about. The draft is ready for the user to review and publish.\",\n );\n }\n if (data.dailyLimit) {\n hints.push(\n `Not every change may go live the moment the user publishes: Baker sends what Google Ads takes then and the rest again on its own, all by about ${data.dailyLimit.fitsAt}, with nothing for the user to do. If you tell the user anything, say only that some changes will go live over the next hours and by when, in their time zone. Never mention a daily limit, quota, allowance or number of operations, and never ask them to cut down or split their work for it.`,\n );\n }\n return hints;\n}\n\n/**\n * The `draft validate` envelope. Compact by default: counts for everything, and only the ops that\n * need attention listed — a 300-keyword draft that Google accepts reads as one line, not 300.\n * `full` keeps every op with its built request and Google's raw answer.\n */\nexport function validationEnvelope(\n data: GoogleDraftValidateResponse,\n full = false,\n): { ok: true; data: GoogleDraftValidateResponse; hints: string[] } {\n const ops = full ? data.ops : data.ops.filter((op) => !QUIET.has(op.verdict));\n return { ok: true, data: { ...data, ops }, hints: validationHints(data) };\n}\n","import type { GoogleDraftListResponse } from \"@baker/api/ads-google\";\n\n/**\n * `draft remove|amend --where kind=…,under=…,<payload field>=…` — pick staged ops by what they are\n * instead of by ref, so a cleanup over a whole campaign (\"every EXACT keyword under it → BROAD\") is\n * one command, not a draft dump, a script and a call per op.\n */\n\ntype DraftOp = GoogleDraftListResponse[\"ops\"][number];\n\nexport interface DraftWhere {\n /** Op kinds, `google.` prefix optional. */\n kinds: string[];\n /** Refs or resource names the op sits under: through its staged parents, or named in its payload. */\n under: string[];\n /** Top-level payload fields and the values (any of, case-insensitive) they must hold. */\n fields: Record<string, string[]>;\n}\n\n/** Parse the selector, or say what is wrong with it. `|` separates alternatives: `matchType=EXACT|PHRASE`. */\nexport function parseDraftWhere(value: string): DraftWhere | { error: string } {\n const where: DraftWhere = { kinds: [], under: [], fields: {} };\n const pairs = value\n .split(\",\")\n .map((pair) => pair.trim())\n .filter(Boolean);\n if (pairs.length === 0) return { error: \"--where names no condition\" };\n for (const pair of pairs) {\n const eq = pair.indexOf(\"=\");\n const key = pair.slice(0, eq).trim();\n const values = pair\n .slice(eq + 1)\n .split(\"|\")\n .map((v) => v.trim())\n .filter(Boolean);\n if (eq <= 0 || values.length === 0) return { error: `--where condition \"${pair}\" is not key=value` };\n if (key === \"kind\") where.kinds.push(...values.map((k) => (k.startsWith(\"google.\") ? k : `google.${k}`)));\n else if (key === \"under\") where.under.push(...values);\n else where.fields[key] = [...(where.fields[key] ?? []), ...values];\n }\n return where;\n}\n\nfunction payloadOf(op: DraftOp): Record<string, unknown> {\n return typeof op.payload === \"object\" && op.payload !== null ? (op.payload as Record<string, unknown>) : {};\n}\n\n/** Everything an op sits under: its staged parents up the chain, and the ids its payload names. */\nfunction parentsOf(op: DraftOp, byRef: Map<string, DraftOp>): Set<string> {\n const seen = new Set<string>();\n const queue = [op];\n for (let current = queue.shift(); current; current = queue.shift()) {\n const named = Object.values(payloadOf(current)).filter((v): v is string => typeof v === \"string\");\n for (const parent of [...current.dependsOn, ...named]) {\n if (seen.has(parent)) continue;\n seen.add(parent);\n const staged = byRef.get(parent);\n if (staged) queue.push(staged);\n }\n }\n return seen;\n}\n\n/** The refs of the staged ops the selector matches, in staging order. */\nexport function selectDraftRefs(ops: readonly DraftOp[], where: DraftWhere): string[] {\n const byRef = new Map(ops.map((op) => [op.ref, op]));\n return ops\n .filter((op) => {\n if (where.kinds.length > 0 && !where.kinds.includes(op.kind)) return false;\n if (where.under.length > 0) {\n const parents = parentsOf(op, byRef);\n if (!where.under.some((ref) => parents.has(ref))) return false;\n }\n const payload = payloadOf(op);\n return Object.entries(where.fields).every(([key, values]) => {\n const actual = payload[key];\n if (typeof actual !== \"string\" && typeof actual !== \"number\" && typeof actual !== \"boolean\") return false;\n return values.some((v) => v.toLowerCase() === String(actual).toLowerCase());\n });\n })\n .map((op) => op.ref);\n}\n"],"mappings":"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","names":["patch","ref"]}
|