@koda-sl/baker-cli 0.496.0 → 0.497.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 +25 -4
- package/dist/account-ZKJFX2GK.js +80 -0
- package/dist/account-ZKJFX2GK.js.map +1 -0
- package/dist/account-users-SZCYHVBM.js +62 -0
- package/dist/account-users-SZCYHVBM.js.map +1 -0
- package/dist/accounts-5DFYKYSM.js +78 -0
- package/dist/accounts-5DFYKYSM.js.map +1 -0
- package/dist/accounts-OGAIQNE6.js +612 -0
- package/dist/accounts-OGAIQNE6.js.map +1 -0
- package/dist/actions-FMNJSOBA.js +55 -0
- package/dist/activecampaign-LYYYH6XD.js +936 -0
- package/dist/activecampaign-LYYYH6XD.js.map +1 -0
- package/dist/add-AOQLZRPC.js +80 -0
- package/dist/add-AOQLZRPC.js.map +1 -0
- package/dist/add-HWXEPSZF.js +105 -0
- package/dist/add-HWXEPSZF.js.map +1 -0
- package/dist/add-VDZPGZF5.js +148 -0
- package/dist/add-VDZPGZF5.js.map +1 -0
- package/dist/add-YYP3O536.js +303 -0
- package/dist/add-YYP3O536.js.map +1 -0
- package/dist/ads-OLXSDPD6.js +40 -0
- package/dist/advertisers-STYAIX72.js +121 -0
- package/dist/advertisers-STYAIX72.js.map +1 -0
- package/dist/analytics-6WBK4VFO.js +1977 -0
- package/dist/analytics-6WBK4VFO.js.map +1 -0
- package/dist/analytics-DHB325DM.js +434 -0
- package/dist/analytics-DHB325DM.js.map +1 -0
- package/dist/assign-BFXHYTMF.js +78 -0
- package/dist/assign-BFXHYTMF.js.map +1 -0
- package/dist/audience-size-XWHZV2GH.js +74 -0
- package/dist/audience-size-XWHZV2GH.js.map +1 -0
- package/dist/audit-IYGRU7LD.js +152 -0
- package/dist/audit-IYGRU7LD.js.map +1 -0
- package/dist/autocomplete-SDDSJTAF.js +112 -0
- package/dist/autocomplete-SDDSJTAF.js.map +1 -0
- package/dist/avatars-I4H3NMEJ.js +38 -0
- package/dist/bid-pricing-OVYBDRMV.js +101 -0
- package/dist/bid-pricing-OVYBDRMV.js.map +1 -0
- package/dist/brand-3V7ECY7D.js +22 -0
- package/dist/brief-U2W7KMFC.js +539 -0
- package/dist/brief-U2W7KMFC.js.map +1 -0
- package/dist/campaign-groups-FJHBVUA3.js +97 -0
- package/dist/campaign-groups-FJHBVUA3.js.map +1 -0
- package/dist/campaign-writes-XKYYMZML.js +166 -0
- package/dist/campaign-writes-XKYYMZML.js.map +1 -0
- package/dist/campaigns-E5UW4I3X.js +111 -0
- package/dist/campaigns-E5UW4I3X.js.map +1 -0
- package/dist/campaigns-MCB76NPQ.js +107 -0
- package/dist/canvas-JCNKMGCG.js +46 -0
- package/dist/capabilities-CLTZCXCZ.js +145 -0
- package/dist/capabilities-CLTZCXCZ.js.map +1 -0
- package/dist/chatgpt-XFZ42NXC.js +47 -0
- package/dist/chats-DTJSBDWO.js +277 -0
- package/dist/chats-DTJSBDWO.js.map +1 -0
- package/dist/check-CZTS64AW.js +105 -0
- package/dist/check-CZTS64AW.js.map +1 -0
- package/dist/chunk-2YTBPRRG.js +207 -0
- package/dist/chunk-3SNCMEJB.js +97 -0
- package/dist/chunk-7QGFO35A.js +23 -0
- package/dist/chunk-AV7ALENU.js +191 -0
- package/dist/chunk-BRLFQ4VX.js +604 -0
- package/dist/chunk-CAZGM2NX.js +92 -0
- package/dist/chunk-CAZGM2NX.js.map +1 -0
- package/dist/chunk-DJE7UXYT.js +831 -0
- package/dist/chunk-EFWXYUSK.js +139 -0
- package/dist/chunk-EONSZAZB.js +3868 -0
- package/dist/chunk-FALJQCWL.js +661 -0
- package/dist/chunk-FALJQCWL.js.map +1 -0
- package/dist/chunk-FG3MV2XM.js +89 -0
- package/dist/chunk-FKG476GH.js +392 -0
- package/dist/chunk-FUGQSIYG.js +297 -0
- package/dist/chunk-GZ4A2VYW.js +39 -0
- package/dist/chunk-GZ4A2VYW.js.map +1 -0
- package/dist/chunk-HPLHAHG5.js +275 -0
- package/dist/chunk-I24YT2KG.js +122 -0
- package/dist/chunk-IFDZZOUC.js +903 -0
- package/dist/chunk-JVVUI55M.js +455 -0
- package/dist/chunk-KKSHEPBY.js +363 -0
- package/dist/chunk-KQ7RCLGC.js +547 -0
- package/dist/chunk-L7WMS5PW.js +172 -0
- package/dist/chunk-LBRO4MTL.js +19 -0
- package/dist/chunk-LNRPOULW.js +224 -0
- package/dist/chunk-LX6WC2XZ.js +942 -0
- package/dist/chunk-MMGTJBM6.js +142 -0
- package/dist/chunk-NZS3KEQ2.js +97 -0
- package/dist/chunk-NZS3KEQ2.js.map +1 -0
- package/dist/chunk-O37VU7FG.js +6799 -0
- package/dist/chunk-O37VU7FG.js.map +1 -0
- package/dist/chunk-OEZYSL3U.js +51 -0
- package/dist/chunk-OOVHBMQB.js +103 -0
- package/dist/chunk-PTH7VWKK.js +159 -0
- package/dist/chunk-PYD6IGW6.js +401 -0
- package/dist/chunk-PYD6IGW6.js.map +1 -0
- package/dist/chunk-QE2E4EYJ.js +349 -0
- package/dist/chunk-QE2E4EYJ.js.map +1 -0
- package/dist/chunk-QZF4BVKL.js +66 -0
- package/dist/chunk-RITUSBYO.js +61 -0
- package/dist/chunk-SSTL3A7Z.js +206 -0
- package/dist/chunk-SZNGQ2GF.js +64 -0
- package/dist/chunk-SZNGQ2GF.js.map +1 -0
- package/dist/chunk-TD4SO6TR.js +169 -0
- package/dist/chunk-UZ4RTOFG.js +91 -0
- package/dist/chunk-VAX7PFQV.js +592 -0
- package/dist/chunk-VDRSZK4P.js +494 -0
- package/dist/chunk-VNU2EYD4.js +344 -0
- package/dist/chunk-WT4WDIXA.js +156 -0
- package/dist/chunk-XEX23CIB.js +160 -0
- package/dist/chunk-XXDF25BW.js +8939 -0
- package/dist/chunk-YJ3LSFMX.js +249 -0
- package/dist/chunk-YVK5RT3B.js +197 -0
- package/dist/chunk-YWWRLZUR.js +433 -0
- package/dist/chunk-Z4S5BCVZ.js +57 -0
- package/dist/chunk-ZYGK7GAK.js +1079 -0
- package/dist/claim-TSFPWTQY.js +198 -0
- package/dist/claim-TSFPWTQY.js.map +1 -0
- package/dist/cli.js +38 -37
- package/dist/cli.js.map +1 -1
- package/dist/companies-P7FZNJQV.js +196 -0
- package/dist/companies-P7FZNJQV.js.map +1 -0
- package/dist/complete-SYDIHMD5.js +82 -0
- package/dist/complete-SYDIHMD5.js.map +1 -0
- package/dist/connect-COS6G45S.js +43 -0
- package/dist/conversation-UJOWMJRH.js +94 -0
- package/dist/conversation-UJOWMJRH.js.map +1 -0
- package/dist/conversions-ONOIEILU.js +138 -0
- package/dist/conversions-ONOIEILU.js.map +1 -0
- package/dist/create-DPQRYQXK.js +208 -0
- package/dist/create-DPQRYQXK.js.map +1 -0
- package/dist/create-JD76Z4A4.js +60 -0
- package/dist/create-JD76Z4A4.js.map +1 -0
- package/dist/create-NOT3HGP2.js +133 -0
- package/dist/create-NOT3HGP2.js.map +1 -0
- package/dist/create-ZYEB7SHF.js +236 -0
- package/dist/create-ZYEB7SHF.js.map +1 -0
- package/dist/creatives-LRSELC7Y.js +221 -0
- package/dist/creatives-LRSELC7Y.js.map +1 -0
- package/dist/creatives-SEQHJD2M.js +58 -0
- package/dist/credentials-LHPTUVVA.js +288 -0
- package/dist/credentials-LHPTUVVA.js.map +1 -0
- package/dist/critique-Q7GSZ5RP.js +1459 -0
- package/dist/critique-Q7GSZ5RP.js.map +1 -0
- package/dist/critique-RR2XOQCE.js +228 -0
- package/dist/critique-RR2XOQCE.js.map +1 -0
- package/dist/crm-J7EU32PL.js +319 -0
- package/dist/crm-J7EU32PL.js.map +1 -0
- package/dist/crm-MC444ZVU.js +225 -0
- package/dist/crm-MC444ZVU.js.map +1 -0
- package/dist/customers-LMSX33FO.js +57 -0
- package/dist/delete-BQBVATMF.js +55 -0
- package/dist/delete-BQBVATMF.js.map +1 -0
- package/dist/delete-K7A3AUPH.js +65 -0
- package/dist/delete-K7A3AUPH.js.map +1 -0
- package/dist/delete-VV2ICIHF.js +67 -0
- package/dist/delete-VV2ICIHF.js.map +1 -0
- package/dist/demographics-7GWUXXS6.js +139 -0
- package/dist/demographics-7GWUXXS6.js.map +1 -0
- package/dist/discard-3CLZ4DPD.js +67 -0
- package/dist/discard-3CLZ4DPD.js.map +1 -0
- package/dist/domain-ZS74BSE6.js +99 -0
- package/dist/domain-ZS74BSE6.js.map +1 -0
- package/dist/draft-J3B33RAZ.js +308 -0
- package/dist/draft-J3B33RAZ.js.map +1 -0
- package/dist/draft-MZLWVX3D.js +218 -0
- package/dist/draft-MZLWVX3D.js.map +1 -0
- package/dist/draft-R56PIXCV.js +333 -0
- package/dist/draft-R56PIXCV.js.map +1 -0
- package/dist/experiment-7RJ5X2LL.js +1397 -0
- package/dist/experiments-NOSJJMYI.js +234 -0
- package/dist/experiments-NOSJJMYI.js.map +1 -0
- package/dist/facets-E6SHYUAI.js +115 -0
- package/dist/facets-E6SHYUAI.js.map +1 -0
- package/dist/feedback-HXCQBV7S.js +107 -0
- package/dist/feedback-HXCQBV7S.js.map +1 -0
- package/dist/feedback-record-GXPYXNT6.js +261 -0
- package/dist/feedback-record-GXPYXNT6.js.map +1 -0
- package/dist/fetch-HMUGSRE4.js +177 -0
- package/dist/fetch-HMUGSRE4.js.map +1 -0
- package/dist/find-2EPXK5RF.js +134 -0
- package/dist/fit-W7UNFZT5.js +63 -0
- package/dist/flows-SO5J3M3X.js +248 -0
- package/dist/flows-SO5J3M3X.js.map +1 -0
- package/dist/fonts-N42UYWTX.js +37 -0
- package/dist/forecast-24LGJVLC.js +119 -0
- package/dist/forecast-24LGJVLC.js.map +1 -0
- package/dist/funnel-NYT36B3C.js +395 -0
- package/dist/funnel-NYT36B3C.js.map +1 -0
- package/dist/ga4-6EIQC2TG.js +55 -0
- package/dist/get-KAGO4EC5.js +80 -0
- package/dist/get-KAGO4EC5.js.map +1 -0
- package/dist/get-PZX27LQY.js +38 -0
- package/dist/get-PZX27LQY.js.map +1 -0
- package/dist/get-R5JAFHTH.js +57 -0
- package/dist/get-R5JAFHTH.js.map +1 -0
- package/dist/google-O5OI6QFU.js +136 -0
- package/dist/google-ads-6X4BHGUR.js +196 -0
- package/dist/google-ads-6X4BHGUR.js.map +1 -0
- package/dist/gsc-BM3T2GDL.js +30 -0
- package/dist/history-LGOWYLBE.js +134 -0
- package/dist/history-LGOWYLBE.js.map +1 -0
- package/dist/hubspot-LJB3ETUT.js +780 -0
- package/dist/hubspot-LJB3ETUT.js.map +1 -0
- package/dist/icon-B7DG53S5.js +137 -0
- package/dist/ideas-DYN2DMFN.js +41 -0
- package/dist/images-EQCUXEHF.js +92 -0
- package/dist/ingest-B46AY3QU.js +24 -0
- package/dist/ingest-T7ZS2R4U.js +108 -0
- package/dist/ingest-T7ZS2R4U.js.map +1 -0
- package/dist/inspect-BSNGAT2S.js +190 -0
- package/dist/inspect-BSNGAT2S.js.map +1 -0
- package/dist/inspiration-TCCKM4R7.js +53 -0
- package/dist/keyword-metrics-KNTIN4ZK.js +198 -0
- package/dist/keyword-metrics-KNTIN4ZK.js.map +1 -0
- package/dist/keywords-for-site-S4MXGXWR.js +129 -0
- package/dist/keywords-for-site-S4MXGXWR.js.map +1 -0
- package/dist/landing-WVPA7NBR.js +28 -0
- package/dist/leads-EINV5FK3.js +113 -0
- package/dist/leads-EINV5FK3.js.map +1 -0
- package/dist/learn-7Z2VR6MS.js +205 -0
- package/dist/learn-7Z2VR6MS.js.map +1 -0
- package/dist/line-item-writes-Z3TIB5KZ.js +209 -0
- package/dist/line-item-writes-Z3TIB5KZ.js.map +1 -0
- package/dist/line-items-OEWYOPFP.js +103 -0
- package/dist/link-KYHUIPJE.js +65 -0
- package/dist/link-KYHUIPJE.js.map +1 -0
- package/dist/linkedin-JVB4HXJC.js +1314 -0
- package/dist/linkedin-JVB4HXJC.js.map +1 -0
- package/dist/list-EORTO73V.js +93 -0
- package/dist/list-EORTO73V.js.map +1 -0
- package/dist/list-QQVLURKH.js +152 -0
- package/dist/list-QQVLURKH.js.map +1 -0
- package/dist/list-QWGKRUSM.js +65 -0
- package/dist/list-QWGKRUSM.js.map +1 -0
- package/dist/list-WRBWQASJ.js +50 -0
- package/dist/list-Z6NMNK3T.js +304 -0
- package/dist/list-Z6NMNK3T.js.map +1 -0
- package/dist/log-RUMKYPYK.js +93 -0
- package/dist/log-RUMKYPYK.js.map +1 -0
- package/dist/logo-QTSBKP2J.js +18 -0
- package/dist/make-IJGCQA7C.js +1354 -0
- package/dist/make-IJGCQA7C.js.map +1 -0
- package/dist/map-QZHIJFQT.js +434 -0
- package/dist/map-QZHIJFQT.js.map +1 -0
- package/dist/mcp-ZH2XDV5P.js +715 -0
- package/dist/mcp-ZH2XDV5P.js.map +1 -0
- package/dist/media-sources-SQ2RPDBO.js +35 -0
- package/dist/media-sources-SQ2RPDBO.js.map +1 -0
- package/dist/members-4YX7JEZM.js +45 -0
- package/dist/members-4YX7JEZM.js.map +1 -0
- package/dist/normalize-ABIWLRIT.js +142 -0
- package/dist/normalize-ABIWLRIT.js.map +1 -0
- package/dist/options-SVCQVTNE.js +123 -0
- package/dist/options-SVCQVTNE.js.map +1 -0
- package/dist/organization-FNKDC742.js +947 -0
- package/dist/organization-FNKDC742.js.map +1 -0
- package/dist/performance-HTU5FR2K.js +25 -0
- package/dist/posts-3DAPTBH2.js +34 -0
- package/dist/posts-3DAPTBH2.js.map +1 -0
- package/dist/promoted-tweet-writes-DD3CJNWW.js +181 -0
- package/dist/promoted-tweet-writes-DD3CJNWW.js.map +1 -0
- package/dist/promoted-tweets-TTWN5OMW.js +119 -0
- package/dist/publish-Z62KGDJ2.js +342 -0
- package/dist/publish-Z62KGDJ2.js.map +1 -0
- package/dist/reddit-6C3PT5CT.js +27 -0
- package/dist/refresh-HCQXVFVR.js +95 -0
- package/dist/refresh-HCQXVFVR.js.map +1 -0
- package/dist/refresh-ZCGH64OZ.js +42 -0
- package/dist/refresh-ZCGH64OZ.js.map +1 -0
- package/dist/release-FIHW2HCH.js +61 -0
- package/dist/release-FIHW2HCH.js.map +1 -0
- package/dist/remove-CBR7NVMI.js +51 -0
- package/dist/remove-CBR7NVMI.js.map +1 -0
- package/dist/remove-PUZP5GWN.js +49 -0
- package/dist/remove-PUZP5GWN.js.map +1 -0
- package/dist/reopen-EJGLRQWR.js +64 -0
- package/dist/reopen-EJGLRQWR.js.map +1 -0
- package/dist/rerun-TVBZXASH.js +91 -0
- package/dist/rerun-TVBZXASH.js.map +1 -0
- package/dist/research-L25D4WHQ.js +263 -0
- package/dist/research-L25D4WHQ.js.map +1 -0
- package/dist/research-YCMMQVK6.js +62 -0
- package/dist/reset-HKKCWKZ7.js +55 -0
- package/dist/reset-HKKCWKZ7.js.map +1 -0
- package/dist/reset-SRL6I6GP.js +55 -0
- package/dist/reset-SRL6I6GP.js.map +1 -0
- package/dist/resolve-POMTTAFR.js +122 -0
- package/dist/resolve-POMTTAFR.js.map +1 -0
- package/dist/retry-MEPTOAV2.js +61 -0
- package/dist/retry-MEPTOAV2.js.map +1 -0
- package/dist/retry-RNGM3KKA.js +63 -0
- package/dist/retry-RNGM3KKA.js.map +1 -0
- package/dist/revenue-X4KPTSAM.js +89 -0
- package/dist/revenue-X4KPTSAM.js.map +1 -0
- package/dist/rules-VK7YA23Q.js +97 -0
- package/dist/rules-VK7YA23Q.js.map +1 -0
- package/dist/rules-add-VG7AT6EG.js +463 -0
- package/dist/rules-add-VG7AT6EG.js.map +1 -0
- package/dist/run-DIDQSZU7.js +67 -0
- package/dist/run-DIDQSZU7.js.map +1 -0
- package/dist/run-SR7DJ7M5.js +66 -0
- package/dist/scaffold-ad-46GTFUMP.js +1512 -0
- package/dist/scaffold-ad-46GTFUMP.js.map +1 -0
- package/dist/scaffold-static-ad-U63V4UHR.js +1006 -0
- package/dist/scaffold-static-ad-U63V4UHR.js.map +1 -0
- package/dist/scaffold-video-4DNTURH6.js +884 -0
- package/dist/scaffold-video-4DNTURH6.js.map +1 -0
- package/dist/schedule-JO66N7XO.js +62 -0
- package/dist/schedule-JO66N7XO.js.map +1 -0
- package/dist/schedule-JZBIX6LH.js +67 -0
- package/dist/schedule-JZBIX6LH.js.map +1 -0
- package/dist/scheduled-agents-N63EZNY6.js +50 -0
- package/dist/schema-B2XANMEY.js +133 -0
- package/dist/schema-B2XANMEY.js.map +1 -0
- package/dist/schema-C6SGBNA6.js +69 -0
- package/dist/search-7GHS3OUZ.js +51 -0
- package/dist/search-7GHS3OUZ.js.map +1 -0
- package/dist/search-W5HZUJA2.js +175 -0
- package/dist/search-W5HZUJA2.js.map +1 -0
- package/dist/select-LMGLNFWB.js +102 -0
- package/dist/select-LMGLNFWB.js.map +1 -0
- package/dist/set-prompt-M5E3UZDM.js +194 -0
- package/dist/set-prompt-M5E3UZDM.js.map +1 -0
- package/dist/setup-links-ERBQSKAB.js +142 -0
- package/dist/setup-links-ERBQSKAB.js.map +1 -0
- package/dist/site-PNVFJRYK.js +178 -0
- package/dist/site-PNVFJRYK.js.map +1 -0
- package/dist/sources-DMZJPLKC.js +455 -0
- package/dist/sources-DMZJPLKC.js.map +1 -0
- package/dist/sources-HN3GCEDX.js +30 -0
- package/dist/stale-VWN25WTL.js +72 -0
- package/dist/stale-VWN25WTL.js.map +1 -0
- package/dist/stats-CVF6AC7R.js +34 -0
- package/dist/status-SF7DTPCJ.js +63 -0
- package/dist/status-SF7DTPCJ.js.map +1 -0
- package/dist/stock-4LPQ6SM7.js +179 -0
- package/dist/studio-NZ6WQ7OE.js +49 -0
- package/dist/suggest-WMMEQCUH.js +66 -0
- package/dist/suggest-WMMEQCUH.js.map +1 -0
- package/dist/sync-F7VNZLWY.js +55 -0
- package/dist/sync-F7VNZLWY.js.map +1 -0
- package/dist/sync-HVNDPBOD.js +55 -0
- package/dist/sync-HVNDPBOD.js.map +1 -0
- package/dist/sync-definition-CKEUYKWN.js +65 -0
- package/dist/tag-KTQ2FV5C.js +57 -0
- package/dist/tag-KTQ2FV5C.js.map +1 -0
- package/dist/tag-manager-FLXXLNKP.js +43 -0
- package/dist/tags-EUOOSAKN.js +26 -0
- package/dist/tags-KOMAP2G5.js +21 -0
- package/dist/tags-KOMAP2G5.js.map +1 -0
- package/dist/tags-TKXJGTR3.js +21 -0
- package/dist/tags-TKXJGTR3.js.map +1 -0
- package/dist/tags-VWIPDCUA.js +225 -0
- package/dist/tags-VWIPDCUA.js.map +1 -0
- package/dist/tags-XAB4HWGW.js +21 -0
- package/dist/tags-XAB4HWGW.js.map +1 -0
- package/dist/targeting-criteria-HE7K52WN.js +113 -0
- package/dist/targets-NA4XPDBF.js +104 -0
- package/dist/targets-NA4XPDBF.js.map +1 -0
- package/dist/testimonials-3Q5XM7JD.js +32 -0
- package/dist/top-companies-TKO4QGPJ.js +109 -0
- package/dist/top-companies-TKO4QGPJ.js.map +1 -0
- package/dist/translate-YVIZ5T44.js +605 -0
- package/dist/translate-YVIZ5T44.js.map +1 -0
- package/dist/triggers-QX7VW7UO.js +143 -0
- package/dist/triggers-QX7VW7UO.js.map +1 -0
- package/dist/unlink-64SRPUNG.js +68 -0
- package/dist/unlink-64SRPUNG.js.map +1 -0
- package/dist/unstage-5X2MOUMF.js +86 -0
- package/dist/unstage-5X2MOUMF.js.map +1 -0
- package/dist/update-22ZBHURE.js +81 -0
- package/dist/update-22ZBHURE.js.map +1 -0
- package/dist/update-2LTPSGWT.js +99 -0
- package/dist/update-2LTPSGWT.js.map +1 -0
- package/dist/update-DOKS7ATM.js +189 -0
- package/dist/update-DOKS7ATM.js.map +1 -0
- package/dist/update-FB6X463M.js +64 -0
- package/dist/update-FB6X463M.js.map +1 -0
- package/dist/update-QIZ7XFAM.js +153 -0
- package/dist/update-QIZ7XFAM.js.map +1 -0
- package/dist/upload-XJ7TUVIK.js +127 -0
- package/dist/upload-XJ7TUVIK.js.map +1 -0
- package/dist/url-params-KLQOLNPS.js +99 -0
- package/dist/url-params-KLQOLNPS.js.map +1 -0
- package/dist/validate-YTBJBG44.js +118 -0
- package/dist/validate-YTBJBG44.js.map +1 -0
- package/dist/videos-WAPUPJVT.js +39 -0
- package/dist/viewer-check-GHQA3UY2.js +81 -0
- package/dist/web-6JMWERTT.js +141 -0
- package/dist/web-6JMWERTT.js.map +1 -0
- package/dist/winning-ads-XCVUAIOU.js +86 -0
- package/dist/write-commands-N74CDMQM.js +1493 -0
- package/dist/write-commands-N74CDMQM.js.map +1 -0
- package/dist/x-SI4KYDEY.js +47 -0
- package/package.json +1 -1
- package/dist/account-UHNR5KTE.js +0 -79
- package/dist/account-UHNR5KTE.js.map +0 -1
- package/dist/accounts-KMLXHADA.js +0 -77
- package/dist/accounts-KMLXHADA.js.map +0 -1
- package/dist/accounts-QDGNTSTV.js +0 -611
- package/dist/accounts-QDGNTSTV.js.map +0 -1
- package/dist/actions-QL5UD2W4.js +0 -55
- package/dist/activecampaign-5OD45ROS.js +0 -935
- package/dist/activecampaign-5OD45ROS.js.map +0 -1
- package/dist/add-2F7BEVYD.js +0 -105
- package/dist/add-2F7BEVYD.js.map +0 -1
- package/dist/add-6K6LO7CM.js +0 -104
- package/dist/add-6K6LO7CM.js.map +0 -1
- package/dist/add-LYDJZDGO.js +0 -302
- package/dist/add-LYDJZDGO.js.map +0 -1
- package/dist/ads-DHPJFU52.js +0 -40
- package/dist/advertisers-23LU7GTV.js +0 -120
- package/dist/advertisers-23LU7GTV.js.map +0 -1
- package/dist/analytics-HO2SLL4W.js +0 -433
- package/dist/analytics-HO2SLL4W.js.map +0 -1
- package/dist/analytics-LD3D7ISK.js +0 -1976
- package/dist/analytics-LD3D7ISK.js.map +0 -1
- package/dist/assign-CLKJKH2B.js +0 -77
- package/dist/assign-CLKJKH2B.js.map +0 -1
- package/dist/audience-size-NNYYXODL.js +0 -73
- package/dist/audience-size-NNYYXODL.js.map +0 -1
- package/dist/audit-KB4P2XGS.js +0 -151
- package/dist/audit-KB4P2XGS.js.map +0 -1
- package/dist/autocomplete-VZD2SMTE.js +0 -111
- package/dist/autocomplete-VZD2SMTE.js.map +0 -1
- package/dist/avatars-FKOO6VZ2.js +0 -38
- package/dist/bid-pricing-6LLXOLLI.js +0 -100
- package/dist/bid-pricing-6LLXOLLI.js.map +0 -1
- package/dist/brand-NNWHBIAX.js +0 -22
- package/dist/brief-CPJQWT6W.js +0 -538
- package/dist/brief-CPJQWT6W.js.map +0 -1
- package/dist/campaign-groups-YPYNXOWU.js +0 -95
- package/dist/campaign-groups-YPYNXOWU.js.map +0 -1
- package/dist/campaign-writes-UJ4L2O6G.js +0 -165
- package/dist/campaign-writes-UJ4L2O6G.js.map +0 -1
- package/dist/campaigns-HLBZRH5A.js +0 -107
- package/dist/campaigns-N44ZDGB5.js +0 -109
- package/dist/campaigns-N44ZDGB5.js.map +0 -1
- package/dist/canvas-D64GLWUO.js +0 -46
- package/dist/capabilities-LWXCWMIY.js +0 -144
- package/dist/capabilities-LWXCWMIY.js.map +0 -1
- package/dist/chatgpt-YI6YNACI.js +0 -47
- package/dist/chats-7WGC2CVW.js +0 -276
- package/dist/chats-7WGC2CVW.js.map +0 -1
- package/dist/check-EH6BXWWL.js +0 -104
- package/dist/check-EH6BXWWL.js.map +0 -1
- package/dist/chunk-2B772ZEA.js +0 -169
- package/dist/chunk-2KRK667G.js +0 -51
- package/dist/chunk-2TVXJPGR.js +0 -103
- package/dist/chunk-3AMLOCXY.js +0 -392
- package/dist/chunk-3B5LPK6D.js +0 -658
- package/dist/chunk-3B5LPK6D.js.map +0 -1
- package/dist/chunk-3N5A44NQ.js +0 -122
- package/dist/chunk-3WAYZQNV.js +0 -61
- package/dist/chunk-5A257KJA.js +0 -160
- package/dist/chunk-6QGS3RQP.js +0 -363
- package/dist/chunk-AFD32O4A.js +0 -494
- package/dist/chunk-AW2GKIGS.js +0 -433
- package/dist/chunk-CYSBNCPX.js +0 -55
- package/dist/chunk-CYSBNCPX.js.map +0 -1
- package/dist/chunk-DAO63OOP.js +0 -6352
- package/dist/chunk-DAO63OOP.js.map +0 -1
- package/dist/chunk-EMQUW6JB.js +0 -942
- package/dist/chunk-EW3JEKIV.js +0 -139
- package/dist/chunk-FBFWMTOP.js +0 -19
- package/dist/chunk-GXDLWBOY.js +0 -73
- package/dist/chunk-GXDLWBOY.js.map +0 -1
- package/dist/chunk-GXGYTFZA.js +0 -8939
- package/dist/chunk-I7J7YQXZ.js +0 -142
- package/dist/chunk-IBY44U2M.js +0 -1079
- package/dist/chunk-IFXGCI33.js +0 -297
- package/dist/chunk-IKLHXGMF.js +0 -91
- package/dist/chunk-IYTPWAN3.js +0 -604
- package/dist/chunk-J3CWAERS.js +0 -3868
- package/dist/chunk-JH2L5CQD.js +0 -206
- package/dist/chunk-JUVVCA7B.js +0 -97
- package/dist/chunk-MK6XJUCQ.js +0 -197
- package/dist/chunk-N3I6ZXR7.js +0 -66
- package/dist/chunk-NBO2NSAW.js +0 -592
- package/dist/chunk-NEU5QD2C.js +0 -249
- package/dist/chunk-NKIBXOHT.js +0 -344
- package/dist/chunk-OE3MIV4F.js +0 -547
- package/dist/chunk-P2MFWJR3.js +0 -903
- package/dist/chunk-PHCIFBP3.js +0 -89
- package/dist/chunk-PTUXBO5O.js +0 -224
- package/dist/chunk-Q3LXLWZY.js +0 -275
- package/dist/chunk-Q5WBTVA7.js +0 -455
- package/dist/chunk-RDEAVCMF.js +0 -399
- package/dist/chunk-RDEAVCMF.js.map +0 -1
- package/dist/chunk-RGMKXNQP.js +0 -23
- package/dist/chunk-RZTKCCUL.js +0 -831
- package/dist/chunk-TTKBNBQF.js +0 -156
- package/dist/chunk-VB3XUR6A.js +0 -207
- package/dist/chunk-XCKINS7K.js +0 -57
- package/dist/chunk-Y6GKV7CU.js +0 -346
- package/dist/chunk-Y6GKV7CU.js.map +0 -1
- package/dist/chunk-Z2GQREJY.js +0 -159
- package/dist/chunk-ZDAVSTEE.js +0 -172
- package/dist/chunk-ZXCSOVS5.js +0 -191
- package/dist/claim-SVDCQ2AI.js +0 -197
- package/dist/claim-SVDCQ2AI.js.map +0 -1
- package/dist/companies-BYMYQK6A.js +0 -195
- package/dist/companies-BYMYQK6A.js.map +0 -1
- package/dist/complete-NEH3MWRI.js +0 -81
- package/dist/complete-NEH3MWRI.js.map +0 -1
- package/dist/connect-5PGL7ZOM.js +0 -42
- package/dist/conversation-CSOKJXDW.js +0 -93
- package/dist/conversation-CSOKJXDW.js.map +0 -1
- package/dist/conversions-4JOTTFEH.js +0 -135
- package/dist/conversions-4JOTTFEH.js.map +0 -1
- package/dist/create-2XYMBULY.js +0 -207
- package/dist/create-2XYMBULY.js.map +0 -1
- package/dist/create-56PTZABQ.js +0 -235
- package/dist/create-56PTZABQ.js.map +0 -1
- package/dist/create-D6S6TGWY.js +0 -59
- package/dist/create-D6S6TGWY.js.map +0 -1
- package/dist/create-SMW4O5PC.js +0 -132
- package/dist/create-SMW4O5PC.js.map +0 -1
- package/dist/creatives-OO76DAFS.js +0 -58
- package/dist/creatives-VJUYWJL6.js +0 -182
- package/dist/creatives-VJUYWJL6.js.map +0 -1
- package/dist/credentials-2ONYUJW6.js +0 -287
- package/dist/credentials-2ONYUJW6.js.map +0 -1
- package/dist/critique-NDDFSGPE.js +0 -1458
- package/dist/critique-NDDFSGPE.js.map +0 -1
- package/dist/critique-YXZVMLZ4.js +0 -227
- package/dist/critique-YXZVMLZ4.js.map +0 -1
- package/dist/crm-Q6CEP5XV.js +0 -224
- package/dist/crm-Q6CEP5XV.js.map +0 -1
- package/dist/crm-WRONZYDH.js +0 -318
- package/dist/crm-WRONZYDH.js.map +0 -1
- package/dist/customers-2EFYSCU2.js +0 -56
- package/dist/delete-7WEVC3FS.js +0 -66
- package/dist/delete-7WEVC3FS.js.map +0 -1
- package/dist/delete-RBWK255M.js +0 -54
- package/dist/delete-RBWK255M.js.map +0 -1
- package/dist/delete-VN4WWMQF.js +0 -64
- package/dist/delete-VN4WWMQF.js.map +0 -1
- package/dist/demographics-I5XZ435C.js +0 -138
- package/dist/demographics-I5XZ435C.js.map +0 -1
- package/dist/discard-XJLIXTNM.js +0 -66
- package/dist/discard-XJLIXTNM.js.map +0 -1
- package/dist/domain-M7AEGAYI.js +0 -98
- package/dist/domain-M7AEGAYI.js.map +0 -1
- package/dist/draft-5DQI4W5F.js +0 -306
- package/dist/draft-5DQI4W5F.js.map +0 -1
- package/dist/draft-7IIYHSY2.js +0 -332
- package/dist/draft-7IIYHSY2.js.map +0 -1
- package/dist/draft-CN6GKVBF.js +0 -217
- package/dist/draft-CN6GKVBF.js.map +0 -1
- package/dist/experiment-IDDWRCJ7.js +0 -1397
- package/dist/facets-ZLZ6LIHN.js +0 -114
- package/dist/facets-ZLZ6LIHN.js.map +0 -1
- package/dist/feedback-7LEX2P5Q.js +0 -106
- package/dist/feedback-7LEX2P5Q.js.map +0 -1
- package/dist/feedback-record-P4JJ63KA.js +0 -260
- package/dist/feedback-record-P4JJ63KA.js.map +0 -1
- package/dist/fetch-MIVCEHXZ.js +0 -176
- package/dist/fetch-MIVCEHXZ.js.map +0 -1
- package/dist/find-VHN34MWL.js +0 -134
- package/dist/fit-SS6HSZPU.js +0 -62
- package/dist/flows-UTIIHDNE.js +0 -247
- package/dist/flows-UTIIHDNE.js.map +0 -1
- package/dist/fonts-YPNN7ZJP.js +0 -36
- package/dist/forecast-OBSHG2GJ.js +0 -118
- package/dist/forecast-OBSHG2GJ.js.map +0 -1
- package/dist/funnel-A4MXQYBA.js +0 -394
- package/dist/funnel-A4MXQYBA.js.map +0 -1
- package/dist/ga4-ZPAEF2G2.js +0 -55
- package/dist/get-MDAO6I7T.js +0 -56
- package/dist/get-MDAO6I7T.js.map +0 -1
- package/dist/get-ZB553BSH.js +0 -79
- package/dist/get-ZB553BSH.js.map +0 -1
- package/dist/google-C3X7O2UO.js +0 -136
- package/dist/google-ads-FTWL772L.js +0 -195
- package/dist/google-ads-FTWL772L.js.map +0 -1
- package/dist/gsc-SDDHGTZK.js +0 -30
- package/dist/history-WKJYKDMG.js +0 -133
- package/dist/history-WKJYKDMG.js.map +0 -1
- package/dist/hubspot-EPHVEPOO.js +0 -779
- package/dist/hubspot-EPHVEPOO.js.map +0 -1
- package/dist/icon-MYPDC6FM.js +0 -137
- package/dist/ideas-3PBH7VEX.js +0 -40
- package/dist/images-J35C3WG4.js +0 -92
- package/dist/ingest-5QOPUKFE.js +0 -107
- package/dist/ingest-5QOPUKFE.js.map +0 -1
- package/dist/ingest-OKUYP632.js +0 -23
- package/dist/inspect-PMNCP6MV.js +0 -189
- package/dist/inspect-PMNCP6MV.js.map +0 -1
- package/dist/inspiration-QAL7NS7G.js +0 -53
- package/dist/keyword-metrics-R752SJIT.js +0 -197
- package/dist/keyword-metrics-R752SJIT.js.map +0 -1
- package/dist/keywords-for-site-7UWPJYQF.js +0 -128
- package/dist/keywords-for-site-7UWPJYQF.js.map +0 -1
- package/dist/landing-CBVIOGJ5.js +0 -28
- package/dist/leads-LIJS6Y5W.js +0 -90
- package/dist/leads-LIJS6Y5W.js.map +0 -1
- package/dist/learn-N6QV7GXA.js +0 -204
- package/dist/learn-N6QV7GXA.js.map +0 -1
- package/dist/line-item-writes-3WPJXKIL.js +0 -208
- package/dist/line-item-writes-3WPJXKIL.js.map +0 -1
- package/dist/line-items-ZOFKOGAA.js +0 -103
- package/dist/link-DDRQKOUL.js +0 -64
- package/dist/link-DDRQKOUL.js.map +0 -1
- package/dist/linkedin-UWZCF66X.js +0 -1057
- package/dist/linkedin-UWZCF66X.js.map +0 -1
- package/dist/list-5PLXVPLB.js +0 -151
- package/dist/list-5PLXVPLB.js.map +0 -1
- package/dist/list-RC2NX6AX.js +0 -50
- package/dist/list-VSJISE7U.js +0 -303
- package/dist/list-VSJISE7U.js.map +0 -1
- package/dist/list-WTVOBQYX.js +0 -64
- package/dist/list-WTVOBQYX.js.map +0 -1
- package/dist/log-YKKPROLZ.js +0 -92
- package/dist/log-YKKPROLZ.js.map +0 -1
- package/dist/logo-WE2UELX6.js +0 -18
- package/dist/make-RNOWBLZQ.js +0 -1353
- package/dist/make-RNOWBLZQ.js.map +0 -1
- package/dist/map-WTDPQLVO.js +0 -433
- package/dist/map-WTDPQLVO.js.map +0 -1
- package/dist/mcp-XJNSCPP3.js +0 -714
- package/dist/mcp-XJNSCPP3.js.map +0 -1
- package/dist/media-sources-JGBDDXZ5.js +0 -32
- package/dist/media-sources-JGBDDXZ5.js.map +0 -1
- package/dist/members-O3BTMRXX.js +0 -44
- package/dist/members-O3BTMRXX.js.map +0 -1
- package/dist/normalize-R5AYLA2J.js +0 -141
- package/dist/normalize-R5AYLA2J.js.map +0 -1
- package/dist/options-AILRY7JY.js +0 -122
- package/dist/options-AILRY7JY.js.map +0 -1
- package/dist/organization-KJJXZLVK.js +0 -946
- package/dist/organization-KJJXZLVK.js.map +0 -1
- package/dist/performance-7YU4HOGH.js +0 -24
- package/dist/promoted-tweet-writes-TNELWPVG.js +0 -180
- package/dist/promoted-tweet-writes-TNELWPVG.js.map +0 -1
- package/dist/promoted-tweets-76WKUFJQ.js +0 -119
- package/dist/publish-BKLHCKHB.js +0 -341
- package/dist/publish-BKLHCKHB.js.map +0 -1
- package/dist/reddit-YK3YUZEI.js +0 -26
- package/dist/refresh-WIII7KXB.js +0 -94
- package/dist/refresh-WIII7KXB.js.map +0 -1
- package/dist/release-ZHXYQI7G.js +0 -60
- package/dist/release-ZHXYQI7G.js.map +0 -1
- package/dist/remove-NOX4BXWK.js +0 -50
- package/dist/remove-NOX4BXWK.js.map +0 -1
- package/dist/remove-VLWRCOEZ.js +0 -48
- package/dist/remove-VLWRCOEZ.js.map +0 -1
- package/dist/reopen-NLWKK5HB.js +0 -63
- package/dist/reopen-NLWKK5HB.js.map +0 -1
- package/dist/rerun-DZWQNMZQ.js +0 -90
- package/dist/rerun-DZWQNMZQ.js.map +0 -1
- package/dist/research-Q3P76RHN.js +0 -62
- package/dist/research-UDZBCDNX.js +0 -262
- package/dist/research-UDZBCDNX.js.map +0 -1
- package/dist/reset-5UHFX7QY.js +0 -54
- package/dist/reset-5UHFX7QY.js.map +0 -1
- package/dist/reset-MTRJQUP7.js +0 -54
- package/dist/reset-MTRJQUP7.js.map +0 -1
- package/dist/resolve-DA72VT7Q.js +0 -121
- package/dist/resolve-DA72VT7Q.js.map +0 -1
- package/dist/retry-LQUBX5TK.js +0 -62
- package/dist/retry-LQUBX5TK.js.map +0 -1
- package/dist/retry-U6F4CS6O.js +0 -60
- package/dist/retry-U6F4CS6O.js.map +0 -1
- package/dist/rules-VS5PZ7VO.js +0 -96
- package/dist/rules-VS5PZ7VO.js.map +0 -1
- package/dist/rules-add-LMVZYDXE.js +0 -462
- package/dist/rules-add-LMVZYDXE.js.map +0 -1
- package/dist/run-6PRA2YSD.js +0 -65
- package/dist/run-R6COFNOR.js +0 -66
- package/dist/run-R6COFNOR.js.map +0 -1
- package/dist/scaffold-ad-3OVJ7VZQ.js +0 -1511
- package/dist/scaffold-ad-3OVJ7VZQ.js.map +0 -1
- package/dist/scaffold-static-ad-DDRA3Q5I.js +0 -1005
- package/dist/scaffold-static-ad-DDRA3Q5I.js.map +0 -1
- package/dist/scaffold-video-3JZYFYFU.js +0 -883
- package/dist/scaffold-video-3JZYFYFU.js.map +0 -1
- package/dist/schedule-BRSYHMKR.js +0 -66
- package/dist/schedule-BRSYHMKR.js.map +0 -1
- package/dist/schedule-ED2YDUPY.js +0 -61
- package/dist/schedule-ED2YDUPY.js.map +0 -1
- package/dist/scheduled-agents-5P67MVGX.js +0 -50
- package/dist/schema-4XVKERSA.js +0 -132
- package/dist/schema-4XVKERSA.js.map +0 -1
- package/dist/schema-RRAQW3OS.js +0 -69
- package/dist/search-Y2UMIQ57.js +0 -174
- package/dist/search-Y2UMIQ57.js.map +0 -1
- package/dist/select-OZ4E6VLF.js +0 -101
- package/dist/select-OZ4E6VLF.js.map +0 -1
- package/dist/set-prompt-O4YAE4CE.js +0 -193
- package/dist/set-prompt-O4YAE4CE.js.map +0 -1
- package/dist/setup-links-2GJYCV2A.js +0 -141
- package/dist/setup-links-2GJYCV2A.js.map +0 -1
- package/dist/site-47B6V2UX.js +0 -177
- package/dist/site-47B6V2UX.js.map +0 -1
- package/dist/sources-DXPZAPQ7.js +0 -454
- package/dist/sources-DXPZAPQ7.js.map +0 -1
- package/dist/sources-NDXYTASG.js +0 -30
- package/dist/stale-VLVBO2L6.js +0 -71
- package/dist/stale-VLVBO2L6.js.map +0 -1
- package/dist/stats-37OFAMPW.js +0 -34
- package/dist/status-4ODD46XY.js +0 -62
- package/dist/status-4ODD46XY.js.map +0 -1
- package/dist/stock-6R5E7MJX.js +0 -179
- package/dist/studio-LEIGL3Q7.js +0 -49
- package/dist/sync-EKGEWE53.js +0 -54
- package/dist/sync-EKGEWE53.js.map +0 -1
- package/dist/sync-TKNVBUDM.js +0 -54
- package/dist/sync-TKNVBUDM.js.map +0 -1
- package/dist/sync-definition-M5R3H3TP.js +0 -64
- package/dist/tag-manager-3Q55PBEW.js +0 -43
- package/dist/tags-4N5UUUN6.js +0 -26
- package/dist/tags-5NHIAD5A.js +0 -20
- package/dist/tags-5NHIAD5A.js.map +0 -1
- package/dist/tags-UUKWSWCN.js +0 -20
- package/dist/tags-UUKWSWCN.js.map +0 -1
- package/dist/tags-VK7B5DJF.js +0 -20
- package/dist/tags-VK7B5DJF.js.map +0 -1
- package/dist/tags-XAHIB3WA.js +0 -224
- package/dist/tags-XAHIB3WA.js.map +0 -1
- package/dist/targeting-criteria-AVARWV2G.js +0 -113
- package/dist/targets-6RYLQRID.js +0 -103
- package/dist/targets-6RYLQRID.js.map +0 -1
- package/dist/testimonials-6TF6BOFN.js +0 -32
- package/dist/top-companies-45EHRCJD.js +0 -108
- package/dist/top-companies-45EHRCJD.js.map +0 -1
- package/dist/translate-VHLBACCE.js +0 -604
- package/dist/translate-VHLBACCE.js.map +0 -1
- package/dist/triggers-ERQONJNO.js +0 -142
- package/dist/triggers-ERQONJNO.js.map +0 -1
- package/dist/unlink-TPDO6JNF.js +0 -67
- package/dist/unlink-TPDO6JNF.js.map +0 -1
- package/dist/unstage-YKKQQ7LW.js +0 -85
- package/dist/unstage-YKKQQ7LW.js.map +0 -1
- package/dist/update-43WU6X7R.js +0 -63
- package/dist/update-43WU6X7R.js.map +0 -1
- package/dist/update-CAHLAXWO.js +0 -98
- package/dist/update-CAHLAXWO.js.map +0 -1
- package/dist/update-NGH6YADN.js +0 -152
- package/dist/update-NGH6YADN.js.map +0 -1
- package/dist/update-SPJIHHLE.js +0 -188
- package/dist/update-SPJIHHLE.js.map +0 -1
- package/dist/upload-ACESIZIZ.js +0 -126
- package/dist/upload-ACESIZIZ.js.map +0 -1
- package/dist/url-params-MIXEDBF7.js +0 -98
- package/dist/url-params-MIXEDBF7.js.map +0 -1
- package/dist/validate-XJJA7ULE.js +0 -117
- package/dist/validate-XJJA7ULE.js.map +0 -1
- package/dist/videos-LBXPG7WC.js +0 -39
- package/dist/viewer-check-7VJ3GUZX.js +0 -80
- package/dist/web-EWQJC2SD.js +0 -140
- package/dist/web-EWQJC2SD.js.map +0 -1
- package/dist/winning-ads-SAOJAKEQ.js +0 -86
- package/dist/write-commands-QPDE4GWW.js +0 -1024
- package/dist/write-commands-QPDE4GWW.js.map +0 -1
- package/dist/x-LXOJPCRF.js +0 -47
- /package/dist/{actions-QL5UD2W4.js.map → actions-FMNJSOBA.js.map} +0 -0
- /package/dist/{ads-DHPJFU52.js.map → ads-OLXSDPD6.js.map} +0 -0
- /package/dist/{avatars-FKOO6VZ2.js.map → avatars-I4H3NMEJ.js.map} +0 -0
- /package/dist/{brand-NNWHBIAX.js.map → brand-3V7ECY7D.js.map} +0 -0
- /package/dist/{campaigns-HLBZRH5A.js.map → campaigns-MCB76NPQ.js.map} +0 -0
- /package/dist/{canvas-D64GLWUO.js.map → canvas-JCNKMGCG.js.map} +0 -0
- /package/dist/{chatgpt-YI6YNACI.js.map → chatgpt-XFZ42NXC.js.map} +0 -0
- /package/dist/{chunk-VB3XUR6A.js.map → chunk-2YTBPRRG.js.map} +0 -0
- /package/dist/{chunk-JUVVCA7B.js.map → chunk-3SNCMEJB.js.map} +0 -0
- /package/dist/{chunk-RGMKXNQP.js.map → chunk-7QGFO35A.js.map} +0 -0
- /package/dist/{chunk-ZXCSOVS5.js.map → chunk-AV7ALENU.js.map} +0 -0
- /package/dist/{chunk-IYTPWAN3.js.map → chunk-BRLFQ4VX.js.map} +0 -0
- /package/dist/{chunk-RZTKCCUL.js.map → chunk-DJE7UXYT.js.map} +0 -0
- /package/dist/{chunk-EW3JEKIV.js.map → chunk-EFWXYUSK.js.map} +0 -0
- /package/dist/{chunk-J3CWAERS.js.map → chunk-EONSZAZB.js.map} +0 -0
- /package/dist/{chunk-PHCIFBP3.js.map → chunk-FG3MV2XM.js.map} +0 -0
- /package/dist/{chunk-3AMLOCXY.js.map → chunk-FKG476GH.js.map} +0 -0
- /package/dist/{chunk-IFXGCI33.js.map → chunk-FUGQSIYG.js.map} +0 -0
- /package/dist/{chunk-Q3LXLWZY.js.map → chunk-HPLHAHG5.js.map} +0 -0
- /package/dist/{chunk-3N5A44NQ.js.map → chunk-I24YT2KG.js.map} +0 -0
- /package/dist/{chunk-P2MFWJR3.js.map → chunk-IFDZZOUC.js.map} +0 -0
- /package/dist/{chunk-Q5WBTVA7.js.map → chunk-JVVUI55M.js.map} +0 -0
- /package/dist/{chunk-6QGS3RQP.js.map → chunk-KKSHEPBY.js.map} +0 -0
- /package/dist/{chunk-OE3MIV4F.js.map → chunk-KQ7RCLGC.js.map} +0 -0
- /package/dist/{chunk-ZDAVSTEE.js.map → chunk-L7WMS5PW.js.map} +0 -0
- /package/dist/{chunk-FBFWMTOP.js.map → chunk-LBRO4MTL.js.map} +0 -0
- /package/dist/{chunk-PTUXBO5O.js.map → chunk-LNRPOULW.js.map} +0 -0
- /package/dist/{chunk-EMQUW6JB.js.map → chunk-LX6WC2XZ.js.map} +0 -0
- /package/dist/{chunk-I7J7YQXZ.js.map → chunk-MMGTJBM6.js.map} +0 -0
- /package/dist/{chunk-2KRK667G.js.map → chunk-OEZYSL3U.js.map} +0 -0
- /package/dist/{chunk-2TVXJPGR.js.map → chunk-OOVHBMQB.js.map} +0 -0
- /package/dist/{chunk-Z2GQREJY.js.map → chunk-PTH7VWKK.js.map} +0 -0
- /package/dist/{chunk-N3I6ZXR7.js.map → chunk-QZF4BVKL.js.map} +0 -0
- /package/dist/{chunk-3WAYZQNV.js.map → chunk-RITUSBYO.js.map} +0 -0
- /package/dist/{chunk-JH2L5CQD.js.map → chunk-SSTL3A7Z.js.map} +0 -0
- /package/dist/{chunk-2B772ZEA.js.map → chunk-TD4SO6TR.js.map} +0 -0
- /package/dist/{chunk-IKLHXGMF.js.map → chunk-UZ4RTOFG.js.map} +0 -0
- /package/dist/{chunk-NBO2NSAW.js.map → chunk-VAX7PFQV.js.map} +0 -0
- /package/dist/{chunk-AFD32O4A.js.map → chunk-VDRSZK4P.js.map} +0 -0
- /package/dist/{chunk-NKIBXOHT.js.map → chunk-VNU2EYD4.js.map} +0 -0
- /package/dist/{chunk-TTKBNBQF.js.map → chunk-WT4WDIXA.js.map} +0 -0
- /package/dist/{chunk-5A257KJA.js.map → chunk-XEX23CIB.js.map} +0 -0
- /package/dist/{chunk-GXGYTFZA.js.map → chunk-XXDF25BW.js.map} +0 -0
- /package/dist/{chunk-NEU5QD2C.js.map → chunk-YJ3LSFMX.js.map} +0 -0
- /package/dist/{chunk-MK6XJUCQ.js.map → chunk-YVK5RT3B.js.map} +0 -0
- /package/dist/{chunk-AW2GKIGS.js.map → chunk-YWWRLZUR.js.map} +0 -0
- /package/dist/{chunk-XCKINS7K.js.map → chunk-Z4S5BCVZ.js.map} +0 -0
- /package/dist/{chunk-IBY44U2M.js.map → chunk-ZYGK7GAK.js.map} +0 -0
- /package/dist/{connect-5PGL7ZOM.js.map → connect-COS6G45S.js.map} +0 -0
- /package/dist/{creatives-OO76DAFS.js.map → creatives-SEQHJD2M.js.map} +0 -0
- /package/dist/{customers-2EFYSCU2.js.map → customers-LMSX33FO.js.map} +0 -0
- /package/dist/{experiment-IDDWRCJ7.js.map → experiment-7RJ5X2LL.js.map} +0 -0
- /package/dist/{find-VHN34MWL.js.map → find-2EPXK5RF.js.map} +0 -0
- /package/dist/{fit-SS6HSZPU.js.map → fit-W7UNFZT5.js.map} +0 -0
- /package/dist/{fonts-YPNN7ZJP.js.map → fonts-N42UYWTX.js.map} +0 -0
- /package/dist/{ga4-ZPAEF2G2.js.map → ga4-6EIQC2TG.js.map} +0 -0
- /package/dist/{google-C3X7O2UO.js.map → google-O5OI6QFU.js.map} +0 -0
- /package/dist/{gsc-SDDHGTZK.js.map → gsc-BM3T2GDL.js.map} +0 -0
- /package/dist/{icon-MYPDC6FM.js.map → icon-B7DG53S5.js.map} +0 -0
- /package/dist/{ideas-3PBH7VEX.js.map → ideas-DYN2DMFN.js.map} +0 -0
- /package/dist/{images-J35C3WG4.js.map → images-EQCUXEHF.js.map} +0 -0
- /package/dist/{ingest-OKUYP632.js.map → ingest-B46AY3QU.js.map} +0 -0
- /package/dist/{inspiration-QAL7NS7G.js.map → inspiration-TCCKM4R7.js.map} +0 -0
- /package/dist/{landing-CBVIOGJ5.js.map → landing-WVPA7NBR.js.map} +0 -0
- /package/dist/{line-items-ZOFKOGAA.js.map → line-items-OEWYOPFP.js.map} +0 -0
- /package/dist/{list-RC2NX6AX.js.map → list-WRBWQASJ.js.map} +0 -0
- /package/dist/{logo-WE2UELX6.js.map → logo-QTSBKP2J.js.map} +0 -0
- /package/dist/{performance-7YU4HOGH.js.map → performance-HTU5FR2K.js.map} +0 -0
- /package/dist/{promoted-tweets-76WKUFJQ.js.map → promoted-tweets-TTWN5OMW.js.map} +0 -0
- /package/dist/{reddit-YK3YUZEI.js.map → reddit-6C3PT5CT.js.map} +0 -0
- /package/dist/{research-Q3P76RHN.js.map → research-YCMMQVK6.js.map} +0 -0
- /package/dist/{run-6PRA2YSD.js.map → run-SR7DJ7M5.js.map} +0 -0
- /package/dist/{scheduled-agents-5P67MVGX.js.map → scheduled-agents-N63EZNY6.js.map} +0 -0
- /package/dist/{schema-RRAQW3OS.js.map → schema-C6SGBNA6.js.map} +0 -0
- /package/dist/{sources-NDXYTASG.js.map → sources-HN3GCEDX.js.map} +0 -0
- /package/dist/{stats-37OFAMPW.js.map → stats-CVF6AC7R.js.map} +0 -0
- /package/dist/{stock-6R5E7MJX.js.map → stock-4LPQ6SM7.js.map} +0 -0
- /package/dist/{studio-LEIGL3Q7.js.map → studio-NZ6WQ7OE.js.map} +0 -0
- /package/dist/{sync-definition-M5R3H3TP.js.map → sync-definition-CKEUYKWN.js.map} +0 -0
- /package/dist/{tag-manager-3Q55PBEW.js.map → tag-manager-FLXXLNKP.js.map} +0 -0
- /package/dist/{tags-4N5UUUN6.js.map → tags-EUOOSAKN.js.map} +0 -0
- /package/dist/{targeting-criteria-AVARWV2G.js.map → targeting-criteria-HE7K52WN.js.map} +0 -0
- /package/dist/{testimonials-6TF6BOFN.js.map → testimonials-3Q5XM7JD.js.map} +0 -0
- /package/dist/{videos-LBXPG7WC.js.map → videos-WAPUPJVT.js.map} +0 -0
- /package/dist/{viewer-check-7VJ3GUZX.js.map → viewer-check-GHQA3UY2.js.map} +0 -0
- /package/dist/{winning-ads-SAOJAKEQ.js.map → winning-ads-XCVUAIOU.js.map} +0 -0
- /package/dist/{x-LXOJPCRF.js.map → x-SI4KYDEY.js.map} +0 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import {
|
|
2
|
+
bareAccountId,
|
|
3
|
+
failWriteValidation,
|
|
4
|
+
parseDateFlag,
|
|
5
|
+
requireTarget,
|
|
6
|
+
stageOp
|
|
7
|
+
} from "./chunk-QE2E4EYJ.js";
|
|
8
|
+
import {
|
|
9
|
+
handleLinkedinError
|
|
10
|
+
} from "./chunk-2YTBPRRG.js";
|
|
11
|
+
import "./chunk-WHWSLDNR.js";
|
|
12
|
+
import "./chunk-4NZ47VXO.js";
|
|
13
|
+
import "./chunk-D5FY4FAK.js";
|
|
14
|
+
import "./chunk-6UNOK7WV.js";
|
|
15
|
+
import {
|
|
16
|
+
writeJsonEnvelope
|
|
17
|
+
} from "./chunk-2VIZ4UUZ.js";
|
|
18
|
+
import "./chunk-UFKO626N.js";
|
|
19
|
+
import "./chunk-XRIM7NYV.js";
|
|
20
|
+
import "./chunk-A6WKCV3V.js";
|
|
21
|
+
import "./chunk-U7YR5CZL.js";
|
|
22
|
+
import "./chunk-VI5YQQ63.js";
|
|
23
|
+
import "./chunk-JX7BX2NB.js";
|
|
24
|
+
import "./chunk-O37VU7FG.js";
|
|
25
|
+
import "./chunk-CAZGM2NX.js";
|
|
26
|
+
import "./chunk-NZS3KEQ2.js";
|
|
27
|
+
import "./chunk-GIWHHCD6.js";
|
|
28
|
+
import "./chunk-XQIOCIDO.js";
|
|
29
|
+
import "./chunk-WTJSMYY2.js";
|
|
30
|
+
import {
|
|
31
|
+
apiGet
|
|
32
|
+
} from "./chunk-6YLNY6CK.js";
|
|
33
|
+
import "./chunk-D5NEIESR.js";
|
|
34
|
+
import "./chunk-57KKVDDR.js";
|
|
35
|
+
import "./chunk-QANGHND7.js";
|
|
36
|
+
import "./chunk-YQSBHWOI.js";
|
|
37
|
+
|
|
38
|
+
// src/commands/ads/linkedin/experiments.ts
|
|
39
|
+
import { defineCommand } from "citty";
|
|
40
|
+
var STAGED_NOTE = "Staged until publish \u2014 review with `baker ads linkedin draft`.";
|
|
41
|
+
var accountArgs = {
|
|
42
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
43
|
+
"account-urn": { type: "string", description: "Alias for --account-id" }
|
|
44
|
+
};
|
|
45
|
+
var STOP_AT = {
|
|
46
|
+
"end-date": "AUTO_STOP_AT_END_DATE",
|
|
47
|
+
winner: "AUTO_STOP_AT_WINNER",
|
|
48
|
+
never: "AUTO_STOP_DISABLED"
|
|
49
|
+
};
|
|
50
|
+
function stopAtArg(value) {
|
|
51
|
+
if (value === void 0) {
|
|
52
|
+
return void 0;
|
|
53
|
+
}
|
|
54
|
+
const mapped = STOP_AT[String(value)];
|
|
55
|
+
if (!mapped) {
|
|
56
|
+
failWriteValidation(`--stop-at must be one of ${Object.keys(STOP_AT).join("|")}`);
|
|
57
|
+
}
|
|
58
|
+
return mapped;
|
|
59
|
+
}
|
|
60
|
+
function numberArg(value, flag) {
|
|
61
|
+
if (value === void 0) {
|
|
62
|
+
return void 0;
|
|
63
|
+
}
|
|
64
|
+
const parsed = Number(value);
|
|
65
|
+
if (!Number.isInteger(parsed)) {
|
|
66
|
+
failWriteValidation(`${flag} must be a whole number`);
|
|
67
|
+
}
|
|
68
|
+
return parsed;
|
|
69
|
+
}
|
|
70
|
+
var experimentsListCommand = defineCommand({
|
|
71
|
+
meta: {
|
|
72
|
+
name: "list",
|
|
73
|
+
description: "List the ad account's A/B tests, newest first: name, state (what was asked), running (what LinkedIn is doing: PENDING|RUNNING|ON_HOLD|STOPPED|ENDED), metric, dates and the two versions (ad sets + traffic split). Runs by default."
|
|
74
|
+
},
|
|
75
|
+
args: { ...accountArgs },
|
|
76
|
+
run: async ({ args }) => {
|
|
77
|
+
try {
|
|
78
|
+
const data = await apiGet("/api/ads/linkedin/experiments", {
|
|
79
|
+
"account-id": bareAccountId(args)
|
|
80
|
+
});
|
|
81
|
+
writeJsonEnvelope({ ok: true, data });
|
|
82
|
+
} catch (err) {
|
|
83
|
+
handleLinkedinError(err);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
var experimentsGetCommand = defineCommand({
|
|
88
|
+
meta: {
|
|
89
|
+
name: "get",
|
|
90
|
+
description: "One A/B test with LinkedIn's setup checks (an ERROR keeps it from running \u2014 e.g. NO_ACTIVE_CREATIVES; a WARNING may skew it) and its latest result: the winning version, p-value, and each version's confidence interval for the metric. `result: null` until LinkedIn computes the first one (daily)."
|
|
91
|
+
},
|
|
92
|
+
args: {
|
|
93
|
+
id: { type: "positional", description: "A/B test id from `experiments`", required: true },
|
|
94
|
+
...accountArgs
|
|
95
|
+
},
|
|
96
|
+
run: async ({ args }) => {
|
|
97
|
+
try {
|
|
98
|
+
const data = await apiGet("/api/ads/linkedin/experiments", {
|
|
99
|
+
"account-id": bareAccountId(args),
|
|
100
|
+
id: requireTarget(args, "A/B test")
|
|
101
|
+
});
|
|
102
|
+
writeJsonEnvelope({ ok: true, data });
|
|
103
|
+
} catch (err) {
|
|
104
|
+
handleLinkedinError(err);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
var experimentsCreateCommand = defineCommand({
|
|
109
|
+
meta: {
|
|
110
|
+
name: "create",
|
|
111
|
+
description: `Stage an A/B test between two ad sets of the SAME campaign: LinkedIn splits the audience so each member sees only one version, and calls a winner on the metric. ${STAGED_NOTE}
|
|
112
|
+
Rules LinkedIn enforces: exactly 2 ad sets, same campaign, that campaign must NOT share its budget across ad sets, at most 90 days, confidence 51\u201399 (90+ recommended), each ad set needs an active ad. Best practice: two new ad sets identical but for the one thing tested, equal budgets, 3+ weeks.
|
|
113
|
+
Examples:
|
|
114
|
+
baker ads linkedin experiments create --name "Image vs video" --version-a li_temp_x1 --version-b li_temp_x2 --metric CPC --start 2026-11-01 --end 2026-11-28
|
|
115
|
+
baker ads linkedin experiments create --name "Headline test" --version-a 896802423 --name-a "Pain" --version-b 896812053 --name-b "Gain" --metric CPM --start 2026-11-01 --end 2026-12-01 --stop-at winner --confidence 95`
|
|
116
|
+
},
|
|
117
|
+
args: {
|
|
118
|
+
...accountArgs,
|
|
119
|
+
name: { type: "string", description: "Test name (\u2264100)", required: true },
|
|
120
|
+
description: { type: "string", description: "What is being tested" },
|
|
121
|
+
"version-a": { type: "string", description: "Ad set id/URN or li_temp_* ref for version A", required: true },
|
|
122
|
+
"version-b": { type: "string", description: "Ad set id/URN or li_temp_* ref for version B", required: true },
|
|
123
|
+
"name-a": { type: "string", description: "Version A label (default A)" },
|
|
124
|
+
"name-b": { type: "string", description: "Version B label (default B)" },
|
|
125
|
+
"weight-a": { type: "string", description: "Version A share of the audience, 1\u201399 (default 50; B gets the rest)" },
|
|
126
|
+
metric: { type: "string", description: "CPC|CPM|CPV (video ad sets)|CPMS (message ads)", required: true },
|
|
127
|
+
confidence: { type: "string", description: "51\u201399 (default 90)" },
|
|
128
|
+
start: { type: "string", description: "Start date (ISO or epoch ms)", required: true },
|
|
129
|
+
end: { type: "string", description: "End date (\u226490 days after start)", required: true },
|
|
130
|
+
"stop-at": {
|
|
131
|
+
type: "string",
|
|
132
|
+
description: "end-date (default, pauses both) | winner | never (ad sets keep running)"
|
|
133
|
+
},
|
|
134
|
+
draft: { type: "boolean", description: "Create it set up but not running" }
|
|
135
|
+
},
|
|
136
|
+
run: async ({ args }) => {
|
|
137
|
+
const weightA = numberArg(args["weight-a"], "--weight-a") ?? 50;
|
|
138
|
+
await stageOp({
|
|
139
|
+
kind: "experiment.create",
|
|
140
|
+
accountId: bareAccountId(args),
|
|
141
|
+
payload: {
|
|
142
|
+
name: args.name,
|
|
143
|
+
description: args.description,
|
|
144
|
+
keyMetric: args.metric ? String(args.metric).toUpperCase() : void 0,
|
|
145
|
+
confidence: numberArg(args.confidence, "--confidence"),
|
|
146
|
+
start: parseDateFlag(args.start, "--start"),
|
|
147
|
+
end: parseDateFlag(args.end, "--end"),
|
|
148
|
+
autoStop: stopAtArg(args["stop-at"]),
|
|
149
|
+
state: args.draft ? "DRAFT" : void 0,
|
|
150
|
+
cells: [
|
|
151
|
+
{ name: args["name-a"] ?? "A", campaign: args["version-a"], trafficWeight: weightA },
|
|
152
|
+
{ name: args["name-b"] ?? "B", campaign: args["version-b"], trafficWeight: 100 - weightA }
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
var experimentsUpdateCommand = defineCommand({
|
|
159
|
+
meta: {
|
|
160
|
+
name: "update",
|
|
161
|
+
description: `Stage changes to an A/B test. Once it has started only the name, description, end date (still \u226490 days from start), confidence and when it stops can change \u2014 the versions are fixed. ${STAGED_NOTE}
|
|
162
|
+
Example: baker ads linkedin experiments update 5633011 --end 2026-12-15 --stop-at winner`
|
|
163
|
+
},
|
|
164
|
+
args: {
|
|
165
|
+
id: { type: "positional", description: "A/B test id", required: true },
|
|
166
|
+
...accountArgs,
|
|
167
|
+
name: { type: "string", description: "New name" },
|
|
168
|
+
description: { type: "string", description: "New description" },
|
|
169
|
+
end: { type: "string", description: "New end date" },
|
|
170
|
+
confidence: { type: "string", description: "51\u201399" },
|
|
171
|
+
"stop-at": { type: "string", description: "end-date|winner|never" }
|
|
172
|
+
},
|
|
173
|
+
run: async ({ args }) => {
|
|
174
|
+
await stageOp({
|
|
175
|
+
kind: "experiment.update",
|
|
176
|
+
accountId: bareAccountId(args),
|
|
177
|
+
target: requireTarget(args, "A/B test"),
|
|
178
|
+
payload: {
|
|
179
|
+
name: args.name,
|
|
180
|
+
description: args.description,
|
|
181
|
+
end: parseDateFlag(args.end, "--end"),
|
|
182
|
+
confidence: numberArg(args.confidence, "--confidence"),
|
|
183
|
+
autoStop: stopAtArg(args["stop-at"])
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
function experimentStateCommand(name, state, what) {
|
|
189
|
+
return defineCommand({
|
|
190
|
+
meta: {
|
|
191
|
+
name,
|
|
192
|
+
description: `Stage ${what}. ${STAGED_NOTE}
|
|
193
|
+
Example: baker ads linkedin experiments ${name} 5633011`
|
|
194
|
+
},
|
|
195
|
+
args: {
|
|
196
|
+
id: { type: "positional", description: "A/B test id", required: true },
|
|
197
|
+
...accountArgs
|
|
198
|
+
},
|
|
199
|
+
run: async ({ args }) => {
|
|
200
|
+
await stageOp({
|
|
201
|
+
kind: "experiment.update",
|
|
202
|
+
accountId: bareAccountId(args),
|
|
203
|
+
target: requireTarget(args, "A/B test"),
|
|
204
|
+
payload: { state }
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
var experimentsCommand = defineCommand({
|
|
210
|
+
meta: {
|
|
211
|
+
name: "experiments",
|
|
212
|
+
description: `LinkedIn A/B tests: two ad sets of one campaign shown to separate halves of the audience, with a winner called on CPC/CPM/CPV/CPMS.
|
|
213
|
+
Examples:
|
|
214
|
+
baker ads linkedin experiments # list
|
|
215
|
+
baker ads linkedin experiments get 5633011 # setup checks + result
|
|
216
|
+
baker ads linkedin experiments create --name "Image vs video" --version-a <ad set> --version-b <ad set> --metric CPC --start 2026-11-01 --end 2026-11-28
|
|
217
|
+
baker ads linkedin experiments pause|start|end 5633011`
|
|
218
|
+
},
|
|
219
|
+
subCommands: {
|
|
220
|
+
list: experimentsListCommand,
|
|
221
|
+
get: experimentsGetCommand,
|
|
222
|
+
create: experimentsCreateCommand,
|
|
223
|
+
update: experimentsUpdateCommand,
|
|
224
|
+
start: experimentStateCommand("start", "ACTIVE", "starting (or resuming) an A/B test"),
|
|
225
|
+
pause: experimentStateCommand("pause", "PAUSED", "pausing an A/B test \u2014 both ad sets pause, the end date stays"),
|
|
226
|
+
end: experimentStateCommand("end", "CANCELED", "ending an A/B test for good")
|
|
227
|
+
},
|
|
228
|
+
args: { ...accountArgs },
|
|
229
|
+
default: "list"
|
|
230
|
+
});
|
|
231
|
+
export {
|
|
232
|
+
experimentsCommand
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=experiments-NOSJJMYI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/linkedin/experiments.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { apiGet } from \"../../../client.ts\";\nimport { writeJsonEnvelope } from \"../output.ts\";\nimport { handleLinkedinError } from \"./shared.ts\";\nimport { bareAccountId, failWriteValidation, parseDateFlag, requireTarget, stageOp } from \"./write-shared.ts\";\n\nconst STAGED_NOTE = \"Staged until publish — review with `baker ads linkedin draft`.\";\n\nconst accountArgs = {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or urn:li:sponsoredAccount:N\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id\" },\n} as const;\n\nconst STOP_AT: Record<string, string> = {\n \"end-date\": \"AUTO_STOP_AT_END_DATE\",\n winner: \"AUTO_STOP_AT_WINNER\",\n never: \"AUTO_STOP_DISABLED\",\n};\n\nfunction stopAtArg(value: unknown): string | undefined {\n if (value === undefined) {\n return undefined;\n }\n const mapped = STOP_AT[String(value)];\n if (!mapped) {\n failWriteValidation(`--stop-at must be one of ${Object.keys(STOP_AT).join(\"|\")}`);\n }\n return mapped;\n}\n\nfunction numberArg(value: unknown, flag: string): number | undefined {\n if (value === undefined) {\n return undefined;\n }\n const parsed = Number(value);\n if (!Number.isInteger(parsed)) {\n failWriteValidation(`${flag} must be a whole number`);\n }\n return parsed;\n}\n\nconst experimentsListCommand = defineCommand({\n meta: {\n name: \"list\",\n description:\n \"List the ad account's A/B tests, newest first: name, state (what was asked), running (what LinkedIn is doing: PENDING|RUNNING|ON_HOLD|STOPPED|ENDED), metric, dates and the two versions (ad sets + traffic split). Runs by default.\",\n },\n args: { ...accountArgs },\n run: async ({ args }) => {\n try {\n const data = await apiGet<unknown[]>(\"/api/ads/linkedin/experiments\", {\n \"account-id\": bareAccountId(args as Record<string, unknown>),\n });\n writeJsonEnvelope({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nconst experimentsGetCommand = defineCommand({\n meta: {\n name: \"get\",\n description:\n \"One A/B test with LinkedIn's setup checks (an ERROR keeps it from running — e.g. NO_ACTIVE_CREATIVES; a WARNING may skew it) and its latest result: the winning version, p-value, and each version's confidence interval for the metric. `result: null` until LinkedIn computes the first one (daily).\",\n },\n args: {\n id: { type: \"positional\", description: \"A/B test id from `experiments`\", required: true },\n ...accountArgs,\n },\n run: async ({ args }) => {\n try {\n const data = await apiGet<unknown>(\"/api/ads/linkedin/experiments\", {\n \"account-id\": bareAccountId(args as Record<string, unknown>),\n id: requireTarget(args as Record<string, unknown>, \"A/B test\"),\n });\n writeJsonEnvelope({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nconst experimentsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage an A/B test between two ad sets of the SAME campaign: LinkedIn splits the audience so each member sees only one version, and calls a winner on the metric. ${STAGED_NOTE}\nRules LinkedIn enforces: exactly 2 ad sets, same campaign, that campaign must NOT share its budget across ad sets, at most 90 days, confidence 51–99 (90+ recommended), each ad set needs an active ad. Best practice: two new ad sets identical but for the one thing tested, equal budgets, 3+ weeks.\nExamples:\n baker ads linkedin experiments create --name \"Image vs video\" --version-a li_temp_x1 --version-b li_temp_x2 --metric CPC --start 2026-11-01 --end 2026-11-28\n baker ads linkedin experiments create --name \"Headline test\" --version-a 896802423 --name-a \"Pain\" --version-b 896812053 --name-b \"Gain\" --metric CPM --start 2026-11-01 --end 2026-12-01 --stop-at winner --confidence 95`,\n },\n args: {\n ...accountArgs,\n name: { type: \"string\", description: \"Test name (≤100)\", required: true },\n description: { type: \"string\", description: \"What is being tested\" },\n \"version-a\": { type: \"string\", description: \"Ad set id/URN or li_temp_* ref for version A\", required: true },\n \"version-b\": { type: \"string\", description: \"Ad set id/URN or li_temp_* ref for version B\", required: true },\n \"name-a\": { type: \"string\", description: \"Version A label (default A)\" },\n \"name-b\": { type: \"string\", description: \"Version B label (default B)\" },\n \"weight-a\": { type: \"string\", description: \"Version A share of the audience, 1–99 (default 50; B gets the rest)\" },\n metric: { type: \"string\", description: \"CPC|CPM|CPV (video ad sets)|CPMS (message ads)\", required: true },\n confidence: { type: \"string\", description: \"51–99 (default 90)\" },\n start: { type: \"string\", description: \"Start date (ISO or epoch ms)\", required: true },\n end: { type: \"string\", description: \"End date (≤90 days after start)\", required: true },\n \"stop-at\": {\n type: \"string\",\n description: \"end-date (default, pauses both) | winner | never (ad sets keep running)\",\n },\n draft: { type: \"boolean\", description: \"Create it set up but not running\" },\n },\n run: async ({ args }) => {\n const weightA = numberArg(args[\"weight-a\"], \"--weight-a\") ?? 50;\n await stageOp({\n kind: \"experiment.create\",\n accountId: bareAccountId(args as Record<string, unknown>),\n payload: {\n name: args.name,\n description: args.description,\n keyMetric: args.metric ? String(args.metric).toUpperCase() : undefined,\n confidence: numberArg(args.confidence, \"--confidence\"),\n start: parseDateFlag(args.start, \"--start\"),\n end: parseDateFlag(args.end, \"--end\"),\n autoStop: stopAtArg(args[\"stop-at\"]),\n state: args.draft ? \"DRAFT\" : undefined,\n cells: [\n { name: args[\"name-a\"] ?? \"A\", campaign: args[\"version-a\"], trafficWeight: weightA },\n { name: args[\"name-b\"] ?? \"B\", campaign: args[\"version-b\"], trafficWeight: 100 - weightA },\n ],\n },\n });\n },\n});\n\nconst experimentsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage changes to an A/B test. Once it has started only the name, description, end date (still ≤90 days from start), confidence and when it stops can change — the versions are fixed. ${STAGED_NOTE}\nExample: baker ads linkedin experiments update 5633011 --end 2026-12-15 --stop-at winner`,\n },\n args: {\n id: { type: \"positional\", description: \"A/B test id\", required: true },\n ...accountArgs,\n name: { type: \"string\", description: \"New name\" },\n description: { type: \"string\", description: \"New description\" },\n end: { type: \"string\", description: \"New end date\" },\n confidence: { type: \"string\", description: \"51–99\" },\n \"stop-at\": { type: \"string\", description: \"end-date|winner|never\" },\n },\n run: async ({ args }) => {\n await stageOp({\n kind: \"experiment.update\",\n accountId: bareAccountId(args as Record<string, unknown>),\n target: requireTarget(args as Record<string, unknown>, \"A/B test\"),\n payload: {\n name: args.name,\n description: args.description,\n end: parseDateFlag(args.end, \"--end\"),\n confidence: numberArg(args.confidence, \"--confidence\"),\n autoStop: stopAtArg(args[\"stop-at\"]),\n },\n });\n },\n});\n\nfunction experimentStateCommand(\n name: \"start\" | \"pause\" | \"end\",\n state: \"ACTIVE\" | \"PAUSED\" | \"CANCELED\",\n what: string,\n) {\n return defineCommand({\n meta: {\n name,\n description: `Stage ${what}. ${STAGED_NOTE}\nExample: baker ads linkedin experiments ${name} 5633011`,\n },\n args: {\n id: { type: \"positional\", description: \"A/B test id\", required: true },\n ...accountArgs,\n },\n run: async ({ args }) => {\n await stageOp({\n kind: \"experiment.update\",\n accountId: bareAccountId(args as Record<string, unknown>),\n target: requireTarget(args as Record<string, unknown>, \"A/B test\"),\n payload: { state },\n });\n },\n });\n}\n\nexport const experimentsCommand = defineCommand({\n meta: {\n name: \"experiments\",\n description: `LinkedIn A/B tests: two ad sets of one campaign shown to separate halves of the audience, with a winner called on CPC/CPM/CPV/CPMS.\nExamples:\n baker ads linkedin experiments # list\n baker ads linkedin experiments get 5633011 # setup checks + result\n baker ads linkedin experiments create --name \"Image vs video\" --version-a <ad set> --version-b <ad set> --metric CPC --start 2026-11-01 --end 2026-11-28\n baker ads linkedin experiments pause|start|end 5633011`,\n },\n subCommands: {\n list: experimentsListCommand,\n get: experimentsGetCommand,\n create: experimentsCreateCommand,\n update: experimentsUpdateCommand,\n start: experimentStateCommand(\"start\", \"ACTIVE\", \"starting (or resuming) an A/B test\"),\n pause: experimentStateCommand(\"pause\", \"PAUSED\", \"pausing an A/B test — both ad sets pause, the end date stays\"),\n end: experimentStateCommand(\"end\", \"CANCELED\", \"ending an A/B test for good\"),\n },\n args: { ...accountArgs },\n default: \"list\",\n});\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import {
|
|
2
|
+
csvOrJson,
|
|
3
|
+
handleLinkedinError
|
|
4
|
+
} from "./chunk-2YTBPRRG.js";
|
|
5
|
+
import {
|
|
6
|
+
writeAdsJson,
|
|
7
|
+
writeAdsOutput
|
|
8
|
+
} from "./chunk-2VIZ4UUZ.js";
|
|
9
|
+
import {
|
|
10
|
+
NO_CACHE_ARG
|
|
11
|
+
} from "./chunk-U6RONIJC.js";
|
|
12
|
+
import "./chunk-O37VU7FG.js";
|
|
13
|
+
import "./chunk-CAZGM2NX.js";
|
|
14
|
+
import "./chunk-NZS3KEQ2.js";
|
|
15
|
+
import "./chunk-GIWHHCD6.js";
|
|
16
|
+
import "./chunk-XQIOCIDO.js";
|
|
17
|
+
import "./chunk-WTJSMYY2.js";
|
|
18
|
+
import {
|
|
19
|
+
apiGet
|
|
20
|
+
} from "./chunk-6YLNY6CK.js";
|
|
21
|
+
import "./chunk-D5NEIESR.js";
|
|
22
|
+
import "./chunk-57KKVDDR.js";
|
|
23
|
+
import "./chunk-QANGHND7.js";
|
|
24
|
+
import "./chunk-YQSBHWOI.js";
|
|
25
|
+
|
|
26
|
+
// src/commands/ads/linkedin/facets.ts
|
|
27
|
+
import { defineCommand } from "citty";
|
|
28
|
+
var listCmd = defineCommand({
|
|
29
|
+
meta: {
|
|
30
|
+
name: "list",
|
|
31
|
+
description: `List every targeting facet LinkedIn supports.
|
|
32
|
+
|
|
33
|
+
Cached 7 days. Use this to discover what dimensions you can target on (industries,
|
|
34
|
+
seniorities, titles, employers, growthRate, companyCategory, skills, etc.).`
|
|
35
|
+
},
|
|
36
|
+
args: {
|
|
37
|
+
"no-cache": NO_CACHE_ARG,
|
|
38
|
+
output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
|
|
39
|
+
},
|
|
40
|
+
run: async ({ args }) => {
|
|
41
|
+
try {
|
|
42
|
+
const params = {};
|
|
43
|
+
if (args["no-cache"]) params["skip-cache"] = "true";
|
|
44
|
+
const data = await apiGet("/api/ads/linkedin/facets", params);
|
|
45
|
+
const fmt = csvOrJson(args);
|
|
46
|
+
if (fmt !== "json") {
|
|
47
|
+
writeAdsOutput(data, fmt);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
writeAdsJson({ ok: true, data });
|
|
51
|
+
} catch (err) {
|
|
52
|
+
handleLinkedinError(err);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
var valuesCmd = defineCommand({
|
|
57
|
+
meta: {
|
|
58
|
+
name: "values",
|
|
59
|
+
description: `Look up entity values for a single facet \u2014 full list or typeahead search.
|
|
60
|
+
|
|
61
|
+
Examples:
|
|
62
|
+
baker ads linkedin facets values --facet seniorities \u2014 all seniority URNs
|
|
63
|
+
baker ads linkedin facets values --facet titles --query "marketing director" \u2014 typeahead
|
|
64
|
+
baker ads linkedin facets values --facet industries --output csv
|
|
65
|
+
|
|
66
|
+
The --facet flag accepts the bare name (industries, seniorities, titles, etc.)
|
|
67
|
+
or the full URN (urn:li:adTargetingFacet:industries).`
|
|
68
|
+
},
|
|
69
|
+
args: {
|
|
70
|
+
facet: { type: "string", description: "Facet name (e.g. industries) or URN", required: true },
|
|
71
|
+
query: { type: "string", description: "Typeahead query (auto-switches finder to typeahead)" },
|
|
72
|
+
finder: { type: "string", description: "adTargetingFacet | typeahead | similarEntities (default: auto)" },
|
|
73
|
+
locale: { type: "string", description: "Locale (default: en_US)" },
|
|
74
|
+
"no-cache": NO_CACHE_ARG,
|
|
75
|
+
output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
|
|
76
|
+
},
|
|
77
|
+
run: async ({ args }) => {
|
|
78
|
+
try {
|
|
79
|
+
const params = { facet: String(args.facet) };
|
|
80
|
+
const finder = args.finder ?? (args.query ? "typeahead" : "adTargetingFacet");
|
|
81
|
+
params.finder = finder;
|
|
82
|
+
if (args.query) params.query = String(args.query);
|
|
83
|
+
if (args.locale) params.locale = String(args.locale);
|
|
84
|
+
if (args["no-cache"]) params["skip-cache"] = "true";
|
|
85
|
+
const data = await apiGet("/api/ads/linkedin/facets/entities", params);
|
|
86
|
+
const fmt = csvOrJson(args);
|
|
87
|
+
if (fmt !== "json") {
|
|
88
|
+
writeAdsOutput(data, fmt);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
writeAdsJson({ ok: true, data });
|
|
92
|
+
} catch (err) {
|
|
93
|
+
handleLinkedinError(err);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
var facetsCommand = defineCommand({
|
|
98
|
+
meta: {
|
|
99
|
+
name: "facets",
|
|
100
|
+
description: `LinkedIn targeting facets and entity lookup.
|
|
101
|
+
|
|
102
|
+
Subcommands:
|
|
103
|
+
list \u2014 every facet (industries, seniorities, titles, employers, \u2026)
|
|
104
|
+
values --facet titles \u2014 entity URNs for one facet
|
|
105
|
+
values --facet titles --query "marketing director" \u2014 typeahead`
|
|
106
|
+
},
|
|
107
|
+
subCommands: {
|
|
108
|
+
list: listCmd,
|
|
109
|
+
values: valuesCmd
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
export {
|
|
113
|
+
facetsCommand
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=facets-E6SHYUAI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/linkedin/facets.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiGet } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput } from \"../output.ts\";\nimport { csvOrJson, handleLinkedinError } from \"./shared.ts\";\n\ninterface LinkedinFacet {\n facet: string;\n facetUrn: string;\n name: string;\n entityTypes?: string[];\n availableEntityFinders?: string[];\n}\n\ninterface LinkedinFacetEntity {\n urn: string;\n facet?: string;\n name?: string;\n parents?: string[];\n}\n\nconst listCmd = defineCommand({\n meta: {\n name: \"list\",\n description: `List every targeting facet LinkedIn supports.\n\nCached 7 days. Use this to discover what dimensions you can target on (industries,\nseniorities, titles, employers, growthRate, companyCategory, skills, etc.).`,\n },\n args: {\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n try {\n const params: Record<string, string> = {};\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n const data = await apiGet<LinkedinFacet[]>(\"/api/ads/linkedin/facets\", params);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(data as unknown as Array<Record<string, unknown>>, fmt);\n return;\n }\n writeAdsJson({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nconst valuesCmd = defineCommand({\n meta: {\n name: \"values\",\n description: `Look up entity values for a single facet — full list or typeahead search.\n\nExamples:\n baker ads linkedin facets values --facet seniorities — all seniority URNs\n baker ads linkedin facets values --facet titles --query \"marketing director\" — typeahead\n baker ads linkedin facets values --facet industries --output csv\n\nThe --facet flag accepts the bare name (industries, seniorities, titles, etc.)\nor the full URN (urn:li:adTargetingFacet:industries).`,\n },\n args: {\n facet: { type: \"string\", description: \"Facet name (e.g. industries) or URN\", required: true },\n query: { type: \"string\", description: \"Typeahead query (auto-switches finder to typeahead)\" },\n finder: { type: \"string\", description: \"adTargetingFacet | typeahead | similarEntities (default: auto)\" },\n locale: { type: \"string\", description: \"Locale (default: en_US)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n try {\n const params: Record<string, string> = { facet: String(args.facet) };\n const finder = (args.finder as string | undefined) ?? (args.query ? \"typeahead\" : \"adTargetingFacet\");\n params.finder = finder;\n if (args.query) params.query = String(args.query);\n if (args.locale) params.locale = String(args.locale);\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n\n const data = await apiGet<LinkedinFacetEntity[]>(\"/api/ads/linkedin/facets/entities\", params);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(data as unknown as Array<Record<string, unknown>>, fmt);\n return;\n }\n writeAdsJson({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nexport const facetsCommand = defineCommand({\n meta: {\n name: \"facets\",\n description: `LinkedIn targeting facets and entity lookup.\n\nSubcommands:\n list — every facet (industries, seniorities, titles, employers, …)\n values --facet titles — entity URNs for one facet\n values --facet titles --query \"marketing director\" — typeahead`,\n },\n subCommands: {\n list: listCmd,\n values: valuesCmd,\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAqB9B,IAAM,UAAU,cAAc;AAAA,EAC5B,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA,EAIf;AAAA,EACA,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC9E;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,SAAiC,CAAC;AACxC,UAAI,KAAK,UAAU,EAAG,QAAO,YAAY,IAAI;AAC7C,YAAM,OAAO,MAAM,OAAwB,4BAA4B,MAAM;AAC7E,YAAM,MAAM,UAAU,IAAI;AAC1B,UAAI,QAAQ,QAAQ;AAClB,uBAAe,MAAmD,GAAG;AACrE;AAAA,MACF;AACA,mBAAa,EAAE,IAAI,MAAM,KAAK,CAAC;AAAA,IACjC,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,IAAM,YAAY,cAAc;AAAA,EAC9B,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASf;AAAA,EACA,MAAM;AAAA,IACJ,OAAO,EAAE,MAAM,UAAU,aAAa,uCAAuC,UAAU,KAAK;AAAA,IAC5F,OAAO,EAAE,MAAM,UAAU,aAAa,sDAAsD;AAAA,IAC5F,QAAQ,EAAE,MAAM,UAAU,aAAa,iEAAiE;AAAA,IACxG,QAAQ,EAAE,MAAM,UAAU,aAAa,0BAA0B;AAAA,IACjE,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC9E;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,SAAiC,EAAE,OAAO,OAAO,KAAK,KAAK,EAAE;AACnE,YAAM,SAAU,KAAK,WAAkC,KAAK,QAAQ,cAAc;AAClF,aAAO,SAAS;AAChB,UAAI,KAAK,MAAO,QAAO,QAAQ,OAAO,KAAK,KAAK;AAChD,UAAI,KAAK,OAAQ,QAAO,SAAS,OAAO,KAAK,MAAM;AACnD,UAAI,KAAK,UAAU,EAAG,QAAO,YAAY,IAAI;AAE7C,YAAM,OAAO,MAAM,OAA8B,qCAAqC,MAAM;AAC5F,YAAM,MAAM,UAAU,IAAI;AAC1B,UAAI,QAAQ,QAAQ;AAClB,uBAAe,MAAmD,GAAG;AACrE;AAAA,MACF;AACA,mBAAa,EAAE,IAAI,MAAM,KAAK,CAAC;AAAA,IACjC,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAEM,IAAM,gBAAgB,cAAc;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACF,CAAC;","names":[]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import {
|
|
2
|
+
readCreativeIdea,
|
|
3
|
+
withAnchor
|
|
4
|
+
} from "./chunk-QZF4BVKL.js";
|
|
5
|
+
import "./chunk-I24YT2KG.js";
|
|
6
|
+
import "./chunk-XXDF25BW.js";
|
|
7
|
+
import "./chunk-MOFMOYUA.js";
|
|
8
|
+
import "./chunk-MMGTJBM6.js";
|
|
9
|
+
import "./chunk-FG3MV2XM.js";
|
|
10
|
+
import "./chunk-QG4MW2V4.js";
|
|
11
|
+
import "./chunk-VNU2EYD4.js";
|
|
12
|
+
import "./chunk-Y46FE75E.js";
|
|
13
|
+
import "./chunk-JVVUI55M.js";
|
|
14
|
+
import "./chunk-YJ3LSFMX.js";
|
|
15
|
+
import "./chunk-3S274625.js";
|
|
16
|
+
import "./chunk-6UNOK7WV.js";
|
|
17
|
+
import "./chunk-UFKO626N.js";
|
|
18
|
+
import "./chunk-XRIM7NYV.js";
|
|
19
|
+
import "./chunk-OL7JS4NG.js";
|
|
20
|
+
import "./chunk-7KHTJQGV.js";
|
|
21
|
+
import "./chunk-DGCUPJZD.js";
|
|
22
|
+
import "./chunk-QMOYQJIN.js";
|
|
23
|
+
import "./chunk-FKYPAGKK.js";
|
|
24
|
+
import "./chunk-S4VLLGTW.js";
|
|
25
|
+
import "./chunk-MCJ5I5LR.js";
|
|
26
|
+
import "./chunk-2WZI36D3.js";
|
|
27
|
+
import "./chunk-65Y3RCWP.js";
|
|
28
|
+
import "./chunk-A6WKCV3V.js";
|
|
29
|
+
import "./chunk-U7YR5CZL.js";
|
|
30
|
+
import "./chunk-VI5YQQ63.js";
|
|
31
|
+
import "./chunk-JX7BX2NB.js";
|
|
32
|
+
import "./chunk-O37VU7FG.js";
|
|
33
|
+
import "./chunk-CAZGM2NX.js";
|
|
34
|
+
import "./chunk-NZS3KEQ2.js";
|
|
35
|
+
import "./chunk-GIWHHCD6.js";
|
|
36
|
+
import "./chunk-XQIOCIDO.js";
|
|
37
|
+
import "./chunk-WTJSMYY2.js";
|
|
38
|
+
import {
|
|
39
|
+
ApiError,
|
|
40
|
+
apiPost
|
|
41
|
+
} from "./chunk-6YLNY6CK.js";
|
|
42
|
+
import "./chunk-D5NEIESR.js";
|
|
43
|
+
import "./chunk-57KKVDDR.js";
|
|
44
|
+
import {
|
|
45
|
+
registerSchema,
|
|
46
|
+
writeJson
|
|
47
|
+
} from "./chunk-QANGHND7.js";
|
|
48
|
+
import "./chunk-YQSBHWOI.js";
|
|
49
|
+
|
|
50
|
+
// src/commands/creatives/feedback.ts
|
|
51
|
+
import { defineCommand } from "citty";
|
|
52
|
+
var DESCRIPTION = "Read what this company's reviewers said about creative versions: recent approved / rejected verdicts with reasons and notes, the top rejection reasons, what approved versions share (format, platform, option), and hints[] saying what to do differently. Start here before making or changing a creative: baker creatives feedback; then baker creatives feedback --slug <slug> for one creative's history and its idea (data.anchor: the message, the reference and what we take from it, the language; what an edit keeps). When the user reacts to a version in the chat, record it with baker creatives feedback record.";
|
|
53
|
+
var SLUG_DESCRIPTION = "One creative's feedback (src/creatives/<slug>/), with its idea as data.anchor. Left out, the whole company's.";
|
|
54
|
+
var FULL_DESCRIPTION = "Every verdict as stored (up to 200), notes whole. Default is a summary plus the 8 latest.";
|
|
55
|
+
registerSchema({
|
|
56
|
+
command: "creatives.feedback",
|
|
57
|
+
description: DESCRIPTION,
|
|
58
|
+
args: {
|
|
59
|
+
slug: { type: "string", description: SLUG_DESCRIPTION, required: false },
|
|
60
|
+
full: { type: "boolean", description: FULL_DESCRIPTION, required: false }
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
var readArgs = {
|
|
64
|
+
slug: { type: "string", description: SLUG_DESCRIPTION, required: false },
|
|
65
|
+
full: { type: "boolean", description: FULL_DESCRIPTION, required: false, default: false }
|
|
66
|
+
};
|
|
67
|
+
var feedbackReadCommand = defineCommand({
|
|
68
|
+
meta: { name: "read", description: `${DESCRIPTION} Runs by default when no subcommand is given.` },
|
|
69
|
+
args: readArgs,
|
|
70
|
+
run: async ({ args }) => {
|
|
71
|
+
try {
|
|
72
|
+
const body = {
|
|
73
|
+
...typeof args.slug === "string" && args.slug.length > 0 ? { slug: args.slug } : {},
|
|
74
|
+
...args.full === true ? { full: true } : {}
|
|
75
|
+
};
|
|
76
|
+
const [response, idea] = await Promise.all([
|
|
77
|
+
apiPost("/api/creatives/feedback", body),
|
|
78
|
+
body.slug ? readCreativeIdea(body.slug) : Promise.resolve(null)
|
|
79
|
+
]);
|
|
80
|
+
writeJson(idea ? withAnchor(response, idea, { full: body.full === true }) : response);
|
|
81
|
+
} catch (err) {
|
|
82
|
+
if (err instanceof ApiError) {
|
|
83
|
+
writeJson({ ok: false, error: { code: err.code, message: err.message } });
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
var feedbackCommand = defineCommand({
|
|
92
|
+
meta: { name: "feedback", description: DESCRIPTION },
|
|
93
|
+
subCommands: {
|
|
94
|
+
read: feedbackReadCommand,
|
|
95
|
+
record: () => import("./feedback-record-GXPYXNT6.js").then((m) => m.feedbackRecordCommand)
|
|
96
|
+
},
|
|
97
|
+
// `args` stays although the parent has no `run`: citty finds the subcommand
|
|
98
|
+
// name with THIS command's arg defs, so without them `--slug spring-offer`
|
|
99
|
+
// would read `spring-offer` as a subcommand. `default` (not `run`) serves the
|
|
100
|
+
// bare invocation, since citty runs a parent's `run` after its subcommand too.
|
|
101
|
+
args: readArgs,
|
|
102
|
+
default: "read"
|
|
103
|
+
});
|
|
104
|
+
export {
|
|
105
|
+
feedbackCommand
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=feedback-HXCQBV7S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/creatives/feedback.ts"],"sourcesContent":["import type { CreativesFeedbackRequest, CreativesFeedbackResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { readCreativeIdea, withAnchor } from \"./idea-hint.ts\";\n\nconst DESCRIPTION =\n \"Read what this company's reviewers said about creative versions: recent approved / rejected verdicts with reasons and notes, the top rejection reasons, what approved versions share (format, platform, option), and hints[] saying what to do differently. Start here before making or changing a creative: baker creatives feedback; then baker creatives feedback --slug <slug> for one creative's history and its idea (data.anchor: the message, the reference and what we take from it, the language; what an edit keeps). When the user reacts to a version in the chat, record it with baker creatives feedback record.\";\n\nconst SLUG_DESCRIPTION =\n \"One creative's feedback (src/creatives/<slug>/), with its idea as data.anchor. Left out, the whole company's.\";\nconst FULL_DESCRIPTION = \"Every verdict as stored (up to 200), notes whole. Default is a summary plus the 8 latest.\";\n\nregisterSchema({\n command: \"creatives.feedback\",\n description: DESCRIPTION,\n args: {\n slug: { type: \"string\", description: SLUG_DESCRIPTION, required: false },\n full: { type: \"boolean\", description: FULL_DESCRIPTION, required: false },\n },\n});\n\nconst readArgs = {\n slug: { type: \"string\", description: SLUG_DESCRIPTION, required: false },\n full: { type: \"boolean\", description: FULL_DESCRIPTION, required: false, default: false },\n} as const;\n\nconst feedbackReadCommand = defineCommand({\n meta: { name: \"read\", description: `${DESCRIPTION} Runs by default when no subcommand is given.` },\n args: readArgs,\n run: async ({ args }) => {\n try {\n const body: CreativesFeedbackRequest = {\n ...(typeof args.slug === \"string\" && args.slug.length > 0 ? { slug: args.slug } : {}),\n ...(args.full === true ? { full: true } : {}),\n };\n const [response, idea] = await Promise.all([\n apiPost<CreativesFeedbackResponse>(\"/api/creatives/feedback\", body),\n body.slug ? readCreativeIdea(body.slug) : Promise.resolve(null),\n ]);\n writeJson(idea ? withAnchor(response, idea, { full: body.full === true }) : response);\n } catch (err) {\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n }\n },\n});\n\nexport const feedbackCommand = defineCommand({\n meta: { name: \"feedback\", description: DESCRIPTION },\n subCommands: {\n read: feedbackReadCommand,\n record: () => import(\"./feedback-record.ts\").then((m) => m.feedbackRecordCommand),\n },\n // `args` stays although the parent has no `run`: citty finds the subcommand\n // name with THIS command's arg defs, so without them `--slug spring-offer`\n // would read `spring-offer` as a subcommand. `default` (not `run`) serves the\n // bare invocation, since citty runs a parent's `run` after its subcommand too.\n args: readArgs,\n default: \"read\",\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAM9B,IAAM,cACJ;AAEF,IAAM,mBACJ;AACF,IAAM,mBAAmB;AAEzB,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,UAAU,aAAa,kBAAkB,UAAU,MAAM;AAAA,IACvE,MAAM,EAAE,MAAM,WAAW,aAAa,kBAAkB,UAAU,MAAM;AAAA,EAC1E;AACF,CAAC;AAED,IAAM,WAAW;AAAA,EACf,MAAM,EAAE,MAAM,UAAU,aAAa,kBAAkB,UAAU,MAAM;AAAA,EACvE,MAAM,EAAE,MAAM,WAAW,aAAa,kBAAkB,UAAU,OAAO,SAAS,MAAM;AAC1F;AAEA,IAAM,sBAAsB,cAAc;AAAA,EACxC,MAAM,EAAE,MAAM,QAAQ,aAAa,GAAG,WAAW,gDAAgD;AAAA,EACjG,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,OAAiC;AAAA,QACrC,GAAI,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,IAAI,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC;AAAA,QACnF,GAAI,KAAK,SAAS,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAAA,MAC7C;AACA,YAAM,CAAC,UAAU,IAAI,IAAI,MAAM,QAAQ,IAAI;AAAA,QACzC,QAAmC,2BAA2B,IAAI;AAAA,QAClE,KAAK,OAAO,iBAAiB,KAAK,IAAI,IAAI,QAAQ,QAAQ,IAAI;AAAA,MAChE,CAAC;AACD,gBAAU,OAAO,WAAW,UAAU,MAAM,EAAE,MAAM,KAAK,SAAS,KAAK,CAAC,IAAI,QAAQ;AAAA,IACtF,SAAS,KAAK;AACZ,UAAI,eAAe,UAAU;AAC3B,kBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,IAAI,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;AACxE,gBAAQ,KAAK,CAAC;AAAA,MAChB;AACA,gBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,SAAS,mBAAmB,EAAE,CAAC;AACvF,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;AAEM,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM,EAAE,MAAM,YAAY,aAAa,YAAY;AAAA,EACnD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AAAA,EACN,SAAS;AACX,CAAC;","names":[]}
|