@koda-sl/baker-cli 0.568.0 → 0.569.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/{account-D2AGXMM3.js → account-MYM2QNFO.js} +4 -4
- package/dist/{account-OCFXNHG7.js → account-OUKPRB7C.js} +3 -3
- package/dist/{account-U6DFMD2V.js → account-YJ2NNQYP.js} +4 -4
- package/dist/{account-assets-W7K2PUYB.js → account-assets-HOOPV5KR.js} +8 -8
- package/dist/{account-level-Z2JEIJ3X.js → account-level-3QWMJTZQ.js} +5 -5
- package/dist/{account-reads-WPKD2LPB.js → account-reads-RKK5BA6L.js} +4 -4
- package/dist/{account-users-BK45DBUH.js → account-users-GHMPDZUM.js} +4 -4
- package/dist/{account-writes-QSJ74QFR.js → account-writes-HEXKGWXC.js} +4 -4
- package/dist/{accounts-VSJVFIPH.js → accounts-DDNEHXXT.js} +2 -2
- package/dist/{accounts-3DS67RX7.js → accounts-K7VD47FG.js} +4 -4
- package/dist/{accounts-55PDBEDN.js → accounts-OSVXKNSI.js} +4 -4
- package/dist/{accounts-FALANOYX.js → accounts-S7CEGWJL.js} +4 -4
- package/dist/{accounts-AK4QIG24.js → accounts-SJOO4MQX.js} +4 -4
- package/dist/{active-entities-HR7NJJLU.js → active-entities-4KQQSMRZ.js} +3 -3
- package/dist/{activities-DEWHKBID.js → activities-FRA33VZZ.js} +4 -4
- package/dist/{ad-group-writes-QBHOPTT5.js → ad-group-writes-O2OP4NJ6.js} +4 -4
- package/dist/{ad-groups-JZDUFT6J.js → ad-groups-AMMMWHHX.js} +8 -8
- package/dist/{ad-writes-QYJO4IB3.js → ad-writes-IWLRLR2E.js} +4 -4
- package/dist/{ads-JYSYXF3U.js → ads-7TQKAH4B.js} +7 -7
- package/dist/{ads-UMSWEI5X.js → ads-KLSFKXUE.js} +9 -9
- package/dist/{ads-QKVNPHBH.js → ads-L6SMNOUM.js} +13 -13
- package/dist/{adsets-FEVYHKAQ.js → adsets-R75LSEV5.js} +12 -12
- package/dist/{analytics-7QSUKFXF.js → analytics-ITBXTEIC.js} +10 -10
- package/dist/{analytics-DR4DPUP4.js → analytics-WXLRAXXN.js} +3 -3
- package/dist/{asset-writes-7RFZZYU7.js → asset-writes-DECROLE3.js} +5 -5
- package/dist/{audience-size-6CZ2AZCK.js → audience-size-23UFSW6H.js} +3 -3
- package/dist/{audience-writes-RUGU6KEC.js → audience-writes-VSC2BY4Y.js} +4 -4
- package/dist/{audiences-RSAUXKHR.js → audiences-76S4WY7Q.js} +4 -4
- package/dist/{audiences-7OS2ZJYO.js → audiences-RN745R53.js} +3 -3
- package/dist/{audiences-6GVUZUCN.js → audiences-V773XHP2.js} +9 -9
- package/dist/{audit-4L7IKIRY.js → audit-BIHMDO5K.js} +3 -3
- package/dist/{audit-Q66O3Z46.js → audit-OT42WBII.js} +3 -3
- package/dist/{bid-pricing-LUWEWGCJ.js → bid-pricing-UHU2HOAP.js} +3 -3
- package/dist/{businesses-42NZP6FP.js → businesses-HECSW3EL.js} +3 -3
- package/dist/{campaign-groups-SZSO5B6C.js → campaign-groups-TAVIZR4L.js} +9 -9
- package/dist/{campaign-writes-GKNH2EHV.js → campaign-writes-72OPCWMG.js} +4 -4
- package/dist/{campaign-writes-AN4IHY5G.js → campaign-writes-AQ5T5TII.js} +4 -4
- package/dist/{campaigns-RDHQNOTI.js → campaigns-3P2UZWPD.js} +8 -8
- package/dist/{campaigns-VLVV2PPO.js → campaigns-D2V423FD.js} +12 -12
- package/dist/{campaigns-7RV65SXR.js → campaigns-NW2H7SAR.js} +8 -8
- package/dist/{campaigns-TO74Z7UH.js → campaigns-S62KEFVL.js} +12 -12
- package/dist/{cards-CAOGPPG4.js → cards-RYQN5JLR.js} +3 -3
- package/dist/{catalogs-7IEXGLSR.js → catalogs-G33WT5PS.js} +4 -4
- package/dist/{catalogs-5LWEXG5X.js → catalogs-XLWWM2Q3.js} +4 -4
- package/dist/{changes-WWZYTLC6.js → changes-SI2W2PZL.js} +3 -3
- package/dist/{chatgpt-ZI4GWP6S.js → chatgpt-PPWG5WOF.js} +13 -13
- package/dist/{chunk-TPGFX47R.js → chunk-23RVCBL7.js} +2 -2
- package/dist/{chunk-YVFHDZ3K.js → chunk-2VW7S77J.js} +3 -3
- package/dist/{chunk-ULIQNJ5J.js → chunk-4OQG4HBG.js} +3 -3
- package/dist/{chunk-2LBQNTTH.js → chunk-4PAGS7QH.js} +2 -2
- package/dist/{chunk-6IR7IQPV.js → chunk-5C4RRCKM.js} +2 -2
- package/dist/{chunk-OTRKBCUB.js → chunk-5ZHXLY7Y.js} +2 -2
- package/dist/{chunk-5H6N36LS.js → chunk-7TVVYP7K.js} +2 -2
- package/dist/{chunk-NTFNLVZG.js → chunk-A4O3JL6D.js} +2 -2
- package/dist/{chunk-2DAWUWA4.js → chunk-ANRTDNPQ.js} +2 -2
- package/dist/{chunk-ILGRC7LJ.js → chunk-B2BQ2Q64.js} +2 -2
- package/dist/{chunk-FWHEAR7F.js → chunk-DRQI2CJJ.js} +2 -2
- package/dist/{chunk-KZQQ6OLC.js → chunk-FB5OU5HZ.js} +3 -3
- package/dist/{chunk-N2TXADL7.js → chunk-FUIGPJZZ.js} +2 -2
- package/dist/{chunk-OSQTSS27.js → chunk-J32CYEIH.js} +2 -2
- package/dist/{chunk-UYZ4FUC7.js → chunk-JED4JBIK.js} +3 -3
- package/dist/{chunk-RBCO3C3Q.js → chunk-MK4HCMEA.js} +3 -2
- package/dist/{chunk-RBCO3C3Q.js.map → chunk-MK4HCMEA.js.map} +1 -1
- package/dist/{chunk-R4RWQ6YX.js → chunk-OLPABGH3.js} +2 -2
- package/dist/{chunk-C3EX5OKN.js → chunk-QUSDGZFS.js} +2 -2
- package/dist/{chunk-OASXBRXQ.js → chunk-QZSNT67Z.js} +2 -2
- package/dist/{chunk-3E74OM2E.js → chunk-RF3TP643.js} +2 -2
- package/dist/{chunk-WBWEKZQ2.js → chunk-RIRSFFWA.js} +2 -2
- package/dist/{chunk-JHS5PE5Y.js → chunk-VMZ62LHB.js} +37 -29
- package/dist/chunk-VMZ62LHB.js.map +1 -0
- package/dist/{chunk-CI3QSB6G.js → chunk-W743FIEY.js} +2 -2
- package/dist/{chunk-YD6OZSSY.js → chunk-ZICB4OI5.js} +2 -2
- package/dist/cli.js +10 -10
- package/dist/{companies-X6O55ACG.js → companies-DQKUPFWT.js} +3 -3
- package/dist/{config-NDL2YP37.js → config-GIETKZGS.js} +3 -3
- package/dist/{conversation-J22BH6O5.js → conversation-YHKIB3CU.js} +3 -3
- package/dist/{conversion-report-76S5JOVT.js → conversion-report-JV6WZLB3.js} +3 -3
- package/dist/{conversion-upload-command-5OILW65U.js → conversion-upload-command-LXJYNNCK.js} +3 -3
- package/dist/{conversion-writes-6HX665JT.js → conversion-writes-NH3DKRQX.js} +4 -4
- package/dist/{conversions-I2ZOQHKJ.js → conversions-E2KOXF3N.js} +8 -8
- package/dist/{conversions-QZJRF4WN.js → conversions-TKPTZJVM.js} +6 -6
- package/dist/{copy-writes-X2LM5I4Z.js → copy-writes-FP3EI5LI.js} +5 -5
- package/dist/{creatives-4G2V4J6N.js → creatives-5EIDMQ66.js} +9 -9
- package/dist/{creatives-SFPNXJ6Z.js → creatives-N7V2BSOW.js} +7 -7
- package/dist/{crm-HODCOAAI.js → crm-PMPO6QJE.js} +2 -2
- package/dist/{currency-BZUNQ4XJ.js → currency-NFKS6PRB.js} +3 -3
- package/dist/{custom-conversions-UHRBVUD2.js → custom-conversions-BFMGX2M3.js} +6 -6
- package/dist/{demographics-OFBRSF7A.js → demographics-CPMNWMBZ.js} +3 -3
- package/dist/{discover-PDSEJR2P.js → discover-DDYFCWQL.js} +2 -2
- package/dist/{draft-44KTLX4P.js → draft-2EVXU5XB.js} +4 -4
- package/dist/{draft-QN5XXOS6.js → draft-4UTNI7BT.js} +5 -5
- package/dist/{draft-PCXWAA2Y.js → draft-BCRW4RLR.js} +4 -4
- package/dist/{draft-6MWXURYC.js → draft-CQPEGNPP.js} +5 -5
- package/dist/{draft-RSKZSUOS.js → draft-CQWYTMSS.js} +4 -4
- package/dist/{draft-CKFSZDVI.js → draft-JYZA3BFD.js} +4 -4
- package/dist/{draft-WOE7KQ7T.js → draft-VT7DAOB7.js} +5 -5
- package/dist/{experiment-AZUKJ7ZO.js → experiment-YAX26BOO.js} +2 -2
- package/dist/{experiments-2DX4K3AQ.js → experiments-ZEN2H3RV.js} +4 -4
- package/dist/{facets-OLRASLT7.js → facets-RNC4D4UH.js} +3 -3
- package/dist/{forecast-7DZGLC7Y.js → forecast-YIDXHMST.js} +3 -3
- package/dist/{forecast-3KMAJJWJ.js → forecast-YO6BNYX7.js} +4 -4
- package/dist/{funding-BSAHWU35.js → funding-QDKFNQI2.js} +3 -3
- package/dist/{funnel-2ALYZ3GP.js → funnel-M3SRPZQT.js} +2 -2
- package/dist/{ga4-YVKA3V4V.js → ga4-N6EBLN2W.js} +15 -15
- package/dist/{google-RTDPHVLU.js → google-KTVWAA7F.js} +22 -22
- package/dist/{gsc-OJDMSP6H.js → gsc-FILOUFCG.js} +4 -4
- package/dist/{history-LXRFZNW7.js → history-QATQCGVQ.js} +4 -4
- package/dist/{hubspot-MRUCRJLL.js → hubspot-IJERD4KT.js} +3 -3
- package/dist/{insights-LZJZGNJZ.js → insights-AVNMRFQ4.js} +3 -3
- package/dist/{insights-H6M6VI43.js → insights-OZ2EXOHH.js} +3 -3
- package/dist/{instant-experiences-J4GSS3Y6.js → instant-experiences-M2JYG2QS.js} +4 -4
- package/dist/{job-UFGGBDG7.js → job-OJB6KIDV.js} +3 -3
- package/dist/{job-create-XM4NH322.js → job-create-C6FGCDW4.js} +3 -3
- package/dist/{job-status-47L5Z57J.js → job-status-4RJHESID.js} +3 -3
- package/dist/{languages-SVTYYYOC.js → languages-27QCKMNL.js} +2 -2
- package/dist/{leads-SEEJ3KRR.js → leads-AEXWNBAT.js} +4 -4
- package/dist/{leads-HFB5UXZJ.js → leads-O2NLCYDO.js} +3 -3
- package/dist/{line-item-writes-VEJ5Y6X4.js → line-item-writes-VSP6WEYK.js} +4 -4
- package/dist/{line-items-U6L2TMPG.js → line-items-BQ2CKMGL.js} +8 -8
- package/dist/{linkedin-SY2WZWKP.js → linkedin-YALC66DF.js} +31 -31
- package/dist/{locations-5SLLGWZO.js → locations-EA5VGY56.js} +3 -3
- package/dist/{locations-7EBZ6KRH.js → locations-OS24BBXE.js} +2 -2
- package/dist/{lookup-OU6CLATK.js → lookup-QNLX2535.js} +3 -3
- package/dist/{media-YKCCMLXL.js → media-5SWJCRHI.js} +3 -3
- package/dist/{media-DGV2AMZI.js → media-WGIEUEZW.js} +3 -3
- package/dist/{meta-5TRG7RTQ.js → meta-DRDMT5X4.js} +39 -39
- package/dist/{metrics-WRERNMRK.js → metrics-NCAYDJNO.js} +2 -2
- package/dist/{output-7X5WPPCA.js → output-HZW7LNUL.js} +2 -2
- package/dist/{page-photos-VYJU4RNQ.js → page-photos-PDSKTR2Z.js} +4 -4
- package/dist/{pages-6YMPZDEY.js → pages-UH6XEZBO.js} +3 -3
- package/dist/{pixels-WTTLC4O5.js → pixels-GY4LKGJK.js} +4 -4
- package/dist/{pixels-DZDVNIVL.js → pixels-PYNK73UG.js} +3 -3
- package/dist/{plan-JAWESWJN.js → plan-4OYUV2EF.js} +3 -3
- package/dist/{preview-JZXGR4KN.js → preview-7E4E3QPT.js} +3 -3
- package/dist/{preview-3UOBVP6M.js → preview-NP3OFLT6.js} +3 -3
- package/dist/{promoted-tweet-writes-6Y4MDPBH.js → promoted-tweet-writes-XILB6VCP.js} +4 -4
- package/dist/{promoted-tweets-JAR2W6KC.js → promoted-tweets-CBYZG6BG.js} +5 -5
- package/dist/{properties-Z5S3LRJ5.js → properties-RDOGNY2O.js} +3 -3
- package/dist/{query-KKXCMH3Q.js → query-K7R5GQ4E.js} +3 -3
- package/dist/{query-3QFT42PG.js → query-LJS64SEQ.js} +4 -4
- package/dist/{query-QXKGVHZL.js → query-PO3RT7BR.js} +3 -3
- package/dist/{questionnaire-U7UYICEA.js → questionnaire-4OH6K2BF.js} +2 -2
- package/dist/{read-ENUS7P3L.js → read-MU5XGWMK.js} +4 -4
- package/dist/{resolve-JRSSTIAF.js → resolve-FCAP4LQ3.js} +3 -3
- package/dist/{revenue-Q2JK5VY6.js → revenue-VFML2I5V.js} +4 -4
- package/dist/{rule-writes-WT6DQZZE.js → rule-writes-KWJNFMJV.js} +4 -4
- package/dist/{rules-Y75KR2PC.js → rules-NRH2X4BM.js} +9 -9
- package/dist/{sends-4ZO6BNZ4.js → sends-I2B6F5NW.js} +2 -2
- package/dist/{shared-UPMEBTVP.js → shared-Z7INVKCZ.js} +3 -3
- package/dist/{shopify-HGFUHYT7.js → shopify-AUDLALBS.js} +4 -4
- package/dist/{sitemaps-P3K5Z4TW.js → sitemaps-EOMSRKOD.js} +3 -3
- package/dist/{sites-TURWC53D.js → sites-6M73AONG.js} +4 -4
- package/dist/{sources-7ZFY3VEZ.js → sources-OR36YOTG.js} +2 -2
- package/dist/{stats-XNKAJD2Z.js → stats-MFEH2TSW.js} +5 -5
- package/dist/{studies-5G67ODR2.js → studies-XNJXWD7I.js} +7 -7
- package/dist/{study-writes-34BJFZAZ.js → study-writes-MFAJQHXK.js} +4 -4
- package/dist/{sync-QVEUQKU5.js → sync-SI25TKY5.js} +3 -3
- package/dist/{tag-manager-3GIW6BPB.js → tag-manager-JFC6YYVP.js} +9 -9
- package/dist/{targeting-TVZPIUUI.js → targeting-ZBGR2PSX.js} +4 -4
- package/dist/{targeting-constants-RJS2STR5.js → targeting-constants-RF2732EW.js} +3 -3
- package/dist/{targeting-criteria-SMBIEM7U.js → targeting-criteria-HU7OAJUA.js} +5 -5
- package/dist/{terms-AATAGKPT.js → terms-XFL6QO7A.js} +2 -2
- package/dist/{themes-5HKRO5RR.js → themes-SUNQVNES.js} +4 -4
- package/dist/{top-companies-PY2NL2GS.js → top-companies-MSLNT33I.js} +3 -3
- package/dist/{tweets-MLDLLLDB.js → tweets-6PQHJXJC.js} +3 -3
- package/dist/{unstage-65DUBYNZ.js → unstage-O23ILHCY.js} +2 -2
- package/dist/{url-options-4J3FRXHO.js → url-options-NZAS37S5.js} +3 -3
- package/dist/{url-params-TGCGWKAJ.js → url-params-LUQMABZX.js} +3 -3
- package/dist/{videos-NITQKILV.js → videos-AHOLXU42.js} +3 -3
- package/dist/{write-commands-SIOVTRHH.js → write-commands-5OFOD7TE.js} +10 -10
- package/dist/{write-commands-XLZCRVTU.js → write-commands-LHEJESKL.js} +3 -3
- package/dist/{write-commands-OBQPQUIE.js → write-commands-SD6DXVNK.js} +3 -3
- package/dist/{write-commands-VQPEHKH7.js → write-commands-UEQR7ZXO.js} +4 -4
- package/dist/{x-PW43O6JS.js → x-UNSHYLJJ.js} +15 -15
- package/package.json +1 -1
- package/dist/chunk-JHS5PE5Y.js.map +0 -1
- /package/dist/{account-D2AGXMM3.js.map → account-MYM2QNFO.js.map} +0 -0
- /package/dist/{account-OCFXNHG7.js.map → account-OUKPRB7C.js.map} +0 -0
- /package/dist/{account-U6DFMD2V.js.map → account-YJ2NNQYP.js.map} +0 -0
- /package/dist/{account-assets-W7K2PUYB.js.map → account-assets-HOOPV5KR.js.map} +0 -0
- /package/dist/{account-level-Z2JEIJ3X.js.map → account-level-3QWMJTZQ.js.map} +0 -0
- /package/dist/{account-reads-WPKD2LPB.js.map → account-reads-RKK5BA6L.js.map} +0 -0
- /package/dist/{account-users-BK45DBUH.js.map → account-users-GHMPDZUM.js.map} +0 -0
- /package/dist/{account-writes-QSJ74QFR.js.map → account-writes-HEXKGWXC.js.map} +0 -0
- /package/dist/{accounts-VSJVFIPH.js.map → accounts-DDNEHXXT.js.map} +0 -0
- /package/dist/{accounts-3DS67RX7.js.map → accounts-K7VD47FG.js.map} +0 -0
- /package/dist/{accounts-55PDBEDN.js.map → accounts-OSVXKNSI.js.map} +0 -0
- /package/dist/{accounts-FALANOYX.js.map → accounts-S7CEGWJL.js.map} +0 -0
- /package/dist/{accounts-AK4QIG24.js.map → accounts-SJOO4MQX.js.map} +0 -0
- /package/dist/{active-entities-HR7NJJLU.js.map → active-entities-4KQQSMRZ.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-O2OP4NJ6.js.map} +0 -0
- /package/dist/{ad-groups-JZDUFT6J.js.map → ad-groups-AMMMWHHX.js.map} +0 -0
- /package/dist/{ad-writes-QYJO4IB3.js.map → ad-writes-IWLRLR2E.js.map} +0 -0
- /package/dist/{ads-JYSYXF3U.js.map → ads-7TQKAH4B.js.map} +0 -0
- /package/dist/{ads-UMSWEI5X.js.map → ads-KLSFKXUE.js.map} +0 -0
- /package/dist/{ads-QKVNPHBH.js.map → ads-L6SMNOUM.js.map} +0 -0
- /package/dist/{adsets-FEVYHKAQ.js.map → adsets-R75LSEV5.js.map} +0 -0
- /package/dist/{analytics-7QSUKFXF.js.map → analytics-ITBXTEIC.js.map} +0 -0
- /package/dist/{analytics-DR4DPUP4.js.map → analytics-WXLRAXXN.js.map} +0 -0
- /package/dist/{asset-writes-7RFZZYU7.js.map → asset-writes-DECROLE3.js.map} +0 -0
- /package/dist/{audience-size-6CZ2AZCK.js.map → audience-size-23UFSW6H.js.map} +0 -0
- /package/dist/{audience-writes-RUGU6KEC.js.map → audience-writes-VSC2BY4Y.js.map} +0 -0
- /package/dist/{audiences-RSAUXKHR.js.map → audiences-76S4WY7Q.js.map} +0 -0
- /package/dist/{audiences-7OS2ZJYO.js.map → audiences-RN745R53.js.map} +0 -0
- /package/dist/{audiences-6GVUZUCN.js.map → audiences-V773XHP2.js.map} +0 -0
- /package/dist/{audit-4L7IKIRY.js.map → audit-BIHMDO5K.js.map} +0 -0
- /package/dist/{audit-Q66O3Z46.js.map → audit-OT42WBII.js.map} +0 -0
- /package/dist/{bid-pricing-LUWEWGCJ.js.map → bid-pricing-UHU2HOAP.js.map} +0 -0
- /package/dist/{businesses-42NZP6FP.js.map → businesses-HECSW3EL.js.map} +0 -0
- /package/dist/{campaign-groups-SZSO5B6C.js.map → campaign-groups-TAVIZR4L.js.map} +0 -0
- /package/dist/{campaign-writes-GKNH2EHV.js.map → campaign-writes-72OPCWMG.js.map} +0 -0
- /package/dist/{campaign-writes-AN4IHY5G.js.map → campaign-writes-AQ5T5TII.js.map} +0 -0
- /package/dist/{campaigns-RDHQNOTI.js.map → campaigns-3P2UZWPD.js.map} +0 -0
- /package/dist/{campaigns-VLVV2PPO.js.map → campaigns-D2V423FD.js.map} +0 -0
- /package/dist/{campaigns-7RV65SXR.js.map → campaigns-NW2H7SAR.js.map} +0 -0
- /package/dist/{campaigns-TO74Z7UH.js.map → campaigns-S62KEFVL.js.map} +0 -0
- /package/dist/{cards-CAOGPPG4.js.map → cards-RYQN5JLR.js.map} +0 -0
- /package/dist/{catalogs-7IEXGLSR.js.map → catalogs-G33WT5PS.js.map} +0 -0
- /package/dist/{catalogs-5LWEXG5X.js.map → catalogs-XLWWM2Q3.js.map} +0 -0
- /package/dist/{changes-WWZYTLC6.js.map → changes-SI2W2PZL.js.map} +0 -0
- /package/dist/{chatgpt-ZI4GWP6S.js.map → chatgpt-PPWG5WOF.js.map} +0 -0
- /package/dist/{chunk-TPGFX47R.js.map → chunk-23RVCBL7.js.map} +0 -0
- /package/dist/{chunk-YVFHDZ3K.js.map → chunk-2VW7S77J.js.map} +0 -0
- /package/dist/{chunk-ULIQNJ5J.js.map → chunk-4OQG4HBG.js.map} +0 -0
- /package/dist/{chunk-2LBQNTTH.js.map → chunk-4PAGS7QH.js.map} +0 -0
- /package/dist/{chunk-6IR7IQPV.js.map → chunk-5C4RRCKM.js.map} +0 -0
- /package/dist/{chunk-OTRKBCUB.js.map → chunk-5ZHXLY7Y.js.map} +0 -0
- /package/dist/{chunk-5H6N36LS.js.map → chunk-7TVVYP7K.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-ILGRC7LJ.js.map → chunk-B2BQ2Q64.js.map} +0 -0
- /package/dist/{chunk-FWHEAR7F.js.map → chunk-DRQI2CJJ.js.map} +0 -0
- /package/dist/{chunk-KZQQ6OLC.js.map → chunk-FB5OU5HZ.js.map} +0 -0
- /package/dist/{chunk-N2TXADL7.js.map → chunk-FUIGPJZZ.js.map} +0 -0
- /package/dist/{chunk-OSQTSS27.js.map → chunk-J32CYEIH.js.map} +0 -0
- /package/dist/{chunk-UYZ4FUC7.js.map → chunk-JED4JBIK.js.map} +0 -0
- /package/dist/{chunk-R4RWQ6YX.js.map → chunk-OLPABGH3.js.map} +0 -0
- /package/dist/{chunk-C3EX5OKN.js.map → chunk-QUSDGZFS.js.map} +0 -0
- /package/dist/{chunk-OASXBRXQ.js.map → chunk-QZSNT67Z.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-CI3QSB6G.js.map → chunk-W743FIEY.js.map} +0 -0
- /package/dist/{chunk-YD6OZSSY.js.map → chunk-ZICB4OI5.js.map} +0 -0
- /package/dist/{companies-X6O55ACG.js.map → companies-DQKUPFWT.js.map} +0 -0
- /package/dist/{config-NDL2YP37.js.map → config-GIETKZGS.js.map} +0 -0
- /package/dist/{conversation-J22BH6O5.js.map → conversation-YHKIB3CU.js.map} +0 -0
- /package/dist/{conversion-report-76S5JOVT.js.map → conversion-report-JV6WZLB3.js.map} +0 -0
- /package/dist/{conversion-upload-command-5OILW65U.js.map → conversion-upload-command-LXJYNNCK.js.map} +0 -0
- /package/dist/{conversion-writes-6HX665JT.js.map → conversion-writes-NH3DKRQX.js.map} +0 -0
- /package/dist/{conversions-I2ZOQHKJ.js.map → conversions-E2KOXF3N.js.map} +0 -0
- /package/dist/{conversions-QZJRF4WN.js.map → conversions-TKPTZJVM.js.map} +0 -0
- /package/dist/{copy-writes-X2LM5I4Z.js.map → copy-writes-FP3EI5LI.js.map} +0 -0
- /package/dist/{creatives-4G2V4J6N.js.map → creatives-5EIDMQ66.js.map} +0 -0
- /package/dist/{creatives-SFPNXJ6Z.js.map → creatives-N7V2BSOW.js.map} +0 -0
- /package/dist/{crm-HODCOAAI.js.map → crm-PMPO6QJE.js.map} +0 -0
- /package/dist/{currency-BZUNQ4XJ.js.map → currency-NFKS6PRB.js.map} +0 -0
- /package/dist/{custom-conversions-UHRBVUD2.js.map → custom-conversions-BFMGX2M3.js.map} +0 -0
- /package/dist/{demographics-OFBRSF7A.js.map → demographics-CPMNWMBZ.js.map} +0 -0
- /package/dist/{discover-PDSEJR2P.js.map → discover-DDYFCWQL.js.map} +0 -0
- /package/dist/{draft-44KTLX4P.js.map → draft-2EVXU5XB.js.map} +0 -0
- /package/dist/{draft-QN5XXOS6.js.map → draft-4UTNI7BT.js.map} +0 -0
- /package/dist/{draft-PCXWAA2Y.js.map → draft-BCRW4RLR.js.map} +0 -0
- /package/dist/{draft-6MWXURYC.js.map → draft-CQPEGNPP.js.map} +0 -0
- /package/dist/{draft-RSKZSUOS.js.map → draft-CQWYTMSS.js.map} +0 -0
- /package/dist/{draft-CKFSZDVI.js.map → draft-JYZA3BFD.js.map} +0 -0
- /package/dist/{draft-WOE7KQ7T.js.map → draft-VT7DAOB7.js.map} +0 -0
- /package/dist/{experiment-AZUKJ7ZO.js.map → experiment-YAX26BOO.js.map} +0 -0
- /package/dist/{experiments-2DX4K3AQ.js.map → experiments-ZEN2H3RV.js.map} +0 -0
- /package/dist/{facets-OLRASLT7.js.map → facets-RNC4D4UH.js.map} +0 -0
- /package/dist/{forecast-7DZGLC7Y.js.map → forecast-YIDXHMST.js.map} +0 -0
- /package/dist/{forecast-3KMAJJWJ.js.map → forecast-YO6BNYX7.js.map} +0 -0
- /package/dist/{funding-BSAHWU35.js.map → funding-QDKFNQI2.js.map} +0 -0
- /package/dist/{funnel-2ALYZ3GP.js.map → funnel-M3SRPZQT.js.map} +0 -0
- /package/dist/{ga4-YVKA3V4V.js.map → ga4-N6EBLN2W.js.map} +0 -0
- /package/dist/{google-RTDPHVLU.js.map → google-KTVWAA7F.js.map} +0 -0
- /package/dist/{gsc-OJDMSP6H.js.map → gsc-FILOUFCG.js.map} +0 -0
- /package/dist/{history-LXRFZNW7.js.map → history-QATQCGVQ.js.map} +0 -0
- /package/dist/{hubspot-MRUCRJLL.js.map → hubspot-IJERD4KT.js.map} +0 -0
- /package/dist/{insights-LZJZGNJZ.js.map → insights-AVNMRFQ4.js.map} +0 -0
- /package/dist/{insights-H6M6VI43.js.map → insights-OZ2EXOHH.js.map} +0 -0
- /package/dist/{instant-experiences-J4GSS3Y6.js.map → instant-experiences-M2JYG2QS.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/{languages-SVTYYYOC.js.map → languages-27QCKMNL.js.map} +0 -0
- /package/dist/{leads-SEEJ3KRR.js.map → leads-AEXWNBAT.js.map} +0 -0
- /package/dist/{leads-HFB5UXZJ.js.map → leads-O2NLCYDO.js.map} +0 -0
- /package/dist/{line-item-writes-VEJ5Y6X4.js.map → line-item-writes-VSP6WEYK.js.map} +0 -0
- /package/dist/{line-items-U6L2TMPG.js.map → line-items-BQ2CKMGL.js.map} +0 -0
- /package/dist/{linkedin-SY2WZWKP.js.map → linkedin-YALC66DF.js.map} +0 -0
- /package/dist/{locations-5SLLGWZO.js.map → locations-EA5VGY56.js.map} +0 -0
- /package/dist/{locations-7EBZ6KRH.js.map → locations-OS24BBXE.js.map} +0 -0
- /package/dist/{lookup-OU6CLATK.js.map → lookup-QNLX2535.js.map} +0 -0
- /package/dist/{media-YKCCMLXL.js.map → media-5SWJCRHI.js.map} +0 -0
- /package/dist/{media-DGV2AMZI.js.map → media-WGIEUEZW.js.map} +0 -0
- /package/dist/{meta-5TRG7RTQ.js.map → meta-DRDMT5X4.js.map} +0 -0
- /package/dist/{metrics-WRERNMRK.js.map → metrics-NCAYDJNO.js.map} +0 -0
- /package/dist/{output-7X5WPPCA.js.map → output-HZW7LNUL.js.map} +0 -0
- /package/dist/{page-photos-VYJU4RNQ.js.map → page-photos-PDSKTR2Z.js.map} +0 -0
- /package/dist/{pages-6YMPZDEY.js.map → pages-UH6XEZBO.js.map} +0 -0
- /package/dist/{pixels-WTTLC4O5.js.map → pixels-GY4LKGJK.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-3UOBVP6M.js.map → preview-NP3OFLT6.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-6Y4MDPBH.js.map → promoted-tweet-writes-XILB6VCP.js.map} +0 -0
- /package/dist/{promoted-tweets-JAR2W6KC.js.map → promoted-tweets-CBYZG6BG.js.map} +0 -0
- /package/dist/{properties-Z5S3LRJ5.js.map → properties-RDOGNY2O.js.map} +0 -0
- /package/dist/{query-KKXCMH3Q.js.map → query-K7R5GQ4E.js.map} +0 -0
- /package/dist/{query-3QFT42PG.js.map → query-LJS64SEQ.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/{resolve-JRSSTIAF.js.map → resolve-FCAP4LQ3.js.map} +0 -0
- /package/dist/{revenue-Q2JK5VY6.js.map → revenue-VFML2I5V.js.map} +0 -0
- /package/dist/{rule-writes-WT6DQZZE.js.map → rule-writes-KWJNFMJV.js.map} +0 -0
- /package/dist/{rules-Y75KR2PC.js.map → rules-NRH2X4BM.js.map} +0 -0
- /package/dist/{sends-4ZO6BNZ4.js.map → sends-I2B6F5NW.js.map} +0 -0
- /package/dist/{shared-UPMEBTVP.js.map → shared-Z7INVKCZ.js.map} +0 -0
- /package/dist/{shopify-HGFUHYT7.js.map → shopify-AUDLALBS.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-7ZFY3VEZ.js.map → sources-OR36YOTG.js.map} +0 -0
- /package/dist/{stats-XNKAJD2Z.js.map → stats-MFEH2TSW.js.map} +0 -0
- /package/dist/{studies-5G67ODR2.js.map → studies-XNJXWD7I.js.map} +0 -0
- /package/dist/{study-writes-34BJFZAZ.js.map → study-writes-MFAJQHXK.js.map} +0 -0
- /package/dist/{sync-QVEUQKU5.js.map → sync-SI25TKY5.js.map} +0 -0
- /package/dist/{tag-manager-3GIW6BPB.js.map → tag-manager-JFC6YYVP.js.map} +0 -0
- /package/dist/{targeting-TVZPIUUI.js.map → targeting-ZBGR2PSX.js.map} +0 -0
- /package/dist/{targeting-constants-RJS2STR5.js.map → targeting-constants-RF2732EW.js.map} +0 -0
- /package/dist/{targeting-criteria-SMBIEM7U.js.map → targeting-criteria-HU7OAJUA.js.map} +0 -0
- /package/dist/{terms-AATAGKPT.js.map → terms-XFL6QO7A.js.map} +0 -0
- /package/dist/{themes-5HKRO5RR.js.map → themes-SUNQVNES.js.map} +0 -0
- /package/dist/{top-companies-PY2NL2GS.js.map → top-companies-MSLNT33I.js.map} +0 -0
- /package/dist/{tweets-MLDLLLDB.js.map → tweets-6PQHJXJC.js.map} +0 -0
- /package/dist/{unstage-65DUBYNZ.js.map → unstage-O23ILHCY.js.map} +0 -0
- /package/dist/{url-options-4J3FRXHO.js.map → url-options-NZAS37S5.js.map} +0 -0
- /package/dist/{url-params-TGCGWKAJ.js.map → url-params-LUQMABZX.js.map} +0 -0
- /package/dist/{videos-NITQKILV.js.map → videos-AHOLXU42.js.map} +0 -0
- /package/dist/{write-commands-SIOVTRHH.js.map → write-commands-5OFOD7TE.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/{write-commands-VQPEHKH7.js.map → write-commands-UEQR7ZXO.js.map} +0 -0
- /package/dist/{x-PW43O6JS.js.map → x-UNSHYLJJ.js.map} +0 -0
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
} from "./chunk-FIN4ZXGJ.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveXAccountId
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZICB4OI5.js";
|
|
7
7
|
import {
|
|
8
8
|
cacheGet,
|
|
9
9
|
cacheSet,
|
|
10
10
|
writeAdsJson,
|
|
11
11
|
writeAdsOutput
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MK4HCMEA.js";
|
|
13
13
|
import {
|
|
14
14
|
ApiError,
|
|
15
15
|
apiGet
|
|
@@ -82,4 +82,4 @@ Examples:
|
|
|
82
82
|
export {
|
|
83
83
|
cardsCommand
|
|
84
84
|
};
|
|
85
|
-
//# sourceMappingURL=cards-
|
|
85
|
+
//# sourceMappingURL=cards-RYQN5JLR.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
requireTarget,
|
|
9
9
|
stageOp,
|
|
10
10
|
upper
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-JED4JBIK.js";
|
|
12
12
|
import {
|
|
13
13
|
retailerIdFilter
|
|
14
14
|
} from "./chunk-GC5P4KWY.js";
|
|
@@ -16,7 +16,7 @@ import "./chunk-GDFJOCDO.js";
|
|
|
16
16
|
import {
|
|
17
17
|
csvOrJson,
|
|
18
18
|
handleMetaError
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7TVVYP7K.js";
|
|
20
20
|
import {
|
|
21
21
|
repeatedValues
|
|
22
22
|
} from "./chunk-ERSX3MKH.js";
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
writeAdsJson,
|
|
30
30
|
writeAdsOutput,
|
|
31
31
|
writeJsonEnvelope
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-MK4HCMEA.js";
|
|
33
33
|
import "./chunk-Y5PNLB24.js";
|
|
34
34
|
import "./chunk-N3PASNUA.js";
|
|
35
35
|
import {
|
|
@@ -779,4 +779,4 @@ export {
|
|
|
779
779
|
productFieldsFromArgs,
|
|
780
780
|
productSetFilterFromArgs
|
|
781
781
|
};
|
|
782
|
-
//# sourceMappingURL=catalogs-
|
|
782
|
+
//# sourceMappingURL=catalogs-G33WT5PS.js.map
|
|
@@ -2,14 +2,14 @@ import {
|
|
|
2
2
|
failWriteValidation,
|
|
3
3
|
productFiltersArg,
|
|
4
4
|
schemaArgs
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4OQG4HBG.js";
|
|
6
6
|
import {
|
|
7
7
|
CHATGPT_ADS_REFERENCE,
|
|
8
8
|
chatgptAdsProductQuerySchema,
|
|
9
9
|
runChatgptListRead,
|
|
10
10
|
runChatgptRead
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-QZSNT67Z.js";
|
|
12
|
+
import "./chunk-MK4HCMEA.js";
|
|
13
13
|
import "./chunk-SOPVIIUW.js";
|
|
14
14
|
import "./chunk-G4FG5EQO.js";
|
|
15
15
|
import {
|
|
@@ -127,4 +127,4 @@ Examples:
|
|
|
127
127
|
export {
|
|
128
128
|
catalogsCommand
|
|
129
129
|
};
|
|
130
|
-
//# sourceMappingURL=catalogs-
|
|
130
|
+
//# sourceMappingURL=catalogs-XLWWM2Q3.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
cappedChangesHint,
|
|
7
7
|
parseApiError,
|
|
8
8
|
resolveChangesWindow
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FUIGPJZZ.js";
|
|
10
10
|
import {
|
|
11
11
|
CHANGES_MAX_LIMIT,
|
|
12
12
|
CHANGE_RESOURCE_TYPES,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
writeAdsJson,
|
|
20
20
|
writeAdsOutput,
|
|
21
21
|
writeJsonEnvelope
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MK4HCMEA.js";
|
|
23
23
|
import "./chunk-XHWHBGKX.js";
|
|
24
24
|
import {
|
|
25
25
|
ApiError,
|
|
@@ -164,4 +164,4 @@ Examples:
|
|
|
164
164
|
export {
|
|
165
165
|
changesCommand
|
|
166
166
|
};
|
|
167
|
-
//# sourceMappingURL=changes-
|
|
167
|
+
//# sourceMappingURL=changes-SI2W2PZL.js.map
|
|
@@ -27,21 +27,21 @@ One company connects one ChatGPT Ads account, so there is no account id to pass.
|
|
|
27
27
|
Full guide: __tooling__/docs/tools/baker/ads-chatgpt.md`
|
|
28
28
|
},
|
|
29
29
|
subCommands: {
|
|
30
|
-
account: () => import("./account-
|
|
31
|
-
campaigns: () => import("./campaigns-
|
|
32
|
-
"ad-groups": () => import("./ad-groups-
|
|
33
|
-
ads: () => import("./ads-
|
|
34
|
-
conversions: () => import("./conversions-
|
|
35
|
-
pixels: () => import("./pixels-
|
|
36
|
-
audiences: () => import("./audiences-
|
|
37
|
-
catalogs: () => import("./catalogs-
|
|
38
|
-
history: () => import("./history-
|
|
39
|
-
insights: () => import("./insights-
|
|
40
|
-
locations: () => import("./locations-
|
|
41
|
-
draft: () => import("./draft-
|
|
30
|
+
account: () => import("./account-YJ2NNQYP.js").then((m) => m.accountCommand),
|
|
31
|
+
campaigns: () => import("./campaigns-NW2H7SAR.js").then((m) => m.campaignsCommand),
|
|
32
|
+
"ad-groups": () => import("./ad-groups-AMMMWHHX.js").then((m) => m.adGroupsCommand),
|
|
33
|
+
ads: () => import("./ads-KLSFKXUE.js").then((m) => m.adsCommand),
|
|
34
|
+
conversions: () => import("./conversions-TKPTZJVM.js").then((m) => m.conversionsCommand),
|
|
35
|
+
pixels: () => import("./pixels-GY4LKGJK.js").then((m) => m.pixelsCommand),
|
|
36
|
+
audiences: () => import("./audiences-76S4WY7Q.js").then((m) => m.audiencesCommand),
|
|
37
|
+
catalogs: () => import("./catalogs-XLWWM2Q3.js").then((m) => m.catalogsCommand),
|
|
38
|
+
history: () => import("./history-QATQCGVQ.js").then((m) => m.historyCommand),
|
|
39
|
+
insights: () => import("./insights-OZ2EXOHH.js").then((m) => m.insightsCommand),
|
|
40
|
+
locations: () => import("./locations-EA5VGY56.js").then((m) => m.locationsCommand),
|
|
41
|
+
draft: () => import("./draft-VT7DAOB7.js").then((m) => m.draftCommand)
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
export {
|
|
45
45
|
chatgptCommand
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chatgpt-
|
|
47
|
+
//# sourceMappingURL=chatgpt-PPWG5WOF.js.map
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
handleConnectionError,
|
|
20
20
|
isNotConnectedError,
|
|
21
21
|
writeJsonEnvelope
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MK4HCMEA.js";
|
|
23
23
|
import {
|
|
24
24
|
describeOpPayload
|
|
25
25
|
} from "./chunk-R7XDGNZD.js";
|
|
@@ -706,4 +706,4 @@ export {
|
|
|
706
706
|
fileCreateCommand,
|
|
707
707
|
bidModifierFlag
|
|
708
708
|
};
|
|
709
|
-
//# sourceMappingURL=chunk-
|
|
709
|
+
//# sourceMappingURL=chunk-23RVCBL7.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
handleLinkedinError,
|
|
3
3
|
resolveAccountIdArg
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-W743FIEY.js";
|
|
5
5
|
import {
|
|
6
6
|
adCopyHints,
|
|
7
7
|
booleanWordPositionalError,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-D5FY4FAK.js";
|
|
13
13
|
import {
|
|
14
14
|
writeJsonEnvelope
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-MK4HCMEA.js";
|
|
16
16
|
import {
|
|
17
17
|
LINKEDIN_DRAFT_BATCH_MAX,
|
|
18
18
|
linkedinDraftOpInputSchema,
|
|
@@ -396,4 +396,4 @@ export {
|
|
|
396
396
|
requireTarget,
|
|
397
397
|
requireTargets
|
|
398
398
|
};
|
|
399
|
-
//# sourceMappingURL=chunk-
|
|
399
|
+
//# sourceMappingURL=chunk-2VW7S77J.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
chatgptDraftOpInputSchema,
|
|
3
3
|
chatgptFailure
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QZSNT67Z.js";
|
|
5
5
|
import {
|
|
6
6
|
writeJsonEnvelope
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MK4HCMEA.js";
|
|
8
8
|
import {
|
|
9
9
|
ApiError,
|
|
10
10
|
apiPost
|
|
@@ -271,4 +271,4 @@ export {
|
|
|
271
271
|
statusCommand,
|
|
272
272
|
productFiltersArg
|
|
273
273
|
};
|
|
274
|
-
//# sourceMappingURL=chunk-
|
|
274
|
+
//# sourceMappingURL=chunk-4OQG4HBG.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
handleConnectionError,
|
|
3
3
|
isNotConnectedError,
|
|
4
4
|
writeAdsJson
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MK4HCMEA.js";
|
|
6
6
|
import {
|
|
7
7
|
ApiError
|
|
8
8
|
} from "./chunk-QEREDRZO.js";
|
|
@@ -73,4 +73,4 @@ function exitWithServiceReadError(err) {
|
|
|
73
73
|
export {
|
|
74
74
|
exitWithServiceReadError
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-4PAGS7QH.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
cacheSet,
|
|
7
7
|
writeAdsJson,
|
|
8
8
|
writeAdsOutput
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MK4HCMEA.js";
|
|
10
10
|
import {
|
|
11
11
|
ApiError,
|
|
12
12
|
apiGet
|
|
@@ -66,4 +66,4 @@ async function runListCommand(opts) {
|
|
|
66
66
|
export {
|
|
67
67
|
runListCommand
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
69
|
+
//# sourceMappingURL=chunk-5C4RRCKM.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
requireTarget,
|
|
6
6
|
stageOp,
|
|
7
7
|
stageOps
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JED4JBIK.js";
|
|
9
9
|
import {
|
|
10
10
|
repeatedValues
|
|
11
11
|
} from "./chunk-ERSX3MKH.js";
|
|
@@ -216,4 +216,4 @@ export {
|
|
|
216
216
|
labelsAttachCommand,
|
|
217
217
|
labelsDetachCommand
|
|
218
218
|
};
|
|
219
|
-
//# sourceMappingURL=chunk-
|
|
219
|
+
//# sourceMappingURL=chunk-5ZHXLY7Y.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
needsConnectionFix,
|
|
10
10
|
writeAdsJson,
|
|
11
11
|
writeJsonEnvelope
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MK4HCMEA.js";
|
|
13
13
|
import {
|
|
14
14
|
ApiError,
|
|
15
15
|
apiGet
|
|
@@ -214,4 +214,4 @@ export {
|
|
|
214
214
|
resolveEffectiveStatus,
|
|
215
215
|
statusFilterHints
|
|
216
216
|
};
|
|
217
|
-
//# sourceMappingURL=chunk-
|
|
217
|
+
//# sourceMappingURL=chunk-7TVVYP7K.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
writeJsonEnvelope
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MK4HCMEA.js";
|
|
4
4
|
import {
|
|
5
5
|
apiGet
|
|
6
6
|
} from "./chunk-QEREDRZO.js";
|
|
@@ -23,4 +23,4 @@ export {
|
|
|
23
23
|
AVAILABLE_ARG,
|
|
24
24
|
writeAvailableAccounts
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-A4O3JL6D.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
writeJsonEnvelope
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MK4HCMEA.js";
|
|
4
4
|
import {
|
|
5
5
|
ApiError,
|
|
6
6
|
apiPost
|
|
@@ -112,4 +112,4 @@ export {
|
|
|
112
112
|
removeDraftRefs,
|
|
113
113
|
amendDraftRefs
|
|
114
114
|
};
|
|
115
|
-
//# sourceMappingURL=chunk-
|
|
115
|
+
//# sourceMappingURL=chunk-ANRTDNPQ.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
failWriteValidation,
|
|
3
3
|
parseDateFlag,
|
|
4
4
|
parseMoneyFlag
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JED4JBIK.js";
|
|
6
6
|
import {
|
|
7
7
|
repeatedValues
|
|
8
8
|
} from "./chunk-ERSX3MKH.js";
|
|
@@ -284,4 +284,4 @@ export {
|
|
|
284
284
|
clearFromFlags,
|
|
285
285
|
clearArg
|
|
286
286
|
};
|
|
287
|
-
//# sourceMappingURL=chunk-
|
|
287
|
+
//# sourceMappingURL=chunk-B2BQ2Q64.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
handleConnectionError,
|
|
5
5
|
needsConnectionFix,
|
|
6
6
|
writeJsonEnvelope
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MK4HCMEA.js";
|
|
8
8
|
import {
|
|
9
9
|
ApiError,
|
|
10
10
|
apiGet
|
|
@@ -135,4 +135,4 @@ export {
|
|
|
135
135
|
handleGscSiteError,
|
|
136
136
|
resolveSiteUrl
|
|
137
137
|
};
|
|
138
|
-
//# sourceMappingURL=chunk-
|
|
138
|
+
//# sourceMappingURL=chunk-DRQI2CJJ.js.map
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
} from "./chunk-FIN4ZXGJ.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveXAccountId
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZICB4OI5.js";
|
|
7
7
|
import {
|
|
8
8
|
writeAdsJson,
|
|
9
9
|
writeJsonEnvelope
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MK4HCMEA.js";
|
|
11
11
|
import {
|
|
12
12
|
X_DRAFT_BATCH_MAX,
|
|
13
13
|
xDraftOpInputSchema
|
|
@@ -166,4 +166,4 @@ export {
|
|
|
166
166
|
requireTarget,
|
|
167
167
|
requireTargets
|
|
168
168
|
};
|
|
169
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# sourceMappingURL=chunk-FB5OU5HZ.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
connectionFixExplanation,
|
|
11
11
|
isNotConnectedError
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MK4HCMEA.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/ads/google/during-literals.ts
|
|
15
15
|
var GAQL_DURING_LITERALS = [
|
|
@@ -1317,4 +1317,4 @@ export {
|
|
|
1317
1317
|
serverFailure,
|
|
1318
1318
|
parseApiError
|
|
1319
1319
|
};
|
|
1320
|
-
//# sourceMappingURL=chunk-
|
|
1320
|
+
//# sourceMappingURL=chunk-FUIGPJZZ.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
handleConnectionError,
|
|
5
5
|
needsConnectionFix,
|
|
6
6
|
writeJsonEnvelope
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MK4HCMEA.js";
|
|
8
8
|
import {
|
|
9
9
|
ApiError,
|
|
10
10
|
apiGet
|
|
@@ -71,4 +71,4 @@ ${list}`
|
|
|
71
71
|
export {
|
|
72
72
|
resolvePropertyId
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=chunk-
|
|
74
|
+
//# sourceMappingURL=chunk-J32CYEIH.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
handleMetaError,
|
|
6
6
|
resolveAccountIdArg
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-7TVVYP7K.js";
|
|
8
8
|
import {
|
|
9
9
|
repeatedValues
|
|
10
10
|
} from "./chunk-ERSX3MKH.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "./chunk-D5FY4FAK.js";
|
|
19
19
|
import {
|
|
20
20
|
writeJsonEnvelope
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-MK4HCMEA.js";
|
|
22
22
|
import {
|
|
23
23
|
describeOpPayload
|
|
24
24
|
} from "./chunk-R7XDGNZD.js";
|
|
@@ -222,4 +222,4 @@ export {
|
|
|
222
222
|
stageOps,
|
|
223
223
|
stageStatusChange
|
|
224
224
|
};
|
|
225
|
-
//# sourceMappingURL=chunk-
|
|
225
|
+
//# sourceMappingURL=chunk-JED4JBIK.js.map
|
|
@@ -270,7 +270,8 @@ async function resolveCustomerId(args) {
|
|
|
270
270
|
const accounts = await fetchAccounts(useCache);
|
|
271
271
|
const [single] = accounts;
|
|
272
272
|
if (accounts.length === 1 && single) {
|
|
273
|
-
|
|
273
|
+
const answersInJson = (args.output ?? "json") === "json" || Boolean(args.out);
|
|
274
|
+
if (!answersInJson) process.stderr.write(`Using account "${single.name}" (${single.id})
|
|
274
275
|
`);
|
|
275
276
|
return single.id;
|
|
276
277
|
}
|
|
@@ -321,4 +322,4 @@ export {
|
|
|
321
322
|
needsConnectionFix,
|
|
322
323
|
isOrganizationReadRefusal
|
|
323
324
|
};
|
|
324
|
-
//# sourceMappingURL=chunk-
|
|
325
|
+
//# sourceMappingURL=chunk-MK4HCMEA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/error-handler.ts","../src/commands/ads/cache.ts","../src/commands/ads/output.ts"],"sourcesContent":["import { writeJsonEnvelope } from \"./commands/ads/output.ts\";\nimport { optionalTargetCompany } from \"./env.ts\";\n\ntype ConnectionPlatform = \"google_ads\" | \"ga4\" | \"gsc\" | \"x_ads\" | \"meta_ads\" | \"linkedin_ads\";\n\n/**\n * Platforms the agent can get connected without the user leaving the chat, via\n * the blocking `request_connection` tool, and the id that tool expects. Every\n * platform this CLI can talk to is here — keep it in step with\n * `CONNECTION_PLATFORMS` in `packages/bridge/src/hono/connection-input.ts`: a\n * platform the tool accepts but this map omits sends the user to Settings for a\n * door the agent could have opened itself.\n */\nconst REQUEST_CONNECTION_PLATFORM: Record<ConnectionPlatform, string> = {\n google_ads: \"google-ads\",\n ga4: \"google-analytics\",\n gsc: \"google-search-console\",\n linkedin_ads: \"linkedin\",\n meta_ads: \"meta\",\n x_ads: \"x-ads\",\n};\n\nconst PLATFORM_NAME: Record<ConnectionPlatform, string> = {\n google_ads: \"Google Ads\",\n ga4: \"Google Analytics 4\",\n gsc: \"Google Search Console\",\n x_ads: \"X Ads\",\n meta_ads: \"Meta Ads\",\n linkedin_ads: \"LinkedIn Ads\",\n};\n\n/**\n * How to tell the agent to get a platform connected. Never \"send them to\n * Settings\" for a platform `request_connection` covers — that ends the turn on a\n * wall the agent could have opened itself, and it now covers every platform this\n * CLI talks to. The fallback line matters too: if the `request_connection` call\n * fails, the agent must still be able to say where the connect button is instead\n * of stalling.\n */\nexport function connectionFixExplanation(platform: ConnectionPlatform, originalMessage?: string): string {\n const name = PLATFORM_NAME[platform];\n const slug = REQUEST_CONNECTION_PLATFORM[platform];\n // Read with `--company` from the organization workspace: connecting from here\n // would connect the workspace, not the company the read named.\n if (optionalTargetCompany()) {\n return (\n `${name} is not connected for that company. It can only be connected in that company's own workspace, ` +\n `never with \\`request_connection\\` from here. Show that company as not connected for ${name} and carry on ` +\n \"with the others.\"\n );\n }\n if (originalMessage !== undefined && SIGN_IN_ENDED.test(originalMessage)) {\n return (\n `${name} is connected, but its sign-in no longer works (it expired, or was revoked on the platform) — this is ` +\n `not a Baker error, and retrying later cannot fix it: only the user signing in again can. Call the ` +\n `\\`request_connection\\` tool now with { platform: \"${slug}\", reason } — the card offers Reconnect. If that call ` +\n `fails, give the exact route: dashboard → Brain → Integrations → Platforms → ${name} → Reconnect. Then carry on ` +\n \"with the rest of the task and say what stays unavailable until it is reconnected.\"\n );\n }\n return (\n `${name} is not connected for this company (or no account has been picked). Don't send the user to Settings ` +\n `or end the turn here — call the \\`request_connection\\` tool with { platform: \"${slug}\", reason } and ` +\n `they connect and pick their accounts from inside the chat. If the \\`request_connection\\` call fails, say so ` +\n `plainly and give the exact route: dashboard → Brain → Integrations → Platforms → ${name}. Then carry on with the ` +\n `rest of the task and say what stays unavailable until it is connected.`\n );\n}\n\n/** How the backend says a stored sign-in stopped working (`reconnectMessage`, `convex/oauth/connectedPlatforms.ts`). */\nconst SIGN_IN_ENDED = /connection expired|must reconnect/i;\n\n/**\n * Shared error handler for \"No Connection\" scenarios.\n * Provides a structured error for AI agents with a suggested fix and alternative commands.\n */\nexport function handleConnectionError(platform: ConnectionPlatform, originalMessage?: string): never {\n const platformName = PLATFORM_NAME[platform];\n\n const alternative = {\n google_ads: \"keywords-for-site or research advertisers\",\n ga4: \"lighthouse for page performance\",\n gsc: \"keywords-for-site or research keyword-gap\",\n x_ads: \"research advertisers\",\n meta_ads: \"research advertisers or research keyword-ideas\",\n linkedin_ads: \"research advertisers (LinkedIn Ad Library) or research keyword-ideas\",\n }[platform];\n\n const code = {\n google_ads: \"NO_GOOGLE_ADS_CONNECTION\",\n ga4: \"NO_GA4_CONNECTION\",\n gsc: \"NO_GSC_CONNECTION\",\n x_ads: \"NO_X_ADS_CONNECTION\",\n meta_ads: \"NO_META_ADS_CONNECTION\",\n linkedin_ads: \"NO_LINKEDIN_ADS_CONNECTION\",\n }[platform];\n\n const envelope = {\n ok: false,\n error: {\n code,\n message: originalMessage || `No ${platformName} connection found for this company.`,\n fix: optionalTargetCompany()\n ? { action: \"continue_without\", explanation: connectionFixExplanation(platform) }\n : {\n action: \"request_connection\",\n explanation: `${connectionFixExplanation(platform, originalMessage)} (Optional fallback for estimated external insights: 'baker research ${alternative}'.)`,\n },\n retryable: false,\n },\n };\n\n writeJsonEnvelope(envelope);\n process.exit(1);\n}\n\n/**\n * Does this API failure mean \"the platform isn't connected\"? The read commands\n * surface the backend's own 404/403 verbatim, so the connect fix has to be\n * recognised from the code the client mapped it to plus the message.\n */\nexport function isNotConnectedError(code: string, message: string): boolean {\n if (code !== \"NOT_FOUND\" && code !== \"UNAUTHORIZED\" && code !== \"FORBIDDEN\") {\n return false;\n }\n // The last alternative is the write-path 403 (\"customer X is not in this\n // company's connected Google Ads accounts\") — a different sentence for the\n // same remedy: connect, and pick the account.\n return /no .* connection found|not connected|no .* (selected|picked)|is not in .* connected/i.test(message);\n}\n\n/**\n * Does this failure warrant the connect form? A dead token (401) always does —\n * whatever the wording, the remedy is to sign in again.\n *\n * A 404 or 403 only does when the backend says so. Both codes are overloaded:\n * 403 is also an asset-level refusal on a live connection (reconnecting cannot\n * grant it), and 404 is also how \"no staged op <ref> in this draft\" and a\n * mistyped `--chat` come back. Answering either with \"ask the user to connect\n * Meta Ads\" sends the agent to fix something that was never broken, and the\n * real missing-connection 404 says \"No <platform> connection found\" anyway.\n */\nexport function needsConnectionFix(code: string, message: string): boolean {\n if (code === \"UNAUTHORIZED\") {\n return true;\n }\n return isNotConnectedError(code, message);\n}\n\n/**\n * The organization workspace's refusal of a write to a company (`--company`).\n * It is about where the change belongs, not about the platform, so no\n * platform's permission advice applies to it.\n */\nexport function isOrganizationReadRefusal(message: string): boolean {\n return message.startsWith(\"The organization workspace only reads its companies\");\n}\n","import { createHash } from \"node:crypto\";\nimport { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { optionalTargetCompany } from \"../../env.ts\";\nimport type { CacheEntry } from \"./types.ts\";\n\n/**\n * One folder per company a call reads (`--company`), so the organization\n * workspace never answers one company's read with another's cached accounts.\n * Resolved per call: the flag is read after the command's modules load.\n */\nfunction cacheDir(): string {\n const company = optionalTargetCompany()?.replace(/[^a-zA-Z0-9_]/g, \"\");\n return join(homedir(), \".baker\", \"cache\", \"ads\", ...(company ? [\"company\", company] : []));\n}\n\nfunction ensureDir(dir: string): void {\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n}\n\nfunction hashKey(key: string): string {\n return createHash(\"sha256\").update(key).digest(\"hex\").slice(0, 16);\n}\n\nfunction cachePath(category: string, key: string): string {\n const dir = join(cacheDir(), category);\n ensureDir(dir);\n return join(dir, `${hashKey(key)}.json`);\n}\n\nexport function cacheGet<T>(category: string, key: string): CacheEntry<T> | null {\n const path = cachePath(category, key);\n if (!existsSync(path)) {\n return null;\n }\n try {\n const raw = readFileSync(path, \"utf-8\");\n const entry = JSON.parse(raw) as CacheEntry<T>;\n if (entry.expiresAt < Date.now()) {\n rmSync(path, { force: true });\n return null;\n }\n return entry;\n } catch {\n rmSync(path, { force: true });\n return null;\n }\n}\n\nexport function cacheSet<T>(\n category: string,\n key: string,\n data: T,\n ttlMs: number,\n fields?: Record<string, string>,\n): void {\n const path = cachePath(category, key);\n const entry: CacheEntry<T> = {\n expiresAt: Date.now() + ttlMs,\n data,\n fields,\n };\n writeFileSync(path, JSON.stringify(entry), \"utf-8\");\n}\n\nconst HOUR = 60 * 60 * 1000;\nconst MINUTE = 60 * 1000;\n\nexport function getQueryTtl(query: string): number {\n const upper = query.toUpperCase();\n if (upper.includes(\"TODAY\")) {\n return 15 * MINUTE;\n }\n if (upper.includes(\"LAST_7_DAYS\") || upper.includes(\"LAST_14_DAYS\")) {\n return 1 * HOUR;\n }\n // Historical data (BETWEEN, LAST_30_DAYS, LAST_90_DAYS, etc.)\n return 6 * HOUR;\n}\n\nexport function buildQueryCacheKey(customerId: string, query: string): string {\n const today = new Date().toISOString().slice(0, 10);\n return `${customerId}:${today}:${query.trim().replace(/\\s+/g, \" \")}`;\n}\n\ninterface CachedAccount {\n id: string;\n access_type: \"direct\" | \"managed\";\n manager_id?: string;\n}\n\nexport function getManagerIdForCustomer(customerId: string): string | undefined {\n const cached = cacheGet<CachedAccount[]>(\"accounts\", \"list\");\n if (!cached) return undefined;\n const account = cached.data.find((a) => a.id === customerId);\n if (account?.access_type === \"managed\") return account.manager_id;\n return undefined;\n}\n","import { ApiError, apiGet } from \"../../client.ts\";\nimport { getEnv } from \"../../env.ts\";\nimport { handleConnectionError, isNotConnectedError } from \"../../error-handler.ts\";\nimport type { QueryContext } from \"../../geo-context.ts\";\nimport { cacheGet, cacheSet } from \"./cache.ts\";\nimport type { AdsErrorEnvelope, AdsFileSummary, AdsSuccessEnvelope } from \"./types.ts\";\n\ntype AdsOutput =\n | AdsSuccessEnvelope<unknown>\n | AdsErrorEnvelope\n | AdsFileSummary\n | { ok: true; data: unknown; query_context?: QueryContext; cached?: true; fields?: Record<string, string> }\n | { ok: false; error: { code: string; message: string } };\n\nexport function writeAdsJson(envelope: AdsOutput): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\nexport function writeJsonEnvelope(envelope: Record<string, unknown>): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\n/** The formats `writeAdsOutput` prints. */\nexport const TABLE_OUTPUT_FORMATS = [\"json\", \"csv\", \"jsonl\", \"md\"] as const;\n\n/** Why `--output <format>` cannot be printed, or null — rather than quietly falling back to JSON. */\nexport function outputFormatRefusal(format: string, supported: readonly string[]): string | null {\n if (supported.includes(format)) return null;\n const list =\n supported.length > 1 ? `${supported.slice(0, -1).join(\", \")} or ${supported.at(-1)}` : supported.join(\"\");\n return `--output ${format} is not supported — use ${list}`;\n}\n\nexport function toCsvRow(values: string[]): string {\n return values\n .map((v) => {\n if (v.includes(\",\") || v.includes('\"') || v.includes(\"\\n\")) {\n return `\"${v.replace(/\"/g, '\"\"')}\"`;\n }\n return v;\n })\n .join(\",\");\n}\n\nfunction flattenRow(row: Record<string, unknown>): Record<string, string> {\n const flat: Record<string, string> = {};\n for (const [key, val] of Object.entries(row)) {\n flat[key] = typeof val === \"object\" && val !== null ? JSON.stringify(val) : String(val ?? \"\");\n }\n return flat;\n}\n\n/**\n * One write per table: a line-by-line write piped into `head` hits a closed pipe on\n * the next line and crashes with EPIPE, where a single write lands in the pipe buffer.\n */\nfunction writeWhole(lines: string[]): void {\n process.stdout.write(`${lines.join(\"\\n\")}\\n`);\n}\n\nfunction writeAdsCsv(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n const lines = [toCsvRow(cols)];\n for (const row of data) {\n const flat = flattenRow(row);\n lines.push(toCsvRow(cols.map((f) => flat[f] ?? \"\")));\n }\n writeWhole(lines);\n}\n\nfunction writeAdsJsonl(data: Array<Record<string, unknown>>): void {\n if (data.length === 0) return;\n writeWhole(data.map((row) => JSON.stringify(row)));\n}\n\n/** A `|` or line break in a name would split its cell and shift every later column. */\nfunction mdCell(value: string): string {\n return value.replace(/\\|/g, \"\\\\|\").replace(/\\r?\\n/g, \" \");\n}\n\nfunction writeAdsMd(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n const lines = [`| ${cols.join(\" | \")} |`, `| ${cols.map(() => \"---\").join(\" | \")} |`];\n for (const row of data) {\n const flat = flattenRow(row);\n lines.push(`| ${cols.map((f) => mdCell(flat[f] ?? \"\")).join(\" | \")} |`);\n }\n writeWhole(lines);\n}\n\n/**\n * `hints` ride in the JSON envelope; csv/jsonl/md stdout has no room for them,\n * and an empty result is exactly when the hint matters, so they go to stderr.\n */\nexport function writeAdsOutput(\n data: Array<Record<string, unknown>>,\n format: string,\n fields?: string[],\n hints: string[] = [],\n): void {\n switch (format) {\n case \"csv\":\n writeAdsCsv(data, fields);\n break;\n case \"jsonl\":\n writeAdsJsonl(data);\n break;\n case \"md\":\n writeAdsMd(data, fields);\n break;\n default:\n writeJsonEnvelope(hints.length > 0 ? { ok: true, data, hints } : { ok: true, data });\n return;\n }\n for (const hint of hints) process.stderr.write(`${hint}\\n`);\n}\n\ninterface AccountInfo {\n id: string;\n name: string;\n access_type: \"direct\" | \"managed\";\n level: number;\n manager_id?: string;\n}\n\nasync function fetchAccounts(useCache = true): Promise<AccountInfo[]> {\n if (useCache) {\n const cached = cacheGet<AccountInfo[]>(\"accounts\", \"list\");\n if (cached) return cached.data;\n }\n const params = !useCache ? { \"skip-cache\": \"true\" } : undefined;\n const data = await apiGet<AccountInfo[]>(\"/api/ads/google/accounts\", params);\n if (useCache) {\n cacheSet(\"accounts\", \"list\", data, 60 * 60 * 1000);\n }\n return data;\n}\n\nexport async function resolveCustomerId(args: Record<string, unknown>): Promise<string> {\n const fromArgs = args[\"customer-id\"] as string | undefined;\n const customerId = fromArgs || getEnv().BAKER_GOOGLE_ADS_CUSTOMER_ID;\n\n if (customerId) {\n if (!/^\\d{10}$/.test(customerId)) {\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_CUSTOMER_ID\",\n message:\n \"Customer ID must be exactly 10 digits without dashes. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.\",\n },\n });\n process.exit(1);\n }\n return customerId;\n }\n\n const useCache = !args[\"no-cache\"];\n\n try {\n const accounts = await fetchAccounts(useCache);\n const [single] = accounts;\n if (accounts.length === 1 && single) {\n process.stderr.write(`Using account \"${single.name}\" (${single.id})\\n`);\n return single.id;\n }\n if (accounts.length === 0) {\n handleConnectionError(\"google_ads\");\n }\n const list = accounts.map((a) => ` ${a.id} ${a.name}`).join(\"\\n\");\n writeAdsJson({\n ok: false,\n error: {\n code: \"MULTIPLE_ACCOUNTS\",\n message: `Multiple accounts found. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID:\\n${list}`,\n },\n });\n process.exit(1);\n } catch (err) {\n // \"No connection\" reaches here as a 404/403 from the accounts lookup. Reporting it as\n // an unusable customer id sends the agent hunting for an id that cannot exist yet.\n if (err instanceof ApiError && isNotConnectedError(err.code, err.message)) {\n handleConnectionError(\"google_ads\", err.message);\n }\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_CUSTOMER_ID\",\n message: \"Could not auto-detect account. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.\",\n },\n });\n process.exit(1);\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/error-handler.ts","../src/commands/ads/cache.ts","../src/commands/ads/output.ts"],"sourcesContent":["import { writeJsonEnvelope } from \"./commands/ads/output.ts\";\nimport { optionalTargetCompany } from \"./env.ts\";\n\ntype ConnectionPlatform = \"google_ads\" | \"ga4\" | \"gsc\" | \"x_ads\" | \"meta_ads\" | \"linkedin_ads\";\n\n/**\n * Platforms the agent can get connected without the user leaving the chat, via\n * the blocking `request_connection` tool, and the id that tool expects. Every\n * platform this CLI can talk to is here — keep it in step with\n * `CONNECTION_PLATFORMS` in `packages/bridge/src/hono/connection-input.ts`: a\n * platform the tool accepts but this map omits sends the user to Settings for a\n * door the agent could have opened itself.\n */\nconst REQUEST_CONNECTION_PLATFORM: Record<ConnectionPlatform, string> = {\n google_ads: \"google-ads\",\n ga4: \"google-analytics\",\n gsc: \"google-search-console\",\n linkedin_ads: \"linkedin\",\n meta_ads: \"meta\",\n x_ads: \"x-ads\",\n};\n\nconst PLATFORM_NAME: Record<ConnectionPlatform, string> = {\n google_ads: \"Google Ads\",\n ga4: \"Google Analytics 4\",\n gsc: \"Google Search Console\",\n x_ads: \"X Ads\",\n meta_ads: \"Meta Ads\",\n linkedin_ads: \"LinkedIn Ads\",\n};\n\n/**\n * How to tell the agent to get a platform connected. Never \"send them to\n * Settings\" for a platform `request_connection` covers — that ends the turn on a\n * wall the agent could have opened itself, and it now covers every platform this\n * CLI talks to. The fallback line matters too: if the `request_connection` call\n * fails, the agent must still be able to say where the connect button is instead\n * of stalling.\n */\nexport function connectionFixExplanation(platform: ConnectionPlatform, originalMessage?: string): string {\n const name = PLATFORM_NAME[platform];\n const slug = REQUEST_CONNECTION_PLATFORM[platform];\n // Read with `--company` from the organization workspace: connecting from here\n // would connect the workspace, not the company the read named.\n if (optionalTargetCompany()) {\n return (\n `${name} is not connected for that company. It can only be connected in that company's own workspace, ` +\n `never with \\`request_connection\\` from here. Show that company as not connected for ${name} and carry on ` +\n \"with the others.\"\n );\n }\n if (originalMessage !== undefined && SIGN_IN_ENDED.test(originalMessage)) {\n return (\n `${name} is connected, but its sign-in no longer works (it expired, or was revoked on the platform) — this is ` +\n `not a Baker error, and retrying later cannot fix it: only the user signing in again can. Call the ` +\n `\\`request_connection\\` tool now with { platform: \"${slug}\", reason } — the card offers Reconnect. If that call ` +\n `fails, give the exact route: dashboard → Brain → Integrations → Platforms → ${name} → Reconnect. Then carry on ` +\n \"with the rest of the task and say what stays unavailable until it is reconnected.\"\n );\n }\n return (\n `${name} is not connected for this company (or no account has been picked). Don't send the user to Settings ` +\n `or end the turn here — call the \\`request_connection\\` tool with { platform: \"${slug}\", reason } and ` +\n `they connect and pick their accounts from inside the chat. If the \\`request_connection\\` call fails, say so ` +\n `plainly and give the exact route: dashboard → Brain → Integrations → Platforms → ${name}. Then carry on with the ` +\n `rest of the task and say what stays unavailable until it is connected.`\n );\n}\n\n/** How the backend says a stored sign-in stopped working (`reconnectMessage`, `convex/oauth/connectedPlatforms.ts`). */\nconst SIGN_IN_ENDED = /connection expired|must reconnect/i;\n\n/**\n * Shared error handler for \"No Connection\" scenarios.\n * Provides a structured error for AI agents with a suggested fix and alternative commands.\n */\nexport function handleConnectionError(platform: ConnectionPlatform, originalMessage?: string): never {\n const platformName = PLATFORM_NAME[platform];\n\n const alternative = {\n google_ads: \"keywords-for-site or research advertisers\",\n ga4: \"lighthouse for page performance\",\n gsc: \"keywords-for-site or research keyword-gap\",\n x_ads: \"research advertisers\",\n meta_ads: \"research advertisers or research keyword-ideas\",\n linkedin_ads: \"research advertisers (LinkedIn Ad Library) or research keyword-ideas\",\n }[platform];\n\n const code = {\n google_ads: \"NO_GOOGLE_ADS_CONNECTION\",\n ga4: \"NO_GA4_CONNECTION\",\n gsc: \"NO_GSC_CONNECTION\",\n x_ads: \"NO_X_ADS_CONNECTION\",\n meta_ads: \"NO_META_ADS_CONNECTION\",\n linkedin_ads: \"NO_LINKEDIN_ADS_CONNECTION\",\n }[platform];\n\n const envelope = {\n ok: false,\n error: {\n code,\n message: originalMessage || `No ${platformName} connection found for this company.`,\n fix: optionalTargetCompany()\n ? { action: \"continue_without\", explanation: connectionFixExplanation(platform) }\n : {\n action: \"request_connection\",\n explanation: `${connectionFixExplanation(platform, originalMessage)} (Optional fallback for estimated external insights: 'baker research ${alternative}'.)`,\n },\n retryable: false,\n },\n };\n\n writeJsonEnvelope(envelope);\n process.exit(1);\n}\n\n/**\n * Does this API failure mean \"the platform isn't connected\"? The read commands\n * surface the backend's own 404/403 verbatim, so the connect fix has to be\n * recognised from the code the client mapped it to plus the message.\n */\nexport function isNotConnectedError(code: string, message: string): boolean {\n if (code !== \"NOT_FOUND\" && code !== \"UNAUTHORIZED\" && code !== \"FORBIDDEN\") {\n return false;\n }\n // The last alternative is the write-path 403 (\"customer X is not in this\n // company's connected Google Ads accounts\") — a different sentence for the\n // same remedy: connect, and pick the account.\n return /no .* connection found|not connected|no .* (selected|picked)|is not in .* connected/i.test(message);\n}\n\n/**\n * Does this failure warrant the connect form? A dead token (401) always does —\n * whatever the wording, the remedy is to sign in again.\n *\n * A 404 or 403 only does when the backend says so. Both codes are overloaded:\n * 403 is also an asset-level refusal on a live connection (reconnecting cannot\n * grant it), and 404 is also how \"no staged op <ref> in this draft\" and a\n * mistyped `--chat` come back. Answering either with \"ask the user to connect\n * Meta Ads\" sends the agent to fix something that was never broken, and the\n * real missing-connection 404 says \"No <platform> connection found\" anyway.\n */\nexport function needsConnectionFix(code: string, message: string): boolean {\n if (code === \"UNAUTHORIZED\") {\n return true;\n }\n return isNotConnectedError(code, message);\n}\n\n/**\n * The organization workspace's refusal of a write to a company (`--company`).\n * It is about where the change belongs, not about the platform, so no\n * platform's permission advice applies to it.\n */\nexport function isOrganizationReadRefusal(message: string): boolean {\n return message.startsWith(\"The organization workspace only reads its companies\");\n}\n","import { createHash } from \"node:crypto\";\nimport { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { optionalTargetCompany } from \"../../env.ts\";\nimport type { CacheEntry } from \"./types.ts\";\n\n/**\n * One folder per company a call reads (`--company`), so the organization\n * workspace never answers one company's read with another's cached accounts.\n * Resolved per call: the flag is read after the command's modules load.\n */\nfunction cacheDir(): string {\n const company = optionalTargetCompany()?.replace(/[^a-zA-Z0-9_]/g, \"\");\n return join(homedir(), \".baker\", \"cache\", \"ads\", ...(company ? [\"company\", company] : []));\n}\n\nfunction ensureDir(dir: string): void {\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n}\n\nfunction hashKey(key: string): string {\n return createHash(\"sha256\").update(key).digest(\"hex\").slice(0, 16);\n}\n\nfunction cachePath(category: string, key: string): string {\n const dir = join(cacheDir(), category);\n ensureDir(dir);\n return join(dir, `${hashKey(key)}.json`);\n}\n\nexport function cacheGet<T>(category: string, key: string): CacheEntry<T> | null {\n const path = cachePath(category, key);\n if (!existsSync(path)) {\n return null;\n }\n try {\n const raw = readFileSync(path, \"utf-8\");\n const entry = JSON.parse(raw) as CacheEntry<T>;\n if (entry.expiresAt < Date.now()) {\n rmSync(path, { force: true });\n return null;\n }\n return entry;\n } catch {\n rmSync(path, { force: true });\n return null;\n }\n}\n\nexport function cacheSet<T>(\n category: string,\n key: string,\n data: T,\n ttlMs: number,\n fields?: Record<string, string>,\n): void {\n const path = cachePath(category, key);\n const entry: CacheEntry<T> = {\n expiresAt: Date.now() + ttlMs,\n data,\n fields,\n };\n writeFileSync(path, JSON.stringify(entry), \"utf-8\");\n}\n\nconst HOUR = 60 * 60 * 1000;\nconst MINUTE = 60 * 1000;\n\nexport function getQueryTtl(query: string): number {\n const upper = query.toUpperCase();\n if (upper.includes(\"TODAY\")) {\n return 15 * MINUTE;\n }\n if (upper.includes(\"LAST_7_DAYS\") || upper.includes(\"LAST_14_DAYS\")) {\n return 1 * HOUR;\n }\n // Historical data (BETWEEN, LAST_30_DAYS, LAST_90_DAYS, etc.)\n return 6 * HOUR;\n}\n\nexport function buildQueryCacheKey(customerId: string, query: string): string {\n const today = new Date().toISOString().slice(0, 10);\n return `${customerId}:${today}:${query.trim().replace(/\\s+/g, \" \")}`;\n}\n\ninterface CachedAccount {\n id: string;\n access_type: \"direct\" | \"managed\";\n manager_id?: string;\n}\n\nexport function getManagerIdForCustomer(customerId: string): string | undefined {\n const cached = cacheGet<CachedAccount[]>(\"accounts\", \"list\");\n if (!cached) return undefined;\n const account = cached.data.find((a) => a.id === customerId);\n if (account?.access_type === \"managed\") return account.manager_id;\n return undefined;\n}\n","import { ApiError, apiGet } from \"../../client.ts\";\nimport { getEnv } from \"../../env.ts\";\nimport { handleConnectionError, isNotConnectedError } from \"../../error-handler.ts\";\nimport type { QueryContext } from \"../../geo-context.ts\";\nimport { cacheGet, cacheSet } from \"./cache.ts\";\nimport type { AdsErrorEnvelope, AdsFileSummary, AdsSuccessEnvelope } from \"./types.ts\";\n\ntype AdsOutput =\n | AdsSuccessEnvelope<unknown>\n | AdsErrorEnvelope\n | AdsFileSummary\n | { ok: true; data: unknown; query_context?: QueryContext; cached?: true; fields?: Record<string, string> }\n | { ok: false; error: { code: string; message: string } };\n\nexport function writeAdsJson(envelope: AdsOutput): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\nexport function writeJsonEnvelope(envelope: Record<string, unknown>): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\n/** The formats `writeAdsOutput` prints. */\nexport const TABLE_OUTPUT_FORMATS = [\"json\", \"csv\", \"jsonl\", \"md\"] as const;\n\n/** Why `--output <format>` cannot be printed, or null — rather than quietly falling back to JSON. */\nexport function outputFormatRefusal(format: string, supported: readonly string[]): string | null {\n if (supported.includes(format)) return null;\n const list =\n supported.length > 1 ? `${supported.slice(0, -1).join(\", \")} or ${supported.at(-1)}` : supported.join(\"\");\n return `--output ${format} is not supported — use ${list}`;\n}\n\nexport function toCsvRow(values: string[]): string {\n return values\n .map((v) => {\n if (v.includes(\",\") || v.includes('\"') || v.includes(\"\\n\")) {\n return `\"${v.replace(/\"/g, '\"\"')}\"`;\n }\n return v;\n })\n .join(\",\");\n}\n\nfunction flattenRow(row: Record<string, unknown>): Record<string, string> {\n const flat: Record<string, string> = {};\n for (const [key, val] of Object.entries(row)) {\n flat[key] = typeof val === \"object\" && val !== null ? JSON.stringify(val) : String(val ?? \"\");\n }\n return flat;\n}\n\n/**\n * One write per table: a line-by-line write piped into `head` hits a closed pipe on\n * the next line and crashes with EPIPE, where a single write lands in the pipe buffer.\n */\nfunction writeWhole(lines: string[]): void {\n process.stdout.write(`${lines.join(\"\\n\")}\\n`);\n}\n\nfunction writeAdsCsv(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n const lines = [toCsvRow(cols)];\n for (const row of data) {\n const flat = flattenRow(row);\n lines.push(toCsvRow(cols.map((f) => flat[f] ?? \"\")));\n }\n writeWhole(lines);\n}\n\nfunction writeAdsJsonl(data: Array<Record<string, unknown>>): void {\n if (data.length === 0) return;\n writeWhole(data.map((row) => JSON.stringify(row)));\n}\n\n/** A `|` or line break in a name would split its cell and shift every later column. */\nfunction mdCell(value: string): string {\n return value.replace(/\\|/g, \"\\\\|\").replace(/\\r?\\n/g, \" \");\n}\n\nfunction writeAdsMd(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n const lines = [`| ${cols.join(\" | \")} |`, `| ${cols.map(() => \"---\").join(\" | \")} |`];\n for (const row of data) {\n const flat = flattenRow(row);\n lines.push(`| ${cols.map((f) => mdCell(flat[f] ?? \"\")).join(\" | \")} |`);\n }\n writeWhole(lines);\n}\n\n/**\n * `hints` ride in the JSON envelope; csv/jsonl/md stdout has no room for them,\n * and an empty result is exactly when the hint matters, so they go to stderr.\n */\nexport function writeAdsOutput(\n data: Array<Record<string, unknown>>,\n format: string,\n fields?: string[],\n hints: string[] = [],\n): void {\n switch (format) {\n case \"csv\":\n writeAdsCsv(data, fields);\n break;\n case \"jsonl\":\n writeAdsJsonl(data);\n break;\n case \"md\":\n writeAdsMd(data, fields);\n break;\n default:\n writeJsonEnvelope(hints.length > 0 ? { ok: true, data, hints } : { ok: true, data });\n return;\n }\n for (const hint of hints) process.stderr.write(`${hint}\\n`);\n}\n\ninterface AccountInfo {\n id: string;\n name: string;\n access_type: \"direct\" | \"managed\";\n level: number;\n manager_id?: string;\n}\n\nasync function fetchAccounts(useCache = true): Promise<AccountInfo[]> {\n if (useCache) {\n const cached = cacheGet<AccountInfo[]>(\"accounts\", \"list\");\n if (cached) return cached.data;\n }\n const params = !useCache ? { \"skip-cache\": \"true\" } : undefined;\n const data = await apiGet<AccountInfo[]>(\"/api/ads/google/accounts\", params);\n if (useCache) {\n cacheSet(\"accounts\", \"list\", data, 60 * 60 * 1000);\n }\n return data;\n}\n\nexport async function resolveCustomerId(args: Record<string, unknown>): Promise<string> {\n const fromArgs = args[\"customer-id\"] as string | undefined;\n const customerId = fromArgs || getEnv().BAKER_GOOGLE_ADS_CUSTOMER_ID;\n\n if (customerId) {\n if (!/^\\d{10}$/.test(customerId)) {\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_CUSTOMER_ID\",\n message:\n \"Customer ID must be exactly 10 digits without dashes. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.\",\n },\n });\n process.exit(1);\n }\n return customerId;\n }\n\n const useCache = !args[\"no-cache\"];\n\n try {\n const accounts = await fetchAccounts(useCache);\n const [single] = accounts;\n if (accounts.length === 1 && single) {\n // A JSON capture is often `2>&1`, where this line would sit in front of the envelope. An --out\n // read always answers with a JSON summary, whatever --output names.\n const answersInJson = (args.output ?? \"json\") === \"json\" || Boolean(args.out);\n if (!answersInJson) process.stderr.write(`Using account \"${single.name}\" (${single.id})\\n`);\n return single.id;\n }\n if (accounts.length === 0) {\n handleConnectionError(\"google_ads\");\n }\n const list = accounts.map((a) => ` ${a.id} ${a.name}`).join(\"\\n\");\n writeAdsJson({\n ok: false,\n error: {\n code: \"MULTIPLE_ACCOUNTS\",\n message: `Multiple accounts found. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID:\\n${list}`,\n },\n });\n process.exit(1);\n } catch (err) {\n // \"No connection\" reaches here as a 404/403 from the accounts lookup. Reporting it as\n // an unusable customer id sends the agent hunting for an id that cannot exist yet.\n if (err instanceof ApiError && isNotConnectedError(err.code, err.message)) {\n handleConnectionError(\"google_ads\", err.message);\n }\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_CUSTOMER_ID\",\n message: \"Could not auto-detect account. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.\",\n },\n });\n process.exit(1);\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
isNotConnectedError,
|
|
7
7
|
writeJsonEnvelope
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MK4HCMEA.js";
|
|
9
9
|
import {
|
|
10
10
|
ApiError,
|
|
11
11
|
apiPost
|
|
@@ -149,4 +149,4 @@ export {
|
|
|
149
149
|
draftAction,
|
|
150
150
|
draftList
|
|
151
151
|
};
|
|
152
|
-
//# sourceMappingURL=chunk-
|
|
152
|
+
//# sourceMappingURL=chunk-OLPABGH3.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-PILLZPNC.js";
|
|
9
9
|
import {
|
|
10
10
|
writeJsonEnvelope
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MK4HCMEA.js";
|
|
12
12
|
import {
|
|
13
13
|
apiPost
|
|
14
14
|
} from "./chunk-QEREDRZO.js";
|
|
@@ -185,4 +185,4 @@ export {
|
|
|
185
185
|
lookupReport,
|
|
186
186
|
lookupCommand
|
|
187
187
|
};
|
|
188
|
-
//# sourceMappingURL=chunk-
|
|
188
|
+
//# sourceMappingURL=chunk-QUSDGZFS.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
writeJsonEnvelope
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MK4HCMEA.js";
|
|
4
4
|
import {
|
|
5
5
|
PEOPLE_PREVIEW_ROWS,
|
|
6
6
|
maskedPersonValueIssue
|
|
@@ -24023,4 +24023,4 @@ export {
|
|
|
24023
24023
|
runChatgptRead,
|
|
24024
24024
|
runChatgptListRead
|
|
24025
24025
|
};
|
|
24026
|
-
//# sourceMappingURL=chunk-
|
|
24026
|
+
//# sourceMappingURL=chunk-QZSNT67Z.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
writeAdsOutput
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MK4HCMEA.js";
|
|
4
4
|
import {
|
|
5
5
|
asRecord,
|
|
6
6
|
shapeListRows
|
|
@@ -285,4 +285,4 @@ export {
|
|
|
285
285
|
META_LIST_SHAPE_ARGS,
|
|
286
286
|
registerMetaListSchema
|
|
287
287
|
};
|
|
288
|
-
//# sourceMappingURL=chunk-
|
|
288
|
+
//# sourceMappingURL=chunk-RF3TP643.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
isNotConnectedError,
|
|
7
7
|
writeJsonEnvelope
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MK4HCMEA.js";
|
|
9
9
|
import {
|
|
10
10
|
ApiError,
|
|
11
11
|
apiPost
|
|
@@ -188,4 +188,4 @@ export {
|
|
|
188
188
|
draftAction,
|
|
189
189
|
draftList
|
|
190
190
|
};
|
|
191
|
-
//# sourceMappingURL=chunk-
|
|
191
|
+
//# sourceMappingURL=chunk-RIRSFFWA.js.map
|