@koda-sl/baker-cli 0.543.0 → 0.544.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 +56 -9
- package/dist/account-2HJ4GKHN.js +82 -0
- package/dist/account-BGBNYZPA.js +139 -0
- package/dist/account-QG2AFCRO.js +82 -0
- package/dist/account-assets-R3XAVQEB.js +290 -0
- package/dist/account-level-EEXQALNI.js +611 -0
- package/dist/account-reads-2QJQU63B.js +219 -0
- package/dist/account-users-TTWSAGAL.js +64 -0
- package/dist/account-writes-FZ3KCJZY.js +68 -0
- package/dist/accounts-ARO5HAHH.js +115 -0
- package/dist/accounts-CN32WCRF.js +80 -0
- package/dist/accounts-EP5JCI7S.js +76 -0
- package/dist/accounts-ILVWPJBC.js +114 -0
- package/dist/accounts-RFJ4MENH.js +701 -0
- package/dist/actions-SYRCIDHV.js +55 -0
- package/dist/active-entities-5RIKIFLQ.js +103 -0
- package/dist/activecampaign-NASTXUEK.js +938 -0
- package/dist/activities-AZYGCPU3.js +75 -0
- package/dist/ad-group-writes-XGG3WQEO.js +172 -0
- package/dist/ad-groups-GZIPUN64.js +70 -0
- package/dist/ad-writes-2VTRWQLW.js +176 -0
- package/dist/add-3JH2GHSO.js +97 -0
- package/dist/add-GU5YOXPC.js +107 -0
- package/dist/add-IOEWGFPR.js +148 -0
- package/dist/add-KN6SPCY5.js +305 -0
- package/dist/add-LJXJ7RZV.js +81 -0
- package/dist/add-V46WFYNJ.js +80 -0
- package/dist/add-accounts-6ELLH7KV.js +91 -0
- package/dist/ads-I6WMPAO3.js +48 -0
- package/dist/ads-LNWALF6G.js +79 -0
- package/dist/ads-MHHPZ5OB.js +120 -0
- package/dist/ads-SXJTSL3V.js +128 -0
- package/dist/adsets-FARX5YPE.js +182 -0
- package/dist/advertisers-I7UCHETO.js +123 -0
- package/dist/advertisers-XLHC7DD6.js +125 -0
- package/dist/analytics-AWBWIVXW.js +2437 -0
- package/dist/analytics-BG72H654.js +447 -0
- package/dist/animate-DM4OUJMR.js +480 -0
- package/dist/approved-TA5KRDSX.js +73 -0
- package/dist/asset-writes-YTAJAXZX.js +50 -0
- package/dist/assign-2H3AMY7Q.js +80 -0
- package/dist/audience-size-3J4WYUTM.js +76 -0
- package/dist/audience-writes-SHZKH2EI.js +327 -0
- package/dist/audiences-7D5VPOWF.js +280 -0
- package/dist/audiences-MDJ34WFZ.js +85 -0
- package/dist/audiences-TFFWJWAO.js +106 -0
- package/dist/audit-QC4VORTD.js +154 -0
- package/dist/audit-UJUVBE3C.js +88 -0
- package/dist/autocomplete-B7YVYISF.js +114 -0
- package/dist/avatars-LUCFVVCN.js +38 -0
- package/dist/bid-pricing-4BJ4HU3F.js +103 -0
- package/dist/brand-KTM3OQNE.js +22 -0
- package/dist/brief-UVCG76J2.js +543 -0
- package/dist/businesses-TR4S3FWZ.js +54 -0
- package/dist/campaign-groups-FUJEB5LG.js +99 -0
- package/dist/campaign-writes-H22P6YPW.js +176 -0
- package/dist/campaign-writes-Z3CJKYW3.js +168 -0
- package/dist/campaigns-265JXD2Z.js +78 -0
- package/dist/campaigns-AON44UCB.js +130 -0
- package/dist/campaigns-CGYH7I2R.js +113 -0
- package/dist/campaigns-QUZN5AFK.js +111 -0
- package/dist/canvas-2DIDJAD4.js +46 -0
- package/dist/capabilities-VQF723CB.js +147 -0
- package/dist/cards-45GJXE6B.js +85 -0
- package/dist/catalog-DPUQBZZ7.js +66 -0
- package/dist/catalogs-SBXFAD3X.js +130 -0
- package/dist/catalogs-XNFTLYJV.js +781 -0
- package/dist/changes-QVXOKFLJ.js +143 -0
- package/dist/chatgpt-NVMLRIZY.js +47 -0
- package/dist/chats-BWMB3I6F.js +449 -0
- package/dist/check-6B2L74FJ.js +107 -0
- package/dist/chunk-3BI2PHW4.js +249 -0
- package/dist/chunk-3KIRDKVB.js +930 -0
- package/dist/chunk-3TZW2FOS.js +1646 -0
- package/dist/chunk-3W4IORXH.js +166 -0
- package/dist/chunk-464UOCP6.js +94 -0
- package/dist/chunk-4D73PLXU.js +843 -0
- package/dist/chunk-4GLSV5AI.js +455 -0
- package/dist/chunk-4KCYP423.js +106 -0
- package/dist/chunk-4THPTXKA.js +224 -0
- package/dist/chunk-5NGVIBIX.js +334 -0
- package/dist/chunk-5NGVIBIX.js.map +1 -0
- package/dist/chunk-5RX473E3.js +51 -0
- package/dist/chunk-6G6UUR3T.js +138 -0
- package/dist/chunk-6REXNFPV.js +69 -0
- package/dist/chunk-6SM5TZO4.js +191 -0
- package/dist/chunk-7IU4WGGY.js +392 -0
- package/dist/chunk-7RXR34EN.js +89 -0
- package/dist/chunk-AM4WK3UM.js +857 -0
- package/dist/chunk-APCZKTQZ.js +2209 -0
- package/dist/chunk-ATD3QB46.js +163 -0
- package/dist/chunk-B2OHCWYB.js +229 -0
- package/dist/chunk-BGT5ZA4L.js +136 -0
- package/dist/chunk-BKIHYRQL.js +149 -0
- package/dist/chunk-BPFNGLDE.js +225 -0
- package/dist/chunk-BSGVRSNK.js +387 -0
- package/dist/chunk-C4EE6LIF.js +25 -0
- package/dist/chunk-CBQMSX2T.js +685 -0
- package/dist/chunk-CBQMSX2T.js.map +1 -0
- package/dist/chunk-CDKO55S4.js +170 -0
- package/dist/chunk-CMXG4X3S.js +203 -0
- package/dist/chunk-D3LTHRZZ.js +66 -0
- package/dist/chunk-DGUN7FUH.js +333 -0
- package/dist/chunk-DSL33LWI.js +139 -0
- package/dist/chunk-E54435XT.js +476 -0
- package/dist/chunk-E65DQNH6.js +100 -0
- package/dist/chunk-EBWOLUII.js +24026 -0
- package/dist/chunk-EMCTUCCJ.js +97 -0
- package/dist/chunk-F4QA4J2S.js +46 -0
- package/dist/chunk-FMUOZSE2.js +910 -0
- package/dist/chunk-FNGBUOPW.js +61 -0
- package/dist/chunk-FPTEBOB5.js +52 -0
- package/dist/chunk-FWSE7AG6.js +544 -0
- package/dist/chunk-G2PHP2JX.js +19 -0
- package/dist/chunk-GEQUWPAX.js +715 -0
- package/dist/chunk-GEQUWPAX.js.map +1 -0
- package/dist/chunk-GFBEO33K.js +1902 -0
- package/dist/chunk-GI7B47X3.js +76 -0
- package/dist/chunk-GJHN3B2Y.js +297 -0
- package/dist/chunk-GN7K3NPI.js +148 -0
- package/dist/chunk-HBDWE7WK.js +98 -0
- package/dist/chunk-HXQOAJLQ.js +45 -0
- package/dist/chunk-HZO5DOF7.js +156 -0
- package/dist/chunk-I6YWF2RA.js +377 -0
- package/dist/chunk-IARLXACF.js +58 -0
- package/dist/chunk-IDITKLYK.js +66 -0
- package/dist/chunk-IJPIIQAX.js +438 -0
- package/dist/chunk-JELKYZ4L.js +73 -0
- package/dist/chunk-JF2XP76K.js +75 -0
- package/dist/chunk-JFNI5SEG.js +494 -0
- package/dist/chunk-JOXEB2AB.js +547 -0
- package/dist/chunk-JY3OJBKZ.js +3510 -0
- package/dist/chunk-KIXVHP2C.js +1919 -0
- package/dist/chunk-LMB44RJE.js +676 -0
- package/dist/chunk-LUIV5R2Z.js +8954 -0
- package/dist/chunk-MGWAZXY6.js +324 -0
- package/dist/chunk-MVWR7JNJ.js +275 -0
- package/dist/chunk-N57MUA4V.js +288 -0
- package/dist/chunk-NBWZVBDG.js +131 -0
- package/dist/chunk-NFXW6C6I.js +7764 -0
- package/dist/chunk-NFXW6C6I.js.map +1 -0
- package/dist/chunk-NGQ5J4FV.js +97 -0
- package/dist/chunk-NIGDG522.js +207 -0
- package/dist/chunk-NPJRACA2.js +35 -0
- package/dist/chunk-OMW4EUKA.js +125 -0
- package/dist/chunk-P2XBADY3.js +42 -0
- package/dist/chunk-P3VY5JEM.js +274 -0
- package/dist/chunk-PFO26LK5.js +479 -0
- package/dist/chunk-PGXUR32U.js +604 -0
- package/dist/chunk-PKZA7XCB.js +831 -0
- package/dist/chunk-Q7BVIPQF.js +76 -0
- package/dist/chunk-QK3HMAVU.js +5471 -0
- package/dist/chunk-RHEWQB5O.js +638 -0
- package/dist/chunk-RJS47NTI.js +142 -0
- package/dist/chunk-RLAUWWGJ.js +429 -0
- package/dist/chunk-RP36XHWT.js +46 -0
- package/dist/chunk-RW33IGR5.js +217 -0
- package/dist/chunk-RWMPH5DX.js +188 -0
- package/dist/chunk-SDIBQH6Y.js +39 -0
- package/dist/chunk-SPBG6OP7.js +219 -0
- package/dist/chunk-SVSWJ56A.js +169 -0
- package/dist/chunk-SVUFNCOE.js +215 -0
- package/dist/chunk-SYLPRIFM.js +1744 -0
- package/dist/chunk-TARINRA4.js +1518 -0
- package/dist/chunk-TNZUMU55.js +167 -0
- package/dist/chunk-USVTT74J.js +26 -0
- package/dist/chunk-V2SU2SVZ.js +23 -0
- package/dist/chunk-VFL6B6F6.js +57 -0
- package/dist/chunk-VMGPRXW2.js +287 -0
- package/dist/chunk-VOUCQ2YW.js +64 -0
- package/dist/chunk-VWOKPC3T.js +84 -0
- package/dist/chunk-W4W3F3P7.js +98 -0
- package/dist/chunk-WAQPF4XP.js +106 -0
- package/dist/chunk-WCIS4FZH.js +2505 -0
- package/dist/chunk-WCIS4FZH.js.map +1 -0
- package/dist/chunk-WOE4TZHJ.js +285 -0
- package/dist/chunk-WUGTZHFI.js +84 -0
- package/dist/chunk-WV3FKE7F.js +91 -0
- package/dist/chunk-XBR7TSZN.js +296 -0
- package/dist/chunk-XG5VGUJ3.js +69 -0
- package/dist/chunk-XJSEDW63.js +207 -0
- package/dist/chunk-XMOELSW7.js +111 -0
- package/dist/chunk-XPXCXUF4.js +64 -0
- package/dist/chunk-XTZVZHTN.js +91 -0
- package/dist/chunk-XYNQMRNX.js +5368 -0
- package/dist/chunk-Y2AKJYI4.js +191 -0
- package/dist/chunk-YGDRGBII.js +197 -0
- package/dist/chunk-YMLJ2H5C.js +74 -0
- package/dist/chunk-YU55LFZZ.js +56 -0
- package/dist/chunk-Z7BNOHTY.js +344 -0
- package/dist/chunk-ZEUAJAKN.js +225 -0
- package/dist/chunk-ZFAZ2V5P.js +103 -0
- package/dist/cite-G5PPVGTC.js +191 -0
- package/dist/cite-G5PPVGTC.js.map +1 -0
- package/dist/claim-XWJJMUON.js +200 -0
- package/dist/cli.js +45 -45
- package/dist/client-6MXJPWFS.js +19 -0
- package/dist/code-TIM5S232.js +76 -0
- package/dist/companies-KVOWGAFU.js +198 -0
- package/dist/company-OVTBZSTS.js +308 -0
- package/dist/complete-3H62J4CN.js +84 -0
- package/dist/config-3GCILBEL.js +88 -0
- package/dist/connect-EZS7NDMA.js +45 -0
- package/dist/content-5OGEZTXU.js +85 -0
- package/dist/conversation-CCW2J2G6.js +96 -0
- package/dist/conversion-report-RB2MU7UD.js +127 -0
- package/dist/conversion-upload-command-XD5AISWW.js +439 -0
- package/dist/conversion-writes-56AIPXPK.js +122 -0
- package/dist/conversions-NRX76ZIT.js +78 -0
- package/dist/conversions-VFSX6NYO.js +140 -0
- package/dist/copy-writes-VPSNWYVX.js +170 -0
- package/dist/countries-77ULLD74.js +82 -0
- package/dist/create-4RGSS522.js +62 -0
- package/dist/create-C7Z47BYL.js +135 -0
- package/dist/create-GOH2JUIY.js +239 -0
- package/dist/create-YDCC3X5V.js +210 -0
- package/dist/creatives-HJ2R6HRF.js +223 -0
- package/dist/creatives-PVMOUTIW.js +118 -0
- package/dist/creatives-PWUBAVOB.js +58 -0
- package/dist/credentials-45X7PJJK.js +290 -0
- package/dist/critique-4J45TRYU.js +1451 -0
- package/dist/critique-KIPVWRUA.js +232 -0
- package/dist/crm-LSG3A4RY.js +227 -0
- package/dist/crm-ZXHUGF52.js +323 -0
- package/dist/crop-TFU3T7BW.js +113 -0
- package/dist/currency-T7VUQVAZ.js +88 -0
- package/dist/custom-conversions-RO2U5NF4.js +128 -0
- package/dist/customers-7GQW7NND.js +65 -0
- package/dist/decide-65GLJMTU.js +199 -0
- package/dist/delete-C5Z6CJJA.js +67 -0
- package/dist/delete-PUJY4JX6.js +85 -0
- package/dist/delete-T3QRUC5I.js +57 -0
- package/dist/delete-TWABWVPE.js +69 -0
- package/dist/delete-U3ZMLXWY.js +69 -0
- package/dist/delete-YAASRHAU.js +71 -0
- package/dist/demographics-YQRCDSKX.js +141 -0
- package/dist/describe-OOC7Q5S6.js +97 -0
- package/dist/describe-Z7XUOSCC.js +97 -0
- package/dist/dimensions-YEG46EKN.js +101 -0
- package/dist/discard-2FRCNBDP.js +69 -0
- package/dist/discover-HRNBTN4K.js +172 -0
- package/dist/discover-WKHGRR2G.js +93 -0
- package/dist/domain-ND56WWT5.js +101 -0
- package/dist/download-B62FEVDK.js +172 -0
- package/dist/download-QYUPXV7Z.js +299 -0
- package/dist/draft-4BEMU7EY.js +283 -0
- package/dist/draft-6E7EQUCU.js +103 -0
- package/dist/draft-AWTS2LBX.js +396 -0
- package/dist/draft-GIJCJIQ5.js +240 -0
- package/dist/draft-RK3ZAUBF.js +100 -0
- package/dist/draft-TZ2MQ24O.js +335 -0
- package/dist/draft-ZNJHDOJT.js +220 -0
- package/dist/draft-ZTOUHIXC.js +310 -0
- package/dist/engine/index.js +14 -14
- package/dist/env-BL77LHRZ.js +53 -0
- package/dist/experiment-3D4HJ7HL.js +1397 -0
- package/dist/experiments-CQMEMZXO.js +236 -0
- package/dist/export-QB7WA36R.js +168 -0
- package/dist/extract-KY2YOEVW.js +121 -0
- package/dist/facets-FVJHPNQE.js +117 -0
- package/dist/favorites-6GAGZDIR.js +178 -0
- package/dist/feed-IL2SGNQL.js +177 -0
- package/dist/feedback-Q4GYVI7P.js +115 -0
- package/dist/feedback-record-UKZPC3QP.js +269 -0
- package/dist/fetch-CCT6ZZ44.js +139 -0
- package/dist/fetch-SIP2BCYJ.js +204 -0
- package/dist/fetch-SIP2BCYJ.js.map +1 -0
- package/dist/find-SWR3KRRR.js +143 -0
- package/dist/fit-6Y6SHLP5.js +65 -0
- package/dist/flows-6654JFGC.js +250 -0
- package/dist/follow-MKXZKUM6.js +94 -0
- package/dist/follow-competitors-Q62S5O7W.js +112 -0
- package/dist/following-4BYSHU6G.js +113 -0
- package/dist/fonts-SM5HLEP4.js +39 -0
- package/dist/forecast-4TS6PIGA.js +169 -0
- package/dist/forecast-7I6YKTYU.js +121 -0
- package/dist/funding-UZUGMCI4.js +85 -0
- package/dist/funnel-ITXHCKXM.js +397 -0
- package/dist/ga4-SBHUQKGK.js +55 -0
- package/dist/generate-JQIK3UYS.js +263 -0
- package/dist/get-42THE7PC.js +56 -0
- package/dist/get-56NGML76.js +92 -0
- package/dist/get-7QHQMT3F.js +38 -0
- package/dist/get-EJ5Q72W7.js +82 -0
- package/dist/get-FGHRSPZJ.js +59 -0
- package/dist/get-GC34EKMH.js +66 -0
- package/dist/get-SOSR3FVM.js +62 -0
- package/dist/get-VQJIQ4P3.js +59 -0
- package/dist/gif-PPCB3BLX.js +110 -0
- package/dist/google-HSIRHXDB.js +3270 -0
- package/dist/google-XHNZTASN.js +144 -0
- package/dist/google-ads-KC3IMYTU.js +198 -0
- package/dist/group-QGTLBE77.js +43 -0
- package/dist/group-U2WSORDA.js +43 -0
- package/dist/gsc-EQYYXMSJ.js +30 -0
- package/dist/history-AWPJ7C35.js +102 -0
- package/dist/history-F765U4J7.js +153 -0
- package/dist/history-VNLS2TKB.js +69 -0
- package/dist/hubspot-VJOE2XCP.js +782 -0
- package/dist/icon-VMJB2MBO.js +137 -0
- package/dist/ideas-E4AWTXNN.js +45 -0
- package/dist/images-WLAJPXFL.js +92 -0
- package/dist/improve-QYP72NOH.js +86 -0
- package/dist/ingest-43DTZJHV.js +123 -0
- package/dist/ingest-B5OOTIAS.js +27 -0
- package/dist/insights-EOUJJRUH.js +658 -0
- package/dist/insights-XY6II7TX.js +132 -0
- package/dist/inspect-WGGPJUS6.js +192 -0
- package/dist/inspiration-CSN3AXDD.js +53 -0
- package/dist/instant-experiences-YJIVONJA.js +263 -0
- package/dist/intent-5XO232DG.js +95 -0
- package/dist/job-RB7LJI4W.js +202 -0
- package/dist/job-create-OYJCLKZ5.js +109 -0
- package/dist/job-status-NTQWCQBZ.js +74 -0
- package/dist/keep-BUORBI7V.js +78 -0
- package/dist/keyword-gap-ZGMK7SMK.js +130 -0
- package/dist/keyword-metrics-TOUOQ7SS.js +200 -0
- package/dist/keywords-for-site-PJHOSSLF.js +131 -0
- package/dist/knowledge-LQXY6UIX.js +195 -0
- package/dist/landing-ILHRRFYD.js +28 -0
- package/dist/landings-CY2PRE2U.js +151 -0
- package/dist/languages-U4HA5KQC.js +40 -0
- package/dist/languages-XO4FEKOB.js +55 -0
- package/dist/launches-EXKYONGX.js +19 -0
- package/dist/layerize-HD7DU6WE.js +190 -0
- package/dist/lead-routes-HBAMCZI4.js +733 -0
- package/dist/leads-5TYQUSIR.js +540 -0
- package/dist/leads-ZDH4PLRE.js +115 -0
- package/dist/learn-WTREPVV2.js +207 -0
- package/dist/library-BZVAYFPU.js +211 -0
- package/dist/lighthouse-4VL2PH24.js +75 -0
- package/dist/line-item-writes-PYADJHLW.js +211 -0
- package/dist/line-items-OYCJMB6Y.js +107 -0
- package/dist/link-CLG2FSJ3.js +67 -0
- package/dist/linkedin-FTZZWW6D.js +1328 -0
- package/dist/linkedin-person-DVBTOKLI.js +139 -0
- package/dist/list-4IE7K3OE.js +67 -0
- package/dist/list-ES7ZHOBJ.js +57 -0
- package/dist/list-FDYKWCOW.js +76 -0
- package/dist/list-HX4TZ3OW.js +50 -0
- package/dist/list-J4XZ3V4A.js +65 -0
- package/dist/list-OBB6Q2SO.js +154 -0
- package/dist/list-OCHRLITF.js +51 -0
- package/dist/list-SW63CXEC.js +306 -0
- package/dist/list-X6IOR6AS.js +93 -0
- package/dist/locations-64JNCQID.js +69 -0
- package/dist/locations-PYZEJPW3.js +40 -0
- package/dist/log-PKFKZQXD.js +95 -0
- package/dist/logo-2I2S2THP.js +18 -0
- package/dist/lookup-S74NWDKI.js +23 -0
- package/dist/make-5MCL4B3T.js +1367 -0
- package/dist/map-JB2OYS7G.js +436 -0
- package/dist/mcp-GS7AO7K5.js +729 -0
- package/dist/media-4V5IBDKN.js +18 -0
- package/dist/media-KFQ56V4R.js +89 -0
- package/dist/media-sources-JFLZPZAO.js +35 -0
- package/dist/members-E6EJAZZ4.js +47 -0
- package/dist/meme-4KWPQ6UF.js +100 -0
- package/dist/meta-X46LC3GI.js +122 -0
- package/dist/metrics-76BTT3Y3.js +152 -0
- package/dist/models-Z6SUHWKI.js +155 -0
- package/dist/normalize-UQIN6KDH.js +144 -0
- package/dist/normalize-WEVIIPWW.js +806 -0
- package/dist/options-YWD3K4UJ.js +125 -0
- package/dist/organization-ZACAD7FF.js +949 -0
- package/dist/output-E3FDRLRQ.js +24 -0
- package/dist/page-3Q5ZCRPX.js +105 -0
- package/dist/page-photos-ZIRMGE6V.js +118 -0
- package/dist/pages-TK6Y7IYX.js +67 -0
- package/dist/performance-DFQVCUDZ.js +5565 -0
- package/dist/performance-KBH3O4O4.js +27 -0
- package/dist/pinterest-BZ2UFFBC.js +104 -0
- package/dist/pixels-6XRTLCM3.js +109 -0
- package/dist/pixels-H642RPK4.js +62 -0
- package/dist/plan-2Q6SOHMD.js +208 -0
- package/dist/posts-FV62HSKG.js +36 -0
- package/dist/preview-LB73AIG2.js +218 -0
- package/dist/profile-OFG36E72.js +159 -0
- package/dist/promoted-tweet-writes-Q45KVTGM.js +183 -0
- package/dist/promoted-tweets-4PAYET4L.js +119 -0
- package/dist/properties-HHJ2K6YL.js +101 -0
- package/dist/publish-TOOCBLS6.js +344 -0
- package/dist/query-GSBZKWHE.js +62 -0
- package/dist/query-TTNBBIJH.js +231 -0
- package/dist/query-XGPZP5UC.js +236 -0
- package/dist/questionnaire-VIG54QFD.js +94 -0
- package/dist/read-DF3UPNBM.js +141 -0
- package/dist/reddit-2BOIPZLW.js +29 -0
- package/dist/refresh-2YQGTF2Q.js +97 -0
- package/dist/refresh-RFUNCAXM.js +42 -0
- package/dist/release-6SQOFLTQ.js +63 -0
- package/dist/relevant-pages-OMYH3PSP.js +99 -0
- package/dist/remove-HSTBAJL2.js +49 -0
- package/dist/remove-REVQUCGW.js +53 -0
- package/dist/reopen-3JFASZ7Z.js +66 -0
- package/dist/rerun-HAD2SZDF.js +96 -0
- package/dist/research-DT7UTJQT.js +265 -0
- package/dist/research-GTEAD4OK.js +75 -0
- package/dist/research-GTEAD4OK.js.map +1 -0
- package/dist/reset-7VYYVMHY.js +57 -0
- package/dist/reset-TPMUZBN3.js +57 -0
- package/dist/resolve-7DTGRVQ5.js +124 -0
- package/dist/retry-AE76A5JL.js +65 -0
- package/dist/retry-WVVMZBJT.js +63 -0
- package/dist/retry-failed-NH47LEKA.js +45 -0
- package/dist/revenue-TXR2Z3LQ.js +91 -0
- package/dist/rule-writes-ILVWCFKQ.js +525 -0
- package/dist/rules-FDJ5YESR.js +99 -0
- package/dist/rules-YO3EKWCX.js +217 -0
- package/dist/rules-add-T2AQ3C4P.js +465 -0
- package/dist/run-N4A75YWN.js +69 -0
- package/dist/run-VT5OCURD.js +71 -0
- package/dist/scaffold-ad-FINQYGF2.js +1513 -0
- package/dist/scaffold-static-ad-YDDFTTNN.js +1011 -0
- package/dist/scaffold-video-2CCS7CK4.js +885 -0
- package/dist/schedule-XZVUL4CA.js +64 -0
- package/dist/schedule-Y7UN7Q24.js +67 -0
- package/dist/scheduled-agents-35PY445V.js +55 -0
- package/dist/schema-JT3464PC.js +135 -0
- package/dist/schema-NSXMRNWM.js +121 -0
- package/dist/scrape-3PWNMK4D.js +2241 -0
- package/dist/screenshot-CJYM4SF7.js +102 -0
- package/dist/search-5QUBKDL6.js +51 -0
- package/dist/search-BR5KK7BE.js +224 -0
- package/dist/search-CDONEXJY.js +91 -0
- package/dist/search-FMOFSOJ3.js +26 -0
- package/dist/search-VDSV554K.js +177 -0
- package/dist/search-WAD2Z5VU.js +92 -0
- package/dist/search-copy-5IKZTJUP.js +168 -0
- package/dist/seeds-EXTAHRXO.js +101 -0
- package/dist/select-EWUA34ZM.js +110 -0
- package/dist/sends-CSE4LTQU.js +349 -0
- package/dist/sequences-RRUXKL7H.js +146 -0
- package/dist/set-prompt-ZX364V7V.js +199 -0
- package/dist/setup-links-BI6GPN5F.js +144 -0
- package/dist/shared-FBQIX453.js +32 -0
- package/dist/shopify-RALHX5OB.js +3958 -0
- package/dist/site-WKS57PJL.js +180 -0
- package/dist/sitemaps-TMHDYRHR.js +77 -0
- package/dist/sites-AIJPSL7T.js +97 -0
- package/dist/skills-7VRKG7GE.js +47 -0
- package/dist/sources-ECE62RFF.js +30 -0
- package/dist/sources-VUKEO4WE.js +457 -0
- package/dist/stale-PSJNR6EY.js +90 -0
- package/dist/stats-ROWGFLUZ.js +34 -0
- package/dist/status-SJKGPDXC.js +65 -0
- package/dist/sticker-MCJ4IOPJ.js +102 -0
- package/dist/stock-QKI2V3EO.js +187 -0
- package/dist/studies-DUFFDAZS.js +250 -0
- package/dist/studio-6ZXUKA4G.js +49 -0
- package/dist/study-writes-N7AOKA4W.js +470 -0
- package/dist/suggest-534G7JP5.js +66 -0
- package/dist/sync-QY2O4ISM.js +279 -0
- package/dist/sync-TX4FZRLP.js +55 -0
- package/dist/sync-UW5ANNQZ.js +57 -0
- package/dist/sync-definition-3L7K7QWS.js +70 -0
- package/dist/tag-SBOFQW2N.js +57 -0
- package/dist/tag-manager-5ORFHLM4.js +43 -0
- package/dist/tags-2CDXVME5.js +23 -0
- package/dist/tags-6H4JKL2B.js +23 -0
- package/dist/tags-7ZWYNXJD.js +26 -0
- package/dist/tags-BYZCEK5V.js +227 -0
- package/dist/tags-WFN43UES.js +23 -0
- package/dist/targeting-XK7ED2CS.js +762 -0
- package/dist/targeting-constants-6RAE4UMA.js +118 -0
- package/dist/targeting-criteria-QIFK56RP.js +113 -0
- package/dist/targets-OVQQEF6E.js +106 -0
- package/dist/terms-CUIVHWMT.js +102 -0
- package/dist/testimonials-H6SAGYMM.js +32 -0
- package/dist/themes-BQP3HK74.js +95 -0
- package/dist/top-companies-672JEIYA.js +111 -0
- package/dist/transcript-QRDDL4MX.js +165 -0
- package/dist/translate-2IHE5YDI.js +603 -0
- package/dist/triggers-JMMH4YDD.js +144 -0
- package/dist/tweets-HESNCAOU.js +123 -0
- package/dist/unfollow-ZEE4K5EH.js +46 -0
- package/dist/unlink-AYBNJEJP.js +70 -0
- package/dist/unstage-F4GIR4XE.js +96 -0
- package/dist/unstage-XMOGDPZ4.js +88 -0
- package/dist/update-3NNT6EAS.js +155 -0
- package/dist/update-CMJUZH3K.js +101 -0
- package/dist/update-NC2BN6QB.js +81 -0
- package/dist/update-UX6PTFXZ.js +66 -0
- package/dist/update-YIUE3QBL.js +192 -0
- package/dist/upload-OY35RO5V.js +130 -0
- package/dist/upload-XKBJU65H.js +150 -0
- package/dist/upscale-YZVFXJ75.js +109 -0
- package/dist/url-options-5ADN3SYO.js +131 -0
- package/dist/url-params-DUEOK2Y3.js +101 -0
- package/dist/use-7EP5OXPQ.js +111 -0
- package/dist/validate-SFVCHAGI.js +125 -0
- package/dist/variant-QNNTZPLR.js +338 -0
- package/dist/videos-OGMX2BDQ.js +41 -0
- package/dist/view-VFZUL5UL.js +121 -0
- package/dist/viewer-check-K6UC5PCF.js +83 -0
- package/dist/web-JKCYPZK5.js +173 -0
- package/dist/web-JKCYPZK5.js.map +1 -0
- package/dist/winners-LXOFPZOD.js +113 -0
- package/dist/winning-ads-J3WR3ENK.js +86 -0
- package/dist/write-commands-FGWCJHLH.js +713 -0
- package/dist/write-commands-RSN3MPBW.js +1525 -0
- package/dist/write-commands-T5RY54ZT.js +1172 -0
- package/dist/write-commands-UTM7PPK5.js +206 -0
- package/dist/x-F44WG5LV.js +47 -0
- package/package.json +1 -1
- package/dist/account-3IA3PYDJ.js +0 -139
- package/dist/account-JT5DRUNO.js +0 -82
- package/dist/account-V5XHQY2D.js +0 -82
- package/dist/account-assets-BVEEUGDA.js +0 -290
- package/dist/account-level-J37UFQY6.js +0 -611
- package/dist/account-reads-CPL3HLZ5.js +0 -219
- package/dist/account-users-AZBPCE3S.js +0 -64
- package/dist/account-writes-MFKCVMMV.js +0 -68
- package/dist/accounts-CZOZDD5I.js +0 -701
- package/dist/accounts-FX6V37GX.js +0 -115
- package/dist/accounts-GXJPLMHU.js +0 -114
- package/dist/accounts-HNZWMTRM.js +0 -76
- package/dist/accounts-PQZRFWGU.js +0 -80
- package/dist/actions-7ELREPKR.js +0 -55
- package/dist/active-entities-YIOKHGWY.js +0 -103
- package/dist/activecampaign-VOKDHWP7.js +0 -938
- package/dist/activities-OC3CJX4I.js +0 -75
- package/dist/ad-group-writes-WFYPFO7R.js +0 -172
- package/dist/ad-groups-IPY3TJUX.js +0 -70
- package/dist/ad-writes-LDNNN72V.js +0 -176
- package/dist/add-3EEREVFI.js +0 -80
- package/dist/add-FGB7KM6P.js +0 -148
- package/dist/add-FKINXOC2.js +0 -97
- package/dist/add-MTYT3Q4T.js +0 -81
- package/dist/add-NZE6J7AI.js +0 -107
- package/dist/add-RMKXE2ZO.js +0 -305
- package/dist/add-accounts-WCDQRXRO.js +0 -91
- package/dist/ads-CIWS4COT.js +0 -48
- package/dist/ads-HCK2GF2V.js +0 -120
- package/dist/ads-NTDJRTEG.js +0 -79
- package/dist/ads-YRV2YERG.js +0 -128
- package/dist/adsets-TC2VPFXW.js +0 -182
- package/dist/advertisers-663V2F2T.js +0 -125
- package/dist/advertisers-E27BJ2FV.js +0 -123
- package/dist/analytics-PJ7JR4VU.js +0 -447
- package/dist/analytics-TBEIK33Y.js +0 -2437
- package/dist/animate-CQON6SZE.js +0 -480
- package/dist/approved-RFZLJZJH.js +0 -73
- package/dist/asset-writes-ZMSJSFTD.js +0 -50
- package/dist/assign-MTHCAP54.js +0 -80
- package/dist/audience-size-AXULID2E.js +0 -76
- package/dist/audience-writes-BUWFC5W4.js +0 -327
- package/dist/audiences-GD2EPPJJ.js +0 -85
- package/dist/audiences-KRI7E7FY.js +0 -280
- package/dist/audiences-UJCOT423.js +0 -106
- package/dist/audit-DQYC4R74.js +0 -88
- package/dist/audit-YQIL6UGM.js +0 -154
- package/dist/autocomplete-S2WRGXOM.js +0 -114
- package/dist/avatars-H5RIENFM.js +0 -38
- package/dist/bid-pricing-5RTQDTK3.js +0 -103
- package/dist/brand-YCYKIUIL.js +0 -22
- package/dist/brief-AEICFSR7.js +0 -543
- package/dist/businesses-IPSDIWUU.js +0 -54
- package/dist/campaign-groups-PZ4J25O5.js +0 -99
- package/dist/campaign-writes-2OSYV72Z.js +0 -168
- package/dist/campaign-writes-DAL4EFIV.js +0 -176
- package/dist/campaigns-CDPQ2RDY.js +0 -111
- package/dist/campaigns-JCKEU2NC.js +0 -130
- package/dist/campaigns-TKQDXU5H.js +0 -78
- package/dist/campaigns-XFIW7ODL.js +0 -113
- package/dist/canvas-FWG5JGG4.js +0 -46
- package/dist/capabilities-Y2UYDZZO.js +0 -147
- package/dist/cards-TTQTPLCO.js +0 -85
- package/dist/catalog-6CXOEKBI.js +0 -66
- package/dist/catalogs-ETVY5OZ5.js +0 -130
- package/dist/catalogs-LI7NG57R.js +0 -781
- package/dist/changes-2P2P4LAU.js +0 -143
- package/dist/chatgpt-GINMQJBI.js +0 -47
- package/dist/chats-A3XSSBJF.js +0 -449
- package/dist/check-UHV27GZU.js +0 -107
- package/dist/chunk-24SPBLU4.js +0 -1646
- package/dist/chunk-2AJ5UNOF.js +0 -131
- package/dist/chunk-2OEECI2R.js +0 -51
- package/dist/chunk-2Y3VZILY.js +0 -98
- package/dist/chunk-337ZJ3PX.js +0 -377
- package/dist/chunk-35FLLWSQ.js +0 -100
- package/dist/chunk-35T6LCB2.js +0 -197
- package/dist/chunk-3PG7O3ZW.js +0 -52
- package/dist/chunk-3V4R55B4.js +0 -163
- package/dist/chunk-3YHOU5IA.js +0 -169
- package/dist/chunk-4GQJOHJY.js +0 -69
- package/dist/chunk-4KGQZHCV.js +0 -224
- package/dist/chunk-4OY6SHHM.js +0 -35
- package/dist/chunk-4PWC4KAK.js +0 -843
- package/dist/chunk-4QLVMG63.js +0 -191
- package/dist/chunk-5VVXF3OS.js +0 -676
- package/dist/chunk-6KWPAPFL.js +0 -714
- package/dist/chunk-6KWPAPFL.js.map +0 -1
- package/dist/chunk-7E4S2NBD.js +0 -170
- package/dist/chunk-7Y6CPXM5.js +0 -2209
- package/dist/chunk-7ZYXRMSM.js +0 -188
- package/dist/chunk-A4TWHQEF.js +0 -191
- package/dist/chunk-AGEWPMBR.js +0 -288
- package/dist/chunk-AMHVCMBW.js +0 -3510
- package/dist/chunk-AUGAC2OT.js +0 -319
- package/dist/chunk-AUGAC2OT.js.map +0 -1
- package/dist/chunk-AXSSATJW.js +0 -1744
- package/dist/chunk-B52GKPH2.js +0 -106
- package/dist/chunk-BBGKZJXP.js +0 -69
- package/dist/chunk-BQSDW6FT.js +0 -344
- package/dist/chunk-C35UMKYG.js +0 -229
- package/dist/chunk-C54JXXV3.js +0 -24026
- package/dist/chunk-C6CWI43A.js +0 -392
- package/dist/chunk-CISJ7CUA.js +0 -207
- package/dist/chunk-CKT5SR7F.js +0 -103
- package/dist/chunk-CM2LECNX.js +0 -136
- package/dist/chunk-CTBDVZ5E.js +0 -274
- package/dist/chunk-D2F73AUY.js +0 -64
- package/dist/chunk-DNRXEP4A.js +0 -296
- package/dist/chunk-DR4TIYTE.js +0 -45
- package/dist/chunk-DR7PLON5.js +0 -1902
- package/dist/chunk-EAHBTBVR.js +0 -324
- package/dist/chunk-ELAYD7O3.js +0 -215
- package/dist/chunk-EPW33OQJ.js +0 -203
- package/dist/chunk-F4QYUDXE.js +0 -91
- package/dist/chunk-FKGYEK54.js +0 -387
- package/dist/chunk-FRUOWEWZ.js +0 -97
- package/dist/chunk-FSLSISPI.js +0 -46
- package/dist/chunk-GT76FWES.js +0 -1919
- package/dist/chunk-GTIQUOYC.js +0 -148
- package/dist/chunk-GZN2RP7D.js +0 -494
- package/dist/chunk-H23Q55DS.js +0 -604
- package/dist/chunk-H27R5IVQ.js +0 -64
- package/dist/chunk-HDYJ6YVI.js +0 -930
- package/dist/chunk-HOZI7GOT.js +0 -66
- package/dist/chunk-IJ5DWALA.js +0 -225
- package/dist/chunk-ITKTTDC2.js +0 -225
- package/dist/chunk-JD4DSJPT.js +0 -76
- package/dist/chunk-JEMYDBKC.js +0 -547
- package/dist/chunk-JQSN5K5B.js +0 -94
- package/dist/chunk-JUFABKU4.js +0 -73
- package/dist/chunk-KAJXOGQ2.js +0 -58
- package/dist/chunk-KDDHMKTU.js +0 -217
- package/dist/chunk-KG7WIVNG.js +0 -111
- package/dist/chunk-KGZXQIM5.js +0 -19
- package/dist/chunk-KSECMOHE.js +0 -857
- package/dist/chunk-LBIF6FJY.js +0 -476
- package/dist/chunk-LE33VXJV.js +0 -831
- package/dist/chunk-LE6VTYWQ.js +0 -910
- package/dist/chunk-LXV2U4MI.js +0 -25
- package/dist/chunk-M7FP7DKN.js +0 -39
- package/dist/chunk-MI3J4O42.js +0 -297
- package/dist/chunk-MIOE5IN3.js +0 -479
- package/dist/chunk-MM6CCIL7.js +0 -166
- package/dist/chunk-MMUT4W5L.js +0 -438
- package/dist/chunk-MWJNFGV6.js +0 -42
- package/dist/chunk-N3T4ALXV.js +0 -8954
- package/dist/chunk-NGXZQESA.js +0 -5471
- package/dist/chunk-NPZ5VWFE.js +0 -592
- package/dist/chunk-NPZ5VWFE.js.map +0 -1
- package/dist/chunk-NQ5O2NCJ.js +0 -5368
- package/dist/chunk-NRMJWNX3.js +0 -97
- package/dist/chunk-OQGE5GSP.js +0 -429
- package/dist/chunk-OTGHCGLW.js +0 -125
- package/dist/chunk-OYYAR5TD.js +0 -333
- package/dist/chunk-PEGRQV66.js +0 -106
- package/dist/chunk-PQN4PIC6.js +0 -76
- package/dist/chunk-QIZY55Z6.js +0 -89
- package/dist/chunk-RGSSKOTZ.js +0 -56
- package/dist/chunk-RW32BYY3.js +0 -1518
- package/dist/chunk-RZUXHIRN.js +0 -23
- package/dist/chunk-S4JAHRIW.js +0 -139
- package/dist/chunk-S4PK55OH.js +0 -156
- package/dist/chunk-S6KZ4GDL.js +0 -207
- package/dist/chunk-SBSFCKOC.js +0 -149
- package/dist/chunk-T2JHHSPI.js +0 -142
- package/dist/chunk-TFCZOTQ5.js +0 -249
- package/dist/chunk-TFN7L5H3.js +0 -66
- package/dist/chunk-TML65SGQ.js +0 -455
- package/dist/chunk-TP6QJATO.js +0 -57
- package/dist/chunk-TQDZQT6U.js +0 -167
- package/dist/chunk-TRXGJZDL.js +0 -2503
- package/dist/chunk-TRXGJZDL.js.map +0 -1
- package/dist/chunk-U4CYQMG5.js +0 -138
- package/dist/chunk-UMQCYEAL.js +0 -98
- package/dist/chunk-UREDSNQS.js +0 -7725
- package/dist/chunk-UREDSNQS.js.map +0 -1
- package/dist/chunk-UT4OM34H.js +0 -46
- package/dist/chunk-VPHHCOYS.js +0 -544
- package/dist/chunk-VWKFQ4ZY.js +0 -285
- package/dist/chunk-W3PJ7V4W.js +0 -84
- package/dist/chunk-WDPOXO34.js +0 -91
- package/dist/chunk-WI3TCYEA.js +0 -74
- package/dist/chunk-WQQ7SH3M.js +0 -84
- package/dist/chunk-WTODFKZR.js +0 -219
- package/dist/chunk-YFIWCMVC.js +0 -638
- package/dist/chunk-YFRNONXL.js +0 -275
- package/dist/chunk-Z4BU2JVK.js +0 -287
- package/dist/chunk-ZBP735CV.js +0 -61
- package/dist/chunk-ZI7CLQB5.js +0 -26
- package/dist/chunk-ZPF253G5.js +0 -75
- package/dist/claim-65UCFSNU.js +0 -200
- package/dist/client-SZ4N5NCP.js +0 -19
- package/dist/code-RZXUOVH3.js +0 -76
- package/dist/companies-PUU5HQPO.js +0 -198
- package/dist/company-P64YHCCF.js +0 -308
- package/dist/complete-D7LIEFAQ.js +0 -84
- package/dist/config-7RX352G2.js +0 -88
- package/dist/connect-OJEK3NSN.js +0 -45
- package/dist/content-BOERUNX4.js +0 -85
- package/dist/conversation-S2I75E4X.js +0 -96
- package/dist/conversion-report-JNWBTLA5.js +0 -127
- package/dist/conversion-upload-command-6OKMSO2T.js +0 -439
- package/dist/conversion-writes-2VOWP4RD.js +0 -122
- package/dist/conversions-JGIBYLK5.js +0 -78
- package/dist/conversions-XQLNBKCS.js +0 -140
- package/dist/copy-writes-PVWZEU4S.js +0 -170
- package/dist/countries-Z4IQIMWQ.js +0 -82
- package/dist/create-DXRRIN2L.js +0 -210
- package/dist/create-UBQF3F43.js +0 -239
- package/dist/create-URSL4J7P.js +0 -62
- package/dist/create-WTG4PLR7.js +0 -135
- package/dist/creatives-ARJMZYXM.js +0 -118
- package/dist/creatives-KHU3PAMN.js +0 -223
- package/dist/creatives-MXMQDNL6.js +0 -58
- package/dist/credentials-CMOO7W6D.js +0 -290
- package/dist/critique-455CFJQ2.js +0 -1451
- package/dist/critique-MABDKWHC.js +0 -232
- package/dist/crm-LKQBWL7L.js +0 -227
- package/dist/crm-YAFF2LM2.js +0 -323
- package/dist/crop-JRVHX3PX.js +0 -113
- package/dist/currency-JDAVYMD3.js +0 -88
- package/dist/custom-conversions-OVUDN3HH.js +0 -128
- package/dist/customers-XQJTF7HT.js +0 -59
- package/dist/decide-MPNAZFAK.js +0 -199
- package/dist/delete-7OTBPZGJ.js +0 -67
- package/dist/delete-FWPYWUNU.js +0 -85
- package/dist/delete-JPSIBQXR.js +0 -71
- package/dist/delete-RLLRUSGR.js +0 -69
- package/dist/delete-ROD2G6IL.js +0 -57
- package/dist/delete-ZRMD5TG4.js +0 -69
- package/dist/demographics-HM2TV4T2.js +0 -141
- package/dist/describe-OUYPLJJE.js +0 -97
- package/dist/describe-XQGFIM2Z.js +0 -97
- package/dist/dimensions-MMVCXOFJ.js +0 -101
- package/dist/discard-55OBCTIR.js +0 -69
- package/dist/discover-VEHKBNCY.js +0 -172
- package/dist/discover-Z6NS3BP6.js +0 -93
- package/dist/domain-226C6VIF.js +0 -101
- package/dist/download-3JW2NTQZ.js +0 -299
- package/dist/download-UMEQIQKE.js +0 -172
- package/dist/draft-DSWC37IW.js +0 -103
- package/dist/draft-DUAFRL2G.js +0 -283
- package/dist/draft-KWXV5YOG.js +0 -240
- package/dist/draft-MPSQIDMM.js +0 -310
- package/dist/draft-S2QTWVIA.js +0 -220
- package/dist/draft-TUTXQNHP.js +0 -335
- package/dist/draft-UMNPM5KA.js +0 -100
- package/dist/draft-V7VGPJK4.js +0 -396
- package/dist/env-O2JJK34F.js +0 -53
- package/dist/experiment-2TTMKPVC.js +0 -1397
- package/dist/experiments-6UHDVVII.js +0 -236
- package/dist/export-LRPJXAFA.js +0 -168
- package/dist/extract-7IAAZ6RS.js +0 -121
- package/dist/facets-BZ5AFGHD.js +0 -117
- package/dist/favorites-UXNAI5XW.js +0 -178
- package/dist/feed-OTUTIGJ6.js +0 -177
- package/dist/feedback-A5DR3IMR.js +0 -115
- package/dist/feedback-record-KABFVNHS.js +0 -269
- package/dist/fetch-AG7JJ4BI.js +0 -139
- package/dist/fetch-XNE63FNS.js +0 -179
- package/dist/fetch-XNE63FNS.js.map +0 -1
- package/dist/find-JH5OMTGJ.js +0 -143
- package/dist/fit-T2D4E52B.js +0 -65
- package/dist/flows-P5T4LNJ2.js +0 -250
- package/dist/follow-WHLTIJPM.js +0 -94
- package/dist/follow-competitors-DO7RVQXT.js +0 -112
- package/dist/following-ZL34FZ32.js +0 -113
- package/dist/fonts-U3NGQYJN.js +0 -39
- package/dist/forecast-TG5RS5DG.js +0 -121
- package/dist/forecast-UYBYSH3Y.js +0 -169
- package/dist/funding-55XBHYY6.js +0 -85
- package/dist/funnel-D6YXU7C4.js +0 -397
- package/dist/ga4-WIOBF5HW.js +0 -55
- package/dist/generate-QG7GX6WO.js +0 -263
- package/dist/get-E4VOTCE6.js +0 -59
- package/dist/get-IGXC3JQ5.js +0 -92
- package/dist/get-P5Z274DM.js +0 -38
- package/dist/get-QA333Q5J.js +0 -62
- package/dist/get-TISXCTDV.js +0 -82
- package/dist/get-TXVHONYI.js +0 -59
- package/dist/get-WEWFUNWZ.js +0 -56
- package/dist/get-Z46N7LBR.js +0 -66
- package/dist/gif-TD37CRTZ.js +0 -110
- package/dist/google-6A3YLR3K.js +0 -144
- package/dist/google-PFRI7YIG.js +0 -3270
- package/dist/google-ads-GBX5YHPT.js +0 -198
- package/dist/group-6ENUPDYO.js +0 -43
- package/dist/group-EYF34B3P.js +0 -43
- package/dist/gsc-KDE2DTH2.js +0 -30
- package/dist/history-BRWYSJQL.js +0 -153
- package/dist/history-M2KVZ2E7.js +0 -102
- package/dist/history-XOB23MLX.js +0 -69
- package/dist/hubspot-YEZGTOM2.js +0 -782
- package/dist/icon-N77IGSXP.js +0 -137
- package/dist/ideas-J6GCTQ6U.js +0 -45
- package/dist/images-55KBTRVO.js +0 -92
- package/dist/improve-BKFZOBXI.js +0 -86
- package/dist/ingest-LKGF5E5V.js +0 -27
- package/dist/ingest-QNV3B2ST.js +0 -123
- package/dist/insights-7CQJOBWX.js +0 -132
- package/dist/insights-7NC2JFXU.js +0 -658
- package/dist/inspect-WNPQXU4H.js +0 -192
- package/dist/inspiration-SQUEBO2K.js +0 -53
- package/dist/instant-experiences-3E6RRUHF.js +0 -263
- package/dist/intent-P75BDP4H.js +0 -95
- package/dist/job-B6UEZLTA.js +0 -202
- package/dist/job-create-WM27NOGZ.js +0 -109
- package/dist/job-status-6V7DVVYL.js +0 -74
- package/dist/keep-ACLZB7KL.js +0 -78
- package/dist/keyword-gap-54F6CZLM.js +0 -130
- package/dist/keyword-metrics-SJLYED7I.js +0 -200
- package/dist/keywords-for-site-CY2XUFR4.js +0 -131
- package/dist/knowledge-5VEMAHG7.js +0 -195
- package/dist/landing-DZLICA3P.js +0 -28
- package/dist/landings-Q7T2HSYK.js +0 -151
- package/dist/languages-HWMPAPQN.js +0 -55
- package/dist/languages-PEGOE365.js +0 -40
- package/dist/launches-4HI65M3C.js +0 -19
- package/dist/layerize-HXML3KQX.js +0 -190
- package/dist/lead-routes-Q2T3RQXN.js +0 -733
- package/dist/leads-GZ7RFM7D.js +0 -540
- package/dist/leads-WBZP37CG.js +0 -115
- package/dist/learn-QNOTY4JA.js +0 -207
- package/dist/library-OVX3OUYV.js +0 -211
- package/dist/lighthouse-2TDPDU7J.js +0 -75
- package/dist/line-item-writes-6RNUOFKK.js +0 -211
- package/dist/line-items-YOBU6DYQ.js +0 -107
- package/dist/link-7PEVIIUA.js +0 -67
- package/dist/linkedin-YYNBLBM3.js +0 -1328
- package/dist/linkedin-person-JGQTT54I.js +0 -139
- package/dist/list-AAQISQHE.js +0 -65
- package/dist/list-H2XBHKQK.js +0 -154
- package/dist/list-IFVBO2E2.js +0 -306
- package/dist/list-N5FHLG2Z.js +0 -67
- package/dist/list-QYUU66YV.js +0 -93
- package/dist/list-SDHECXK5.js +0 -57
- package/dist/list-U3ZABSGW.js +0 -76
- package/dist/list-UF7Y4FDE.js +0 -50
- package/dist/list-VO473W6E.js +0 -51
- package/dist/locations-MXWGZIGU.js +0 -69
- package/dist/locations-SHYN5J4Q.js +0 -40
- package/dist/log-HCWZ6C4R.js +0 -95
- package/dist/logo-2NDZ2EVN.js +0 -18
- package/dist/lookup-UFVB2ZZF.js +0 -23
- package/dist/make-VZKIB23N.js +0 -1367
- package/dist/map-RFMJ4AF7.js +0 -436
- package/dist/mcp-VRFT3QJW.js +0 -729
- package/dist/media-3M3PVSEZ.js +0 -89
- package/dist/media-5XRMDMKD.js +0 -18
- package/dist/media-sources-NTZRJGFU.js +0 -35
- package/dist/members-EOIF2XN3.js +0 -47
- package/dist/meme-EOAFE4FS.js +0 -100
- package/dist/meta-6IFYEOZL.js +0 -122
- package/dist/metrics-25LYUEB7.js +0 -152
- package/dist/models-EU3NO4IY.js +0 -155
- package/dist/normalize-NDBXU6UO.js +0 -806
- package/dist/normalize-UQIZEJHT.js +0 -144
- package/dist/options-Y6JI2ZVZ.js +0 -125
- package/dist/organization-TO2V7AWX.js +0 -949
- package/dist/output-KIQWBKKA.js +0 -24
- package/dist/page-GGT3KZ5E.js +0 -105
- package/dist/page-photos-FKWHLNWM.js +0 -118
- package/dist/pages-JALRE36R.js +0 -67
- package/dist/performance-V26JUNGC.js +0 -27
- package/dist/performance-YAUOH75F.js +0 -5565
- package/dist/pinterest-KURR4GJJ.js +0 -104
- package/dist/pixels-6PKYGSQ4.js +0 -109
- package/dist/pixels-NLH2PN6Q.js +0 -62
- package/dist/plan-223DL4HG.js +0 -208
- package/dist/posts-YPW4NHWM.js +0 -36
- package/dist/preview-CD2QADBJ.js +0 -218
- package/dist/profile-7KUWZTJR.js +0 -159
- package/dist/promoted-tweet-writes-3SLFZQDA.js +0 -183
- package/dist/promoted-tweets-3WRSJYKK.js +0 -119
- package/dist/properties-LCZX4UJH.js +0 -101
- package/dist/publish-T6ITLSJA.js +0 -344
- package/dist/query-RKJS3QOS.js +0 -231
- package/dist/query-SRJXJVDY.js +0 -62
- package/dist/query-WX3K7ZDY.js +0 -236
- package/dist/questionnaire-CCDUSEI3.js +0 -94
- package/dist/read-JTJQSEVB.js +0 -141
- package/dist/reddit-O2TNBMD6.js +0 -29
- package/dist/refresh-H4DETVS5.js +0 -42
- package/dist/refresh-N726O36Z.js +0 -97
- package/dist/release-A5HKTUMV.js +0 -63
- package/dist/relevant-pages-VJHTUJMB.js +0 -99
- package/dist/remove-5FMNASGC.js +0 -49
- package/dist/remove-BHUYRNRU.js +0 -53
- package/dist/reopen-TTDYNANZ.js +0 -66
- package/dist/rerun-KFTQ6Y64.js +0 -96
- package/dist/research-FISSUVIK.js +0 -72
- package/dist/research-FISSUVIK.js.map +0 -1
- package/dist/research-YWON4E4H.js +0 -265
- package/dist/reset-SSNHRP5C.js +0 -57
- package/dist/reset-VTNVCE23.js +0 -57
- package/dist/resolve-375FALNN.js +0 -124
- package/dist/retry-PNS6RWJ6.js +0 -63
- package/dist/retry-TLGYZ6RJ.js +0 -65
- package/dist/retry-failed-DSVEAY3T.js +0 -45
- package/dist/revenue-6L2AY7L7.js +0 -91
- package/dist/rule-writes-XSNS3XYK.js +0 -525
- package/dist/rules-F6J4V7PZ.js +0 -99
- package/dist/rules-GHGEVCBQ.js +0 -217
- package/dist/rules-add-7UI5A3MJ.js +0 -465
- package/dist/run-B77D2TGX.js +0 -71
- package/dist/run-UN4HXEGZ.js +0 -69
- package/dist/scaffold-ad-74CEBCRR.js +0 -1513
- package/dist/scaffold-static-ad-2IMVWNYB.js +0 -1011
- package/dist/scaffold-video-JDCX3BIT.js +0 -885
- package/dist/schedule-WK5MRYCJ.js +0 -64
- package/dist/schedule-Z2AQXR7W.js +0 -67
- package/dist/scheduled-agents-2NTFBABN.js +0 -55
- package/dist/schema-BBC6AARZ.js +0 -135
- package/dist/schema-BDZA64GZ.js +0 -121
- package/dist/scrape-CTE5SNQN.js +0 -2241
- package/dist/screenshot-ELJYTIM7.js +0 -102
- package/dist/search-5B5AXN5V.js +0 -91
- package/dist/search-7ELGWNMH.js +0 -26
- package/dist/search-KBIF5NZX.js +0 -224
- package/dist/search-KC4QRMU2.js +0 -177
- package/dist/search-OF6LTOK6.js +0 -51
- package/dist/search-XO5UPSBF.js +0 -92
- package/dist/search-copy-DDRY6HPI.js +0 -168
- package/dist/seeds-HH5E7GCS.js +0 -101
- package/dist/select-SZAJR4QY.js +0 -110
- package/dist/sends-H7WMLJ5H.js +0 -349
- package/dist/sequences-V4STPHGV.js +0 -146
- package/dist/set-prompt-KHB4JJV2.js +0 -199
- package/dist/setup-links-SJVDPNOF.js +0 -144
- package/dist/shared-P2PFNNJF.js +0 -32
- package/dist/shopify-MODNP6LT.js +0 -3958
- package/dist/site-5K73B2MI.js +0 -180
- package/dist/sitemaps-KMRWAKNK.js +0 -77
- package/dist/sites-3QZDCQRG.js +0 -97
- package/dist/skills-KV4X22KQ.js +0 -47
- package/dist/sources-2E6EK6YK.js +0 -457
- package/dist/sources-S7LAV2EP.js +0 -30
- package/dist/stale-3IPYZ7BI.js +0 -90
- package/dist/stats-3TAUG3Q3.js +0 -34
- package/dist/status-6QTJSJN7.js +0 -65
- package/dist/sticker-SH6VUPFR.js +0 -102
- package/dist/stock-IICCY3IQ.js +0 -187
- package/dist/studies-A52C544C.js +0 -250
- package/dist/studio-4QOFG7MQ.js +0 -49
- package/dist/study-writes-3R4D6C3F.js +0 -470
- package/dist/suggest-3CFMURUH.js +0 -66
- package/dist/sync-37P7TZQH.js +0 -57
- package/dist/sync-H4XVXITS.js +0 -55
- package/dist/sync-TJ7MGFIE.js +0 -279
- package/dist/sync-definition-CDQCNCU2.js +0 -70
- package/dist/tag-6WIQLRDW.js +0 -57
- package/dist/tag-manager-KWITWX6Y.js +0 -43
- package/dist/tags-2VZUCNNH.js +0 -26
- package/dist/tags-CBINFGAN.js +0 -227
- package/dist/tags-FVRIF3XS.js +0 -23
- package/dist/tags-OB24PQKE.js +0 -23
- package/dist/tags-SS7FE52N.js +0 -23
- package/dist/targeting-II4CQUPW.js +0 -762
- package/dist/targeting-constants-2EHTMIMX.js +0 -118
- package/dist/targeting-criteria-ECC662DL.js +0 -113
- package/dist/targets-GIRHNZ4W.js +0 -106
- package/dist/terms-URBA2IXT.js +0 -102
- package/dist/testimonials-IEJ24MH7.js +0 -32
- package/dist/themes-JBX6W4SP.js +0 -95
- package/dist/top-companies-POSJMWSB.js +0 -111
- package/dist/transcript-FCKURXTT.js +0 -165
- package/dist/translate-F4B3WEJO.js +0 -603
- package/dist/triggers-DRAKT5QB.js +0 -144
- package/dist/tweets-LECORASF.js +0 -123
- package/dist/unfollow-DBV2F7YP.js +0 -46
- package/dist/unlink-OEUJXG64.js +0 -70
- package/dist/unstage-F362CYM7.js +0 -88
- package/dist/unstage-XCH4VBM2.js +0 -96
- package/dist/update-4CVNP3B5.js +0 -66
- package/dist/update-BAE3BEEW.js +0 -155
- package/dist/update-JDFJPQ3O.js +0 -81
- package/dist/update-UME7HHOC.js +0 -101
- package/dist/update-XOSKQEMK.js +0 -192
- package/dist/upload-B27ZJMMZ.js +0 -150
- package/dist/upload-BABKWQIN.js +0 -130
- package/dist/upscale-QMBV3AGN.js +0 -109
- package/dist/url-options-JSRAMMEM.js +0 -131
- package/dist/url-params-ZVIYOHM2.js +0 -101
- package/dist/use-TBDI3OAN.js +0 -111
- package/dist/validate-DN44TVXS.js +0 -125
- package/dist/variant-2A5GOOJF.js +0 -338
- package/dist/videos-OVVH4LC2.js +0 -41
- package/dist/view-GNNIJGGN.js +0 -121
- package/dist/viewer-check-SOPRTRNX.js +0 -83
- package/dist/web-PLEFETCJ.js +0 -143
- package/dist/web-PLEFETCJ.js.map +0 -1
- package/dist/winners-6CW4CWZI.js +0 -113
- package/dist/winning-ads-HIP6PWPL.js +0 -86
- package/dist/write-commands-3G5WDFH3.js +0 -206
- package/dist/write-commands-TPPJHGMT.js +0 -1172
- package/dist/write-commands-U3JZ6UHG.js +0 -1525
- package/dist/write-commands-UW5LKCAP.js +0 -713
- package/dist/x-ROOD4SQH.js +0 -47
- /package/dist/{account-V5XHQY2D.js.map → account-2HJ4GKHN.js.map} +0 -0
- /package/dist/{account-3IA3PYDJ.js.map → account-BGBNYZPA.js.map} +0 -0
- /package/dist/{account-JT5DRUNO.js.map → account-QG2AFCRO.js.map} +0 -0
- /package/dist/{account-assets-BVEEUGDA.js.map → account-assets-R3XAVQEB.js.map} +0 -0
- /package/dist/{account-level-J37UFQY6.js.map → account-level-EEXQALNI.js.map} +0 -0
- /package/dist/{account-reads-CPL3HLZ5.js.map → account-reads-2QJQU63B.js.map} +0 -0
- /package/dist/{account-users-AZBPCE3S.js.map → account-users-TTWSAGAL.js.map} +0 -0
- /package/dist/{account-writes-MFKCVMMV.js.map → account-writes-FZ3KCJZY.js.map} +0 -0
- /package/dist/{accounts-FX6V37GX.js.map → accounts-ARO5HAHH.js.map} +0 -0
- /package/dist/{accounts-PQZRFWGU.js.map → accounts-CN32WCRF.js.map} +0 -0
- /package/dist/{accounts-HNZWMTRM.js.map → accounts-EP5JCI7S.js.map} +0 -0
- /package/dist/{accounts-GXJPLMHU.js.map → accounts-ILVWPJBC.js.map} +0 -0
- /package/dist/{accounts-CZOZDD5I.js.map → accounts-RFJ4MENH.js.map} +0 -0
- /package/dist/{actions-7ELREPKR.js.map → actions-SYRCIDHV.js.map} +0 -0
- /package/dist/{active-entities-YIOKHGWY.js.map → active-entities-5RIKIFLQ.js.map} +0 -0
- /package/dist/{activecampaign-VOKDHWP7.js.map → activecampaign-NASTXUEK.js.map} +0 -0
- /package/dist/{activities-OC3CJX4I.js.map → activities-AZYGCPU3.js.map} +0 -0
- /package/dist/{ad-group-writes-WFYPFO7R.js.map → ad-group-writes-XGG3WQEO.js.map} +0 -0
- /package/dist/{ad-groups-IPY3TJUX.js.map → ad-groups-GZIPUN64.js.map} +0 -0
- /package/dist/{ad-writes-LDNNN72V.js.map → ad-writes-2VTRWQLW.js.map} +0 -0
- /package/dist/{add-FKINXOC2.js.map → add-3JH2GHSO.js.map} +0 -0
- /package/dist/{add-NZE6J7AI.js.map → add-GU5YOXPC.js.map} +0 -0
- /package/dist/{add-FGB7KM6P.js.map → add-IOEWGFPR.js.map} +0 -0
- /package/dist/{add-RMKXE2ZO.js.map → add-KN6SPCY5.js.map} +0 -0
- /package/dist/{add-MTYT3Q4T.js.map → add-LJXJ7RZV.js.map} +0 -0
- /package/dist/{add-3EEREVFI.js.map → add-V46WFYNJ.js.map} +0 -0
- /package/dist/{add-accounts-WCDQRXRO.js.map → add-accounts-6ELLH7KV.js.map} +0 -0
- /package/dist/{ads-CIWS4COT.js.map → ads-I6WMPAO3.js.map} +0 -0
- /package/dist/{ads-NTDJRTEG.js.map → ads-LNWALF6G.js.map} +0 -0
- /package/dist/{ads-HCK2GF2V.js.map → ads-MHHPZ5OB.js.map} +0 -0
- /package/dist/{ads-YRV2YERG.js.map → ads-SXJTSL3V.js.map} +0 -0
- /package/dist/{adsets-TC2VPFXW.js.map → adsets-FARX5YPE.js.map} +0 -0
- /package/dist/{advertisers-E27BJ2FV.js.map → advertisers-I7UCHETO.js.map} +0 -0
- /package/dist/{advertisers-663V2F2T.js.map → advertisers-XLHC7DD6.js.map} +0 -0
- /package/dist/{analytics-TBEIK33Y.js.map → analytics-AWBWIVXW.js.map} +0 -0
- /package/dist/{analytics-PJ7JR4VU.js.map → analytics-BG72H654.js.map} +0 -0
- /package/dist/{animate-CQON6SZE.js.map → animate-DM4OUJMR.js.map} +0 -0
- /package/dist/{approved-RFZLJZJH.js.map → approved-TA5KRDSX.js.map} +0 -0
- /package/dist/{asset-writes-ZMSJSFTD.js.map → asset-writes-YTAJAXZX.js.map} +0 -0
- /package/dist/{assign-MTHCAP54.js.map → assign-2H3AMY7Q.js.map} +0 -0
- /package/dist/{audience-size-AXULID2E.js.map → audience-size-3J4WYUTM.js.map} +0 -0
- /package/dist/{audience-writes-BUWFC5W4.js.map → audience-writes-SHZKH2EI.js.map} +0 -0
- /package/dist/{audiences-KRI7E7FY.js.map → audiences-7D5VPOWF.js.map} +0 -0
- /package/dist/{audiences-GD2EPPJJ.js.map → audiences-MDJ34WFZ.js.map} +0 -0
- /package/dist/{audiences-UJCOT423.js.map → audiences-TFFWJWAO.js.map} +0 -0
- /package/dist/{audit-YQIL6UGM.js.map → audit-QC4VORTD.js.map} +0 -0
- /package/dist/{audit-DQYC4R74.js.map → audit-UJUVBE3C.js.map} +0 -0
- /package/dist/{autocomplete-S2WRGXOM.js.map → autocomplete-B7YVYISF.js.map} +0 -0
- /package/dist/{avatars-H5RIENFM.js.map → avatars-LUCFVVCN.js.map} +0 -0
- /package/dist/{bid-pricing-5RTQDTK3.js.map → bid-pricing-4BJ4HU3F.js.map} +0 -0
- /package/dist/{brand-YCYKIUIL.js.map → brand-KTM3OQNE.js.map} +0 -0
- /package/dist/{brief-AEICFSR7.js.map → brief-UVCG76J2.js.map} +0 -0
- /package/dist/{businesses-IPSDIWUU.js.map → businesses-TR4S3FWZ.js.map} +0 -0
- /package/dist/{campaign-groups-PZ4J25O5.js.map → campaign-groups-FUJEB5LG.js.map} +0 -0
- /package/dist/{campaign-writes-DAL4EFIV.js.map → campaign-writes-H22P6YPW.js.map} +0 -0
- /package/dist/{campaign-writes-2OSYV72Z.js.map → campaign-writes-Z3CJKYW3.js.map} +0 -0
- /package/dist/{campaigns-TKQDXU5H.js.map → campaigns-265JXD2Z.js.map} +0 -0
- /package/dist/{campaigns-JCKEU2NC.js.map → campaigns-AON44UCB.js.map} +0 -0
- /package/dist/{campaigns-XFIW7ODL.js.map → campaigns-CGYH7I2R.js.map} +0 -0
- /package/dist/{campaigns-CDPQ2RDY.js.map → campaigns-QUZN5AFK.js.map} +0 -0
- /package/dist/{canvas-FWG5JGG4.js.map → canvas-2DIDJAD4.js.map} +0 -0
- /package/dist/{capabilities-Y2UYDZZO.js.map → capabilities-VQF723CB.js.map} +0 -0
- /package/dist/{cards-TTQTPLCO.js.map → cards-45GJXE6B.js.map} +0 -0
- /package/dist/{catalog-6CXOEKBI.js.map → catalog-DPUQBZZ7.js.map} +0 -0
- /package/dist/{catalogs-ETVY5OZ5.js.map → catalogs-SBXFAD3X.js.map} +0 -0
- /package/dist/{catalogs-LI7NG57R.js.map → catalogs-XNFTLYJV.js.map} +0 -0
- /package/dist/{changes-2P2P4LAU.js.map → changes-QVXOKFLJ.js.map} +0 -0
- /package/dist/{chatgpt-GINMQJBI.js.map → chatgpt-NVMLRIZY.js.map} +0 -0
- /package/dist/{chats-A3XSSBJF.js.map → chats-BWMB3I6F.js.map} +0 -0
- /package/dist/{check-UHV27GZU.js.map → check-6B2L74FJ.js.map} +0 -0
- /package/dist/{chunk-TFCZOTQ5.js.map → chunk-3BI2PHW4.js.map} +0 -0
- /package/dist/{chunk-HDYJ6YVI.js.map → chunk-3KIRDKVB.js.map} +0 -0
- /package/dist/{chunk-24SPBLU4.js.map → chunk-3TZW2FOS.js.map} +0 -0
- /package/dist/{chunk-MM6CCIL7.js.map → chunk-3W4IORXH.js.map} +0 -0
- /package/dist/{chunk-JQSN5K5B.js.map → chunk-464UOCP6.js.map} +0 -0
- /package/dist/{chunk-4PWC4KAK.js.map → chunk-4D73PLXU.js.map} +0 -0
- /package/dist/{chunk-TML65SGQ.js.map → chunk-4GLSV5AI.js.map} +0 -0
- /package/dist/{chunk-PEGRQV66.js.map → chunk-4KCYP423.js.map} +0 -0
- /package/dist/{chunk-4KGQZHCV.js.map → chunk-4THPTXKA.js.map} +0 -0
- /package/dist/{chunk-2OEECI2R.js.map → chunk-5RX473E3.js.map} +0 -0
- /package/dist/{chunk-U4CYQMG5.js.map → chunk-6G6UUR3T.js.map} +0 -0
- /package/dist/{chunk-BBGKZJXP.js.map → chunk-6REXNFPV.js.map} +0 -0
- /package/dist/{chunk-A4TWHQEF.js.map → chunk-6SM5TZO4.js.map} +0 -0
- /package/dist/{chunk-C6CWI43A.js.map → chunk-7IU4WGGY.js.map} +0 -0
- /package/dist/{chunk-QIZY55Z6.js.map → chunk-7RXR34EN.js.map} +0 -0
- /package/dist/{chunk-KSECMOHE.js.map → chunk-AM4WK3UM.js.map} +0 -0
- /package/dist/{chunk-7Y6CPXM5.js.map → chunk-APCZKTQZ.js.map} +0 -0
- /package/dist/{chunk-3V4R55B4.js.map → chunk-ATD3QB46.js.map} +0 -0
- /package/dist/{chunk-C35UMKYG.js.map → chunk-B2OHCWYB.js.map} +0 -0
- /package/dist/{chunk-CM2LECNX.js.map → chunk-BGT5ZA4L.js.map} +0 -0
- /package/dist/{chunk-SBSFCKOC.js.map → chunk-BKIHYRQL.js.map} +0 -0
- /package/dist/{chunk-ITKTTDC2.js.map → chunk-BPFNGLDE.js.map} +0 -0
- /package/dist/{chunk-FKGYEK54.js.map → chunk-BSGVRSNK.js.map} +0 -0
- /package/dist/{chunk-LXV2U4MI.js.map → chunk-C4EE6LIF.js.map} +0 -0
- /package/dist/{chunk-7E4S2NBD.js.map → chunk-CDKO55S4.js.map} +0 -0
- /package/dist/{chunk-EPW33OQJ.js.map → chunk-CMXG4X3S.js.map} +0 -0
- /package/dist/{chunk-HOZI7GOT.js.map → chunk-D3LTHRZZ.js.map} +0 -0
- /package/dist/{chunk-OYYAR5TD.js.map → chunk-DGUN7FUH.js.map} +0 -0
- /package/dist/{chunk-S4JAHRIW.js.map → chunk-DSL33LWI.js.map} +0 -0
- /package/dist/{chunk-LBIF6FJY.js.map → chunk-E54435XT.js.map} +0 -0
- /package/dist/{chunk-35FLLWSQ.js.map → chunk-E65DQNH6.js.map} +0 -0
- /package/dist/{chunk-C54JXXV3.js.map → chunk-EBWOLUII.js.map} +0 -0
- /package/dist/{chunk-FRUOWEWZ.js.map → chunk-EMCTUCCJ.js.map} +0 -0
- /package/dist/{chunk-UT4OM34H.js.map → chunk-F4QA4J2S.js.map} +0 -0
- /package/dist/{chunk-LE6VTYWQ.js.map → chunk-FMUOZSE2.js.map} +0 -0
- /package/dist/{chunk-ZBP735CV.js.map → chunk-FNGBUOPW.js.map} +0 -0
- /package/dist/{chunk-3PG7O3ZW.js.map → chunk-FPTEBOB5.js.map} +0 -0
- /package/dist/{chunk-VPHHCOYS.js.map → chunk-FWSE7AG6.js.map} +0 -0
- /package/dist/{chunk-KGZXQIM5.js.map → chunk-G2PHP2JX.js.map} +0 -0
- /package/dist/{chunk-DR7PLON5.js.map → chunk-GFBEO33K.js.map} +0 -0
- /package/dist/{chunk-JD4DSJPT.js.map → chunk-GI7B47X3.js.map} +0 -0
- /package/dist/{chunk-MI3J4O42.js.map → chunk-GJHN3B2Y.js.map} +0 -0
- /package/dist/{chunk-GTIQUOYC.js.map → chunk-GN7K3NPI.js.map} +0 -0
- /package/dist/{chunk-2Y3VZILY.js.map → chunk-HBDWE7WK.js.map} +0 -0
- /package/dist/{chunk-DR4TIYTE.js.map → chunk-HXQOAJLQ.js.map} +0 -0
- /package/dist/{chunk-S4PK55OH.js.map → chunk-HZO5DOF7.js.map} +0 -0
- /package/dist/{chunk-337ZJ3PX.js.map → chunk-I6YWF2RA.js.map} +0 -0
- /package/dist/{chunk-KAJXOGQ2.js.map → chunk-IARLXACF.js.map} +0 -0
- /package/dist/{chunk-TFN7L5H3.js.map → chunk-IDITKLYK.js.map} +0 -0
- /package/dist/{chunk-MMUT4W5L.js.map → chunk-IJPIIQAX.js.map} +0 -0
- /package/dist/{chunk-JUFABKU4.js.map → chunk-JELKYZ4L.js.map} +0 -0
- /package/dist/{chunk-ZPF253G5.js.map → chunk-JF2XP76K.js.map} +0 -0
- /package/dist/{chunk-GZN2RP7D.js.map → chunk-JFNI5SEG.js.map} +0 -0
- /package/dist/{chunk-JEMYDBKC.js.map → chunk-JOXEB2AB.js.map} +0 -0
- /package/dist/{chunk-AMHVCMBW.js.map → chunk-JY3OJBKZ.js.map} +0 -0
- /package/dist/{chunk-GT76FWES.js.map → chunk-KIXVHP2C.js.map} +0 -0
- /package/dist/{chunk-5VVXF3OS.js.map → chunk-LMB44RJE.js.map} +0 -0
- /package/dist/{chunk-N3T4ALXV.js.map → chunk-LUIV5R2Z.js.map} +0 -0
- /package/dist/{chunk-EAHBTBVR.js.map → chunk-MGWAZXY6.js.map} +0 -0
- /package/dist/{chunk-YFRNONXL.js.map → chunk-MVWR7JNJ.js.map} +0 -0
- /package/dist/{chunk-AGEWPMBR.js.map → chunk-N57MUA4V.js.map} +0 -0
- /package/dist/{chunk-2AJ5UNOF.js.map → chunk-NBWZVBDG.js.map} +0 -0
- /package/dist/{chunk-NRMJWNX3.js.map → chunk-NGQ5J4FV.js.map} +0 -0
- /package/dist/{chunk-S6KZ4GDL.js.map → chunk-NIGDG522.js.map} +0 -0
- /package/dist/{chunk-4OY6SHHM.js.map → chunk-NPJRACA2.js.map} +0 -0
- /package/dist/{chunk-OTGHCGLW.js.map → chunk-OMW4EUKA.js.map} +0 -0
- /package/dist/{chunk-MWJNFGV6.js.map → chunk-P2XBADY3.js.map} +0 -0
- /package/dist/{chunk-CTBDVZ5E.js.map → chunk-P3VY5JEM.js.map} +0 -0
- /package/dist/{chunk-MIOE5IN3.js.map → chunk-PFO26LK5.js.map} +0 -0
- /package/dist/{chunk-H23Q55DS.js.map → chunk-PGXUR32U.js.map} +0 -0
- /package/dist/{chunk-LE33VXJV.js.map → chunk-PKZA7XCB.js.map} +0 -0
- /package/dist/{chunk-PQN4PIC6.js.map → chunk-Q7BVIPQF.js.map} +0 -0
- /package/dist/{chunk-NGXZQESA.js.map → chunk-QK3HMAVU.js.map} +0 -0
- /package/dist/{chunk-YFIWCMVC.js.map → chunk-RHEWQB5O.js.map} +0 -0
- /package/dist/{chunk-T2JHHSPI.js.map → chunk-RJS47NTI.js.map} +0 -0
- /package/dist/{chunk-OQGE5GSP.js.map → chunk-RLAUWWGJ.js.map} +0 -0
- /package/dist/{chunk-FSLSISPI.js.map → chunk-RP36XHWT.js.map} +0 -0
- /package/dist/{chunk-KDDHMKTU.js.map → chunk-RW33IGR5.js.map} +0 -0
- /package/dist/{chunk-7ZYXRMSM.js.map → chunk-RWMPH5DX.js.map} +0 -0
- /package/dist/{chunk-M7FP7DKN.js.map → chunk-SDIBQH6Y.js.map} +0 -0
- /package/dist/{chunk-WTODFKZR.js.map → chunk-SPBG6OP7.js.map} +0 -0
- /package/dist/{chunk-3YHOU5IA.js.map → chunk-SVSWJ56A.js.map} +0 -0
- /package/dist/{chunk-ELAYD7O3.js.map → chunk-SVUFNCOE.js.map} +0 -0
- /package/dist/{chunk-AXSSATJW.js.map → chunk-SYLPRIFM.js.map} +0 -0
- /package/dist/{chunk-RW32BYY3.js.map → chunk-TARINRA4.js.map} +0 -0
- /package/dist/{chunk-TQDZQT6U.js.map → chunk-TNZUMU55.js.map} +0 -0
- /package/dist/{chunk-ZI7CLQB5.js.map → chunk-USVTT74J.js.map} +0 -0
- /package/dist/{chunk-RZUXHIRN.js.map → chunk-V2SU2SVZ.js.map} +0 -0
- /package/dist/{chunk-TP6QJATO.js.map → chunk-VFL6B6F6.js.map} +0 -0
- /package/dist/{chunk-Z4BU2JVK.js.map → chunk-VMGPRXW2.js.map} +0 -0
- /package/dist/{chunk-H27R5IVQ.js.map → chunk-VOUCQ2YW.js.map} +0 -0
- /package/dist/{chunk-W3PJ7V4W.js.map → chunk-VWOKPC3T.js.map} +0 -0
- /package/dist/{chunk-UMQCYEAL.js.map → chunk-W4W3F3P7.js.map} +0 -0
- /package/dist/{chunk-B52GKPH2.js.map → chunk-WAQPF4XP.js.map} +0 -0
- /package/dist/{chunk-VWKFQ4ZY.js.map → chunk-WOE4TZHJ.js.map} +0 -0
- /package/dist/{chunk-WQQ7SH3M.js.map → chunk-WUGTZHFI.js.map} +0 -0
- /package/dist/{chunk-F4QYUDXE.js.map → chunk-WV3FKE7F.js.map} +0 -0
- /package/dist/{chunk-DNRXEP4A.js.map → chunk-XBR7TSZN.js.map} +0 -0
- /package/dist/{chunk-4GQJOHJY.js.map → chunk-XG5VGUJ3.js.map} +0 -0
- /package/dist/{chunk-CISJ7CUA.js.map → chunk-XJSEDW63.js.map} +0 -0
- /package/dist/{chunk-KG7WIVNG.js.map → chunk-XMOELSW7.js.map} +0 -0
- /package/dist/{chunk-D2F73AUY.js.map → chunk-XPXCXUF4.js.map} +0 -0
- /package/dist/{chunk-WDPOXO34.js.map → chunk-XTZVZHTN.js.map} +0 -0
- /package/dist/{chunk-NQ5O2NCJ.js.map → chunk-XYNQMRNX.js.map} +0 -0
- /package/dist/{chunk-4QLVMG63.js.map → chunk-Y2AKJYI4.js.map} +0 -0
- /package/dist/{chunk-35T6LCB2.js.map → chunk-YGDRGBII.js.map} +0 -0
- /package/dist/{chunk-WI3TCYEA.js.map → chunk-YMLJ2H5C.js.map} +0 -0
- /package/dist/{chunk-RGSSKOTZ.js.map → chunk-YU55LFZZ.js.map} +0 -0
- /package/dist/{chunk-BQSDW6FT.js.map → chunk-Z7BNOHTY.js.map} +0 -0
- /package/dist/{chunk-IJ5DWALA.js.map → chunk-ZEUAJAKN.js.map} +0 -0
- /package/dist/{chunk-CKT5SR7F.js.map → chunk-ZFAZ2V5P.js.map} +0 -0
- /package/dist/{claim-65UCFSNU.js.map → claim-XWJJMUON.js.map} +0 -0
- /package/dist/{client-SZ4N5NCP.js.map → client-6MXJPWFS.js.map} +0 -0
- /package/dist/{code-RZXUOVH3.js.map → code-TIM5S232.js.map} +0 -0
- /package/dist/{companies-PUU5HQPO.js.map → companies-KVOWGAFU.js.map} +0 -0
- /package/dist/{company-P64YHCCF.js.map → company-OVTBZSTS.js.map} +0 -0
- /package/dist/{complete-D7LIEFAQ.js.map → complete-3H62J4CN.js.map} +0 -0
- /package/dist/{config-7RX352G2.js.map → config-3GCILBEL.js.map} +0 -0
- /package/dist/{connect-OJEK3NSN.js.map → connect-EZS7NDMA.js.map} +0 -0
- /package/dist/{content-BOERUNX4.js.map → content-5OGEZTXU.js.map} +0 -0
- /package/dist/{conversation-S2I75E4X.js.map → conversation-CCW2J2G6.js.map} +0 -0
- /package/dist/{conversion-report-JNWBTLA5.js.map → conversion-report-RB2MU7UD.js.map} +0 -0
- /package/dist/{conversion-upload-command-6OKMSO2T.js.map → conversion-upload-command-XD5AISWW.js.map} +0 -0
- /package/dist/{conversion-writes-2VOWP4RD.js.map → conversion-writes-56AIPXPK.js.map} +0 -0
- /package/dist/{conversions-JGIBYLK5.js.map → conversions-NRX76ZIT.js.map} +0 -0
- /package/dist/{conversions-XQLNBKCS.js.map → conversions-VFSX6NYO.js.map} +0 -0
- /package/dist/{copy-writes-PVWZEU4S.js.map → copy-writes-VPSNWYVX.js.map} +0 -0
- /package/dist/{countries-Z4IQIMWQ.js.map → countries-77ULLD74.js.map} +0 -0
- /package/dist/{create-URSL4J7P.js.map → create-4RGSS522.js.map} +0 -0
- /package/dist/{create-WTG4PLR7.js.map → create-C7Z47BYL.js.map} +0 -0
- /package/dist/{create-UBQF3F43.js.map → create-GOH2JUIY.js.map} +0 -0
- /package/dist/{create-DXRRIN2L.js.map → create-YDCC3X5V.js.map} +0 -0
- /package/dist/{creatives-KHU3PAMN.js.map → creatives-HJ2R6HRF.js.map} +0 -0
- /package/dist/{creatives-ARJMZYXM.js.map → creatives-PVMOUTIW.js.map} +0 -0
- /package/dist/{creatives-MXMQDNL6.js.map → creatives-PWUBAVOB.js.map} +0 -0
- /package/dist/{credentials-CMOO7W6D.js.map → credentials-45X7PJJK.js.map} +0 -0
- /package/dist/{critique-455CFJQ2.js.map → critique-4J45TRYU.js.map} +0 -0
- /package/dist/{critique-MABDKWHC.js.map → critique-KIPVWRUA.js.map} +0 -0
- /package/dist/{crm-LKQBWL7L.js.map → crm-LSG3A4RY.js.map} +0 -0
- /package/dist/{crm-YAFF2LM2.js.map → crm-ZXHUGF52.js.map} +0 -0
- /package/dist/{crop-JRVHX3PX.js.map → crop-TFU3T7BW.js.map} +0 -0
- /package/dist/{currency-JDAVYMD3.js.map → currency-T7VUQVAZ.js.map} +0 -0
- /package/dist/{custom-conversions-OVUDN3HH.js.map → custom-conversions-RO2U5NF4.js.map} +0 -0
- /package/dist/{customers-XQJTF7HT.js.map → customers-7GQW7NND.js.map} +0 -0
- /package/dist/{decide-MPNAZFAK.js.map → decide-65GLJMTU.js.map} +0 -0
- /package/dist/{delete-7OTBPZGJ.js.map → delete-C5Z6CJJA.js.map} +0 -0
- /package/dist/{delete-FWPYWUNU.js.map → delete-PUJY4JX6.js.map} +0 -0
- /package/dist/{delete-ROD2G6IL.js.map → delete-T3QRUC5I.js.map} +0 -0
- /package/dist/{delete-RLLRUSGR.js.map → delete-TWABWVPE.js.map} +0 -0
- /package/dist/{delete-ZRMD5TG4.js.map → delete-U3ZMLXWY.js.map} +0 -0
- /package/dist/{delete-JPSIBQXR.js.map → delete-YAASRHAU.js.map} +0 -0
- /package/dist/{demographics-HM2TV4T2.js.map → demographics-YQRCDSKX.js.map} +0 -0
- /package/dist/{describe-OUYPLJJE.js.map → describe-OOC7Q5S6.js.map} +0 -0
- /package/dist/{describe-XQGFIM2Z.js.map → describe-Z7XUOSCC.js.map} +0 -0
- /package/dist/{dimensions-MMVCXOFJ.js.map → dimensions-YEG46EKN.js.map} +0 -0
- /package/dist/{discard-55OBCTIR.js.map → discard-2FRCNBDP.js.map} +0 -0
- /package/dist/{discover-VEHKBNCY.js.map → discover-HRNBTN4K.js.map} +0 -0
- /package/dist/{discover-Z6NS3BP6.js.map → discover-WKHGRR2G.js.map} +0 -0
- /package/dist/{domain-226C6VIF.js.map → domain-ND56WWT5.js.map} +0 -0
- /package/dist/{download-UMEQIQKE.js.map → download-B62FEVDK.js.map} +0 -0
- /package/dist/{download-3JW2NTQZ.js.map → download-QYUPXV7Z.js.map} +0 -0
- /package/dist/{draft-DUAFRL2G.js.map → draft-4BEMU7EY.js.map} +0 -0
- /package/dist/{draft-DSWC37IW.js.map → draft-6E7EQUCU.js.map} +0 -0
- /package/dist/{draft-V7VGPJK4.js.map → draft-AWTS2LBX.js.map} +0 -0
- /package/dist/{draft-KWXV5YOG.js.map → draft-GIJCJIQ5.js.map} +0 -0
- /package/dist/{draft-UMNPM5KA.js.map → draft-RK3ZAUBF.js.map} +0 -0
- /package/dist/{draft-TUTXQNHP.js.map → draft-TZ2MQ24O.js.map} +0 -0
- /package/dist/{draft-S2QTWVIA.js.map → draft-ZNJHDOJT.js.map} +0 -0
- /package/dist/{draft-MPSQIDMM.js.map → draft-ZTOUHIXC.js.map} +0 -0
- /package/dist/{env-O2JJK34F.js.map → env-BL77LHRZ.js.map} +0 -0
- /package/dist/{experiment-2TTMKPVC.js.map → experiment-3D4HJ7HL.js.map} +0 -0
- /package/dist/{experiments-6UHDVVII.js.map → experiments-CQMEMZXO.js.map} +0 -0
- /package/dist/{export-LRPJXAFA.js.map → export-QB7WA36R.js.map} +0 -0
- /package/dist/{extract-7IAAZ6RS.js.map → extract-KY2YOEVW.js.map} +0 -0
- /package/dist/{facets-BZ5AFGHD.js.map → facets-FVJHPNQE.js.map} +0 -0
- /package/dist/{favorites-UXNAI5XW.js.map → favorites-6GAGZDIR.js.map} +0 -0
- /package/dist/{feed-OTUTIGJ6.js.map → feed-IL2SGNQL.js.map} +0 -0
- /package/dist/{feedback-A5DR3IMR.js.map → feedback-Q4GYVI7P.js.map} +0 -0
- /package/dist/{feedback-record-KABFVNHS.js.map → feedback-record-UKZPC3QP.js.map} +0 -0
- /package/dist/{fetch-AG7JJ4BI.js.map → fetch-CCT6ZZ44.js.map} +0 -0
- /package/dist/{find-JH5OMTGJ.js.map → find-SWR3KRRR.js.map} +0 -0
- /package/dist/{fit-T2D4E52B.js.map → fit-6Y6SHLP5.js.map} +0 -0
- /package/dist/{flows-P5T4LNJ2.js.map → flows-6654JFGC.js.map} +0 -0
- /package/dist/{follow-WHLTIJPM.js.map → follow-MKXZKUM6.js.map} +0 -0
- /package/dist/{follow-competitors-DO7RVQXT.js.map → follow-competitors-Q62S5O7W.js.map} +0 -0
- /package/dist/{following-ZL34FZ32.js.map → following-4BYSHU6G.js.map} +0 -0
- /package/dist/{fonts-U3NGQYJN.js.map → fonts-SM5HLEP4.js.map} +0 -0
- /package/dist/{forecast-UYBYSH3Y.js.map → forecast-4TS6PIGA.js.map} +0 -0
- /package/dist/{forecast-TG5RS5DG.js.map → forecast-7I6YKTYU.js.map} +0 -0
- /package/dist/{funding-55XBHYY6.js.map → funding-UZUGMCI4.js.map} +0 -0
- /package/dist/{funnel-D6YXU7C4.js.map → funnel-ITXHCKXM.js.map} +0 -0
- /package/dist/{ga4-WIOBF5HW.js.map → ga4-SBHUQKGK.js.map} +0 -0
- /package/dist/{generate-QG7GX6WO.js.map → generate-JQIK3UYS.js.map} +0 -0
- /package/dist/{get-WEWFUNWZ.js.map → get-42THE7PC.js.map} +0 -0
- /package/dist/{get-IGXC3JQ5.js.map → get-56NGML76.js.map} +0 -0
- /package/dist/{get-P5Z274DM.js.map → get-7QHQMT3F.js.map} +0 -0
- /package/dist/{get-TISXCTDV.js.map → get-EJ5Q72W7.js.map} +0 -0
- /package/dist/{get-TXVHONYI.js.map → get-FGHRSPZJ.js.map} +0 -0
- /package/dist/{get-Z46N7LBR.js.map → get-GC34EKMH.js.map} +0 -0
- /package/dist/{get-QA333Q5J.js.map → get-SOSR3FVM.js.map} +0 -0
- /package/dist/{get-E4VOTCE6.js.map → get-VQJIQ4P3.js.map} +0 -0
- /package/dist/{gif-TD37CRTZ.js.map → gif-PPCB3BLX.js.map} +0 -0
- /package/dist/{google-PFRI7YIG.js.map → google-HSIRHXDB.js.map} +0 -0
- /package/dist/{google-6A3YLR3K.js.map → google-XHNZTASN.js.map} +0 -0
- /package/dist/{google-ads-GBX5YHPT.js.map → google-ads-KC3IMYTU.js.map} +0 -0
- /package/dist/{group-6ENUPDYO.js.map → group-QGTLBE77.js.map} +0 -0
- /package/dist/{group-EYF34B3P.js.map → group-U2WSORDA.js.map} +0 -0
- /package/dist/{gsc-KDE2DTH2.js.map → gsc-EQYYXMSJ.js.map} +0 -0
- /package/dist/{history-M2KVZ2E7.js.map → history-AWPJ7C35.js.map} +0 -0
- /package/dist/{history-BRWYSJQL.js.map → history-F765U4J7.js.map} +0 -0
- /package/dist/{history-XOB23MLX.js.map → history-VNLS2TKB.js.map} +0 -0
- /package/dist/{hubspot-YEZGTOM2.js.map → hubspot-VJOE2XCP.js.map} +0 -0
- /package/dist/{icon-N77IGSXP.js.map → icon-VMJB2MBO.js.map} +0 -0
- /package/dist/{ideas-J6GCTQ6U.js.map → ideas-E4AWTXNN.js.map} +0 -0
- /package/dist/{images-55KBTRVO.js.map → images-WLAJPXFL.js.map} +0 -0
- /package/dist/{improve-BKFZOBXI.js.map → improve-QYP72NOH.js.map} +0 -0
- /package/dist/{ingest-QNV3B2ST.js.map → ingest-43DTZJHV.js.map} +0 -0
- /package/dist/{ingest-LKGF5E5V.js.map → ingest-B5OOTIAS.js.map} +0 -0
- /package/dist/{insights-7NC2JFXU.js.map → insights-EOUJJRUH.js.map} +0 -0
- /package/dist/{insights-7CQJOBWX.js.map → insights-XY6II7TX.js.map} +0 -0
- /package/dist/{inspect-WNPQXU4H.js.map → inspect-WGGPJUS6.js.map} +0 -0
- /package/dist/{inspiration-SQUEBO2K.js.map → inspiration-CSN3AXDD.js.map} +0 -0
- /package/dist/{instant-experiences-3E6RRUHF.js.map → instant-experiences-YJIVONJA.js.map} +0 -0
- /package/dist/{intent-P75BDP4H.js.map → intent-5XO232DG.js.map} +0 -0
- /package/dist/{job-B6UEZLTA.js.map → job-RB7LJI4W.js.map} +0 -0
- /package/dist/{job-create-WM27NOGZ.js.map → job-create-OYJCLKZ5.js.map} +0 -0
- /package/dist/{job-status-6V7DVVYL.js.map → job-status-NTQWCQBZ.js.map} +0 -0
- /package/dist/{keep-ACLZB7KL.js.map → keep-BUORBI7V.js.map} +0 -0
- /package/dist/{keyword-gap-54F6CZLM.js.map → keyword-gap-ZGMK7SMK.js.map} +0 -0
- /package/dist/{keyword-metrics-SJLYED7I.js.map → keyword-metrics-TOUOQ7SS.js.map} +0 -0
- /package/dist/{keywords-for-site-CY2XUFR4.js.map → keywords-for-site-PJHOSSLF.js.map} +0 -0
- /package/dist/{knowledge-5VEMAHG7.js.map → knowledge-LQXY6UIX.js.map} +0 -0
- /package/dist/{landing-DZLICA3P.js.map → landing-ILHRRFYD.js.map} +0 -0
- /package/dist/{landings-Q7T2HSYK.js.map → landings-CY2PRE2U.js.map} +0 -0
- /package/dist/{languages-PEGOE365.js.map → languages-U4HA5KQC.js.map} +0 -0
- /package/dist/{languages-HWMPAPQN.js.map → languages-XO4FEKOB.js.map} +0 -0
- /package/dist/{launches-4HI65M3C.js.map → launches-EXKYONGX.js.map} +0 -0
- /package/dist/{layerize-HXML3KQX.js.map → layerize-HD7DU6WE.js.map} +0 -0
- /package/dist/{lead-routes-Q2T3RQXN.js.map → lead-routes-HBAMCZI4.js.map} +0 -0
- /package/dist/{leads-GZ7RFM7D.js.map → leads-5TYQUSIR.js.map} +0 -0
- /package/dist/{leads-WBZP37CG.js.map → leads-ZDH4PLRE.js.map} +0 -0
- /package/dist/{learn-QNOTY4JA.js.map → learn-WTREPVV2.js.map} +0 -0
- /package/dist/{library-OVX3OUYV.js.map → library-BZVAYFPU.js.map} +0 -0
- /package/dist/{lighthouse-2TDPDU7J.js.map → lighthouse-4VL2PH24.js.map} +0 -0
- /package/dist/{line-item-writes-6RNUOFKK.js.map → line-item-writes-PYADJHLW.js.map} +0 -0
- /package/dist/{line-items-YOBU6DYQ.js.map → line-items-OYCJMB6Y.js.map} +0 -0
- /package/dist/{link-7PEVIIUA.js.map → link-CLG2FSJ3.js.map} +0 -0
- /package/dist/{linkedin-YYNBLBM3.js.map → linkedin-FTZZWW6D.js.map} +0 -0
- /package/dist/{linkedin-person-JGQTT54I.js.map → linkedin-person-DVBTOKLI.js.map} +0 -0
- /package/dist/{list-N5FHLG2Z.js.map → list-4IE7K3OE.js.map} +0 -0
- /package/dist/{list-SDHECXK5.js.map → list-ES7ZHOBJ.js.map} +0 -0
- /package/dist/{list-U3ZABSGW.js.map → list-FDYKWCOW.js.map} +0 -0
- /package/dist/{list-UF7Y4FDE.js.map → list-HX4TZ3OW.js.map} +0 -0
- /package/dist/{list-AAQISQHE.js.map → list-J4XZ3V4A.js.map} +0 -0
- /package/dist/{list-H2XBHKQK.js.map → list-OBB6Q2SO.js.map} +0 -0
- /package/dist/{list-VO473W6E.js.map → list-OCHRLITF.js.map} +0 -0
- /package/dist/{list-IFVBO2E2.js.map → list-SW63CXEC.js.map} +0 -0
- /package/dist/{list-QYUU66YV.js.map → list-X6IOR6AS.js.map} +0 -0
- /package/dist/{locations-MXWGZIGU.js.map → locations-64JNCQID.js.map} +0 -0
- /package/dist/{locations-SHYN5J4Q.js.map → locations-PYZEJPW3.js.map} +0 -0
- /package/dist/{log-HCWZ6C4R.js.map → log-PKFKZQXD.js.map} +0 -0
- /package/dist/{logo-2NDZ2EVN.js.map → logo-2I2S2THP.js.map} +0 -0
- /package/dist/{lookup-UFVB2ZZF.js.map → lookup-S74NWDKI.js.map} +0 -0
- /package/dist/{make-VZKIB23N.js.map → make-5MCL4B3T.js.map} +0 -0
- /package/dist/{map-RFMJ4AF7.js.map → map-JB2OYS7G.js.map} +0 -0
- /package/dist/{mcp-VRFT3QJW.js.map → mcp-GS7AO7K5.js.map} +0 -0
- /package/dist/{media-5XRMDMKD.js.map → media-4V5IBDKN.js.map} +0 -0
- /package/dist/{media-3M3PVSEZ.js.map → media-KFQ56V4R.js.map} +0 -0
- /package/dist/{media-sources-NTZRJGFU.js.map → media-sources-JFLZPZAO.js.map} +0 -0
- /package/dist/{members-EOIF2XN3.js.map → members-E6EJAZZ4.js.map} +0 -0
- /package/dist/{meme-EOAFE4FS.js.map → meme-4KWPQ6UF.js.map} +0 -0
- /package/dist/{meta-6IFYEOZL.js.map → meta-X46LC3GI.js.map} +0 -0
- /package/dist/{metrics-25LYUEB7.js.map → metrics-76BTT3Y3.js.map} +0 -0
- /package/dist/{models-EU3NO4IY.js.map → models-Z6SUHWKI.js.map} +0 -0
- /package/dist/{normalize-UQIZEJHT.js.map → normalize-UQIN6KDH.js.map} +0 -0
- /package/dist/{normalize-NDBXU6UO.js.map → normalize-WEVIIPWW.js.map} +0 -0
- /package/dist/{options-Y6JI2ZVZ.js.map → options-YWD3K4UJ.js.map} +0 -0
- /package/dist/{organization-TO2V7AWX.js.map → organization-ZACAD7FF.js.map} +0 -0
- /package/dist/{output-KIQWBKKA.js.map → output-E3FDRLRQ.js.map} +0 -0
- /package/dist/{page-GGT3KZ5E.js.map → page-3Q5ZCRPX.js.map} +0 -0
- /package/dist/{page-photos-FKWHLNWM.js.map → page-photos-ZIRMGE6V.js.map} +0 -0
- /package/dist/{pages-JALRE36R.js.map → pages-TK6Y7IYX.js.map} +0 -0
- /package/dist/{performance-YAUOH75F.js.map → performance-DFQVCUDZ.js.map} +0 -0
- /package/dist/{performance-V26JUNGC.js.map → performance-KBH3O4O4.js.map} +0 -0
- /package/dist/{pinterest-KURR4GJJ.js.map → pinterest-BZ2UFFBC.js.map} +0 -0
- /package/dist/{pixels-6PKYGSQ4.js.map → pixels-6XRTLCM3.js.map} +0 -0
- /package/dist/{pixels-NLH2PN6Q.js.map → pixels-H642RPK4.js.map} +0 -0
- /package/dist/{plan-223DL4HG.js.map → plan-2Q6SOHMD.js.map} +0 -0
- /package/dist/{posts-YPW4NHWM.js.map → posts-FV62HSKG.js.map} +0 -0
- /package/dist/{preview-CD2QADBJ.js.map → preview-LB73AIG2.js.map} +0 -0
- /package/dist/{profile-7KUWZTJR.js.map → profile-OFG36E72.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-3SLFZQDA.js.map → promoted-tweet-writes-Q45KVTGM.js.map} +0 -0
- /package/dist/{promoted-tweets-3WRSJYKK.js.map → promoted-tweets-4PAYET4L.js.map} +0 -0
- /package/dist/{properties-LCZX4UJH.js.map → properties-HHJ2K6YL.js.map} +0 -0
- /package/dist/{publish-T6ITLSJA.js.map → publish-TOOCBLS6.js.map} +0 -0
- /package/dist/{query-SRJXJVDY.js.map → query-GSBZKWHE.js.map} +0 -0
- /package/dist/{query-RKJS3QOS.js.map → query-TTNBBIJH.js.map} +0 -0
- /package/dist/{query-WX3K7ZDY.js.map → query-XGPZP5UC.js.map} +0 -0
- /package/dist/{questionnaire-CCDUSEI3.js.map → questionnaire-VIG54QFD.js.map} +0 -0
- /package/dist/{read-JTJQSEVB.js.map → read-DF3UPNBM.js.map} +0 -0
- /package/dist/{reddit-O2TNBMD6.js.map → reddit-2BOIPZLW.js.map} +0 -0
- /package/dist/{refresh-N726O36Z.js.map → refresh-2YQGTF2Q.js.map} +0 -0
- /package/dist/{refresh-H4DETVS5.js.map → refresh-RFUNCAXM.js.map} +0 -0
- /package/dist/{release-A5HKTUMV.js.map → release-6SQOFLTQ.js.map} +0 -0
- /package/dist/{relevant-pages-VJHTUJMB.js.map → relevant-pages-OMYH3PSP.js.map} +0 -0
- /package/dist/{remove-5FMNASGC.js.map → remove-HSTBAJL2.js.map} +0 -0
- /package/dist/{remove-BHUYRNRU.js.map → remove-REVQUCGW.js.map} +0 -0
- /package/dist/{reopen-TTDYNANZ.js.map → reopen-3JFASZ7Z.js.map} +0 -0
- /package/dist/{rerun-KFTQ6Y64.js.map → rerun-HAD2SZDF.js.map} +0 -0
- /package/dist/{research-YWON4E4H.js.map → research-DT7UTJQT.js.map} +0 -0
- /package/dist/{reset-SSNHRP5C.js.map → reset-7VYYVMHY.js.map} +0 -0
- /package/dist/{reset-VTNVCE23.js.map → reset-TPMUZBN3.js.map} +0 -0
- /package/dist/{resolve-375FALNN.js.map → resolve-7DTGRVQ5.js.map} +0 -0
- /package/dist/{retry-TLGYZ6RJ.js.map → retry-AE76A5JL.js.map} +0 -0
- /package/dist/{retry-PNS6RWJ6.js.map → retry-WVVMZBJT.js.map} +0 -0
- /package/dist/{retry-failed-DSVEAY3T.js.map → retry-failed-NH47LEKA.js.map} +0 -0
- /package/dist/{revenue-6L2AY7L7.js.map → revenue-TXR2Z3LQ.js.map} +0 -0
- /package/dist/{rule-writes-XSNS3XYK.js.map → rule-writes-ILVWCFKQ.js.map} +0 -0
- /package/dist/{rules-F6J4V7PZ.js.map → rules-FDJ5YESR.js.map} +0 -0
- /package/dist/{rules-GHGEVCBQ.js.map → rules-YO3EKWCX.js.map} +0 -0
- /package/dist/{rules-add-7UI5A3MJ.js.map → rules-add-T2AQ3C4P.js.map} +0 -0
- /package/dist/{run-UN4HXEGZ.js.map → run-N4A75YWN.js.map} +0 -0
- /package/dist/{run-B77D2TGX.js.map → run-VT5OCURD.js.map} +0 -0
- /package/dist/{scaffold-ad-74CEBCRR.js.map → scaffold-ad-FINQYGF2.js.map} +0 -0
- /package/dist/{scaffold-static-ad-2IMVWNYB.js.map → scaffold-static-ad-YDDFTTNN.js.map} +0 -0
- /package/dist/{scaffold-video-JDCX3BIT.js.map → scaffold-video-2CCS7CK4.js.map} +0 -0
- /package/dist/{schedule-WK5MRYCJ.js.map → schedule-XZVUL4CA.js.map} +0 -0
- /package/dist/{schedule-Z2AQXR7W.js.map → schedule-Y7UN7Q24.js.map} +0 -0
- /package/dist/{scheduled-agents-2NTFBABN.js.map → scheduled-agents-35PY445V.js.map} +0 -0
- /package/dist/{schema-BBC6AARZ.js.map → schema-JT3464PC.js.map} +0 -0
- /package/dist/{schema-BDZA64GZ.js.map → schema-NSXMRNWM.js.map} +0 -0
- /package/dist/{scrape-CTE5SNQN.js.map → scrape-3PWNMK4D.js.map} +0 -0
- /package/dist/{screenshot-ELJYTIM7.js.map → screenshot-CJYM4SF7.js.map} +0 -0
- /package/dist/{search-OF6LTOK6.js.map → search-5QUBKDL6.js.map} +0 -0
- /package/dist/{search-KBIF5NZX.js.map → search-BR5KK7BE.js.map} +0 -0
- /package/dist/{search-5B5AXN5V.js.map → search-CDONEXJY.js.map} +0 -0
- /package/dist/{search-7ELGWNMH.js.map → search-FMOFSOJ3.js.map} +0 -0
- /package/dist/{search-KC4QRMU2.js.map → search-VDSV554K.js.map} +0 -0
- /package/dist/{search-XO5UPSBF.js.map → search-WAD2Z5VU.js.map} +0 -0
- /package/dist/{search-copy-DDRY6HPI.js.map → search-copy-5IKZTJUP.js.map} +0 -0
- /package/dist/{seeds-HH5E7GCS.js.map → seeds-EXTAHRXO.js.map} +0 -0
- /package/dist/{select-SZAJR4QY.js.map → select-EWUA34ZM.js.map} +0 -0
- /package/dist/{sends-H7WMLJ5H.js.map → sends-CSE4LTQU.js.map} +0 -0
- /package/dist/{sequences-V4STPHGV.js.map → sequences-RRUXKL7H.js.map} +0 -0
- /package/dist/{set-prompt-KHB4JJV2.js.map → set-prompt-ZX364V7V.js.map} +0 -0
- /package/dist/{setup-links-SJVDPNOF.js.map → setup-links-BI6GPN5F.js.map} +0 -0
- /package/dist/{shared-P2PFNNJF.js.map → shared-FBQIX453.js.map} +0 -0
- /package/dist/{shopify-MODNP6LT.js.map → shopify-RALHX5OB.js.map} +0 -0
- /package/dist/{site-5K73B2MI.js.map → site-WKS57PJL.js.map} +0 -0
- /package/dist/{sitemaps-KMRWAKNK.js.map → sitemaps-TMHDYRHR.js.map} +0 -0
- /package/dist/{sites-3QZDCQRG.js.map → sites-AIJPSL7T.js.map} +0 -0
- /package/dist/{skills-KV4X22KQ.js.map → skills-7VRKG7GE.js.map} +0 -0
- /package/dist/{sources-S7LAV2EP.js.map → sources-ECE62RFF.js.map} +0 -0
- /package/dist/{sources-2E6EK6YK.js.map → sources-VUKEO4WE.js.map} +0 -0
- /package/dist/{stale-3IPYZ7BI.js.map → stale-PSJNR6EY.js.map} +0 -0
- /package/dist/{stats-3TAUG3Q3.js.map → stats-ROWGFLUZ.js.map} +0 -0
- /package/dist/{status-6QTJSJN7.js.map → status-SJKGPDXC.js.map} +0 -0
- /package/dist/{sticker-SH6VUPFR.js.map → sticker-MCJ4IOPJ.js.map} +0 -0
- /package/dist/{stock-IICCY3IQ.js.map → stock-QKI2V3EO.js.map} +0 -0
- /package/dist/{studies-A52C544C.js.map → studies-DUFFDAZS.js.map} +0 -0
- /package/dist/{studio-4QOFG7MQ.js.map → studio-6ZXUKA4G.js.map} +0 -0
- /package/dist/{study-writes-3R4D6C3F.js.map → study-writes-N7AOKA4W.js.map} +0 -0
- /package/dist/{suggest-3CFMURUH.js.map → suggest-534G7JP5.js.map} +0 -0
- /package/dist/{sync-TJ7MGFIE.js.map → sync-QY2O4ISM.js.map} +0 -0
- /package/dist/{sync-H4XVXITS.js.map → sync-TX4FZRLP.js.map} +0 -0
- /package/dist/{sync-37P7TZQH.js.map → sync-UW5ANNQZ.js.map} +0 -0
- /package/dist/{sync-definition-CDQCNCU2.js.map → sync-definition-3L7K7QWS.js.map} +0 -0
- /package/dist/{tag-6WIQLRDW.js.map → tag-SBOFQW2N.js.map} +0 -0
- /package/dist/{tag-manager-KWITWX6Y.js.map → tag-manager-5ORFHLM4.js.map} +0 -0
- /package/dist/{tags-OB24PQKE.js.map → tags-2CDXVME5.js.map} +0 -0
- /package/dist/{tags-SS7FE52N.js.map → tags-6H4JKL2B.js.map} +0 -0
- /package/dist/{tags-2VZUCNNH.js.map → tags-7ZWYNXJD.js.map} +0 -0
- /package/dist/{tags-CBINFGAN.js.map → tags-BYZCEK5V.js.map} +0 -0
- /package/dist/{tags-FVRIF3XS.js.map → tags-WFN43UES.js.map} +0 -0
- /package/dist/{targeting-II4CQUPW.js.map → targeting-XK7ED2CS.js.map} +0 -0
- /package/dist/{targeting-constants-2EHTMIMX.js.map → targeting-constants-6RAE4UMA.js.map} +0 -0
- /package/dist/{targeting-criteria-ECC662DL.js.map → targeting-criteria-QIFK56RP.js.map} +0 -0
- /package/dist/{targets-GIRHNZ4W.js.map → targets-OVQQEF6E.js.map} +0 -0
- /package/dist/{terms-URBA2IXT.js.map → terms-CUIVHWMT.js.map} +0 -0
- /package/dist/{testimonials-IEJ24MH7.js.map → testimonials-H6SAGYMM.js.map} +0 -0
- /package/dist/{themes-JBX6W4SP.js.map → themes-BQP3HK74.js.map} +0 -0
- /package/dist/{top-companies-POSJMWSB.js.map → top-companies-672JEIYA.js.map} +0 -0
- /package/dist/{transcript-FCKURXTT.js.map → transcript-QRDDL4MX.js.map} +0 -0
- /package/dist/{translate-F4B3WEJO.js.map → translate-2IHE5YDI.js.map} +0 -0
- /package/dist/{triggers-DRAKT5QB.js.map → triggers-JMMH4YDD.js.map} +0 -0
- /package/dist/{tweets-LECORASF.js.map → tweets-HESNCAOU.js.map} +0 -0
- /package/dist/{unfollow-DBV2F7YP.js.map → unfollow-ZEE4K5EH.js.map} +0 -0
- /package/dist/{unlink-OEUJXG64.js.map → unlink-AYBNJEJP.js.map} +0 -0
- /package/dist/{unstage-XCH4VBM2.js.map → unstage-F4GIR4XE.js.map} +0 -0
- /package/dist/{unstage-F362CYM7.js.map → unstage-XMOGDPZ4.js.map} +0 -0
- /package/dist/{update-BAE3BEEW.js.map → update-3NNT6EAS.js.map} +0 -0
- /package/dist/{update-UME7HHOC.js.map → update-CMJUZH3K.js.map} +0 -0
- /package/dist/{update-JDFJPQ3O.js.map → update-NC2BN6QB.js.map} +0 -0
- /package/dist/{update-4CVNP3B5.js.map → update-UX6PTFXZ.js.map} +0 -0
- /package/dist/{update-XOSKQEMK.js.map → update-YIUE3QBL.js.map} +0 -0
- /package/dist/{upload-BABKWQIN.js.map → upload-OY35RO5V.js.map} +0 -0
- /package/dist/{upload-B27ZJMMZ.js.map → upload-XKBJU65H.js.map} +0 -0
- /package/dist/{upscale-QMBV3AGN.js.map → upscale-YZVFXJ75.js.map} +0 -0
- /package/dist/{url-options-JSRAMMEM.js.map → url-options-5ADN3SYO.js.map} +0 -0
- /package/dist/{url-params-ZVIYOHM2.js.map → url-params-DUEOK2Y3.js.map} +0 -0
- /package/dist/{use-TBDI3OAN.js.map → use-7EP5OXPQ.js.map} +0 -0
- /package/dist/{validate-DN44TVXS.js.map → validate-SFVCHAGI.js.map} +0 -0
- /package/dist/{variant-2A5GOOJF.js.map → variant-QNNTZPLR.js.map} +0 -0
- /package/dist/{videos-OVVH4LC2.js.map → videos-OGMX2BDQ.js.map} +0 -0
- /package/dist/{view-GNNIJGGN.js.map → view-VFZUL5UL.js.map} +0 -0
- /package/dist/{viewer-check-SOPRTRNX.js.map → viewer-check-K6UC5PCF.js.map} +0 -0
- /package/dist/{winners-6CW4CWZI.js.map → winners-LXOFPZOD.js.map} +0 -0
- /package/dist/{winning-ads-HIP6PWPL.js.map → winning-ads-J3WR3ENK.js.map} +0 -0
- /package/dist/{write-commands-UW5LKCAP.js.map → write-commands-FGWCJHLH.js.map} +0 -0
- /package/dist/{write-commands-U3JZ6UHG.js.map → write-commands-RSN3MPBW.js.map} +0 -0
- /package/dist/{write-commands-TPPJHGMT.js.map → write-commands-T5RY54ZT.js.map} +0 -0
- /package/dist/{write-commands-3G5WDFH3.js.map → write-commands-UTM7PPK5.js.map} +0 -0
- /package/dist/{x-ROOD4SQH.js.map → x-F44WG5LV.js.map} +0 -0
|
@@ -0,0 +1,1525 @@
|
|
|
1
|
+
import {
|
|
2
|
+
TOTAL_BUDGET_HELP,
|
|
3
|
+
bareAccountId,
|
|
4
|
+
failWriteValidation,
|
|
5
|
+
loadJsonFileArg,
|
|
6
|
+
loadTargetingFileArg,
|
|
7
|
+
mergePayload,
|
|
8
|
+
parseDateFlag,
|
|
9
|
+
parseListFileArg,
|
|
10
|
+
parseLocaleFlag,
|
|
11
|
+
parseMoneyFlag,
|
|
12
|
+
parseOnOffFlag,
|
|
13
|
+
requireTarget,
|
|
14
|
+
requireTargets,
|
|
15
|
+
stageLinkedinOps,
|
|
16
|
+
stageOp,
|
|
17
|
+
stageStatusChange
|
|
18
|
+
} from "./chunk-I6YWF2RA.js";
|
|
19
|
+
import {
|
|
20
|
+
handleLinkedinError
|
|
21
|
+
} from "./chunk-XJSEDW63.js";
|
|
22
|
+
import {
|
|
23
|
+
repeatedValues
|
|
24
|
+
} from "./chunk-ERSX3MKH.js";
|
|
25
|
+
import "./chunk-3W4IORXH.js";
|
|
26
|
+
import "./chunk-4NZ47VXO.js";
|
|
27
|
+
import "./chunk-D5FY4FAK.js";
|
|
28
|
+
import "./chunk-NGQ5J4FV.js";
|
|
29
|
+
import {
|
|
30
|
+
writeJsonEnvelope
|
|
31
|
+
} from "./chunk-MGWAZXY6.js";
|
|
32
|
+
import "./chunk-VWOKPC3T.js";
|
|
33
|
+
import "./chunk-BGT5ZA4L.js";
|
|
34
|
+
import "./chunk-JF2XP76K.js";
|
|
35
|
+
import "./chunk-SYLPRIFM.js";
|
|
36
|
+
import "./chunk-XBR7TSZN.js";
|
|
37
|
+
import "./chunk-DGUN7FUH.js";
|
|
38
|
+
import {
|
|
39
|
+
CONVERSION_UPLOAD_MAX_EVENTS,
|
|
40
|
+
LEADGEN_CTA_LABELS,
|
|
41
|
+
TEMP_REF_PREFIX,
|
|
42
|
+
TRACKING_PARAM_DYNAMIC_VALUES,
|
|
43
|
+
campaignExcludeCompaniesSchema,
|
|
44
|
+
sponsoredPostUrn
|
|
45
|
+
} from "./chunk-NFXW6C6I.js";
|
|
46
|
+
import "./chunk-QV6AST5T.js";
|
|
47
|
+
import "./chunk-WCU362Z6.js";
|
|
48
|
+
import "./chunk-GIWHHCD6.js";
|
|
49
|
+
import "./chunk-SOPVIIUW.js";
|
|
50
|
+
import "./chunk-G4FG5EQO.js";
|
|
51
|
+
import "./chunk-NSBNIPIW.js";
|
|
52
|
+
import "./chunk-TI4UL56R.js";
|
|
53
|
+
import {
|
|
54
|
+
apiGet,
|
|
55
|
+
apiPost
|
|
56
|
+
} from "./chunk-B2OHCWYB.js";
|
|
57
|
+
import "./chunk-SVUFNCOE.js";
|
|
58
|
+
import {
|
|
59
|
+
requireChatId
|
|
60
|
+
} from "./chunk-E54435XT.js";
|
|
61
|
+
import "./chunk-WCIS4FZH.js";
|
|
62
|
+
import "./chunk-YQSBHWOI.js";
|
|
63
|
+
|
|
64
|
+
// src/commands/ads/linkedin/write-commands.ts
|
|
65
|
+
import { readFileSync } from "fs";
|
|
66
|
+
import { defineCommand } from "citty";
|
|
67
|
+
|
|
68
|
+
// src/commands/ads/linkedin/conversion-upload-rows.ts
|
|
69
|
+
import { createHash } from "crypto";
|
|
70
|
+
var SHA256_HEX = /^[0-9a-f]{64}$/i;
|
|
71
|
+
var COLUMN_FIELDS = {
|
|
72
|
+
eventid: "eventId",
|
|
73
|
+
id: "eventId",
|
|
74
|
+
dealid: "eventId",
|
|
75
|
+
orderid: "eventId",
|
|
76
|
+
happenedat: "happenedAt",
|
|
77
|
+
date: "happenedAt",
|
|
78
|
+
closedat: "happenedAt",
|
|
79
|
+
closedate: "happenedAt",
|
|
80
|
+
conversiondatetime: "happenedAt",
|
|
81
|
+
email: "email",
|
|
82
|
+
emailaddress: "email",
|
|
83
|
+
firstname: "firstName",
|
|
84
|
+
lastname: "lastName",
|
|
85
|
+
lifatid: "liFatId",
|
|
86
|
+
companyname: "companyName",
|
|
87
|
+
company: "companyName",
|
|
88
|
+
title: "title",
|
|
89
|
+
jobtitle: "title",
|
|
90
|
+
countrycode: "countryCode",
|
|
91
|
+
country: "countryCode",
|
|
92
|
+
value: "value",
|
|
93
|
+
amount: "value",
|
|
94
|
+
currency: "currency"
|
|
95
|
+
};
|
|
96
|
+
function sha256(value) {
|
|
97
|
+
return createHash("sha256").update(value).digest("hex");
|
|
98
|
+
}
|
|
99
|
+
function hashedEmail(raw) {
|
|
100
|
+
const value = raw.trim();
|
|
101
|
+
return SHA256_HEX.test(value) ? value.toLowerCase() : sha256(value.toLowerCase());
|
|
102
|
+
}
|
|
103
|
+
function hashedName(raw) {
|
|
104
|
+
const value = raw.trim();
|
|
105
|
+
return SHA256_HEX.test(value) ? value.toLowerCase() : sha256(value.toLowerCase().replace(/[\s\p{P}]/gu, ""));
|
|
106
|
+
}
|
|
107
|
+
function fieldValue(field, raw) {
|
|
108
|
+
switch (field) {
|
|
109
|
+
case "email":
|
|
110
|
+
return hashedEmail(raw);
|
|
111
|
+
case "firstName":
|
|
112
|
+
case "lastName":
|
|
113
|
+
return hashedName(raw);
|
|
114
|
+
case "value":
|
|
115
|
+
return Number(raw);
|
|
116
|
+
case "currency":
|
|
117
|
+
return raw.trim().toUpperCase();
|
|
118
|
+
default:
|
|
119
|
+
return raw.trim();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function conversionUploadEvents(rows) {
|
|
123
|
+
const ignored = /* @__PURE__ */ new Set();
|
|
124
|
+
const events = rows.map((row) => {
|
|
125
|
+
const event = {};
|
|
126
|
+
for (const [column, raw] of Object.entries(row)) {
|
|
127
|
+
const field = COLUMN_FIELDS[column.toLowerCase().replace(/[\s_-]/g, "")];
|
|
128
|
+
if (!field) {
|
|
129
|
+
ignored.add(column);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (raw === void 0 || raw === null || String(raw).trim() === "") {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
event[field] = fieldValue(field, String(raw));
|
|
136
|
+
}
|
|
137
|
+
return event;
|
|
138
|
+
});
|
|
139
|
+
return { events, ignored: [...ignored] };
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// src/commands/ads/linkedin/write-commands.ts
|
|
143
|
+
var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads linkedin draft`.";
|
|
144
|
+
var accountArgs = {
|
|
145
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
146
|
+
"account-urn": { type: "string", description: "Alias for --account-id" }
|
|
147
|
+
};
|
|
148
|
+
function runScheduleFromFlags(args) {
|
|
149
|
+
const start = parseDateFlag(args.start, "--start");
|
|
150
|
+
const end = parseDateFlag(args.end, "--end");
|
|
151
|
+
if (start === void 0 && end === void 0) {
|
|
152
|
+
return void 0;
|
|
153
|
+
}
|
|
154
|
+
return { ...start !== void 0 ? { start } : {}, ...end !== void 0 ? { end } : {} };
|
|
155
|
+
}
|
|
156
|
+
function groupBudgetFlags(args) {
|
|
157
|
+
return {
|
|
158
|
+
objectiveType: args.objective ? String(args.objective).toUpperCase() : void 0,
|
|
159
|
+
budgetOptimization: args["shared-budget"] ? { bidStrategy: String(args["shared-budget"]).toUpperCase() } : void 0
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function campaignGroupCreatePayload(args, file) {
|
|
163
|
+
const payload = mergePayload(file, {
|
|
164
|
+
name: args.name,
|
|
165
|
+
runSchedule: runScheduleFromFlags(args),
|
|
166
|
+
totalBudget: parseMoneyFlag(args["total-budget"], args.currency, "--total-budget"),
|
|
167
|
+
status: args.status ? String(args.status).toUpperCase() : void 0,
|
|
168
|
+
...groupBudgetFlags(args)
|
|
169
|
+
});
|
|
170
|
+
return { ...payload, runSchedule: startingNowUnlessSet(payload.runSchedule ?? {}) };
|
|
171
|
+
}
|
|
172
|
+
function startingNowUnlessSet(schedule) {
|
|
173
|
+
const fields = schedule;
|
|
174
|
+
return fields.start === void 0 ? { ...fields, start: Date.now() } : fields;
|
|
175
|
+
}
|
|
176
|
+
var campaignGroupsCreateCommand = defineCommand({
|
|
177
|
+
meta: {
|
|
178
|
+
name: "create",
|
|
179
|
+
description: `Stage a new campaign group. ${STAGED_NOTE}
|
|
180
|
+
A group can't be created PAUSED, and a --total-budget needs an --end.
|
|
181
|
+
Start now: leave out --start (or pass --start now) and add --status ACTIVE \u2014 it starts the moment the chat publishes. A start that has already passed by then also moves to that moment.
|
|
182
|
+
Example: baker ads linkedin campaign-groups create --name "Q3 ABM" --start 2026-07-10 --end 2026-09-30 --total-budget 5000 --currency EUR
|
|
183
|
+
Shared budget: --shared-budget COST_CAP --total-budget 3000 --end 2026-12-31 lets LinkedIn move one budget between the ad sets; each ad set must then bid that way (cost cap: --optimization CAP_COST_AND_MAXIMIZE_LEADS --cost-type CPM --bid <cap>).`
|
|
184
|
+
},
|
|
185
|
+
args: {
|
|
186
|
+
...accountArgs,
|
|
187
|
+
name: { type: "string", description: "Campaign group name (\u2264100 chars)" },
|
|
188
|
+
start: { type: "string", description: "Run schedule start: now (default), ISO date or epoch ms" },
|
|
189
|
+
end: { type: "string", description: "Run schedule end" },
|
|
190
|
+
"total-budget": { type: "string", description: TOTAL_BUDGET_HELP },
|
|
191
|
+
currency: { type: "string", description: "3-letter currency code (defaults to the ad account currency)" },
|
|
192
|
+
objective: {
|
|
193
|
+
type: "string",
|
|
194
|
+
description: "Objective every ad set in it takes (LEAD_GENERATION|WEBSITE_VISIT|\u2026), create-only"
|
|
195
|
+
},
|
|
196
|
+
"shared-budget": {
|
|
197
|
+
type: "string",
|
|
198
|
+
description: "Share the --total-budget across its ad sets, bidding one way for all: MAXIMUM_DELIVERY|MANUAL|COST_CAP (LinkedIn's budget optimization; needs --total-budget and --end)"
|
|
199
|
+
},
|
|
200
|
+
status: {
|
|
201
|
+
type: "string",
|
|
202
|
+
description: "DRAFT|ACTIVE (default DRAFT) \u2014 LinkedIn refuses a new group created PAUSED; pause it once it exists"
|
|
203
|
+
},
|
|
204
|
+
file: { type: "string", description: "JSON file with the full payload; flags override file keys" }
|
|
205
|
+
},
|
|
206
|
+
run: async ({ args }) => {
|
|
207
|
+
const accountId = bareAccountId(args);
|
|
208
|
+
const payload = campaignGroupCreatePayload(args, loadJsonFileArg(args.file));
|
|
209
|
+
await stageOp({ kind: "campaignGroup.create", accountId, payload });
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
var campaignGroupsUpdateCommand = defineCommand({
|
|
213
|
+
meta: {
|
|
214
|
+
name: "update",
|
|
215
|
+
description: `Stage changes to an existing campaign group. ${STAGED_NOTE}
|
|
216
|
+
Pass a li_temp_* ref to amend a group staged in this chat \u2014 fields merge into the staged create.
|
|
217
|
+
Example: baker ads linkedin campaign-groups update 635137195 --total-budget 8000 --currency EUR`
|
|
218
|
+
},
|
|
219
|
+
args: {
|
|
220
|
+
id: { type: "positional", description: "Campaign group id or URN", required: true },
|
|
221
|
+
...accountArgs,
|
|
222
|
+
name: { type: "string", description: "New name" },
|
|
223
|
+
start: { type: "string", description: "New run schedule start" },
|
|
224
|
+
end: { type: "string", description: "New run schedule end" },
|
|
225
|
+
"total-budget": { type: "string", description: TOTAL_BUDGET_HELP },
|
|
226
|
+
currency: { type: "string", description: "3-letter currency code (defaults to the ad account currency)" },
|
|
227
|
+
"shared-budget": {
|
|
228
|
+
type: "string",
|
|
229
|
+
description: "Share the budget across its ad sets: MAXIMUM_DELIVERY|MANUAL|COST_CAP"
|
|
230
|
+
},
|
|
231
|
+
status: { type: "string", description: "ACTIVE|PAUSED|ARCHIVED|\u2026" },
|
|
232
|
+
file: { type: "string", description: "JSON file with fields to change" }
|
|
233
|
+
},
|
|
234
|
+
run: async ({ args }) => {
|
|
235
|
+
const accountId = bareAccountId(args);
|
|
236
|
+
const payload = mergePayload(loadJsonFileArg(args.file), {
|
|
237
|
+
name: args.name,
|
|
238
|
+
runSchedule: runScheduleFromFlags(args),
|
|
239
|
+
totalBudget: parseMoneyFlag(args["total-budget"], args.currency, "--total-budget"),
|
|
240
|
+
status: args.status ? String(args.status).toUpperCase() : void 0,
|
|
241
|
+
budgetOptimization: args["shared-budget"] ? { bidStrategy: String(args["shared-budget"]).toUpperCase() } : void 0
|
|
242
|
+
});
|
|
243
|
+
await stageOp({
|
|
244
|
+
kind: "campaignGroup.update",
|
|
245
|
+
accountId,
|
|
246
|
+
target: requireTarget(args, "campaign group"),
|
|
247
|
+
payload
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
function campaignPayloadFromFlags(args) {
|
|
252
|
+
return {
|
|
253
|
+
name: args.name,
|
|
254
|
+
campaignGroup: args.group,
|
|
255
|
+
type: args.type ? String(args.type).toUpperCase() : void 0,
|
|
256
|
+
objectiveType: args.objective ? String(args.objective).toUpperCase() : void 0,
|
|
257
|
+
costType: args["cost-type"] ? String(args["cost-type"]).toUpperCase() : void 0,
|
|
258
|
+
unitCost: parseMoneyFlag(args.bid, args.currency, "--bid"),
|
|
259
|
+
dailyBudget: parseMoneyFlag(args["daily-budget"], args.currency, "--daily-budget"),
|
|
260
|
+
totalBudget: parseMoneyFlag(args["total-budget"], args.currency, "--total-budget"),
|
|
261
|
+
runSchedule: runScheduleFromFlags(args),
|
|
262
|
+
locale: parseLocaleFlag(args.locale),
|
|
263
|
+
targetingCriteria: loadTargetingFileArg(args["targeting-file"]),
|
|
264
|
+
audienceExpansionEnabled: parseOnOffFlag(args["audience-expansion"], "--audience-expansion"),
|
|
265
|
+
offsiteDeliveryEnabled: parseOnOffFlag(args.lan, "--lan"),
|
|
266
|
+
connectedTelevisionOnly: parseOnOffFlag(args.ctv, "--ctv"),
|
|
267
|
+
creativeSelection: args["creative-selection"] ? String(args["creative-selection"]).toUpperCase() : void 0,
|
|
268
|
+
associatedEntity: args["associated-entity"],
|
|
269
|
+
politicalIntent: args["political-intent"] ? String(args["political-intent"]).toUpperCase() : void 0,
|
|
270
|
+
status: args.status ? String(args.status).toUpperCase() : void 0,
|
|
271
|
+
format: args.format ? String(args.format).toUpperCase() : void 0,
|
|
272
|
+
optimizationTargetType: args.optimization ? String(args.optimization).toUpperCase() : void 0,
|
|
273
|
+
pacingStrategy: args.pacing ? String(args.pacing).toUpperCase() : void 0,
|
|
274
|
+
weeklyFrequencyCap: args["frequency-cap"] !== void 0 ? Number(args["frequency-cap"]) : void 0
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
var POLITICAL_INTENT_HELP = "NOT_POLITICAL (default)|POLITICAL|NOT_DECLARED \u2014 the advertiser's declaration. New ad sets are declared not political, as Google and Meta campaigns are; pass POLITICAL only when the ads are political advertising (elections, referendums, legislation), and say so to the user.";
|
|
278
|
+
var campaignFlagArgs = {
|
|
279
|
+
...accountArgs,
|
|
280
|
+
name: { type: "string", description: "Campaign name (\u2264255 chars)" },
|
|
281
|
+
group: { type: "string", description: "Campaign group id/URN, or li_temp_* ref staged in this chat" },
|
|
282
|
+
type: { type: "string", description: "SPONSORED_UPDATES|TEXT_AD|SPONSORED_INMAILS|DYNAMIC" },
|
|
283
|
+
objective: { type: "string", description: "e.g. LEAD_GENERATION, WEBSITE_VISIT, BRAND_AWARENESS" },
|
|
284
|
+
"cost-type": { type: "string", description: "CPC|CPM|CPV" },
|
|
285
|
+
bid: {
|
|
286
|
+
type: "string",
|
|
287
|
+
description: "unitCost: the manual bid, or with --optimization TARGET_COST_*/CAP_COST_* the target cost or cost cap (required there)"
|
|
288
|
+
},
|
|
289
|
+
optimization: {
|
|
290
|
+
type: "string",
|
|
291
|
+
description: "How it bids (optimizationTargetType). Manual: NONE (default)|ENHANCED_CONVERSION. Maximum delivery, billed CPM: MAX_LEAD|MAX_QUALIFIED_LEAD|MAX_CONVERSION|MAX_CLICK|MAX_IMPRESSION|MAX_REACH|MAX_VIDEO_VIEW. Target cost: TARGET_COST_PER_CLICK (CPC)|TARGET_COST_PER_IMPRESSION (CPM)|TARGET_COST_PER_VIDEO_VIEW (CPV). Cost cap, billed CPM: CAP_COST_AND_MAXIMIZE_LEADS|\u2026_CLICKS|\u2026_IMPRESSIONS|\u2026_VIDEO_VIEWS"
|
|
292
|
+
},
|
|
293
|
+
format: {
|
|
294
|
+
type: "string",
|
|
295
|
+
description: "Ad format, create-only: STANDARD_UPDATE|SINGLE_VIDEO|CAROUSEL|TEXT_AD|SPOTLIGHT|FOLLOW_COMPANY|JOBS|SPONSORED_INMAIL|SPONSORED_MESSAGE|SPONSORED_UPDATE_EVENT|SPONSORED_UPDATE_NATIVE_DOCUMENT. Required for carousel and video ad sets"
|
|
296
|
+
},
|
|
297
|
+
pacing: {
|
|
298
|
+
type: "string",
|
|
299
|
+
description: "LIFETIME (spread a total budget over the schedule)|ACCELERATED \u2014 create-only"
|
|
300
|
+
},
|
|
301
|
+
"frequency-cap": {
|
|
302
|
+
type: "string",
|
|
303
|
+
description: "At most N impressions per member a week (3\u201330), Brand awareness only"
|
|
304
|
+
},
|
|
305
|
+
"daily-budget": { type: "string", description: "Daily budget amount" },
|
|
306
|
+
"total-budget": { type: "string", description: TOTAL_BUDGET_HELP },
|
|
307
|
+
currency: { type: "string", description: "3-letter currency code (defaults to the ad account currency)" },
|
|
308
|
+
start: {
|
|
309
|
+
type: "string",
|
|
310
|
+
description: "Run schedule start: now (default \u2014 when the chat publishes), ISO date or epoch ms"
|
|
311
|
+
},
|
|
312
|
+
end: { type: "string", description: "Run schedule end" },
|
|
313
|
+
locale: { type: "string", description: "Profile locale like en_US" },
|
|
314
|
+
"targeting-file": { type: "string", description: "JSON file with targetingCriteria (include.and[].or facets)" },
|
|
315
|
+
"audience-expansion": { type: "string", description: "on|off (playbook: off)" },
|
|
316
|
+
lan: { type: "string", description: "LinkedIn Audience Network on|off (playbook: off)" },
|
|
317
|
+
ctv: { type: "string", description: "Connected TV on|off" },
|
|
318
|
+
"creative-selection": { type: "string", description: "OPTIMIZED|ROUND_ROBIN" },
|
|
319
|
+
"associated-entity": { type: "string", description: "Organization URN" },
|
|
320
|
+
"political-intent": { type: "string", description: POLITICAL_INTENT_HELP },
|
|
321
|
+
status: { type: "string", description: "DRAFT|ACTIVE|PAUSED \u2014 PAUSED needs a group that is not DRAFT" },
|
|
322
|
+
file: { type: "string", description: "JSON file with the full payload; flags override file keys" }
|
|
323
|
+
};
|
|
324
|
+
function campaignCreatePayload(args, file) {
|
|
325
|
+
const payload = mergePayload(file, campaignPayloadFromFlags(args));
|
|
326
|
+
return {
|
|
327
|
+
...payload,
|
|
328
|
+
locale: payload.locale ?? { country: "US", language: "en" },
|
|
329
|
+
...payload.runSchedule ? { runSchedule: startingNowUnlessSet(payload.runSchedule) } : {}
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
var campaignsCreateCommand = defineCommand({
|
|
333
|
+
meta: {
|
|
334
|
+
name: "create",
|
|
335
|
+
description: `Stage a new campaign. ${STAGED_NOTE}
|
|
336
|
+
Targeting goes in --targeting-file (facet URNs). --group accepts a li_temp_* ref from a campaign group staged in this chat.
|
|
337
|
+
Start now: --status ACTIVE with no --start \u2014 it starts the moment the chat publishes, in an ACTIVE group. --bid can't be above --daily-budget.
|
|
338
|
+
Example: baker ads linkedin campaigns create --name "ABM Tier-1" --group li_temp_x1 --objective WEBSITE_VISIT --type SPONSORED_UPDATES --cost-type CPC --bid 8.50 --daily-budget 75 --currency EUR --locale en_US --targeting-file targeting.json
|
|
339
|
+
Lead gen with a cost cap: --objective LEAD_GENERATION --cost-type CPM --optimization CAP_COST_AND_MAXIMIZE_LEADS --bid 80 (at most 80 per lead). Carousel: --format CAROUSEL.`
|
|
340
|
+
},
|
|
341
|
+
args: campaignFlagArgs,
|
|
342
|
+
run: async ({ args }) => {
|
|
343
|
+
const accountId = bareAccountId(args);
|
|
344
|
+
const payload = campaignCreatePayload(args, loadJsonFileArg(args.file));
|
|
345
|
+
await stageOp({ kind: "campaign.create", accountId, payload });
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
function campaignUpdatePayloadFromFlags(args, target, file) {
|
|
349
|
+
const flags = campaignPayloadFromFlags(args);
|
|
350
|
+
if (!target.startsWith(TEMP_REF_PREFIX)) {
|
|
351
|
+
flags.campaignGroup = void 0;
|
|
352
|
+
flags.type = void 0;
|
|
353
|
+
flags.locale = void 0;
|
|
354
|
+
flags.associatedEntity = void 0;
|
|
355
|
+
flags.format = void 0;
|
|
356
|
+
flags.pacingStrategy = void 0;
|
|
357
|
+
}
|
|
358
|
+
return mergePayload(file, flags);
|
|
359
|
+
}
|
|
360
|
+
var campaignsUpdateCommand = defineCommand({
|
|
361
|
+
meta: {
|
|
362
|
+
name: "update",
|
|
363
|
+
description: `Stage changes to an existing campaign (budget, bid, targeting, flags, schedule, status). ${STAGED_NOTE}
|
|
364
|
+
Pass a li_temp_* ref to amend a campaign staged in this chat \u2014 fields merge into the staged create, and --group/--type/--locale/--associated-entity carry through too (they're create-only on a LIVE campaign, but fair game while it's still staged).
|
|
365
|
+
Example: baker ads linkedin campaigns update 123456 --daily-budget 100 --currency EUR --audience-expansion off`
|
|
366
|
+
},
|
|
367
|
+
args: {
|
|
368
|
+
id: { type: "positional", description: "Campaign id or URN", required: true },
|
|
369
|
+
...campaignFlagArgs
|
|
370
|
+
},
|
|
371
|
+
run: async ({ args }) => {
|
|
372
|
+
const accountId = bareAccountId(args);
|
|
373
|
+
const target = requireTarget(args, "campaign");
|
|
374
|
+
const payload = campaignUpdatePayloadFromFlags(args, target, loadJsonFileArg(args.file));
|
|
375
|
+
await stageOp({
|
|
376
|
+
kind: "campaign.update",
|
|
377
|
+
accountId,
|
|
378
|
+
target,
|
|
379
|
+
payload
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
function commaList(value) {
|
|
384
|
+
return typeof value === "string" ? value.split(",").map((entry) => entry.trim()).filter((entry) => entry.length > 0) : [];
|
|
385
|
+
}
|
|
386
|
+
function excludeCompaniesPayload(args) {
|
|
387
|
+
const employers = commaList(args.org).map((org) => org.startsWith("urn:") ? org : `urn:li:organization:${org}`);
|
|
388
|
+
const segments = commaList(args.segment);
|
|
389
|
+
return {
|
|
390
|
+
add: {
|
|
391
|
+
...employers.length > 0 ? { employers } : {},
|
|
392
|
+
...segments.length > 0 ? { segments } : {}
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
var EXCLUSION_FLAG_BY_FIELD = { employers: "--org", segments: "--segment" };
|
|
397
|
+
function excludeCompaniesRefusal(args) {
|
|
398
|
+
const payload = excludeCompaniesPayload(args);
|
|
399
|
+
if (!payload.add.employers && !payload.add.segments) {
|
|
400
|
+
return "pass --org and/or --segment \u2014 the companies or audiences this ad set should stop reaching";
|
|
401
|
+
}
|
|
402
|
+
const parsed = campaignExcludeCompaniesSchema.safeParse(payload);
|
|
403
|
+
if (parsed.success) {
|
|
404
|
+
return void 0;
|
|
405
|
+
}
|
|
406
|
+
return parsed.error.issues.map((issue) => {
|
|
407
|
+
const flag = EXCLUSION_FLAG_BY_FIELD[String(issue.path[1])];
|
|
408
|
+
return flag ? `${flag}: ${issue.message}` : issue.message;
|
|
409
|
+
}).join("; ");
|
|
410
|
+
}
|
|
411
|
+
var campaignsExcludeCompaniesCommand = defineCommand({
|
|
412
|
+
meta: {
|
|
413
|
+
name: "exclude-companies",
|
|
414
|
+
description: `Stop an ad set reaching some companies \u2014 customers, open deals, competitors. ${STAGED_NOTE}
|
|
415
|
+
Add-only: adds to the ad set's exclusions and never removes one. At publish Baker re-reads the ad set and merges into its targeting as it stands then, so audience, locations and existing exclusions are kept.
|
|
416
|
+
--org takes company ids (as \`companies\` / \`top-companies\` print them) or urn:li:organization URNs, comma-separated, up to 200 per call. For a longer list, upload it as a company-list audience and pass it to --segment (an urn:li:dmpSegment/adSegment URN, or a li_temp_* audience staged in this chat).
|
|
417
|
+
Example: baker ads linkedin campaigns exclude-companies 123456 --org 1035,1441`
|
|
418
|
+
},
|
|
419
|
+
args: {
|
|
420
|
+
id: {
|
|
421
|
+
type: "positional",
|
|
422
|
+
description: "Ad set (campaign) id or URN \u2014 must already be on LinkedIn",
|
|
423
|
+
required: true
|
|
424
|
+
},
|
|
425
|
+
...accountArgs,
|
|
426
|
+
org: { type: "string", description: "Company ids or urn:li:organization URNs to exclude, comma-separated" },
|
|
427
|
+
segment: {
|
|
428
|
+
type: "string",
|
|
429
|
+
description: "Matched audiences to exclude, comma-separated: urn:li:dmpSegment:N / urn:li:adSegment:N or a li_temp_* ref"
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
run: async ({ args }) => {
|
|
433
|
+
const accountId = bareAccountId(args);
|
|
434
|
+
const target = requireTarget(args, "campaign");
|
|
435
|
+
const refusal = excludeCompaniesRefusal(args);
|
|
436
|
+
if (refusal) {
|
|
437
|
+
failWriteValidation(refusal);
|
|
438
|
+
}
|
|
439
|
+
const payload = excludeCompaniesPayload(args);
|
|
440
|
+
await stageOp({ kind: "campaign.excludeCompanies", accountId, target, payload });
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
function statusSugarCommand(entity, kind, name) {
|
|
444
|
+
const status = name === "pause" ? "PAUSED" : name === "resume" ? "ACTIVE" : "ARCHIVED";
|
|
445
|
+
return defineCommand({
|
|
446
|
+
meta: {
|
|
447
|
+
name,
|
|
448
|
+
description: `Stage a status change to ${status}, for one id or many. ${STAGED_NOTE}
|
|
449
|
+
Examples:
|
|
450
|
+
baker ads linkedin ${entity} ${name} 123456
|
|
451
|
+
baker ads linkedin ${entity} ${name} 123456,123457,123458
|
|
452
|
+
baker ads linkedin ${entity} ${name} --ids-file ids.txt`
|
|
453
|
+
},
|
|
454
|
+
args: {
|
|
455
|
+
id: { type: "positional", description: "Entity id or URN \u2014 comma-separate several", required: false },
|
|
456
|
+
"ids-file": { type: "string", description: "File of ids, one per line or comma-separated" },
|
|
457
|
+
...accountArgs
|
|
458
|
+
},
|
|
459
|
+
run: async ({ args }) => {
|
|
460
|
+
await stageStatusChange({
|
|
461
|
+
kind,
|
|
462
|
+
accountId: bareAccountId(args),
|
|
463
|
+
targets: requireTargets(args, entity.replace(/-/g, " ").replace(/s$/, "")),
|
|
464
|
+
status
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
function deleteDraftCommand(entity, kind, what) {
|
|
470
|
+
return defineCommand({
|
|
471
|
+
meta: {
|
|
472
|
+
name: "delete",
|
|
473
|
+
description: `Stage deleting a ${what} that is still a DRAFT on LinkedIn, for one id or many \u2014 it disappears from Campaign Manager. ${STAGED_NOTE}
|
|
474
|
+
Only a DRAFT can be deleted: anything that has been active, paused or archived stays, so pause or archive it instead. A ${what} staged in this chat is dropped with \`draft remove\`. At publish every delete runs last, ads before ad sets before campaigns.
|
|
475
|
+
Examples:
|
|
476
|
+
baker ads linkedin ${entity} delete 896802423
|
|
477
|
+
baker ads linkedin ${entity} delete 896802423,896812053`
|
|
478
|
+
},
|
|
479
|
+
args: {
|
|
480
|
+
id: { type: "positional", description: "Id or URN \u2014 comma-separate several", required: false },
|
|
481
|
+
"ids-file": { type: "string", description: "File of ids, one per line or comma-separated" },
|
|
482
|
+
...accountArgs
|
|
483
|
+
},
|
|
484
|
+
run: async ({ args }) => {
|
|
485
|
+
const accountId = bareAccountId(args);
|
|
486
|
+
await stageLinkedinOps(
|
|
487
|
+
requireTargets(args, what).map((target) => ({
|
|
488
|
+
kind,
|
|
489
|
+
accountId,
|
|
490
|
+
target,
|
|
491
|
+
payload: {}
|
|
492
|
+
}))
|
|
493
|
+
);
|
|
494
|
+
}
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
var campaignGroupsDeleteCommand = deleteDraftCommand("campaign-groups", "campaignGroup.delete", "campaign");
|
|
498
|
+
var campaignsDeleteCommand = deleteDraftCommand("campaigns", "campaign.delete", "ad set");
|
|
499
|
+
var creativesDeleteCommand = deleteDraftCommand("creatives", "creative.delete", "ad");
|
|
500
|
+
function trackingPairs(value, flag) {
|
|
501
|
+
const raw = value === void 0 ? [] : Array.isArray(value) ? value : [value];
|
|
502
|
+
return raw.flatMap(
|
|
503
|
+
(entry) => String(entry).split("&").filter((pair) => pair.length > 0).map((pair) => {
|
|
504
|
+
const at = pair.indexOf("=");
|
|
505
|
+
if (at < 1 || at === pair.length - 1) {
|
|
506
|
+
failWriteValidation(`${flag} expects key=value pairs \u2014 got "${pair}"`);
|
|
507
|
+
}
|
|
508
|
+
return [pair.slice(0, at).trim(), pair.slice(at + 1).trim()];
|
|
509
|
+
})
|
|
510
|
+
);
|
|
511
|
+
}
|
|
512
|
+
function asDynamicValue(value) {
|
|
513
|
+
const bare = value.replace(/^\{+|\}+$/g, "").toUpperCase();
|
|
514
|
+
return TRACKING_PARAM_DYNAMIC_VALUES.includes(bare) ? bare : void 0;
|
|
515
|
+
}
|
|
516
|
+
function trackingParamsPayload(args, rawArgs) {
|
|
517
|
+
if (args.clear) {
|
|
518
|
+
return { dynamicValueParameters: {}, customValueParameters: {} };
|
|
519
|
+
}
|
|
520
|
+
const customValueParameters = {};
|
|
521
|
+
for (const [key, value] of trackingPairs(repeatedValues(rawArgs, "param", args.param), "--param")) {
|
|
522
|
+
if (asDynamicValue(value)) {
|
|
523
|
+
failWriteValidation(
|
|
524
|
+
`--param ${key}=${value} names a value LinkedIn fills in per ad \u2014 pass it as --dynamic ${key}=${value.replace(/^\{+|\}+$/g, "").toUpperCase()}`
|
|
525
|
+
);
|
|
526
|
+
}
|
|
527
|
+
customValueParameters[key] = value;
|
|
528
|
+
}
|
|
529
|
+
const dynamicValueParameters = {};
|
|
530
|
+
for (const [key, value] of trackingPairs(repeatedValues(rawArgs, "dynamic", args.dynamic), "--dynamic")) {
|
|
531
|
+
const resolved = asDynamicValue(value);
|
|
532
|
+
if (!resolved) {
|
|
533
|
+
failWriteValidation(
|
|
534
|
+
`--dynamic ${key}=${value} is not a value LinkedIn can fill in \u2014 use one of ${TRACKING_PARAM_DYNAMIC_VALUES.join(", ")}, or pass a fixed value with --param`
|
|
535
|
+
);
|
|
536
|
+
}
|
|
537
|
+
dynamicValueParameters[key] = resolved;
|
|
538
|
+
}
|
|
539
|
+
return mergePayload(loadJsonFileArg(args.file), {
|
|
540
|
+
customValueParameters: Object.keys(customValueParameters).length > 0 ? customValueParameters : void 0,
|
|
541
|
+
dynamicValueParameters: Object.keys(dynamicValueParameters).length > 0 ? dynamicValueParameters : void 0
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
var campaignsUrlParamsCommand = defineCommand({
|
|
545
|
+
meta: {
|
|
546
|
+
name: "url-params",
|
|
547
|
+
description: `Stage the URL tracking parameters on an ad set \u2014 LinkedIn appends them to the link of EVERY ad in it, including ads already running. ${STAGED_NOTE}
|
|
548
|
+
|
|
549
|
+
Start here: set UTMs at this level, not per ad. A per-ad landing URL is only for a genuinely different destination \u2014 LinkedIn appends the ad set's parameters on top of whatever the ad's own URL carries, so the same key set in both places lands twice.
|
|
550
|
+
|
|
551
|
+
This REPLACES the ad set's whole parameter set \u2014 LinkedIn does not merge. Read what it carries first (\`baker ads linkedin url-params --campaign-ids <ad-set-id>\`) and re-send every pair that should survive; the drop is otherwise silent until traffic stops being attributable.
|
|
552
|
+
|
|
553
|
+
Values LinkedIn fills in per ad (--dynamic): ACCOUNT_ID, ACCOUNT_NAME, CAMPAIGN_GROUP_ID, CAMPAIGN_GROUP_NAME, CAMPAIGN_ID, CAMPAIGN_NAME, CREATIVE_ID, CREATIVE_NAME.
|
|
554
|
+
|
|
555
|
+
Examples:
|
|
556
|
+
baker ads linkedin campaigns url-params 123456 --param "utm_source=linkedin&utm_medium=paid-social" --dynamic utm_campaign=CAMPAIGN_NAME --dynamic utm_content=CREATIVE_ID
|
|
557
|
+
baker ads linkedin campaigns url-params 123456 --param utm_agency=baker
|
|
558
|
+
baker ads linkedin campaigns url-params 123456 --clear`
|
|
559
|
+
},
|
|
560
|
+
args: {
|
|
561
|
+
id: { type: "positional", description: "Ad set (campaign) id or URN", required: true },
|
|
562
|
+
...accountArgs,
|
|
563
|
+
param: {
|
|
564
|
+
type: "string",
|
|
565
|
+
description: 'Fixed key=value, repeatable or &-joined (e.g. --param "utm_source=linkedin&utm_medium=paid")'
|
|
566
|
+
},
|
|
567
|
+
dynamic: {
|
|
568
|
+
type: "string",
|
|
569
|
+
description: "key=PLACEHOLDER LinkedIn fills in per ad, repeatable (e.g. --dynamic utm_campaign=CAMPAIGN_NAME)"
|
|
570
|
+
},
|
|
571
|
+
clear: { type: "boolean", description: "Remove every tracking parameter from this ad set" },
|
|
572
|
+
file: { type: "string", description: "JSON file with the full payload; flags override file keys" }
|
|
573
|
+
},
|
|
574
|
+
run: async ({ args, rawArgs }) => {
|
|
575
|
+
const accountId = bareAccountId(args);
|
|
576
|
+
await stageOp({
|
|
577
|
+
kind: "trackingParams.set",
|
|
578
|
+
accountId,
|
|
579
|
+
target: requireTarget(args, "ad set"),
|
|
580
|
+
payload: trackingParamsPayload(args, rawArgs)
|
|
581
|
+
});
|
|
582
|
+
}
|
|
583
|
+
});
|
|
584
|
+
function accountTrackingTarget(args) {
|
|
585
|
+
const accountId = bareAccountId(args);
|
|
586
|
+
return { accountId, target: `urn:li:sponsoredAccount:${accountId}` };
|
|
587
|
+
}
|
|
588
|
+
var accountUrlParamsCommand = defineCommand({
|
|
589
|
+
meta: {
|
|
590
|
+
name: "url-params",
|
|
591
|
+
description: `Stage the URL tracking parameters on the whole AD ACCOUNT \u2014 LinkedIn appends them to the link of every ad in every ad set, including ads already running. ${STAGED_NOTE}
|
|
592
|
+
|
|
593
|
+
Use this for the parameters that never vary across the account (utm_source, utm_medium, an agency tag). Anything that identifies a specific ad set belongs on the ad set (\`campaigns url-params\`) \u2014 LinkedIn appends BOTH levels, so a key set in both places lands in the URL twice.
|
|
594
|
+
|
|
595
|
+
This REPLACES the account's whole parameter set \u2014 LinkedIn does not merge. Read what it carries first with \`baker ads linkedin url-params\` and re-send every pair that should survive.
|
|
596
|
+
|
|
597
|
+
Values LinkedIn fills in per ad (--dynamic): ACCOUNT_ID, ACCOUNT_NAME, CAMPAIGN_GROUP_ID, CAMPAIGN_GROUP_NAME, CAMPAIGN_ID, CAMPAIGN_NAME, CREATIVE_ID, CREATIVE_NAME.
|
|
598
|
+
|
|
599
|
+
Examples:
|
|
600
|
+
baker ads linkedin account url-params --param "utm_source=linkedin&utm_medium=paid_social"
|
|
601
|
+
baker ads linkedin account url-params --param utm_source=linkedin --dynamic utm_campaign=CAMPAIGN_NAME
|
|
602
|
+
baker ads linkedin account url-params --clear`
|
|
603
|
+
},
|
|
604
|
+
args: {
|
|
605
|
+
...accountArgs,
|
|
606
|
+
param: {
|
|
607
|
+
type: "string",
|
|
608
|
+
description: 'Fixed key=value, repeatable or &-joined (e.g. --param "utm_source=linkedin&utm_medium=paid")'
|
|
609
|
+
},
|
|
610
|
+
dynamic: {
|
|
611
|
+
type: "string",
|
|
612
|
+
description: "key=PLACEHOLDER LinkedIn fills in per ad, repeatable (e.g. --dynamic utm_campaign=CAMPAIGN_NAME)"
|
|
613
|
+
},
|
|
614
|
+
clear: { type: "boolean", description: "Remove every tracking parameter set on the ad account" },
|
|
615
|
+
file: { type: "string", description: "JSON file with the full payload; flags override file keys" }
|
|
616
|
+
},
|
|
617
|
+
run: async ({ args, rawArgs }) => {
|
|
618
|
+
const { accountId, target } = accountTrackingTarget(args);
|
|
619
|
+
await stageOp({
|
|
620
|
+
kind: "trackingParams.set",
|
|
621
|
+
accountId,
|
|
622
|
+
target,
|
|
623
|
+
payload: trackingParamsPayload(args, rawArgs)
|
|
624
|
+
});
|
|
625
|
+
}
|
|
626
|
+
});
|
|
627
|
+
var campaignsPauseCommand = statusSugarCommand("campaigns", "campaign.update", "pause");
|
|
628
|
+
var campaignsResumeCommand = statusSugarCommand("campaigns", "campaign.update", "resume");
|
|
629
|
+
var campaignsArchiveCommand = statusSugarCommand("campaigns", "campaign.update", "archive");
|
|
630
|
+
var campaignGroupsPauseCommand = statusSugarCommand("campaign-groups", "campaignGroup.update", "pause");
|
|
631
|
+
var campaignGroupsResumeCommand = statusSugarCommand("campaign-groups", "campaignGroup.update", "resume");
|
|
632
|
+
var creativesPauseCommand = statusSugarCommand("creatives", "creative.update", "pause");
|
|
633
|
+
var creativesResumeCommand = statusSugarCommand("creatives", "creative.update", "resume");
|
|
634
|
+
function duplicateCommand(entity, cliGroup) {
|
|
635
|
+
return defineCommand({
|
|
636
|
+
meta: {
|
|
637
|
+
name: "duplicate",
|
|
638
|
+
description: `Stage a copy of an existing ${entity} as a new DRAFT create (playbook: duplicate, never link-to-original). ${STAGED_NOTE}
|
|
639
|
+
Example: baker ads linkedin ${cliGroup} duplicate 123456 --name "New variant"`
|
|
640
|
+
},
|
|
641
|
+
args: {
|
|
642
|
+
id: { type: "positional", description: "Source id or URN", required: true },
|
|
643
|
+
...accountArgs,
|
|
644
|
+
name: { type: "string", description: "Name for the copy" },
|
|
645
|
+
file: { type: "string", description: "JSON file with field overrides for the copy" }
|
|
646
|
+
},
|
|
647
|
+
run: async ({ args }) => {
|
|
648
|
+
try {
|
|
649
|
+
const chatId = requireChatId();
|
|
650
|
+
const overrides = mergePayload(loadJsonFileArg(args.file), { name: args.name });
|
|
651
|
+
const response = await apiPost(
|
|
652
|
+
"/api/ads/linkedin/draft/duplicate",
|
|
653
|
+
{
|
|
654
|
+
chatId,
|
|
655
|
+
accountId: bareAccountId(args),
|
|
656
|
+
entity,
|
|
657
|
+
sourceId: requireTarget(args, entity),
|
|
658
|
+
...Object.keys(overrides).length > 0 ? { overrides } : {}
|
|
659
|
+
}
|
|
660
|
+
);
|
|
661
|
+
writeJsonEnvelope(response);
|
|
662
|
+
} catch (err) {
|
|
663
|
+
handleLinkedinError(err);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
var campaignsDuplicateCommand = duplicateCommand("campaign", "campaigns");
|
|
669
|
+
var campaignGroupsDuplicateCommand = duplicateCommand("campaignGroup", "campaign-groups");
|
|
670
|
+
var creativesDuplicateCommand = defineCommand({
|
|
671
|
+
meta: {
|
|
672
|
+
name: "duplicate",
|
|
673
|
+
description: `Stage a copy of an existing ad, optionally with new content. ${STAGED_NOTE}
|
|
674
|
+
Content flags only apply to direct-content ads (text|spotlight|follower|jobs) \u2014 LinkedIn makes their content immutable, so a copy is how their copy/media/URL changes. Post-based ads (image|video|carousel|document|article|event|tla) sponsor a post that owns the copy, media and destination: a copy re-sponsors the SAME post, so content flags are rejected \u2014 stage \`creatives create\` with the new content instead, then pause the old ad.
|
|
675
|
+
--replace also pauses the original once the new ad publishes (skipped if the new ad fails).
|
|
676
|
+
Examples:
|
|
677
|
+
baker ads linkedin creatives duplicate 1458413484 --headline "10x Demos, Same Team" --description "AI handles every demo request." --replace
|
|
678
|
+
baker ads linkedin creatives duplicate urn:li:sponsoredCreative:789 --campaign 799305464`
|
|
679
|
+
},
|
|
680
|
+
args: {
|
|
681
|
+
id: { type: "positional", description: "Source creative id or URN", required: true },
|
|
682
|
+
...accountArgs,
|
|
683
|
+
campaign: { type: "string", description: "Stage the copy under a different ad set (id/URN or li_temp_*)" },
|
|
684
|
+
"intended-status": {
|
|
685
|
+
type: "string",
|
|
686
|
+
description: "Status for the copy (default DRAFT; with --replace, the source's status)"
|
|
687
|
+
},
|
|
688
|
+
replace: {
|
|
689
|
+
type: "boolean",
|
|
690
|
+
description: "Also pause the original once the new ad publishes; the copy inherits the source's status"
|
|
691
|
+
},
|
|
692
|
+
intro: { type: "string", description: "New commentary / intro text" },
|
|
693
|
+
headline: { type: "string", description: "New headline" },
|
|
694
|
+
description: { type: "string", description: "New description (text/spotlight ads)" },
|
|
695
|
+
"landing-url": {
|
|
696
|
+
type: "string",
|
|
697
|
+
description: "New https destination URL (direct-content ads only \u2014 a post-based ad's URL lives in its post)"
|
|
698
|
+
},
|
|
699
|
+
cta: { type: "string", description: "New CTA (LEARN_MORE|REQUEST_DEMO|\u2026)" },
|
|
700
|
+
"cta-label": { type: "string", description: "Spotlight custom CTA label" },
|
|
701
|
+
"image-id": { type: "string", description: "Baker image library id" },
|
|
702
|
+
"image-urn": { type: "string", description: "Existing urn:li:image:*" },
|
|
703
|
+
"video-id": {
|
|
704
|
+
type: "string",
|
|
705
|
+
description: "Baker video library id (`baker videos`) \u2014 uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared"
|
|
706
|
+
},
|
|
707
|
+
"video-urn": { type: "string", description: "Existing urn:li:video:*" },
|
|
708
|
+
"logo-image-id": { type: "string", description: "Baker image id for the logo" },
|
|
709
|
+
title: { type: "string", description: "Media title" },
|
|
710
|
+
file: { type: "string", description: "JSON file with field overrides for the copy" }
|
|
711
|
+
},
|
|
712
|
+
run: async ({ args }) => {
|
|
713
|
+
try {
|
|
714
|
+
const chatId = requireChatId();
|
|
715
|
+
const file = loadJsonFileArg(args.file);
|
|
716
|
+
const fileContent = file.content !== null && typeof file.content === "object" && !Array.isArray(file.content) ? file.content : {};
|
|
717
|
+
const content = { ...fileContent, ...creativeContentPatch(args) };
|
|
718
|
+
const overrides = mergePayload(file, {
|
|
719
|
+
campaign: args.campaign,
|
|
720
|
+
intendedStatus: args["intended-status"] ? String(args["intended-status"]).toUpperCase() : void 0,
|
|
721
|
+
content: Object.keys(content).length > 0 ? content : void 0
|
|
722
|
+
});
|
|
723
|
+
const response = await apiPost(
|
|
724
|
+
"/api/ads/linkedin/draft/duplicate",
|
|
725
|
+
{
|
|
726
|
+
chatId,
|
|
727
|
+
accountId: bareAccountId(args),
|
|
728
|
+
entity: "creative",
|
|
729
|
+
sourceId: requireTarget(args, "creative"),
|
|
730
|
+
...Object.keys(overrides).length > 0 ? { overrides } : {},
|
|
731
|
+
...args.replace ? { replace: true } : {}
|
|
732
|
+
}
|
|
733
|
+
);
|
|
734
|
+
writeJsonEnvelope(response);
|
|
735
|
+
} catch (err) {
|
|
736
|
+
handleLinkedinError(err);
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
});
|
|
740
|
+
var CREATIVE_FORMATS = [
|
|
741
|
+
"image",
|
|
742
|
+
"video",
|
|
743
|
+
"text",
|
|
744
|
+
"spotlight",
|
|
745
|
+
"follower",
|
|
746
|
+
"document",
|
|
747
|
+
"carousel",
|
|
748
|
+
"conversation",
|
|
749
|
+
"tla",
|
|
750
|
+
"jobs",
|
|
751
|
+
"event",
|
|
752
|
+
"article"
|
|
753
|
+
];
|
|
754
|
+
var creativesCreateCommand = defineCommand({
|
|
755
|
+
meta: {
|
|
756
|
+
name: "create",
|
|
757
|
+
description: `Stage a new creative (ad). ${STAGED_NOTE}
|
|
758
|
+
Formats: ${CREATIVE_FORMATS.join("|")}. Media comes from the Baker library (--image-id / --video-id from \`baker images\`/\`baker videos\`) or as LinkedIn URNs. Complex formats (carousel, jobs) take --file with the full content object. Conversation ads take --file with the message flow ({message: {subject, body, buttons[]}} \u2014 buttons NESTED|LANDING_PAGE|LEAD_FORM (LEAD_FORM takes leadForm: li_temp_* or form id and opens the form in the thread), nested messages recurse).
|
|
759
|
+
Examples:
|
|
760
|
+
baker ads linkedin creatives create --campaign li_temp_x2 --format image --image-id <bakerImageId> --intro "Meet the platform\u2026" --headline "Book a demo" --landing-url https://example.com/demo --cta REQUEST_DEMO
|
|
761
|
+
baker ads linkedin creatives create --campaign 123456 --format tla --post <post id from \`baker posts list\`>
|
|
762
|
+
Boosting a post (Thought Leader ad): --format tla sponsors a post that already exists \u2014 the company page's own (not a reshare) or a person's (the CEO's\u2026) once they approve it in Campaign Manager. Name it with --post <Baker post id> (\`baker posts list --usable usable\` or \`--usable needs_approval\`), or --post-url with any link to the post (a normal "copy link" works: Baker reads the post and adds it to Posts). Staging refuses a post that can't run as an ad, with the reason. A video post goes in a SINGLE_VIDEO ad set, any other in STANDARD_UPDATE.
|
|
763
|
+
Document ads run in a SPONSORED_UPDATE_NATIVE_DOCUMENT ad set: --document <Baker document name> or --document-url <PDF link>, plus --title. Gate it (lead gen ad set) with --lead-form and --preview-pages N \u2014 the first N pages show, the form unlocks the rest:
|
|
764
|
+
baker ads linkedin creatives create --campaign li_temp_x2 --format document --document solar-report --title "2026 solar report" --intro "\u2026" --lead-form li_temp_f1 --lead-form-button UNLOCK_FULL_DOCUMENT --preview-pages 3
|
|
765
|
+
Lead gen ads (an ad set with objective LEAD_GENERATION) open a form instead of a landing page \u2014 every ad in one needs --lead-form, and staging refuses it without:
|
|
766
|
+
baker ads linkedin lead-forms create --file form.json # \u2192 li_temp_f1
|
|
767
|
+
baker ads linkedin creatives create --campaign li_temp_x2 --format image --image-id <id> --intro "\u2026" --headline "Get the report" --lead-form li_temp_f1 --lead-form-button DOWNLOAD`
|
|
768
|
+
},
|
|
769
|
+
args: {
|
|
770
|
+
...accountArgs,
|
|
771
|
+
campaign: { type: "string", description: "Campaign id/URN, or li_temp_* ref staged in this chat" },
|
|
772
|
+
format: { type: "string", description: CREATIVE_FORMATS.join("|") },
|
|
773
|
+
"image-id": { type: "string", description: "Baker image library id (uploaded to LinkedIn at publish)" },
|
|
774
|
+
"image-urn": { type: "string", description: "Existing urn:li:image:*" },
|
|
775
|
+
"video-id": {
|
|
776
|
+
type: "string",
|
|
777
|
+
description: "Baker video library id (`baker videos`) \u2014 uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared"
|
|
778
|
+
},
|
|
779
|
+
"video-urn": { type: "string", description: "Existing urn:li:video:*" },
|
|
780
|
+
"logo-image-id": { type: "string", description: "Baker image id for logo (text/spotlight/follower/jobs)" },
|
|
781
|
+
intro: { type: "string", description: "Commentary / intro text (\u2264600 chars before feed truncation)" },
|
|
782
|
+
headline: { type: "string", description: "Headline (\u226470; text ads \u226425)" },
|
|
783
|
+
description: { type: "string", description: "Description (text ads \u226475, spotlight \u226470)" },
|
|
784
|
+
"landing-url": { type: "string", description: "https destination URL" },
|
|
785
|
+
cta: { type: "string", description: "LEARN_MORE|REQUEST_DEMO|SIGN_UP|REGISTER|DOWNLOAD|\u2026" },
|
|
786
|
+
"cta-label": { type: "string", description: "Spotlight custom CTA label (\u226418 chars)" },
|
|
787
|
+
post: {
|
|
788
|
+
type: "string",
|
|
789
|
+
description: "TLA: the post to sponsor, by its Baker post id (`baker posts list`) \u2014 the simplest way"
|
|
790
|
+
},
|
|
791
|
+
"post-urn": {
|
|
792
|
+
type: "string",
|
|
793
|
+
description: "TLA: the post to sponsor by its URN \u2014 urn:li:share|ugcPost:*"
|
|
794
|
+
},
|
|
795
|
+
"post-url": {
|
|
796
|
+
type: "string",
|
|
797
|
+
description: "TLA: any link to the post (normal or embed); Baker reads it and adds it to Posts"
|
|
798
|
+
},
|
|
799
|
+
sender: {
|
|
800
|
+
type: "string",
|
|
801
|
+
description: "Conversation ads: urn:li:person:* the conversation arrives from (from `account-users`; default: whoever connected LinkedIn)"
|
|
802
|
+
},
|
|
803
|
+
"lead-form": {
|
|
804
|
+
type: "string",
|
|
805
|
+
description: "Lead gen form the ad opens (image|video|carousel|document|tla): li_temp_* ref from `lead-forms create`, or a form id from `lead-forms`. Required in a LEAD_GENERATION ad set; replaces --landing-url"
|
|
806
|
+
},
|
|
807
|
+
"lead-form-button": {
|
|
808
|
+
type: "string",
|
|
809
|
+
description: `Button that opens the form: ${LEADGEN_CTA_LABELS.join("|")} (default SIGN_UP)`
|
|
810
|
+
},
|
|
811
|
+
document: {
|
|
812
|
+
type: "string",
|
|
813
|
+
description: "Document ads: a Baker document's folder name (src/documents/<name>) \u2014 its PDF goes to LinkedIn at publish, after the document itself is published"
|
|
814
|
+
},
|
|
815
|
+
"document-url": {
|
|
816
|
+
type: "string",
|
|
817
|
+
description: "Document ads: https link to a PDF, PowerPoint or Word file (\u2264100 MB, \u2264300 pages)"
|
|
818
|
+
},
|
|
819
|
+
"document-urn": { type: "string", description: "Document ads: existing urn:li:document:*" },
|
|
820
|
+
"preview-pages": {
|
|
821
|
+
type: "string",
|
|
822
|
+
description: "Gated document ads: pages shown before the lead gen form (needs --lead-form; fewer than the document has, which must be 2+ pages)"
|
|
823
|
+
},
|
|
824
|
+
"event-urn": { type: "string", description: "Event ads: the LinkedIn event to sponsor (urn:li:event:*)" },
|
|
825
|
+
"article-url": { type: "string", description: "Article ads: https URL of the article/newsletter to sponsor" },
|
|
826
|
+
"thumbnail-image-id": { type: "string", description: "Article ads: Baker image id for the link thumbnail" },
|
|
827
|
+
"thumbnail-urn": { type: "string", description: "Article ads: existing urn:li:image:* thumbnail" },
|
|
828
|
+
"intended-status": {
|
|
829
|
+
type: "string",
|
|
830
|
+
description: "DRAFT|ACTIVE (default DRAFT) \u2014 a new ad can't start PAUSED; DRAFT holds it back"
|
|
831
|
+
},
|
|
832
|
+
title: { type: "string", description: "Media title (image/video), article title, or document title" },
|
|
833
|
+
file: { type: "string", description: "JSON file with the full content object; flags override" }
|
|
834
|
+
},
|
|
835
|
+
run: async ({ args }) => {
|
|
836
|
+
const accountId = bareAccountId(args);
|
|
837
|
+
if (!args.campaign) {
|
|
838
|
+
failWriteValidation("--campaign is required (id, URN, or li_temp_* ref)");
|
|
839
|
+
}
|
|
840
|
+
const format = args.format ? String(args.format) : void 0;
|
|
841
|
+
if (!format || !CREATIVE_FORMATS.includes(format)) {
|
|
842
|
+
failWriteValidation(`--format must be one of ${CREATIVE_FORMATS.join("|")}`);
|
|
843
|
+
}
|
|
844
|
+
const content = mergePayload(loadJsonFileArg(args.file), {
|
|
845
|
+
format,
|
|
846
|
+
commentary: args.intro,
|
|
847
|
+
imageId: args["image-id"],
|
|
848
|
+
imageUrn: args["image-urn"],
|
|
849
|
+
videoId: args["video-id"],
|
|
850
|
+
videoUrn: args["video-urn"],
|
|
851
|
+
logoImageId: args["logo-image-id"],
|
|
852
|
+
headline: args.headline,
|
|
853
|
+
description: args.description,
|
|
854
|
+
landingUrl: args["landing-url"],
|
|
855
|
+
cta: args.cta ? String(args.cta).toUpperCase() : void 0,
|
|
856
|
+
ctaLabel: args["cta-label"],
|
|
857
|
+
...sponsoredPostArgs(args),
|
|
858
|
+
sender: args.sender,
|
|
859
|
+
eventUrn: args["event-urn"],
|
|
860
|
+
source: args["article-url"],
|
|
861
|
+
thumbnailImageId: args["thumbnail-image-id"],
|
|
862
|
+
thumbnailUrn: args["thumbnail-urn"],
|
|
863
|
+
mediaTitle: args.title,
|
|
864
|
+
title: args.title,
|
|
865
|
+
...documentContentArgs(format, args)
|
|
866
|
+
});
|
|
867
|
+
const leadgenCallToAction = leadgenCallToActionArg(args);
|
|
868
|
+
await stageOp({
|
|
869
|
+
kind: "creative.create",
|
|
870
|
+
accountId,
|
|
871
|
+
payload: {
|
|
872
|
+
campaign: args.campaign,
|
|
873
|
+
intendedStatus: args["intended-status"] ? String(args["intended-status"]).toUpperCase() : void 0,
|
|
874
|
+
content,
|
|
875
|
+
...leadgenCallToAction ? { leadgenCallToAction } : {}
|
|
876
|
+
}
|
|
877
|
+
});
|
|
878
|
+
}
|
|
879
|
+
});
|
|
880
|
+
function documentContentArgs(format, args) {
|
|
881
|
+
if (format !== "document") {
|
|
882
|
+
return {};
|
|
883
|
+
}
|
|
884
|
+
const previewPages = args["preview-pages"] === void 0 ? void 0 : Number(args["preview-pages"]);
|
|
885
|
+
if (previewPages !== void 0 && !(Number.isInteger(previewPages) && previewPages >= 1)) {
|
|
886
|
+
failWriteValidation("--preview-pages must be a whole number of pages, e.g. 3");
|
|
887
|
+
}
|
|
888
|
+
return {
|
|
889
|
+
documentId: args.document,
|
|
890
|
+
documentUrl: args["document-url"],
|
|
891
|
+
documentUrn: args["document-urn"],
|
|
892
|
+
documentTitle: args.title,
|
|
893
|
+
previewPages
|
|
894
|
+
};
|
|
895
|
+
}
|
|
896
|
+
function sponsoredPostArgs(args) {
|
|
897
|
+
const named = ["post", "post-urn", "post-url"].filter((flag) => args[flag] !== void 0);
|
|
898
|
+
if (named.length > 1) {
|
|
899
|
+
failWriteValidation(`name the post once: ${named.map((flag) => `--${flag}`).join(" and ")} were both passed`);
|
|
900
|
+
}
|
|
901
|
+
if (args.post !== void 0) {
|
|
902
|
+
return { bakerPostId: String(args.post) };
|
|
903
|
+
}
|
|
904
|
+
const value = args["post-urn"] ?? args["post-url"];
|
|
905
|
+
if (value === void 0) {
|
|
906
|
+
return {};
|
|
907
|
+
}
|
|
908
|
+
const post = sponsoredPostUrn(String(value));
|
|
909
|
+
if ("urn" in post) {
|
|
910
|
+
return { postUrn: post.urn };
|
|
911
|
+
}
|
|
912
|
+
if (/^https?:\/\//i.test(String(value).trim())) {
|
|
913
|
+
return { postLink: String(value).trim() };
|
|
914
|
+
}
|
|
915
|
+
failWriteValidation(`--post-urn: ${post.error}`);
|
|
916
|
+
}
|
|
917
|
+
function leadgenCallToActionArg(args) {
|
|
918
|
+
const destination = args["lead-form"] !== void 0 ? String(args["lead-form"]) : void 0;
|
|
919
|
+
const label = args["lead-form-button"] !== void 0 ? String(args["lead-form-button"]).toUpperCase() : void 0;
|
|
920
|
+
if (destination === void 0) {
|
|
921
|
+
if (label !== void 0) {
|
|
922
|
+
failWriteValidation("--lead-form-button needs --lead-form (the form the button opens)");
|
|
923
|
+
}
|
|
924
|
+
return void 0;
|
|
925
|
+
}
|
|
926
|
+
return { destination, label: label ?? "SIGN_UP" };
|
|
927
|
+
}
|
|
928
|
+
var CREATIVE_AMEND_CONTENT_FLAGS = [
|
|
929
|
+
["intro", "commentary"],
|
|
930
|
+
["headline", "headline"],
|
|
931
|
+
["description", "description"],
|
|
932
|
+
["landing-url", "landingUrl"],
|
|
933
|
+
["cta-label", "ctaLabel"],
|
|
934
|
+
["image-id", "imageId"],
|
|
935
|
+
["image-urn", "imageUrn"],
|
|
936
|
+
["video-id", "videoId"],
|
|
937
|
+
["video-urn", "videoUrn"],
|
|
938
|
+
["logo-image-id", "logoImageId"],
|
|
939
|
+
["thumbnail-image-id", "thumbnailImageId"],
|
|
940
|
+
["thumbnail-urn", "thumbnailUrn"],
|
|
941
|
+
["title", "title"]
|
|
942
|
+
];
|
|
943
|
+
function creativeContentPatch(args) {
|
|
944
|
+
const patch = {};
|
|
945
|
+
for (const [flag, key] of CREATIVE_AMEND_CONTENT_FLAGS) {
|
|
946
|
+
if (args[flag] !== void 0) {
|
|
947
|
+
patch[key] = args[flag];
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
if (args.cta !== void 0) {
|
|
951
|
+
patch.cta = String(args.cta).toUpperCase();
|
|
952
|
+
}
|
|
953
|
+
return patch;
|
|
954
|
+
}
|
|
955
|
+
var creativesUpdateCommand = defineCommand({
|
|
956
|
+
meta: {
|
|
957
|
+
name: "update",
|
|
958
|
+
description: `Stage changes to an existing creative, or amend a creative staged in this chat by passing its li_temp_* ref. ${STAGED_NOTE}
|
|
959
|
+
Direct-content ads (text/spotlight/follower/jobs) update copy/media/URL IN PLACE \u2014 changed fields merge into the ad's current content. Post-based ads (image/video/carousel/\u2026) sponsor a post that owns the copy, media and destination: neither this command nor \`creatives duplicate\` can change it \u2014 stage \`creatives create\` with the new content, then pause the old ad. Staged creatives (li_temp_*) accept all content flags and re-validate.
|
|
960
|
+
Applies the same change to several ads at once: comma-separate the ids, or pass --ids-file. All of them stage together or none does. Live ids only \u2014 a li_temp_* amend has to be its own call.
|
|
961
|
+
--campaign re-parents the ad to a different ad set \u2014 LinkedIn has no in-place move API, so this only works while the creative is still staged (li_temp_*); passing it against a live creative id/URN is rejected at stage time.
|
|
962
|
+
Examples:
|
|
963
|
+
baker ads linkedin creatives update 1458423674 --headline "Sharper headline" --description "New copy."
|
|
964
|
+
baker ads linkedin creatives update urn:li:sponsoredCreative:789 --intended-status PAUSED
|
|
965
|
+
baker ads linkedin creatives update 1458423674,1458423675,1458423676 --intended-status PAUSED
|
|
966
|
+
baker ads linkedin creatives update --ids-file ads.txt --intended-status PAUSED
|
|
967
|
+
baker ads linkedin creatives update li_temp_x3 --campaign li_temp_x2
|
|
968
|
+
baker ads linkedin creatives update li_temp_x3 --lead-form li_temp_f1 --lead-form-button REQUEST_DEMO
|
|
969
|
+
--lead-form on a live ad works only while that ad is DRAFT \u2014 LinkedIn locks the form once it leaves DRAFT.`
|
|
970
|
+
},
|
|
971
|
+
args: {
|
|
972
|
+
id: {
|
|
973
|
+
type: "positional",
|
|
974
|
+
description: "Creative id/URN \u2014 comma-separate several. A li_temp_* ref amends what this chat staged and must be passed on its own.",
|
|
975
|
+
required: false
|
|
976
|
+
},
|
|
977
|
+
"ids-file": { type: "string", description: "File of creative ids, one per line or comma-separated" },
|
|
978
|
+
...accountArgs,
|
|
979
|
+
"intended-status": { type: "string", description: "ACTIVE|PAUSED|ARCHIVED|DRAFT" },
|
|
980
|
+
name: { type: "string", description: "New creative name" },
|
|
981
|
+
campaign: {
|
|
982
|
+
type: "string",
|
|
983
|
+
description: "Re-parent to a different ad set (id/URN or li_temp_*) \u2014 staged creatives only"
|
|
984
|
+
},
|
|
985
|
+
intro: { type: "string", description: "Commentary / intro text" },
|
|
986
|
+
headline: { type: "string", description: "New headline" },
|
|
987
|
+
description: { type: "string", description: "Description (text/spotlight ads)" },
|
|
988
|
+
"landing-url": { type: "string", description: "New https destination URL" },
|
|
989
|
+
cta: { type: "string", description: "New CTA (LEARN_MORE|REQUEST_DEMO|\u2026)" },
|
|
990
|
+
"cta-label": { type: "string", description: "Spotlight custom CTA label" },
|
|
991
|
+
"lead-form": {
|
|
992
|
+
type: "string",
|
|
993
|
+
description: "Lead gen form the ad opens: li_temp_* or form id (live ads: DRAFT only)"
|
|
994
|
+
},
|
|
995
|
+
"lead-form-button": {
|
|
996
|
+
type: "string",
|
|
997
|
+
description: `Button that opens the form: ${LEADGEN_CTA_LABELS.join("|")} (default SIGN_UP); needs --lead-form`
|
|
998
|
+
},
|
|
999
|
+
"image-id": { type: "string", description: "Baker image library id" },
|
|
1000
|
+
"image-urn": { type: "string", description: "Existing urn:li:image:*" },
|
|
1001
|
+
"video-id": {
|
|
1002
|
+
type: "string",
|
|
1003
|
+
description: "Baker video library id (`baker videos`) \u2014 uploaded to LinkedIn at publish; a first publish may ask to retry while the full-quality copy is prepared"
|
|
1004
|
+
},
|
|
1005
|
+
"video-urn": { type: "string", description: "Existing urn:li:video:*" },
|
|
1006
|
+
"logo-image-id": { type: "string", description: "Baker image id for the logo" },
|
|
1007
|
+
"thumbnail-image-id": { type: "string", description: "Baker image id for the article thumbnail" },
|
|
1008
|
+
"thumbnail-urn": { type: "string", description: "Existing urn:li:image:* thumbnail" },
|
|
1009
|
+
title: { type: "string", description: "Media or article title" },
|
|
1010
|
+
file: { type: "string", description: "JSON file with fields to change; flags override file keys" }
|
|
1011
|
+
},
|
|
1012
|
+
run: async ({ args }) => {
|
|
1013
|
+
const accountId = bareAccountId(args);
|
|
1014
|
+
const targets = requireTargets(args, "creative");
|
|
1015
|
+
const file = loadJsonFileArg(args.file);
|
|
1016
|
+
const contentPatch = creativeContentPatch(args);
|
|
1017
|
+
const intendedStatus = args["intended-status"] ? String(args["intended-status"]).toUpperCase() : void 0;
|
|
1018
|
+
const fileContent = file.content !== null && typeof file.content === "object" && !Array.isArray(file.content) ? file.content : {};
|
|
1019
|
+
const content = { ...fileContent, ...contentPatch };
|
|
1020
|
+
const payload = mergePayload(file, {
|
|
1021
|
+
intendedStatus,
|
|
1022
|
+
name: args.name,
|
|
1023
|
+
campaign: args.campaign,
|
|
1024
|
+
content: Object.keys(content).length > 0 ? content : void 0,
|
|
1025
|
+
leadgenCallToAction: leadgenCallToActionArg(args)
|
|
1026
|
+
});
|
|
1027
|
+
await stageLinkedinOps(targets.map((target) => ({ kind: "creative.update", accountId, target, payload })));
|
|
1028
|
+
}
|
|
1029
|
+
});
|
|
1030
|
+
var AUDIENCE_TYPES = ["company-list", "user-list", "retargeting", "engagement"];
|
|
1031
|
+
var INLINE_ROWS_MAX = 1e4;
|
|
1032
|
+
var audiencesCreateCommand = defineCommand({
|
|
1033
|
+
meta: {
|
|
1034
|
+
name: "create",
|
|
1035
|
+
description: `Stage a new matched audience. ${STAGED_NOTE}
|
|
1036
|
+
List audiences take --list-file (CSV: companies by companyName, domain and the LinkedIn page \u2014 a linkedinCompanyPageUrl column (LinkedIn's own template; https://www.linkedin.com/company/<slug>) or organizationUrn \u2014 which matches the company exactly, so keep it, never drop it; email,\u2026 for contacts \u2014 emails are SHA-256 hashed locally). LinkedIn needs 300+ MATCHED members to serve: a contact list needs well above 300 rows; a company list counts every employee of its companies.
|
|
1037
|
+
Example: baker ads linkedin audiences create --name "ABM Tier-1" --type company-list --list-file accounts.csv`
|
|
1038
|
+
},
|
|
1039
|
+
args: {
|
|
1040
|
+
...accountArgs,
|
|
1041
|
+
name: { type: "string", description: "Audience name (\u2264100 chars)" },
|
|
1042
|
+
type: { type: "string", description: AUDIENCE_TYPES.join("|") },
|
|
1043
|
+
"list-file": { type: "string", description: "CSV file with the list rows (header row required)" },
|
|
1044
|
+
file: {
|
|
1045
|
+
type: "string",
|
|
1046
|
+
description: 'JSON file with a raw source config (retargeting/engagement) \u2014 sourcePlatform, type USER and at least one engagementRules entry, e.g. {"sourcePlatform":"VIDEO_ADS","type":"USER","engagementRules":[{"engagementSource":"urn:li:sponsoredCampaign:123","engagementTrigger":"urn:li:dmpEngagementTrigger:(urn:li:dmpEngagementSourceType:VIDEO_ADS,FIRST_QUARTILE)","timeFrame":{"timeSpan":{"duration":90,"unit":"DAY"}}}]}'
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
run: async ({ args }) => {
|
|
1050
|
+
const accountId = bareAccountId(args);
|
|
1051
|
+
const list = parseListFileArg(args["list-file"], INLINE_ROWS_MAX);
|
|
1052
|
+
const raw = args.file ? loadJsonFileArg(args.file) : void 0;
|
|
1053
|
+
await stageOp({
|
|
1054
|
+
kind: "audience.create",
|
|
1055
|
+
accountId,
|
|
1056
|
+
payload: {
|
|
1057
|
+
name: args.name,
|
|
1058
|
+
audienceType: args.type,
|
|
1059
|
+
...list ? { listColumns: list.columns, listRows: list.rows } : {},
|
|
1060
|
+
...list?.emailPreviews ? { listEmailPreviews: list.emailPreviews } : {},
|
|
1061
|
+
...raw ? { raw } : {}
|
|
1062
|
+
}
|
|
1063
|
+
});
|
|
1064
|
+
}
|
|
1065
|
+
});
|
|
1066
|
+
var audiencesUploadCommand = defineCommand({
|
|
1067
|
+
meta: {
|
|
1068
|
+
name: "upload",
|
|
1069
|
+
description: `Stage replacing an audience's list with a new file. ${STAGED_NOTE}
|
|
1070
|
+
LinkedIn keeps ONE list per audience and gives this app no row-level add or remove, so the file is the whole list the audience should hold: to add people, send the old rows plus the new; to remove people (a customer who closed, someone who opted out), send the list without them. Rematching takes up to 48h.
|
|
1071
|
+
Example: baker ads linkedin audiences upload urn:li:dmpSegment:42 --list-file all-target-accounts.csv`
|
|
1072
|
+
},
|
|
1073
|
+
args: {
|
|
1074
|
+
id: { type: "positional", description: "Segment URN/id, or li_temp_* ref staged in this chat", required: true },
|
|
1075
|
+
...accountArgs,
|
|
1076
|
+
"list-file": {
|
|
1077
|
+
type: "string",
|
|
1078
|
+
description: "CSV file with the WHOLE list the audience should hold",
|
|
1079
|
+
required: true
|
|
1080
|
+
}
|
|
1081
|
+
},
|
|
1082
|
+
run: async ({ args }) => {
|
|
1083
|
+
const accountId = bareAccountId(args);
|
|
1084
|
+
const list = parseListFileArg(args["list-file"], INLINE_ROWS_MAX);
|
|
1085
|
+
if (!list) {
|
|
1086
|
+
failWriteValidation("--list-file is required");
|
|
1087
|
+
}
|
|
1088
|
+
await stageOp({
|
|
1089
|
+
kind: "audience.uploadList",
|
|
1090
|
+
accountId,
|
|
1091
|
+
payload: {
|
|
1092
|
+
segment: requireTarget(args, "audience segment"),
|
|
1093
|
+
listColumns: list.columns,
|
|
1094
|
+
listRows: list.rows,
|
|
1095
|
+
...list.emailPreviews ? { listEmailPreviews: list.emailPreviews } : {}
|
|
1096
|
+
}
|
|
1097
|
+
});
|
|
1098
|
+
}
|
|
1099
|
+
});
|
|
1100
|
+
var audiencesDeleteCommand = defineCommand({
|
|
1101
|
+
meta: {
|
|
1102
|
+
name: "delete",
|
|
1103
|
+
description: `Stage deleting a matched audience \u2014 its list and its targetable twin go too. ${STAGED_NOTE}
|
|
1104
|
+
LinkedIn keeps at most 1,000 audiences per ad account and refuses to delete one a live ad set still targets. An audience staged in this chat is dropped with \`draft remove\` instead.
|
|
1105
|
+
Example: baker ads linkedin audiences delete urn:li:dmpSegment:77530978`
|
|
1106
|
+
},
|
|
1107
|
+
args: {
|
|
1108
|
+
id: {
|
|
1109
|
+
type: "positional",
|
|
1110
|
+
description: "Audience URN (urn:li:dmpSegment:\u2026) or id from `audiences`",
|
|
1111
|
+
required: true
|
|
1112
|
+
},
|
|
1113
|
+
...accountArgs
|
|
1114
|
+
},
|
|
1115
|
+
run: async ({ args }) => {
|
|
1116
|
+
await stageOp({
|
|
1117
|
+
kind: "audience.delete",
|
|
1118
|
+
accountId: bareAccountId(args),
|
|
1119
|
+
target: requireTarget(args, "audience"),
|
|
1120
|
+
payload: {}
|
|
1121
|
+
});
|
|
1122
|
+
}
|
|
1123
|
+
});
|
|
1124
|
+
var audiencesListCommand = defineCommand({
|
|
1125
|
+
meta: {
|
|
1126
|
+
name: "list",
|
|
1127
|
+
description: "List the ad account's matched audiences: status (BUILDING until LinkedIn has matched it, READY to serve), rows uploaded vs matched, and targetingUrn \u2014 the urn:li:adSegment:\u2026 targeting and exclusions take. Runs by default."
|
|
1128
|
+
},
|
|
1129
|
+
args: { ...accountArgs },
|
|
1130
|
+
run: async ({ args }) => {
|
|
1131
|
+
try {
|
|
1132
|
+
const data = await apiGet("/api/ads/linkedin/audiences", {
|
|
1133
|
+
"account-id": bareAccountId(args)
|
|
1134
|
+
});
|
|
1135
|
+
writeJsonEnvelope({ ok: true, data });
|
|
1136
|
+
} catch (err) {
|
|
1137
|
+
handleLinkedinError(err);
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
});
|
|
1141
|
+
var audiencesCommand = defineCommand({
|
|
1142
|
+
meta: {
|
|
1143
|
+
name: "audiences",
|
|
1144
|
+
description: `List the ad account's matched audiences, or stage changes to them (create lists, upload rows \u2014 staged until publish).
|
|
1145
|
+
Examples:
|
|
1146
|
+
baker ads linkedin audiences # status, uploaded vs matched, targetingUrn
|
|
1147
|
+
baker ads linkedin audiences create --name "ABM Tier-1" --type company-list --list-file accounts.csv`
|
|
1148
|
+
},
|
|
1149
|
+
// A parent must never declare `run` — see `creativesCommand`.
|
|
1150
|
+
args: { ...accountArgs },
|
|
1151
|
+
default: "list",
|
|
1152
|
+
subCommands: {
|
|
1153
|
+
list: audiencesListCommand,
|
|
1154
|
+
create: audiencesCreateCommand,
|
|
1155
|
+
upload: audiencesUploadCommand,
|
|
1156
|
+
delete: audiencesDeleteCommand
|
|
1157
|
+
}
|
|
1158
|
+
});
|
|
1159
|
+
var conversionsCreateCommand = defineCommand({
|
|
1160
|
+
meta: {
|
|
1161
|
+
name: "create",
|
|
1162
|
+
description: `Stage a new conversion rule. ${STAGED_NOTE}
|
|
1163
|
+
Example: baker ads linkedin conversions create --name "Demo booked" --type LEAD --method INSIGHT_TAG --post-click-window 30 --view-window 7`
|
|
1164
|
+
},
|
|
1165
|
+
args: {
|
|
1166
|
+
...accountArgs,
|
|
1167
|
+
name: { type: "string", description: "Conversion rule name" },
|
|
1168
|
+
type: {
|
|
1169
|
+
type: "string",
|
|
1170
|
+
description: "Conversion type. Common: LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, SIGN_UP, DOWNLOAD, PURCHASE, KEY_PAGE_VIEW, ADD_TO_CART, BOOK_APPOINTMENT, SUBMIT_APPLICATION, OTHER \u2014 `baker schema ads.linkedin.conversions.create` lists all 34"
|
|
1171
|
+
},
|
|
1172
|
+
method: { type: "string", description: "INSIGHT_TAG|CONVERSIONS_API" },
|
|
1173
|
+
"post-click-window": {
|
|
1174
|
+
type: "string",
|
|
1175
|
+
description: "1|7|30|90 days (playbook default 30); 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION"
|
|
1176
|
+
},
|
|
1177
|
+
"view-window": {
|
|
1178
|
+
type: "string",
|
|
1179
|
+
description: "1|7|30|90 days (playbook default 7); 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION"
|
|
1180
|
+
},
|
|
1181
|
+
"attribution-type": { type: "string", description: "LAST_TOUCH_BY_CAMPAIGN|LAST_TOUCH_BY_CONVERSION" },
|
|
1182
|
+
"associate-all-campaigns": { type: "boolean", description: "Auto-associate with active campaigns" },
|
|
1183
|
+
file: { type: "string", description: "JSON file with the full payload (e.g. urlMatchRuleExpression)" }
|
|
1184
|
+
},
|
|
1185
|
+
run: async ({ args }) => {
|
|
1186
|
+
const accountId = bareAccountId(args);
|
|
1187
|
+
const payload = mergePayload(loadJsonFileArg(args.file), {
|
|
1188
|
+
name: args.name,
|
|
1189
|
+
type: args.type ? String(args.type).toUpperCase() : void 0,
|
|
1190
|
+
conversionMethod: args.method ? String(args.method).toUpperCase() : void 0,
|
|
1191
|
+
postClickAttributionWindowSize: args["post-click-window"] ? Number(args["post-click-window"]) : void 0,
|
|
1192
|
+
viewThroughAttributionWindowSize: args["view-window"] ? Number(args["view-window"]) : void 0,
|
|
1193
|
+
attributionType: args["attribution-type"] ? String(args["attribution-type"]).toUpperCase() : void 0,
|
|
1194
|
+
associateAllCampaigns: args["associate-all-campaigns"] === true ? true : void 0
|
|
1195
|
+
});
|
|
1196
|
+
await stageOp({ kind: "conversion.create", accountId, payload });
|
|
1197
|
+
}
|
|
1198
|
+
});
|
|
1199
|
+
var conversionsUpdateCommand = defineCommand({
|
|
1200
|
+
meta: {
|
|
1201
|
+
name: "update",
|
|
1202
|
+
description: `Stage changes to a conversion rule (windows, name, enabled). ${STAGED_NOTE}
|
|
1203
|
+
Example: baker ads linkedin conversions update 104988516 --post-click-window 30 --view-window 7`
|
|
1204
|
+
},
|
|
1205
|
+
args: {
|
|
1206
|
+
id: { type: "positional", description: "Conversion rule id or URN", required: true },
|
|
1207
|
+
...accountArgs,
|
|
1208
|
+
name: { type: "string", description: "New name" },
|
|
1209
|
+
"post-click-window": {
|
|
1210
|
+
type: "string",
|
|
1211
|
+
description: "1|7|30|90 days; 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION"
|
|
1212
|
+
},
|
|
1213
|
+
"view-window": {
|
|
1214
|
+
type: "string",
|
|
1215
|
+
description: "1|7|30|90 days; 180|365 only for LEAD, QUALIFIED_LEAD, MARKETING_QUALIFIED_LEAD, SALES_QUALIFIED_LEAD, PURCHASE, ADD_TO_CART, SUBMIT_APPLICATION"
|
|
1216
|
+
},
|
|
1217
|
+
"attribution-type": { type: "string", description: "LAST_TOUCH_BY_CAMPAIGN|LAST_TOUCH_BY_CONVERSION" },
|
|
1218
|
+
enabled: { type: "string", description: "on|off" },
|
|
1219
|
+
file: { type: "string", description: "JSON file with fields to change" }
|
|
1220
|
+
},
|
|
1221
|
+
run: async ({ args }) => {
|
|
1222
|
+
const accountId = bareAccountId(args);
|
|
1223
|
+
const payload = mergePayload(loadJsonFileArg(args.file), {
|
|
1224
|
+
name: args.name,
|
|
1225
|
+
postClickAttributionWindowSize: args["post-click-window"] ? Number(args["post-click-window"]) : void 0,
|
|
1226
|
+
viewThroughAttributionWindowSize: args["view-window"] ? Number(args["view-window"]) : void 0,
|
|
1227
|
+
attributionType: args["attribution-type"] ? String(args["attribution-type"]).toUpperCase() : void 0,
|
|
1228
|
+
enabled: parseOnOffFlag(args.enabled, "--enabled")
|
|
1229
|
+
});
|
|
1230
|
+
await stageOp({
|
|
1231
|
+
kind: "conversion.update",
|
|
1232
|
+
accountId,
|
|
1233
|
+
target: requireTarget(args, "conversion rule"),
|
|
1234
|
+
payload
|
|
1235
|
+
});
|
|
1236
|
+
}
|
|
1237
|
+
});
|
|
1238
|
+
var conversionsUploadCommand = defineCommand({
|
|
1239
|
+
meta: {
|
|
1240
|
+
name: "upload",
|
|
1241
|
+
description: `Stage sending conversions that happened off LinkedIn's tag \u2014 deals a CRM closed, leads qualified on a call \u2014 to a Conversions API rule, so LinkedIn credits the ads that drove them and bids toward them. ${STAGED_NOTE}
|
|
1242
|
+
Start here: \`conversions\` lists the rules \u2014 pick one whose conversionMethod is CONVERSIONS_API (or stage one with \`conversions create --method CONVERSIONS_API\`). Ongoing sends from Baker's own conversions already reach LinkedIn on their own; this is for a backfill or a CRM export.
|
|
1243
|
+
The file (CSV with a header row, or a JSON array) carries one conversion per row: eventId (the CRM deal or order id \u2014 LinkedIn counts a re-sent id once), happenedAt (ISO time WITH timezone, last 90 days), and something to match the person on: email, or firstName + lastName (with companyName, title, countryCode to sharpen it), or liFatId. Optional value + currency. Emails and names are hashed here; nothing readable is stored. Up to 2,000 per upload; staging again for the same rule replaces the rows.
|
|
1244
|
+
Example: baker ads linkedin conversions upload 19997433 --file closed-won.csv`
|
|
1245
|
+
},
|
|
1246
|
+
args: {
|
|
1247
|
+
id: { type: "positional", description: "Conversions API rule id (from `conversions`)", required: true },
|
|
1248
|
+
...accountArgs,
|
|
1249
|
+
file: { type: "string", description: "CSV or JSON file of conversions", required: true }
|
|
1250
|
+
},
|
|
1251
|
+
run: async ({ args }) => {
|
|
1252
|
+
const path = String(args.file);
|
|
1253
|
+
const rows = path.toLowerCase().endsWith(".json") ? jsonRowsArg(path) : parseListFileArg(path, CONVERSION_UPLOAD_MAX_EVENTS)?.rows ?? [];
|
|
1254
|
+
const { events, ignored } = conversionUploadEvents(rows);
|
|
1255
|
+
if (ignored.length > 0) {
|
|
1256
|
+
process.stderr.write(
|
|
1257
|
+
`Ignored column(s) that are not part of a conversion: ${ignored.join(", ")}. Used: eventId, happenedAt, email, firstName, lastName, companyName, title, countryCode, liFatId, value, currency.
|
|
1258
|
+
`
|
|
1259
|
+
);
|
|
1260
|
+
}
|
|
1261
|
+
await stageOp({
|
|
1262
|
+
kind: "conversion.upload",
|
|
1263
|
+
accountId: bareAccountId(args),
|
|
1264
|
+
target: requireTarget(args, "conversion rule"),
|
|
1265
|
+
payload: { events }
|
|
1266
|
+
});
|
|
1267
|
+
}
|
|
1268
|
+
});
|
|
1269
|
+
function jsonRowsArg(path) {
|
|
1270
|
+
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
1271
|
+
if (!Array.isArray(parsed)) {
|
|
1272
|
+
failWriteValidation(`${path} must hold a JSON array, one conversion per element`);
|
|
1273
|
+
}
|
|
1274
|
+
return parsed;
|
|
1275
|
+
}
|
|
1276
|
+
var CONVERSION_CAMPAIGN_EXPLAINER = `Which ad sets a conversion rule counts for is a separate LinkedIn record, not a field on the rule \u2014 \`conversions update\` cannot change it, and \`--associate-all-campaigns\` only exists on create.`;
|
|
1277
|
+
function conversionCampaignArgs() {
|
|
1278
|
+
return {
|
|
1279
|
+
id: { type: "positional", description: "Conversion rule id or URN", required: true },
|
|
1280
|
+
...accountArgs,
|
|
1281
|
+
campaign: { type: "string", description: "Ad set (campaign) id or URN", required: true }
|
|
1282
|
+
};
|
|
1283
|
+
}
|
|
1284
|
+
function requireCampaignArg(args) {
|
|
1285
|
+
const campaign = args.campaign;
|
|
1286
|
+
if (typeof campaign !== "string" || campaign.length === 0) {
|
|
1287
|
+
failWriteValidation("--campaign is required \u2014 pass the ad set id or URN this conversion should count for");
|
|
1288
|
+
}
|
|
1289
|
+
return campaign;
|
|
1290
|
+
}
|
|
1291
|
+
var conversionsAssociateCommand = defineCommand({
|
|
1292
|
+
meta: {
|
|
1293
|
+
name: "associate-campaign",
|
|
1294
|
+
description: `Count an existing conversion rule for one ad set. ${STAGED_NOTE}
|
|
1295
|
+
${CONVERSION_CAMPAIGN_EXPLAINER}
|
|
1296
|
+
Example: baker ads linkedin conversions associate-campaign 104988516 --campaign 337643194`
|
|
1297
|
+
},
|
|
1298
|
+
args: conversionCampaignArgs(),
|
|
1299
|
+
run: async ({ args }) => {
|
|
1300
|
+
const accountId = bareAccountId(args);
|
|
1301
|
+
await stageOp({
|
|
1302
|
+
kind: "conversion.associateCampaign",
|
|
1303
|
+
accountId,
|
|
1304
|
+
target: requireTarget(args, "conversion rule"),
|
|
1305
|
+
payload: { campaign: requireCampaignArg(args) }
|
|
1306
|
+
});
|
|
1307
|
+
}
|
|
1308
|
+
});
|
|
1309
|
+
var conversionsDissociateCommand = defineCommand({
|
|
1310
|
+
meta: {
|
|
1311
|
+
name: "dissociate-campaign",
|
|
1312
|
+
description: `Stop counting an existing conversion rule for one ad set. ${STAGED_NOTE}
|
|
1313
|
+
${CONVERSION_CAMPAIGN_EXPLAINER}
|
|
1314
|
+
Example: baker ads linkedin conversions dissociate-campaign 104988516 --campaign 337643194`
|
|
1315
|
+
},
|
|
1316
|
+
args: conversionCampaignArgs(),
|
|
1317
|
+
run: async ({ args }) => {
|
|
1318
|
+
const accountId = bareAccountId(args);
|
|
1319
|
+
await stageOp({
|
|
1320
|
+
kind: "conversion.dissociateCampaign",
|
|
1321
|
+
accountId,
|
|
1322
|
+
target: requireTarget(args, "conversion rule"),
|
|
1323
|
+
payload: { campaign: requireCampaignArg(args) }
|
|
1324
|
+
});
|
|
1325
|
+
}
|
|
1326
|
+
});
|
|
1327
|
+
var leadFormsCreateCommand = defineCommand({
|
|
1328
|
+
meta: {
|
|
1329
|
+
name: "create",
|
|
1330
|
+
description: `Stage a new Lead Gen Form from a JSON file. ${STAGED_NOTE}
|
|
1331
|
+
Required: name, headline (\u226460), privacyPolicyUrl, questions[] (\u226412; playbook: \u22644 for completion).
|
|
1332
|
+
Each question is a predefined profile field ({ name, predefinedField: "EMAIL" }) or a custom question ({ name, questionType: "MULTIPLE_CHOICE", options: [...] }; \u22643 custom).
|
|
1333
|
+
Best-practice fields the preview will nudge for if missing: 1-3 qualifying questions, consents[] (disclosure checkboxes), thankYou.message + thankYou.landingUrl|appointmentUrl.
|
|
1334
|
+
Also supported: locale, formImageId|formImageUrn, hiddenFields[], legalDisclaimer, thankYou.cta. Example: baker ads linkedin lead-forms create --file form.json`
|
|
1335
|
+
},
|
|
1336
|
+
args: {
|
|
1337
|
+
...accountArgs,
|
|
1338
|
+
file: { type: "string", description: "JSON file with the form definition", required: true },
|
|
1339
|
+
name: { type: "string", description: "Override the form name" }
|
|
1340
|
+
},
|
|
1341
|
+
run: async ({ args }) => {
|
|
1342
|
+
const accountId = bareAccountId(args);
|
|
1343
|
+
const payload = mergePayload(loadJsonFileArg(args.file), { name: args.name });
|
|
1344
|
+
await stageOp({ kind: "leadForm.create", accountId, payload });
|
|
1345
|
+
}
|
|
1346
|
+
});
|
|
1347
|
+
function leadFormUpdatePayload(args) {
|
|
1348
|
+
const file = args.file ? loadJsonFileArg(args.file) : {};
|
|
1349
|
+
const thankYou = mergePayload(
|
|
1350
|
+
file.thankYou !== null && typeof file.thankYou === "object" ? file.thankYou : {},
|
|
1351
|
+
{ message: args["thank-you-message"], landingUrl: args["thank-you-url"] }
|
|
1352
|
+
);
|
|
1353
|
+
return mergePayload(file, {
|
|
1354
|
+
name: args.name,
|
|
1355
|
+
state: args.state ? String(args.state).toUpperCase() : void 0,
|
|
1356
|
+
headline: args.headline,
|
|
1357
|
+
description: args.description,
|
|
1358
|
+
privacyPolicyUrl: args["privacy-policy-url"],
|
|
1359
|
+
legalDisclaimer: args["legal-disclaimer"],
|
|
1360
|
+
thankYou: Object.keys(thankYou).length > 0 ? thankYou : void 0
|
|
1361
|
+
});
|
|
1362
|
+
}
|
|
1363
|
+
var leadFormsUpdateCommand = defineCommand({
|
|
1364
|
+
meta: {
|
|
1365
|
+
name: "update",
|
|
1366
|
+
description: `Stage changes to a Lead Gen Form. ${STAGED_NOTE}
|
|
1367
|
+
Once a form's ads are live LinkedIn keeps only its copy editable: name, headline, description, privacy policy URL, legal disclaimer, thank-you message and link, and state. Copy is written in the form's own language.
|
|
1368
|
+
Examples:
|
|
1369
|
+
baker ads linkedin lead-forms update 1028403421 --headline "Get the 2026 report" --thank-you-message "Check your inbox"
|
|
1370
|
+
baker ads linkedin lead-forms update 1028403421 --state PUBLISHED`
|
|
1371
|
+
},
|
|
1372
|
+
args: {
|
|
1373
|
+
id: { type: "positional", description: "Lead form id or URN", required: true },
|
|
1374
|
+
...accountArgs,
|
|
1375
|
+
name: { type: "string", description: "New form name (internal)" },
|
|
1376
|
+
state: { type: "string", description: "PUBLISHED (make a DRAFT form usable) | ARCHIVED (stop its ads)" },
|
|
1377
|
+
headline: { type: "string", description: "Form headline (\u226460)" },
|
|
1378
|
+
description: { type: "string", description: "Form details text" },
|
|
1379
|
+
"privacy-policy-url": { type: "string", description: "https privacy policy URL" },
|
|
1380
|
+
"legal-disclaimer": { type: "string", description: "Custom legal disclaimer" },
|
|
1381
|
+
"thank-you-message": { type: "string", description: "Confirmation message after submitting" },
|
|
1382
|
+
"thank-you-url": { type: "string", description: "https link on the confirmation screen" },
|
|
1383
|
+
file: {
|
|
1384
|
+
type: "string",
|
|
1385
|
+
description: "JSON file with any of the fields above (thankYou as an object); flags override"
|
|
1386
|
+
}
|
|
1387
|
+
},
|
|
1388
|
+
run: async ({ args }) => {
|
|
1389
|
+
const accountId = bareAccountId(args);
|
|
1390
|
+
await stageOp({
|
|
1391
|
+
kind: "leadForm.update",
|
|
1392
|
+
accountId,
|
|
1393
|
+
target: requireTarget(args, "lead form"),
|
|
1394
|
+
payload: leadFormUpdatePayload(args)
|
|
1395
|
+
});
|
|
1396
|
+
}
|
|
1397
|
+
});
|
|
1398
|
+
function leadFormStateCommand(name, state, what) {
|
|
1399
|
+
return defineCommand({
|
|
1400
|
+
meta: { name, description: `${what} ${STAGED_NOTE}
|
|
1401
|
+
Example: baker ads linkedin lead-forms ${name} 1028403421` },
|
|
1402
|
+
args: {
|
|
1403
|
+
id: { type: "positional", description: "Lead form id or URN", required: true },
|
|
1404
|
+
...accountArgs
|
|
1405
|
+
},
|
|
1406
|
+
run: async ({ args }) => {
|
|
1407
|
+
await stageOp({
|
|
1408
|
+
kind: "leadForm.update",
|
|
1409
|
+
accountId: bareAccountId(args),
|
|
1410
|
+
target: requireTarget(args, "lead form"),
|
|
1411
|
+
payload: { state }
|
|
1412
|
+
});
|
|
1413
|
+
}
|
|
1414
|
+
});
|
|
1415
|
+
}
|
|
1416
|
+
var leadFormsPublishCommand = leadFormStateCommand(
|
|
1417
|
+
"publish",
|
|
1418
|
+
"PUBLISHED",
|
|
1419
|
+
"Stage publishing a DRAFT lead gen form, so ads that open it can serve."
|
|
1420
|
+
);
|
|
1421
|
+
var leadFormsArchiveCommand = leadFormStateCommand(
|
|
1422
|
+
"archive",
|
|
1423
|
+
"ARCHIVED",
|
|
1424
|
+
"Stage archiving a lead gen form \u2014 every ad that opens it stops serving."
|
|
1425
|
+
);
|
|
1426
|
+
var leadFormsListArgs = {
|
|
1427
|
+
...accountArgs,
|
|
1428
|
+
"form-id": { type: "string", description: "Read one form (id or urn:li:leadGenForm:N), questions included" },
|
|
1429
|
+
full: { type: "boolean", description: "Every form's questions and options, not just how many it has" }
|
|
1430
|
+
};
|
|
1431
|
+
function leadFormsListing(forms, opts) {
|
|
1432
|
+
if (opts.full || opts.oneForm) {
|
|
1433
|
+
return [...forms];
|
|
1434
|
+
}
|
|
1435
|
+
return forms.map((form) => ({
|
|
1436
|
+
id: form.id,
|
|
1437
|
+
name: form.name,
|
|
1438
|
+
state: form.state,
|
|
1439
|
+
version: form.version,
|
|
1440
|
+
questions: form.questions?.length ?? 0
|
|
1441
|
+
}));
|
|
1442
|
+
}
|
|
1443
|
+
var leadFormsListCommand = defineCommand({
|
|
1444
|
+
meta: {
|
|
1445
|
+
name: "list",
|
|
1446
|
+
description: "List the ad account's lead gen forms: id, name, state (DRAFT forms can't serve), version, how many questions. --full (or --form-id) spells out each question and its options. Runs by default."
|
|
1447
|
+
},
|
|
1448
|
+
args: leadFormsListArgs,
|
|
1449
|
+
run: async ({ args }) => {
|
|
1450
|
+
const accountId = bareAccountId(args);
|
|
1451
|
+
try {
|
|
1452
|
+
const params = { "account-id": accountId };
|
|
1453
|
+
if (args["form-id"]) params["form-id"] = String(args["form-id"]);
|
|
1454
|
+
const forms = await apiGet("/api/ads/linkedin/lead-forms", params);
|
|
1455
|
+
const data = leadFormsListing(forms, { full: Boolean(args.full), oneForm: Boolean(args["form-id"]) });
|
|
1456
|
+
writeJsonEnvelope({ ok: true, data });
|
|
1457
|
+
} catch (err) {
|
|
1458
|
+
handleLinkedinError(err);
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1461
|
+
});
|
|
1462
|
+
var leadFormsCommand = defineCommand({
|
|
1463
|
+
meta: {
|
|
1464
|
+
name: "lead-forms",
|
|
1465
|
+
description: `List the ad account's lead gen forms, or stage changes to them (staged until publish).
|
|
1466
|
+
Examples:
|
|
1467
|
+
baker ads linkedin lead-forms # every form: id, name, state, question count
|
|
1468
|
+
baker ads linkedin lead-forms --form-id 1028403421 # one form, every question and option
|
|
1469
|
+
baker ads linkedin lead-forms create --file form.json # \u2192 li_temp ref; pass it to \`creatives create --lead-form\`
|
|
1470
|
+
baker ads linkedin lead-forms publish 1028403421 # a DRAFT form can't serve
|
|
1471
|
+
baker ads linkedin lead-forms archive 1028403421 # its ads stop serving`
|
|
1472
|
+
},
|
|
1473
|
+
// A parent must never declare `run` — see `creativesCommand`.
|
|
1474
|
+
args: leadFormsListArgs,
|
|
1475
|
+
default: "list",
|
|
1476
|
+
subCommands: {
|
|
1477
|
+
list: leadFormsListCommand,
|
|
1478
|
+
create: leadFormsCreateCommand,
|
|
1479
|
+
update: leadFormsUpdateCommand,
|
|
1480
|
+
publish: leadFormsPublishCommand,
|
|
1481
|
+
archive: leadFormsArchiveCommand
|
|
1482
|
+
}
|
|
1483
|
+
});
|
|
1484
|
+
export {
|
|
1485
|
+
accountTrackingTarget,
|
|
1486
|
+
accountUrlParamsCommand,
|
|
1487
|
+
audiencesCommand,
|
|
1488
|
+
campaignCreatePayload,
|
|
1489
|
+
campaignGroupCreatePayload,
|
|
1490
|
+
campaignGroupsCreateCommand,
|
|
1491
|
+
campaignGroupsDeleteCommand,
|
|
1492
|
+
campaignGroupsDuplicateCommand,
|
|
1493
|
+
campaignGroupsPauseCommand,
|
|
1494
|
+
campaignGroupsResumeCommand,
|
|
1495
|
+
campaignGroupsUpdateCommand,
|
|
1496
|
+
campaignUpdatePayloadFromFlags,
|
|
1497
|
+
campaignsArchiveCommand,
|
|
1498
|
+
campaignsCreateCommand,
|
|
1499
|
+
campaignsDeleteCommand,
|
|
1500
|
+
campaignsDuplicateCommand,
|
|
1501
|
+
campaignsExcludeCompaniesCommand,
|
|
1502
|
+
campaignsPauseCommand,
|
|
1503
|
+
campaignsResumeCommand,
|
|
1504
|
+
campaignsUpdateCommand,
|
|
1505
|
+
campaignsUrlParamsCommand,
|
|
1506
|
+
conversionsAssociateCommand,
|
|
1507
|
+
conversionsCreateCommand,
|
|
1508
|
+
conversionsDissociateCommand,
|
|
1509
|
+
conversionsUpdateCommand,
|
|
1510
|
+
conversionsUploadCommand,
|
|
1511
|
+
creativesCreateCommand,
|
|
1512
|
+
creativesDeleteCommand,
|
|
1513
|
+
creativesDuplicateCommand,
|
|
1514
|
+
creativesPauseCommand,
|
|
1515
|
+
creativesResumeCommand,
|
|
1516
|
+
creativesUpdateCommand,
|
|
1517
|
+
excludeCompaniesPayload,
|
|
1518
|
+
excludeCompaniesRefusal,
|
|
1519
|
+
leadFormsCommand,
|
|
1520
|
+
leadFormsListing,
|
|
1521
|
+
leadgenCallToActionArg,
|
|
1522
|
+
sponsoredPostArgs,
|
|
1523
|
+
trackingParamsPayload
|
|
1524
|
+
};
|
|
1525
|
+
//# sourceMappingURL=write-commands-RSN3MPBW.js.map
|