@koda-sl/baker-cli 0.554.0 → 0.556.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 +10 -4
- package/dist/account-H5CL6KUY.js +82 -0
- package/dist/account-assets-QMKT5AT7.js +290 -0
- package/dist/account-level-BELF6JHB.js +611 -0
- package/dist/account-reads-T6GTSAXE.js +219 -0
- package/dist/account-users-ZGJCVGX4.js +64 -0
- package/dist/accounts-EXQNPSYH.js +701 -0
- package/dist/accounts-GNVLFZ3X.js +80 -0
- package/dist/actions-Q2BMP27K.js +55 -0
- package/dist/activecampaign-SJO2YK6M.js +938 -0
- package/dist/add-Q3FGYX5Q.js +305 -0
- package/dist/add-YGQBSEVK.js +107 -0
- package/dist/ads-CWKKIYD6.js +48 -0
- package/dist/ads-H5AEYIY3.js +120 -0
- package/dist/adsets-BUIT7HF2.js +182 -0
- package/dist/advertisers-ZAHXMIAT.js +123 -0
- package/dist/analytics-QW5ZXDJR.js +447 -0
- package/dist/analytics-XPU5SANS.js +2437 -0
- package/dist/animate-Q43SOWB4.js +480 -0
- package/dist/asset-writes-JVFE457M.js +50 -0
- package/dist/assign-HJ2NXW4W.js +80 -0
- package/dist/audience-size-IM3N6W7C.js +76 -0
- package/dist/audience-writes-DWSCHYQF.js +327 -0
- package/dist/audiences-PYBJU2GV.js +106 -0
- package/dist/audit-N3LAQMD4.js +154 -0
- package/dist/autocomplete-FBTPT5MA.js +114 -0
- package/dist/avatars-3OMFIKOJ.js +38 -0
- package/dist/bid-pricing-UUAC4GTQ.js +103 -0
- package/dist/brand-IZYD5SBJ.js +22 -0
- package/dist/brief-TNOKTNFJ.js +543 -0
- package/dist/campaign-groups-3IUOLEK2.js +99 -0
- package/dist/campaign-writes-Y7QNFOE7.js +168 -0
- package/dist/campaigns-2Z6WXIVA.js +130 -0
- package/dist/campaigns-B2AUW4TV.js +111 -0
- package/dist/campaigns-IDEA3LOK.js +113 -0
- package/dist/canvas-PVNQ7YWV.js +46 -0
- package/dist/capabilities-FVMMLKPY.js +147 -0
- package/dist/catalog-URTZYAPU.js +66 -0
- package/dist/catalogs-OEUNVE4N.js +782 -0
- package/dist/chatgpt-6KBW7F5S.js +47 -0
- package/dist/chats-EENMDXWZ.js +449 -0
- package/dist/check-7735BPTR.js +107 -0
- package/dist/chunk-2QGGI7MF.js +831 -0
- package/dist/chunk-3OMFSYQ3.js +344 -0
- package/dist/chunk-4N3Y5QWW.js +29 -0
- package/dist/chunk-4N3Y5QWW.js.map +1 -0
- package/dist/chunk-65CQYRMK.js +98 -0
- package/dist/chunk-6MZFOMLU.js +225 -0
- package/dist/chunk-757ZFIL4.js +910 -0
- package/dist/chunk-75HAGIH6.js +61 -0
- package/dist/chunk-7BVRFQN4.js +430 -0
- package/dist/chunk-7TDJCDKT.js +163 -0
- package/dist/chunk-7WDH6OKW.js +1902 -0
- package/dist/chunk-AL4MRNYI.js +709 -0
- package/dist/chunk-AMM4JMSN.js +91 -0
- package/dist/chunk-AU3IMZZC.js +19 -0
- package/dist/chunk-BMNOMOWP.js +156 -0
- package/dist/chunk-BS2MC62Y.js +203 -0
- package/dist/chunk-C6PWVZQE.js +103 -0
- package/dist/chunk-CDTAKCJR.js +178 -0
- package/dist/chunk-CH44XVPE.js +142 -0
- package/dist/chunk-CJWLDKFO.js +494 -0
- package/dist/chunk-DWPOAU4Z.js +5471 -0
- package/dist/chunk-EENYLJUN.js +225 -0
- package/dist/chunk-EGVWSAWY.js +83 -0
- package/dist/chunk-EGVWSAWY.js.map +1 -0
- package/dist/chunk-EJBLF2LI.js +167 -0
- package/dist/chunk-EJMPKO6V.js +287 -0
- package/dist/chunk-EKXLJRO3.js +197 -0
- package/dist/chunk-EL3TDR5S.js +1744 -0
- package/dist/chunk-GRDZWZKQ.js +249 -0
- package/dist/chunk-GVUBRSD3.js +51 -0
- package/dist/chunk-GYREQDTJ.js +392 -0
- package/dist/chunk-HBRXFQQV.js +3510 -0
- package/dist/chunk-HLHR3EK2.js +23 -0
- package/dist/chunk-IMFIRELA.js +547 -0
- package/dist/chunk-IOKD77L2.js +89 -0
- package/dist/chunk-KDAINT54.js +131 -0
- package/dist/chunk-KKKZRQFY.js +297 -0
- package/dist/chunk-KLO36KTV.js +224 -0
- package/dist/chunk-LC6PVPJX.js +76 -0
- package/dist/chunk-LETR3RQE.js +275 -0
- package/dist/chunk-MAVT2CJ4.js +66 -0
- package/dist/chunk-MJDN7CR7.js +930 -0
- package/dist/chunk-MKLAZD23.js +7857 -0
- package/dist/chunk-MKLAZD23.js.map +1 -0
- package/dist/chunk-N3PASNUA.js +136 -0
- package/dist/chunk-NL77JRKE.js +170 -0
- package/dist/chunk-OTFHIGEO.js +207 -0
- package/dist/chunk-PCUWBZM3.js +169 -0
- package/dist/chunk-PNWXTOQ4.js +455 -0
- package/dist/chunk-PQFTKHDA.js +479 -0
- package/dist/chunk-Q5DFEVLE.js +148 -0
- package/dist/chunk-QAJFMVGU.js +91 -0
- package/dist/chunk-QXCGWAC6.js +399 -0
- package/dist/chunk-RKDMYL4A.js +438 -0
- package/dist/chunk-SCBSAIVV.js +392 -0
- package/dist/chunk-SPBUE7R4.js +685 -0
- package/dist/chunk-TRAMBRVO.js +191 -0
- package/dist/chunk-TWFZIHKK.js +219 -0
- package/dist/chunk-UCJAPB5Y.js +334 -0
- package/dist/chunk-VFDWUIGR.js +57 -0
- package/dist/chunk-VN3WDB4O.js +45 -0
- package/dist/chunk-VN3WDB4O.js.map +1 -0
- package/dist/chunk-WC3YSN7L.js +604 -0
- package/dist/chunk-X3GWGFZP.js +5368 -0
- package/dist/chunk-X6U3B6YK.js +343 -0
- package/dist/chunk-X6U3B6YK.js.map +1 -0
- package/dist/chunk-XZAVBONI.js +64 -0
- package/dist/chunk-Y5PNLB24.js +84 -0
- package/dist/chunk-ZC6FICZ7.js +2209 -0
- package/dist/chunk-ZEGWP4FP.js +8954 -0
- package/dist/claim-PGDIRXIC.js +200 -0
- package/dist/cli.js +36 -36
- package/dist/companies-WTPKGEB3.js +198 -0
- package/dist/company-6H2H73YP.js +308 -0
- package/dist/complete-2QBC3POO.js +84 -0
- package/dist/connect-35YPFAUL.js +45 -0
- package/dist/conversation-YZFNEWDV.js +96 -0
- package/dist/conversion-upload-command-J2FIO74Y.js +439 -0
- package/dist/conversions-UGRVDRWU.js +78 -0
- package/dist/conversions-ZFDBD3OU.js +140 -0
- package/dist/copy-writes-2B36QJUY.js +170 -0
- package/dist/create-3H67EUTO.js +62 -0
- package/dist/create-ALTOBDP4.js +239 -0
- package/dist/create-C3MWUYX2.js +210 -0
- package/dist/create-WHTT6IXY.js +135 -0
- package/dist/creatives-22BYP5VN.js +118 -0
- package/dist/creatives-IFOPXTZK.js +58 -0
- package/dist/creatives-WBBN6G7H.js +229 -0
- package/dist/creatives-WBBN6G7H.js.map +1 -0
- package/dist/credentials-J5DMQJWN.js +290 -0
- package/dist/critique-PQRVFC52.js +232 -0
- package/dist/critique-X6XVPIUG.js +1451 -0
- package/dist/crm-LWRGJYHW.js +227 -0
- package/dist/crm-RUNEJY2R.js +323 -0
- package/dist/crop-4V4P3SKI.js +113 -0
- package/dist/custom-conversions-V7QPZIB4.js +128 -0
- package/dist/customers-IDB6NLQ6.js +65 -0
- package/dist/delete-2QKVUKKB.js +67 -0
- package/dist/delete-B7BKF24X.js +57 -0
- package/dist/delete-HBRYUWAA.js +69 -0
- package/dist/demographics-JHB3NFLU.js +141 -0
- package/dist/dimensions-KI3OENZD.js +101 -0
- package/dist/discard-FEJ6YL22.js +69 -0
- package/dist/domain-JYWNXBKS.js +101 -0
- package/dist/download-H3ZDQTFG.js +337 -0
- package/dist/download-H3ZDQTFG.js.map +1 -0
- package/dist/download-LOBPOIU5.js +172 -0
- package/dist/draft-EB5ZFDVN.js +557 -0
- package/dist/draft-I2FLECEX.js +220 -0
- package/dist/draft-N56HPS36.js +374 -0
- package/dist/draft-ZLZRTPY6.js +332 -0
- package/dist/engine/index.js +5 -5
- package/dist/experiment-O6726OBP.js +1397 -0
- package/dist/experiments-WVTBHD6G.js +236 -0
- package/dist/extract-UELZV3NI.js +142 -0
- package/dist/extract-UELZV3NI.js.map +1 -0
- package/dist/facets-V2ITIUKD.js +117 -0
- package/dist/feedback-MXUZWVOL.js +115 -0
- package/dist/feedback-PXWPR3NZ.js +136 -0
- package/dist/feedback-record-76RUAHZH.js +269 -0
- package/dist/fetch-QVOOC3FA.js +204 -0
- package/dist/fit-REGMM46H.js +65 -0
- package/dist/flows-EZV3KCV6.js +250 -0
- package/dist/fonts-NUX66HEI.js +39 -0
- package/dist/forecast-W6HKYVX5.js +121 -0
- package/dist/forecast-XDRKCR65.js +169 -0
- package/dist/funnel-3YABA3G2.js +397 -0
- package/dist/ga4-XFJO7VK2.js +55 -0
- package/dist/generate-22HT24SA.js +263 -0
- package/dist/get-GQQLBE5C.js +82 -0
- package/dist/get-NL3YZFUJ.js +62 -0
- package/dist/google-BPB5JLJG.js +162 -0
- package/dist/google-BPB5JLJG.js.map +1 -0
- package/dist/google-UJ4YJGTJ.js +3285 -0
- package/dist/google-ads-RRKKSKDD.js +198 -0
- package/dist/gsc-ILEIJYWP.js +30 -0
- package/dist/history-2UANIBRN.js +102 -0
- package/dist/history-YZ727ZRG.js +153 -0
- package/dist/hubspot-KWLXJ6QD.js +782 -0
- package/dist/ideas-ZO533P5Y.js +45 -0
- package/dist/images-Z7YBWRVJ.js +92 -0
- package/dist/ingest-C2HJ5LUY.js +27 -0
- package/dist/ingest-H53JR4GK.js +123 -0
- package/dist/inspect-BM6GJHQV.js +192 -0
- package/dist/inspiration-WGUU7W5Z.js +53 -0
- package/dist/instant-experiences-U6U3FYIH.js +264 -0
- package/dist/keyword-metrics-R2QCEDYW.js +200 -0
- package/dist/keywords-for-site-NBV72C3W.js +131 -0
- package/dist/landing-5RRWTSWK.js +28 -0
- package/dist/leads-6PF7ZWCH.js +115 -0
- package/dist/leads-IG3IIHXG.js +541 -0
- package/dist/learn-V2LIBEEY.js +207 -0
- package/dist/line-item-writes-GMNWL4DI.js +211 -0
- package/dist/line-items-KPIKXLG4.js +107 -0
- package/dist/link-X7IYKR5V.js +67 -0
- package/dist/linkedin-DJ4VDOF4.js +1344 -0
- package/dist/linkedin-DJ4VDOF4.js.map +1 -0
- package/dist/linkedin-person-47XFTBIN.js +139 -0
- package/dist/list-PHNA7QIF.js +154 -0
- package/dist/list-QF3BANBM.js +306 -0
- package/dist/list-SB3SUTH6.js +67 -0
- package/dist/log-JFLSSUJ6.js +95 -0
- package/dist/make-HZ5KAYSB.js +1367 -0
- package/dist/map-NYJT2MGI.js +436 -0
- package/dist/mcp-ABQEICYR.js +729 -0
- package/dist/media-AT3VV3PU.js +18 -0
- package/dist/media-sources-DEEKEJUB.js +35 -0
- package/dist/members-BX37KHKO.js +47 -0
- package/dist/meta-XUHI3E3L.js +122 -0
- package/dist/meta-XUHI3E3L.js.map +1 -0
- package/dist/normalize-M3VMWF4W.js +806 -0
- package/dist/normalize-MA2FBBIV.js +144 -0
- package/dist/options-NMWWF2HN.js +125 -0
- package/dist/organization-GRAA6ZXU.js +949 -0
- package/dist/page-photos-ABK4CJME.js +118 -0
- package/dist/performance-MQLRSH44.js +5565 -0
- package/dist/performance-RUBIGEAQ.js +27 -0
- package/dist/posts-F7NFSUHV.js +36 -0
- package/dist/preview-IBNFQ5RQ.js +101 -0
- package/dist/preview-IBNFQ5RQ.js.map +1 -0
- package/dist/preview-OV2EZ6YF.js +245 -0
- package/dist/preview-OV2EZ6YF.js.map +1 -0
- package/dist/promoted-tweet-writes-3P6QFGLN.js +183 -0
- package/dist/promoted-tweets-TGFPH7UI.js +119 -0
- package/dist/publish-OUVO65Z5.js +344 -0
- package/dist/reddit-HWQCUSEM.js +29 -0
- package/dist/refresh-ENQDQGTK.js +97 -0
- package/dist/release-ZTVXLUQS.js +63 -0
- package/dist/remove-XAFRT7O7.js +53 -0
- package/dist/reopen-SWSZHXJZ.js +66 -0
- package/dist/rerun-X7XVOAL3.js +96 -0
- package/dist/research-JMU4C4JZ.js +75 -0
- package/dist/research-TDH4OBX6.js +265 -0
- package/dist/reset-34HTKUBQ.js +57 -0
- package/dist/reset-KMMGLM7W.js +57 -0
- package/dist/resolve-2CIIKADD.js +124 -0
- package/dist/retry-V7KZIZKR.js +63 -0
- package/dist/retry-YXM23NSB.js +65 -0
- package/dist/revenue-D4L6U2CW.js +91 -0
- package/dist/rule-writes-HUBHHYEO.js +530 -0
- package/dist/rules-47LFGCPW.js +217 -0
- package/dist/rules-F6RNUOXP.js +99 -0
- package/dist/rules-add-SAQRESVK.js +465 -0
- package/dist/run-3GCYZ2HX.js +71 -0
- package/dist/run-FRPO2WNQ.js +69 -0
- package/dist/scaffold-ad-E6DD6U46.js +1513 -0
- package/dist/scaffold-static-ad-6WNS2PXB.js +1011 -0
- package/dist/scaffold-video-QKXFQ5FC.js +885 -0
- package/dist/schedule-S4XAVVEI.js +64 -0
- package/dist/scheduled-agents-ZWAP6QLC.js +55 -0
- package/dist/schema-EJ2XPUN6.js +135 -0
- package/dist/scrape-O4X6VGV2.js +2209 -0
- package/dist/scrape-O4X6VGV2.js.map +1 -0
- package/dist/search-2BAY3KKX.js +177 -0
- package/dist/select-ABRNFFR2.js +110 -0
- package/dist/set-prompt-5LYHDT4E.js +199 -0
- package/dist/setup-links-QT63UZBR.js +144 -0
- package/dist/shopify-L4ZUI6OT.js +4009 -0
- package/dist/site-S6QVMP7W.js +180 -0
- package/dist/sources-6TWWOO7Q.js +30 -0
- package/dist/sources-ORG5KQSW.js +457 -0
- package/dist/stale-MLQPXNLZ.js +90 -0
- package/dist/status-4G2YUCZR.js +65 -0
- package/dist/stock-5SQ2PGEC.js +211 -0
- package/dist/stock-5SQ2PGEC.js.map +1 -0
- package/dist/studies-QLSKON6M.js +250 -0
- package/dist/studio-ZLBBYHNY.js +49 -0
- package/dist/study-writes-GBUUKX4O.js +471 -0
- package/dist/sync-7LJZPHM3.js +57 -0
- package/dist/sync-definition-MXVL2I2H.js +70 -0
- package/dist/tags-2ARVNEYS.js +23 -0
- package/dist/tags-F4IT7RQR.js +23 -0
- package/dist/tags-F7ZO52EM.js +23 -0
- package/dist/tags-NBGGBHXR.js +227 -0
- package/dist/tags-TCSGQYDR.js +26 -0
- package/dist/targeting-DAUTJDUB.js +762 -0
- package/dist/targeting-criteria-H42LRULY.js +113 -0
- package/dist/targets-WB4E5XL2.js +106 -0
- package/dist/testimonials-RIJSQDSB.js +32 -0
- package/dist/themes-BGBDYQQK.js +95 -0
- package/dist/top-companies-C2W5TJ7G.js +111 -0
- package/dist/transcript-S7VR2GJE.js +165 -0
- package/dist/translate-A4GHRHSP.js +603 -0
- package/dist/triggers-EOKMR74O.js +144 -0
- package/dist/unlink-PC3TMWUT.js +70 -0
- package/dist/unstage-SU2ATDSZ.js +88 -0
- package/dist/update-DKX3EEES.js +155 -0
- package/dist/update-JYZ45YJG.js +66 -0
- package/dist/update-TAZSUOAS.js +192 -0
- package/dist/update-WRJUH2NM.js +101 -0
- package/dist/upload-BLXTMK5Q.js +130 -0
- package/dist/url-params-YVOFU6MK.js +101 -0
- package/dist/validate-44PVFQH7.js +125 -0
- package/dist/videos-RWPQVXS5.js +41 -0
- package/dist/viewer-check-KTRRUVZN.js +83 -0
- package/dist/web-6KUM7Q7S.js +173 -0
- package/dist/winning-ads-IT3O4EAN.js +86 -0
- package/dist/write-commands-3U5ZMIHH.js +1524 -0
- package/dist/write-commands-F5XPPLOO.js +1169 -0
- package/dist/x-X7URL52T.js +47 -0
- package/package.json +1 -1
- package/dist/account-XIC5TTV3.js +0 -82
- package/dist/account-assets-V7KSSTVP.js +0 -290
- package/dist/account-level-2KLG6HTG.js +0 -611
- package/dist/account-reads-ZPZUCB3P.js +0 -219
- package/dist/account-users-XTUKRDWK.js +0 -64
- package/dist/accounts-25JL77F7.js +0 -701
- package/dist/accounts-AF72N4NV.js +0 -80
- package/dist/actions-IJO4JW7J.js +0 -55
- package/dist/activecampaign-PBTUMTO5.js +0 -938
- package/dist/add-KHQXXHC5.js +0 -107
- package/dist/add-YQPFRDVM.js +0 -305
- package/dist/ads-5YCCRXEU.js +0 -48
- package/dist/ads-EVQ37EV3.js +0 -120
- package/dist/adsets-4IW5TRAK.js +0 -182
- package/dist/advertisers-JNOWSZZC.js +0 -123
- package/dist/analytics-CZMCM7XC.js +0 -2437
- package/dist/analytics-K5FCQLI5.js +0 -447
- package/dist/animate-C6BRMRRD.js +0 -480
- package/dist/asset-writes-RF6XTWLY.js +0 -50
- package/dist/assign-WXZNXVJH.js +0 -80
- package/dist/audience-size-ZCWH4CFC.js +0 -76
- package/dist/audience-writes-5KT6FHUY.js +0 -327
- package/dist/audiences-ZDOK3OYC.js +0 -106
- package/dist/audit-RBRXPPKK.js +0 -154
- package/dist/autocomplete-P5OU7QVL.js +0 -114
- package/dist/avatars-UHBA2BQ3.js +0 -38
- package/dist/bid-pricing-LHNYSDG4.js +0 -103
- package/dist/brand-7WL3O74X.js +0 -22
- package/dist/brief-HWZU75WP.js +0 -543
- package/dist/campaign-groups-BYS3GNEP.js +0 -99
- package/dist/campaign-writes-N6OHAK6V.js +0 -168
- package/dist/campaigns-2E4AQBFB.js +0 -113
- package/dist/campaigns-3U5IRXSV.js +0 -130
- package/dist/campaigns-QLKGN4FB.js +0 -111
- package/dist/canvas-GGHJ26ZM.js +0 -46
- package/dist/capabilities-TKEEHR7K.js +0 -147
- package/dist/catalog-7KQN43HS.js +0 -66
- package/dist/catalogs-5CHPI4H6.js +0 -782
- package/dist/chatgpt-YBHXCXWZ.js +0 -47
- package/dist/chats-PBXYH2LT.js +0 -449
- package/dist/check-SVYI72DF.js +0 -107
- package/dist/chunk-2RL2T5JO.js +0 -142
- package/dist/chunk-3HLQZTQ3.js +0 -685
- package/dist/chunk-42JTSTQ3.js +0 -207
- package/dist/chunk-4AEAL63J.js +0 -203
- package/dist/chunk-4PM32OS3.js +0 -57
- package/dist/chunk-4ULGRGBG.js +0 -333
- package/dist/chunk-4ULGRGBG.js.map +0 -1
- package/dist/chunk-4XMPL3RU.js +0 -19
- package/dist/chunk-5AOTCCTT.js +0 -831
- package/dist/chunk-5NLUTJCQ.js +0 -5368
- package/dist/chunk-6FWVRXDW.js +0 -64
- package/dist/chunk-6MXM6DA6.js +0 -225
- package/dist/chunk-73MLPGI2.js +0 -66
- package/dist/chunk-7OVPQX4X.js +0 -163
- package/dist/chunk-B5UVOCYA.js +0 -344
- package/dist/chunk-BRNZMKO4.js +0 -604
- package/dist/chunk-CJFCQMUY.js +0 -438
- package/dist/chunk-D6VQPBVM.js +0 -5471
- package/dist/chunk-DK66PUXL.js +0 -275
- package/dist/chunk-DNH2ZPZP.js +0 -287
- package/dist/chunk-DWSSQBLO.js +0 -103
- package/dist/chunk-ESXUIV6V.js +0 -169
- package/dist/chunk-FSEFZZ2T.js +0 -930
- package/dist/chunk-I4BQTVMY.js +0 -225
- package/dist/chunk-IBBGABK2.js +0 -91
- package/dist/chunk-IC4MREQH.js +0 -219
- package/dist/chunk-IJ6NQKAT.js +0 -61
- package/dist/chunk-IZROFBH7.js +0 -167
- package/dist/chunk-J5UTL4HE.js +0 -3510
- package/dist/chunk-JBMZVC5D.js +0 -91
- package/dist/chunk-LFELUKCA.js +0 -249
- package/dist/chunk-LMOZWB4G.js +0 -98
- package/dist/chunk-LVLTWPRR.js +0 -392
- package/dist/chunk-N5AIO23H.js +0 -2209
- package/dist/chunk-NE3OMP7R.js +0 -23
- package/dist/chunk-NO52OH3Y.js +0 -156
- package/dist/chunk-NRIKX35V.js +0 -399
- package/dist/chunk-NZYWKZ3Q.js +0 -76
- package/dist/chunk-OIORUNKH.js +0 -1902
- package/dist/chunk-OKXLOLEV.js +0 -455
- package/dist/chunk-P4MXGSSJ.js +0 -178
- package/dist/chunk-PYAR343F.js +0 -479
- package/dist/chunk-QFVZIQRQ.js +0 -8954
- package/dist/chunk-QI5UKQX3.js +0 -297
- package/dist/chunk-RCNAKWK7.js +0 -7852
- package/dist/chunk-RCNAKWK7.js.map +0 -1
- package/dist/chunk-RHNNFCRY.js +0 -494
- package/dist/chunk-RJQT7QXX.js +0 -547
- package/dist/chunk-RMZLB4AH.js +0 -197
- package/dist/chunk-S4NMWYHW.js +0 -51
- package/dist/chunk-S6XZIBWV.js +0 -392
- package/dist/chunk-SFQFUQDW.js +0 -170
- package/dist/chunk-SP3MHBME.js +0 -89
- package/dist/chunk-TGT4XHLX.js +0 -131
- package/dist/chunk-VX6GTRT3.js +0 -910
- package/dist/chunk-WGJ2QEW4.js +0 -334
- package/dist/chunk-XB4NKZAQ.js +0 -136
- package/dist/chunk-XSBX3LJP.js +0 -430
- package/dist/chunk-XXBP73RV.js +0 -148
- package/dist/chunk-Y3SK6EMU.js +0 -84
- package/dist/chunk-Y4ZBNZBU.js +0 -191
- package/dist/chunk-YCAJCVW4.js +0 -224
- package/dist/chunk-ZANXEMON.js +0 -1744
- package/dist/chunk-ZMTWQDFC.js +0 -709
- package/dist/claim-Q76T3MYA.js +0 -200
- package/dist/companies-MLWRWQ73.js +0 -198
- package/dist/company-X5Z67PMK.js +0 -308
- package/dist/complete-3CFP6XVY.js +0 -84
- package/dist/connect-QXFAB4RJ.js +0 -45
- package/dist/conversation-C6K6IZTH.js +0 -96
- package/dist/conversion-upload-command-D7S5HF22.js +0 -439
- package/dist/conversions-4ILDIG3K.js +0 -140
- package/dist/conversions-CRL327RY.js +0 -78
- package/dist/copy-writes-FYXKHJDB.js +0 -170
- package/dist/create-LDQ3YHET.js +0 -62
- package/dist/create-TKOG7DNJ.js +0 -210
- package/dist/create-WFMJOZLO.js +0 -135
- package/dist/create-WQNT345R.js +0 -239
- package/dist/creatives-45SJAD3G.js +0 -118
- package/dist/creatives-E4CTMZJJ.js +0 -223
- package/dist/creatives-E4CTMZJJ.js.map +0 -1
- package/dist/creatives-Q4OXNCTT.js +0 -58
- package/dist/credentials-E2AIMWKX.js +0 -290
- package/dist/critique-EWV3O3TD.js +0 -1451
- package/dist/critique-JVT6X2T3.js +0 -232
- package/dist/crm-NQH5FTK6.js +0 -227
- package/dist/crm-YGQKK76D.js +0 -323
- package/dist/crop-KV24WHOR.js +0 -113
- package/dist/custom-conversions-EJNX4MCK.js +0 -128
- package/dist/customers-YFEPJF4G.js +0 -65
- package/dist/delete-2UJVTHRE.js +0 -67
- package/dist/delete-7QAJSOCO.js +0 -69
- package/dist/delete-O4RO2HMR.js +0 -57
- package/dist/demographics-YWBHAMZ5.js +0 -141
- package/dist/dimensions-YXOXHOXW.js +0 -101
- package/dist/discard-YX4XUXG3.js +0 -69
- package/dist/domain-5R6CYVFY.js +0 -101
- package/dist/download-D2O4RYJ3.js +0 -172
- package/dist/download-SYWQXF57.js +0 -299
- package/dist/download-SYWQXF57.js.map +0 -1
- package/dist/draft-3MPADYS4.js +0 -220
- package/dist/draft-L56EMJQT.js +0 -374
- package/dist/draft-NLSQDRVQ.js +0 -332
- package/dist/draft-SGNQOUYH.js +0 -557
- package/dist/experiment-3NDXGQK6.js +0 -1397
- package/dist/experiments-DYNNWQRB.js +0 -236
- package/dist/extract-DWDZI35Y.js +0 -121
- package/dist/extract-DWDZI35Y.js.map +0 -1
- package/dist/facets-Y2IEM37E.js +0 -117
- package/dist/feedback-HJRVTU6C.js +0 -115
- package/dist/feedback-IVSLM5PN.js +0 -136
- package/dist/feedback-record-P7CO3IGE.js +0 -269
- package/dist/fetch-V2U5VUQZ.js +0 -204
- package/dist/fit-JDG6E46O.js +0 -65
- package/dist/flows-DP574PEX.js +0 -250
- package/dist/fonts-RMROS3LX.js +0 -39
- package/dist/forecast-AAHHVTBK.js +0 -169
- package/dist/forecast-BRXNGMGD.js +0 -121
- package/dist/funnel-FQX3DOE7.js +0 -397
- package/dist/ga4-IJ2UUICC.js +0 -55
- package/dist/generate-SYOQE3F7.js +0 -263
- package/dist/get-HMTI2IR6.js +0 -82
- package/dist/get-VFDNTZ54.js +0 -62
- package/dist/google-4FP6AHBL.js +0 -3285
- package/dist/google-HWEDJ4YS.js +0 -144
- package/dist/google-HWEDJ4YS.js.map +0 -1
- package/dist/google-ads-4DLYASRC.js +0 -198
- package/dist/gsc-YAU4EA75.js +0 -30
- package/dist/history-6B6RXNV3.js +0 -102
- package/dist/history-NLZSX4BK.js +0 -153
- package/dist/hubspot-LABBRJ44.js +0 -782
- package/dist/ideas-A4ELJN23.js +0 -45
- package/dist/images-JVNT7KYM.js +0 -92
- package/dist/ingest-GQWR3RHR.js +0 -27
- package/dist/ingest-JYN2IDKV.js +0 -123
- package/dist/inspect-72DY33YD.js +0 -192
- package/dist/inspiration-DNWTXEPX.js +0 -53
- package/dist/instant-experiences-6NTBX4SL.js +0 -264
- package/dist/keyword-metrics-GP7L2MQE.js +0 -200
- package/dist/keywords-for-site-6YWAUOKJ.js +0 -131
- package/dist/landing-EKHAZS5P.js +0 -28
- package/dist/leads-RN6RYOMU.js +0 -541
- package/dist/leads-UCXIIA5K.js +0 -115
- package/dist/learn-EJEFERQZ.js +0 -207
- package/dist/line-item-writes-IMCE2FDW.js +0 -211
- package/dist/line-items-ISUC3WDO.js +0 -107
- package/dist/link-6QL4ZVSU.js +0 -67
- package/dist/linkedin-OFL77SUR.js +0 -1330
- package/dist/linkedin-OFL77SUR.js.map +0 -1
- package/dist/linkedin-person-C24CBKCH.js +0 -139
- package/dist/list-2VNI3U7I.js +0 -154
- package/dist/list-PZD2QOZL.js +0 -67
- package/dist/list-SUXUMXPJ.js +0 -306
- package/dist/log-VLI7KQF2.js +0 -95
- package/dist/make-365ZJ25L.js +0 -1367
- package/dist/map-OEFL45WA.js +0 -436
- package/dist/mcp-NCZYQXQL.js +0 -729
- package/dist/media-WASM45QW.js +0 -18
- package/dist/media-sources-CZDK4W5Q.js +0 -35
- package/dist/members-N3PQSVQC.js +0 -47
- package/dist/meta-QFLNABF5.js +0 -122
- package/dist/meta-QFLNABF5.js.map +0 -1
- package/dist/normalize-4OKUF5BJ.js +0 -806
- package/dist/normalize-6DEJPTBF.js +0 -144
- package/dist/options-OJX77MYT.js +0 -125
- package/dist/organization-URQGKFEC.js +0 -949
- package/dist/page-photos-N4S7U7FR.js +0 -118
- package/dist/performance-P5T4LJRG.js +0 -27
- package/dist/performance-SIWBDORI.js +0 -5565
- package/dist/posts-MVCGZV54.js +0 -36
- package/dist/preview-DMTQR6ZW.js +0 -218
- package/dist/preview-DMTQR6ZW.js.map +0 -1
- package/dist/promoted-tweet-writes-S2HP5DEI.js +0 -183
- package/dist/promoted-tweets-WZT4N5IR.js +0 -119
- package/dist/publish-EDYBQHGJ.js +0 -344
- package/dist/reddit-DEGGHR4M.js +0 -29
- package/dist/refresh-HPNJGI2U.js +0 -97
- package/dist/release-H7M37CEO.js +0 -63
- package/dist/remove-MV4YS72N.js +0 -53
- package/dist/reopen-EFW2SKOY.js +0 -66
- package/dist/rerun-OM4N74YK.js +0 -96
- package/dist/research-7YDQOKA6.js +0 -265
- package/dist/research-MHXKAQW4.js +0 -75
- package/dist/reset-HT4AGJPR.js +0 -57
- package/dist/reset-XPZQ5F4D.js +0 -57
- package/dist/resolve-RTTXEN2B.js +0 -124
- package/dist/retry-DVLVWHEK.js +0 -63
- package/dist/retry-SBGWOUQO.js +0 -65
- package/dist/revenue-KJLJ53XY.js +0 -91
- package/dist/rule-writes-DNXELESR.js +0 -530
- package/dist/rules-KCSET46P.js +0 -217
- package/dist/rules-NVKU732Z.js +0 -99
- package/dist/rules-add-KY42EHJE.js +0 -465
- package/dist/run-2LQ7XJEO.js +0 -69
- package/dist/run-M7YU6KCV.js +0 -71
- package/dist/scaffold-ad-6YPZ75YJ.js +0 -1513
- package/dist/scaffold-static-ad-UJEWTDU5.js +0 -1011
- package/dist/scaffold-video-M4VWSVJ6.js +0 -885
- package/dist/schedule-J7HZQ2EL.js +0 -64
- package/dist/scheduled-agents-IVUQUKF4.js +0 -55
- package/dist/schema-LHBKBUV7.js +0 -135
- package/dist/scrape-FQUGOXCG.js +0 -2241
- package/dist/scrape-FQUGOXCG.js.map +0 -1
- package/dist/search-3AW52FO6.js +0 -177
- package/dist/select-STIWQ36I.js +0 -110
- package/dist/set-prompt-TODWV2F4.js +0 -199
- package/dist/setup-links-MNBD3UMH.js +0 -144
- package/dist/shopify-RJWLTNPQ.js +0 -4009
- package/dist/site-ZZUKS6MQ.js +0 -180
- package/dist/sources-36MJ6T4V.js +0 -30
- package/dist/sources-GNLQHTSJ.js +0 -457
- package/dist/stale-GJN7UO3D.js +0 -90
- package/dist/status-6EGB6ORB.js +0 -65
- package/dist/stock-DJ6I3CTO.js +0 -187
- package/dist/stock-DJ6I3CTO.js.map +0 -1
- package/dist/studies-4XXCEAHH.js +0 -250
- package/dist/studio-OARORMDJ.js +0 -49
- package/dist/study-writes-J56UIIE3.js +0 -471
- package/dist/sync-QHM3LMAX.js +0 -57
- package/dist/sync-definition-YXGN6PIQ.js +0 -70
- package/dist/tags-GHV5R7NI.js +0 -26
- package/dist/tags-IDWUV2FY.js +0 -227
- package/dist/tags-MBBRBZJH.js +0 -23
- package/dist/tags-MQYF2JHQ.js +0 -23
- package/dist/tags-ZGXJHATH.js +0 -23
- package/dist/targeting-KJ4DI56R.js +0 -762
- package/dist/targeting-criteria-GDCXOAUD.js +0 -113
- package/dist/targets-MYHOPAYY.js +0 -106
- package/dist/testimonials-R6RFGAKP.js +0 -32
- package/dist/themes-LHVXXVTX.js +0 -95
- package/dist/top-companies-POTV3Y2A.js +0 -111
- package/dist/transcript-4RVYKDVZ.js +0 -165
- package/dist/translate-UCASCVMN.js +0 -603
- package/dist/triggers-XHMMOZJK.js +0 -144
- package/dist/unlink-3IW3EORE.js +0 -70
- package/dist/unstage-APVF6KHB.js +0 -88
- package/dist/update-2VSJH4LQ.js +0 -66
- package/dist/update-42QYBUE3.js +0 -101
- package/dist/update-ESK6PSME.js +0 -192
- package/dist/update-V7SRDGHN.js +0 -155
- package/dist/upload-42IR5RIL.js +0 -130
- package/dist/url-params-GEESXN57.js +0 -101
- package/dist/validate-Z5SSEUES.js +0 -125
- package/dist/videos-PJAPZPOT.js +0 -41
- package/dist/viewer-check-6M34VY7K.js +0 -83
- package/dist/web-PUVVFMV3.js +0 -173
- package/dist/winning-ads-ZCP4MIEQ.js +0 -86
- package/dist/write-commands-5LEEPKA7.js +0 -1169
- package/dist/write-commands-ZS4O4DSV.js +0 -1524
- package/dist/x-ZKCLP23S.js +0 -47
- /package/dist/{account-XIC5TTV3.js.map → account-H5CL6KUY.js.map} +0 -0
- /package/dist/{account-assets-V7KSSTVP.js.map → account-assets-QMKT5AT7.js.map} +0 -0
- /package/dist/{account-level-2KLG6HTG.js.map → account-level-BELF6JHB.js.map} +0 -0
- /package/dist/{account-reads-ZPZUCB3P.js.map → account-reads-T6GTSAXE.js.map} +0 -0
- /package/dist/{account-users-XTUKRDWK.js.map → account-users-ZGJCVGX4.js.map} +0 -0
- /package/dist/{accounts-25JL77F7.js.map → accounts-EXQNPSYH.js.map} +0 -0
- /package/dist/{accounts-AF72N4NV.js.map → accounts-GNVLFZ3X.js.map} +0 -0
- /package/dist/{actions-IJO4JW7J.js.map → actions-Q2BMP27K.js.map} +0 -0
- /package/dist/{activecampaign-PBTUMTO5.js.map → activecampaign-SJO2YK6M.js.map} +0 -0
- /package/dist/{add-YQPFRDVM.js.map → add-Q3FGYX5Q.js.map} +0 -0
- /package/dist/{add-KHQXXHC5.js.map → add-YGQBSEVK.js.map} +0 -0
- /package/dist/{ads-5YCCRXEU.js.map → ads-CWKKIYD6.js.map} +0 -0
- /package/dist/{ads-EVQ37EV3.js.map → ads-H5AEYIY3.js.map} +0 -0
- /package/dist/{adsets-4IW5TRAK.js.map → adsets-BUIT7HF2.js.map} +0 -0
- /package/dist/{advertisers-JNOWSZZC.js.map → advertisers-ZAHXMIAT.js.map} +0 -0
- /package/dist/{analytics-K5FCQLI5.js.map → analytics-QW5ZXDJR.js.map} +0 -0
- /package/dist/{analytics-CZMCM7XC.js.map → analytics-XPU5SANS.js.map} +0 -0
- /package/dist/{animate-C6BRMRRD.js.map → animate-Q43SOWB4.js.map} +0 -0
- /package/dist/{asset-writes-RF6XTWLY.js.map → asset-writes-JVFE457M.js.map} +0 -0
- /package/dist/{assign-WXZNXVJH.js.map → assign-HJ2NXW4W.js.map} +0 -0
- /package/dist/{audience-size-ZCWH4CFC.js.map → audience-size-IM3N6W7C.js.map} +0 -0
- /package/dist/{audience-writes-5KT6FHUY.js.map → audience-writes-DWSCHYQF.js.map} +0 -0
- /package/dist/{audiences-ZDOK3OYC.js.map → audiences-PYBJU2GV.js.map} +0 -0
- /package/dist/{audit-RBRXPPKK.js.map → audit-N3LAQMD4.js.map} +0 -0
- /package/dist/{autocomplete-P5OU7QVL.js.map → autocomplete-FBTPT5MA.js.map} +0 -0
- /package/dist/{avatars-UHBA2BQ3.js.map → avatars-3OMFIKOJ.js.map} +0 -0
- /package/dist/{bid-pricing-LHNYSDG4.js.map → bid-pricing-UUAC4GTQ.js.map} +0 -0
- /package/dist/{brand-7WL3O74X.js.map → brand-IZYD5SBJ.js.map} +0 -0
- /package/dist/{brief-HWZU75WP.js.map → brief-TNOKTNFJ.js.map} +0 -0
- /package/dist/{campaign-groups-BYS3GNEP.js.map → campaign-groups-3IUOLEK2.js.map} +0 -0
- /package/dist/{campaign-writes-N6OHAK6V.js.map → campaign-writes-Y7QNFOE7.js.map} +0 -0
- /package/dist/{campaigns-3U5IRXSV.js.map → campaigns-2Z6WXIVA.js.map} +0 -0
- /package/dist/{campaigns-QLKGN4FB.js.map → campaigns-B2AUW4TV.js.map} +0 -0
- /package/dist/{campaigns-2E4AQBFB.js.map → campaigns-IDEA3LOK.js.map} +0 -0
- /package/dist/{canvas-GGHJ26ZM.js.map → canvas-PVNQ7YWV.js.map} +0 -0
- /package/dist/{capabilities-TKEEHR7K.js.map → capabilities-FVMMLKPY.js.map} +0 -0
- /package/dist/{catalog-7KQN43HS.js.map → catalog-URTZYAPU.js.map} +0 -0
- /package/dist/{catalogs-5CHPI4H6.js.map → catalogs-OEUNVE4N.js.map} +0 -0
- /package/dist/{chatgpt-YBHXCXWZ.js.map → chatgpt-6KBW7F5S.js.map} +0 -0
- /package/dist/{chats-PBXYH2LT.js.map → chats-EENMDXWZ.js.map} +0 -0
- /package/dist/{check-SVYI72DF.js.map → check-7735BPTR.js.map} +0 -0
- /package/dist/{chunk-5AOTCCTT.js.map → chunk-2QGGI7MF.js.map} +0 -0
- /package/dist/{chunk-B5UVOCYA.js.map → chunk-3OMFSYQ3.js.map} +0 -0
- /package/dist/{chunk-LMOZWB4G.js.map → chunk-65CQYRMK.js.map} +0 -0
- /package/dist/{chunk-I4BQTVMY.js.map → chunk-6MZFOMLU.js.map} +0 -0
- /package/dist/{chunk-VX6GTRT3.js.map → chunk-757ZFIL4.js.map} +0 -0
- /package/dist/{chunk-IJ6NQKAT.js.map → chunk-75HAGIH6.js.map} +0 -0
- /package/dist/{chunk-XSBX3LJP.js.map → chunk-7BVRFQN4.js.map} +0 -0
- /package/dist/{chunk-7OVPQX4X.js.map → chunk-7TDJCDKT.js.map} +0 -0
- /package/dist/{chunk-OIORUNKH.js.map → chunk-7WDH6OKW.js.map} +0 -0
- /package/dist/{chunk-ZMTWQDFC.js.map → chunk-AL4MRNYI.js.map} +0 -0
- /package/dist/{chunk-JBMZVC5D.js.map → chunk-AMM4JMSN.js.map} +0 -0
- /package/dist/{chunk-4XMPL3RU.js.map → chunk-AU3IMZZC.js.map} +0 -0
- /package/dist/{chunk-NO52OH3Y.js.map → chunk-BMNOMOWP.js.map} +0 -0
- /package/dist/{chunk-4AEAL63J.js.map → chunk-BS2MC62Y.js.map} +0 -0
- /package/dist/{chunk-DWSSQBLO.js.map → chunk-C6PWVZQE.js.map} +0 -0
- /package/dist/{chunk-P4MXGSSJ.js.map → chunk-CDTAKCJR.js.map} +0 -0
- /package/dist/{chunk-2RL2T5JO.js.map → chunk-CH44XVPE.js.map} +0 -0
- /package/dist/{chunk-RHNNFCRY.js.map → chunk-CJWLDKFO.js.map} +0 -0
- /package/dist/{chunk-D6VQPBVM.js.map → chunk-DWPOAU4Z.js.map} +0 -0
- /package/dist/{chunk-6MXM6DA6.js.map → chunk-EENYLJUN.js.map} +0 -0
- /package/dist/{chunk-IZROFBH7.js.map → chunk-EJBLF2LI.js.map} +0 -0
- /package/dist/{chunk-DNH2ZPZP.js.map → chunk-EJMPKO6V.js.map} +0 -0
- /package/dist/{chunk-RMZLB4AH.js.map → chunk-EKXLJRO3.js.map} +0 -0
- /package/dist/{chunk-ZANXEMON.js.map → chunk-EL3TDR5S.js.map} +0 -0
- /package/dist/{chunk-LFELUKCA.js.map → chunk-GRDZWZKQ.js.map} +0 -0
- /package/dist/{chunk-S4NMWYHW.js.map → chunk-GVUBRSD3.js.map} +0 -0
- /package/dist/{chunk-LVLTWPRR.js.map → chunk-GYREQDTJ.js.map} +0 -0
- /package/dist/{chunk-J5UTL4HE.js.map → chunk-HBRXFQQV.js.map} +0 -0
- /package/dist/{chunk-NE3OMP7R.js.map → chunk-HLHR3EK2.js.map} +0 -0
- /package/dist/{chunk-RJQT7QXX.js.map → chunk-IMFIRELA.js.map} +0 -0
- /package/dist/{chunk-SP3MHBME.js.map → chunk-IOKD77L2.js.map} +0 -0
- /package/dist/{chunk-TGT4XHLX.js.map → chunk-KDAINT54.js.map} +0 -0
- /package/dist/{chunk-QI5UKQX3.js.map → chunk-KKKZRQFY.js.map} +0 -0
- /package/dist/{chunk-YCAJCVW4.js.map → chunk-KLO36KTV.js.map} +0 -0
- /package/dist/{chunk-NZYWKZ3Q.js.map → chunk-LC6PVPJX.js.map} +0 -0
- /package/dist/{chunk-DK66PUXL.js.map → chunk-LETR3RQE.js.map} +0 -0
- /package/dist/{chunk-73MLPGI2.js.map → chunk-MAVT2CJ4.js.map} +0 -0
- /package/dist/{chunk-FSEFZZ2T.js.map → chunk-MJDN7CR7.js.map} +0 -0
- /package/dist/{chunk-XB4NKZAQ.js.map → chunk-N3PASNUA.js.map} +0 -0
- /package/dist/{chunk-SFQFUQDW.js.map → chunk-NL77JRKE.js.map} +0 -0
- /package/dist/{chunk-42JTSTQ3.js.map → chunk-OTFHIGEO.js.map} +0 -0
- /package/dist/{chunk-ESXUIV6V.js.map → chunk-PCUWBZM3.js.map} +0 -0
- /package/dist/{chunk-OKXLOLEV.js.map → chunk-PNWXTOQ4.js.map} +0 -0
- /package/dist/{chunk-PYAR343F.js.map → chunk-PQFTKHDA.js.map} +0 -0
- /package/dist/{chunk-XXBP73RV.js.map → chunk-Q5DFEVLE.js.map} +0 -0
- /package/dist/{chunk-IBBGABK2.js.map → chunk-QAJFMVGU.js.map} +0 -0
- /package/dist/{chunk-NRIKX35V.js.map → chunk-QXCGWAC6.js.map} +0 -0
- /package/dist/{chunk-CJFCQMUY.js.map → chunk-RKDMYL4A.js.map} +0 -0
- /package/dist/{chunk-S6XZIBWV.js.map → chunk-SCBSAIVV.js.map} +0 -0
- /package/dist/{chunk-3HLQZTQ3.js.map → chunk-SPBUE7R4.js.map} +0 -0
- /package/dist/{chunk-Y4ZBNZBU.js.map → chunk-TRAMBRVO.js.map} +0 -0
- /package/dist/{chunk-IC4MREQH.js.map → chunk-TWFZIHKK.js.map} +0 -0
- /package/dist/{chunk-WGJ2QEW4.js.map → chunk-UCJAPB5Y.js.map} +0 -0
- /package/dist/{chunk-4PM32OS3.js.map → chunk-VFDWUIGR.js.map} +0 -0
- /package/dist/{chunk-BRNZMKO4.js.map → chunk-WC3YSN7L.js.map} +0 -0
- /package/dist/{chunk-5NLUTJCQ.js.map → chunk-X3GWGFZP.js.map} +0 -0
- /package/dist/{chunk-6FWVRXDW.js.map → chunk-XZAVBONI.js.map} +0 -0
- /package/dist/{chunk-Y3SK6EMU.js.map → chunk-Y5PNLB24.js.map} +0 -0
- /package/dist/{chunk-N5AIO23H.js.map → chunk-ZC6FICZ7.js.map} +0 -0
- /package/dist/{chunk-QFVZIQRQ.js.map → chunk-ZEGWP4FP.js.map} +0 -0
- /package/dist/{claim-Q76T3MYA.js.map → claim-PGDIRXIC.js.map} +0 -0
- /package/dist/{companies-MLWRWQ73.js.map → companies-WTPKGEB3.js.map} +0 -0
- /package/dist/{company-X5Z67PMK.js.map → company-6H2H73YP.js.map} +0 -0
- /package/dist/{complete-3CFP6XVY.js.map → complete-2QBC3POO.js.map} +0 -0
- /package/dist/{connect-QXFAB4RJ.js.map → connect-35YPFAUL.js.map} +0 -0
- /package/dist/{conversation-C6K6IZTH.js.map → conversation-YZFNEWDV.js.map} +0 -0
- /package/dist/{conversion-upload-command-D7S5HF22.js.map → conversion-upload-command-J2FIO74Y.js.map} +0 -0
- /package/dist/{conversions-CRL327RY.js.map → conversions-UGRVDRWU.js.map} +0 -0
- /package/dist/{conversions-4ILDIG3K.js.map → conversions-ZFDBD3OU.js.map} +0 -0
- /package/dist/{copy-writes-FYXKHJDB.js.map → copy-writes-2B36QJUY.js.map} +0 -0
- /package/dist/{create-LDQ3YHET.js.map → create-3H67EUTO.js.map} +0 -0
- /package/dist/{create-WQNT345R.js.map → create-ALTOBDP4.js.map} +0 -0
- /package/dist/{create-TKOG7DNJ.js.map → create-C3MWUYX2.js.map} +0 -0
- /package/dist/{create-WFMJOZLO.js.map → create-WHTT6IXY.js.map} +0 -0
- /package/dist/{creatives-45SJAD3G.js.map → creatives-22BYP5VN.js.map} +0 -0
- /package/dist/{creatives-Q4OXNCTT.js.map → creatives-IFOPXTZK.js.map} +0 -0
- /package/dist/{credentials-E2AIMWKX.js.map → credentials-J5DMQJWN.js.map} +0 -0
- /package/dist/{critique-JVT6X2T3.js.map → critique-PQRVFC52.js.map} +0 -0
- /package/dist/{critique-EWV3O3TD.js.map → critique-X6XVPIUG.js.map} +0 -0
- /package/dist/{crm-NQH5FTK6.js.map → crm-LWRGJYHW.js.map} +0 -0
- /package/dist/{crm-YGQKK76D.js.map → crm-RUNEJY2R.js.map} +0 -0
- /package/dist/{crop-KV24WHOR.js.map → crop-4V4P3SKI.js.map} +0 -0
- /package/dist/{custom-conversions-EJNX4MCK.js.map → custom-conversions-V7QPZIB4.js.map} +0 -0
- /package/dist/{customers-YFEPJF4G.js.map → customers-IDB6NLQ6.js.map} +0 -0
- /package/dist/{delete-2UJVTHRE.js.map → delete-2QKVUKKB.js.map} +0 -0
- /package/dist/{delete-O4RO2HMR.js.map → delete-B7BKF24X.js.map} +0 -0
- /package/dist/{delete-7QAJSOCO.js.map → delete-HBRYUWAA.js.map} +0 -0
- /package/dist/{demographics-YWBHAMZ5.js.map → demographics-JHB3NFLU.js.map} +0 -0
- /package/dist/{dimensions-YXOXHOXW.js.map → dimensions-KI3OENZD.js.map} +0 -0
- /package/dist/{discard-YX4XUXG3.js.map → discard-FEJ6YL22.js.map} +0 -0
- /package/dist/{domain-5R6CYVFY.js.map → domain-JYWNXBKS.js.map} +0 -0
- /package/dist/{download-D2O4RYJ3.js.map → download-LOBPOIU5.js.map} +0 -0
- /package/dist/{draft-SGNQOUYH.js.map → draft-EB5ZFDVN.js.map} +0 -0
- /package/dist/{draft-3MPADYS4.js.map → draft-I2FLECEX.js.map} +0 -0
- /package/dist/{draft-L56EMJQT.js.map → draft-N56HPS36.js.map} +0 -0
- /package/dist/{draft-NLSQDRVQ.js.map → draft-ZLZRTPY6.js.map} +0 -0
- /package/dist/{experiment-3NDXGQK6.js.map → experiment-O6726OBP.js.map} +0 -0
- /package/dist/{experiments-DYNNWQRB.js.map → experiments-WVTBHD6G.js.map} +0 -0
- /package/dist/{facets-Y2IEM37E.js.map → facets-V2ITIUKD.js.map} +0 -0
- /package/dist/{feedback-HJRVTU6C.js.map → feedback-MXUZWVOL.js.map} +0 -0
- /package/dist/{feedback-IVSLM5PN.js.map → feedback-PXWPR3NZ.js.map} +0 -0
- /package/dist/{feedback-record-P7CO3IGE.js.map → feedback-record-76RUAHZH.js.map} +0 -0
- /package/dist/{fetch-V2U5VUQZ.js.map → fetch-QVOOC3FA.js.map} +0 -0
- /package/dist/{fit-JDG6E46O.js.map → fit-REGMM46H.js.map} +0 -0
- /package/dist/{flows-DP574PEX.js.map → flows-EZV3KCV6.js.map} +0 -0
- /package/dist/{fonts-RMROS3LX.js.map → fonts-NUX66HEI.js.map} +0 -0
- /package/dist/{forecast-BRXNGMGD.js.map → forecast-W6HKYVX5.js.map} +0 -0
- /package/dist/{forecast-AAHHVTBK.js.map → forecast-XDRKCR65.js.map} +0 -0
- /package/dist/{funnel-FQX3DOE7.js.map → funnel-3YABA3G2.js.map} +0 -0
- /package/dist/{ga4-IJ2UUICC.js.map → ga4-XFJO7VK2.js.map} +0 -0
- /package/dist/{generate-SYOQE3F7.js.map → generate-22HT24SA.js.map} +0 -0
- /package/dist/{get-HMTI2IR6.js.map → get-GQQLBE5C.js.map} +0 -0
- /package/dist/{get-VFDNTZ54.js.map → get-NL3YZFUJ.js.map} +0 -0
- /package/dist/{google-4FP6AHBL.js.map → google-UJ4YJGTJ.js.map} +0 -0
- /package/dist/{google-ads-4DLYASRC.js.map → google-ads-RRKKSKDD.js.map} +0 -0
- /package/dist/{gsc-YAU4EA75.js.map → gsc-ILEIJYWP.js.map} +0 -0
- /package/dist/{history-6B6RXNV3.js.map → history-2UANIBRN.js.map} +0 -0
- /package/dist/{history-NLZSX4BK.js.map → history-YZ727ZRG.js.map} +0 -0
- /package/dist/{hubspot-LABBRJ44.js.map → hubspot-KWLXJ6QD.js.map} +0 -0
- /package/dist/{ideas-A4ELJN23.js.map → ideas-ZO533P5Y.js.map} +0 -0
- /package/dist/{images-JVNT7KYM.js.map → images-Z7YBWRVJ.js.map} +0 -0
- /package/dist/{ingest-GQWR3RHR.js.map → ingest-C2HJ5LUY.js.map} +0 -0
- /package/dist/{ingest-JYN2IDKV.js.map → ingest-H53JR4GK.js.map} +0 -0
- /package/dist/{inspect-72DY33YD.js.map → inspect-BM6GJHQV.js.map} +0 -0
- /package/dist/{inspiration-DNWTXEPX.js.map → inspiration-WGUU7W5Z.js.map} +0 -0
- /package/dist/{instant-experiences-6NTBX4SL.js.map → instant-experiences-U6U3FYIH.js.map} +0 -0
- /package/dist/{keyword-metrics-GP7L2MQE.js.map → keyword-metrics-R2QCEDYW.js.map} +0 -0
- /package/dist/{keywords-for-site-6YWAUOKJ.js.map → keywords-for-site-NBV72C3W.js.map} +0 -0
- /package/dist/{landing-EKHAZS5P.js.map → landing-5RRWTSWK.js.map} +0 -0
- /package/dist/{leads-UCXIIA5K.js.map → leads-6PF7ZWCH.js.map} +0 -0
- /package/dist/{leads-RN6RYOMU.js.map → leads-IG3IIHXG.js.map} +0 -0
- /package/dist/{learn-EJEFERQZ.js.map → learn-V2LIBEEY.js.map} +0 -0
- /package/dist/{line-item-writes-IMCE2FDW.js.map → line-item-writes-GMNWL4DI.js.map} +0 -0
- /package/dist/{line-items-ISUC3WDO.js.map → line-items-KPIKXLG4.js.map} +0 -0
- /package/dist/{link-6QL4ZVSU.js.map → link-X7IYKR5V.js.map} +0 -0
- /package/dist/{linkedin-person-C24CBKCH.js.map → linkedin-person-47XFTBIN.js.map} +0 -0
- /package/dist/{list-2VNI3U7I.js.map → list-PHNA7QIF.js.map} +0 -0
- /package/dist/{list-SUXUMXPJ.js.map → list-QF3BANBM.js.map} +0 -0
- /package/dist/{list-PZD2QOZL.js.map → list-SB3SUTH6.js.map} +0 -0
- /package/dist/{log-VLI7KQF2.js.map → log-JFLSSUJ6.js.map} +0 -0
- /package/dist/{make-365ZJ25L.js.map → make-HZ5KAYSB.js.map} +0 -0
- /package/dist/{map-OEFL45WA.js.map → map-NYJT2MGI.js.map} +0 -0
- /package/dist/{mcp-NCZYQXQL.js.map → mcp-ABQEICYR.js.map} +0 -0
- /package/dist/{media-WASM45QW.js.map → media-AT3VV3PU.js.map} +0 -0
- /package/dist/{media-sources-CZDK4W5Q.js.map → media-sources-DEEKEJUB.js.map} +0 -0
- /package/dist/{members-N3PQSVQC.js.map → members-BX37KHKO.js.map} +0 -0
- /package/dist/{normalize-4OKUF5BJ.js.map → normalize-M3VMWF4W.js.map} +0 -0
- /package/dist/{normalize-6DEJPTBF.js.map → normalize-MA2FBBIV.js.map} +0 -0
- /package/dist/{options-OJX77MYT.js.map → options-NMWWF2HN.js.map} +0 -0
- /package/dist/{organization-URQGKFEC.js.map → organization-GRAA6ZXU.js.map} +0 -0
- /package/dist/{page-photos-N4S7U7FR.js.map → page-photos-ABK4CJME.js.map} +0 -0
- /package/dist/{performance-SIWBDORI.js.map → performance-MQLRSH44.js.map} +0 -0
- /package/dist/{performance-P5T4LJRG.js.map → performance-RUBIGEAQ.js.map} +0 -0
- /package/dist/{posts-MVCGZV54.js.map → posts-F7NFSUHV.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-S2HP5DEI.js.map → promoted-tweet-writes-3P6QFGLN.js.map} +0 -0
- /package/dist/{promoted-tweets-WZT4N5IR.js.map → promoted-tweets-TGFPH7UI.js.map} +0 -0
- /package/dist/{publish-EDYBQHGJ.js.map → publish-OUVO65Z5.js.map} +0 -0
- /package/dist/{reddit-DEGGHR4M.js.map → reddit-HWQCUSEM.js.map} +0 -0
- /package/dist/{refresh-HPNJGI2U.js.map → refresh-ENQDQGTK.js.map} +0 -0
- /package/dist/{release-H7M37CEO.js.map → release-ZTVXLUQS.js.map} +0 -0
- /package/dist/{remove-MV4YS72N.js.map → remove-XAFRT7O7.js.map} +0 -0
- /package/dist/{reopen-EFW2SKOY.js.map → reopen-SWSZHXJZ.js.map} +0 -0
- /package/dist/{rerun-OM4N74YK.js.map → rerun-X7XVOAL3.js.map} +0 -0
- /package/dist/{research-MHXKAQW4.js.map → research-JMU4C4JZ.js.map} +0 -0
- /package/dist/{research-7YDQOKA6.js.map → research-TDH4OBX6.js.map} +0 -0
- /package/dist/{reset-HT4AGJPR.js.map → reset-34HTKUBQ.js.map} +0 -0
- /package/dist/{reset-XPZQ5F4D.js.map → reset-KMMGLM7W.js.map} +0 -0
- /package/dist/{resolve-RTTXEN2B.js.map → resolve-2CIIKADD.js.map} +0 -0
- /package/dist/{retry-DVLVWHEK.js.map → retry-V7KZIZKR.js.map} +0 -0
- /package/dist/{retry-SBGWOUQO.js.map → retry-YXM23NSB.js.map} +0 -0
- /package/dist/{revenue-KJLJ53XY.js.map → revenue-D4L6U2CW.js.map} +0 -0
- /package/dist/{rule-writes-DNXELESR.js.map → rule-writes-HUBHHYEO.js.map} +0 -0
- /package/dist/{rules-KCSET46P.js.map → rules-47LFGCPW.js.map} +0 -0
- /package/dist/{rules-NVKU732Z.js.map → rules-F6RNUOXP.js.map} +0 -0
- /package/dist/{rules-add-KY42EHJE.js.map → rules-add-SAQRESVK.js.map} +0 -0
- /package/dist/{run-M7YU6KCV.js.map → run-3GCYZ2HX.js.map} +0 -0
- /package/dist/{run-2LQ7XJEO.js.map → run-FRPO2WNQ.js.map} +0 -0
- /package/dist/{scaffold-ad-6YPZ75YJ.js.map → scaffold-ad-E6DD6U46.js.map} +0 -0
- /package/dist/{scaffold-static-ad-UJEWTDU5.js.map → scaffold-static-ad-6WNS2PXB.js.map} +0 -0
- /package/dist/{scaffold-video-M4VWSVJ6.js.map → scaffold-video-QKXFQ5FC.js.map} +0 -0
- /package/dist/{schedule-J7HZQ2EL.js.map → schedule-S4XAVVEI.js.map} +0 -0
- /package/dist/{scheduled-agents-IVUQUKF4.js.map → scheduled-agents-ZWAP6QLC.js.map} +0 -0
- /package/dist/{schema-LHBKBUV7.js.map → schema-EJ2XPUN6.js.map} +0 -0
- /package/dist/{search-3AW52FO6.js.map → search-2BAY3KKX.js.map} +0 -0
- /package/dist/{select-STIWQ36I.js.map → select-ABRNFFR2.js.map} +0 -0
- /package/dist/{set-prompt-TODWV2F4.js.map → set-prompt-5LYHDT4E.js.map} +0 -0
- /package/dist/{setup-links-MNBD3UMH.js.map → setup-links-QT63UZBR.js.map} +0 -0
- /package/dist/{shopify-RJWLTNPQ.js.map → shopify-L4ZUI6OT.js.map} +0 -0
- /package/dist/{site-ZZUKS6MQ.js.map → site-S6QVMP7W.js.map} +0 -0
- /package/dist/{sources-36MJ6T4V.js.map → sources-6TWWOO7Q.js.map} +0 -0
- /package/dist/{sources-GNLQHTSJ.js.map → sources-ORG5KQSW.js.map} +0 -0
- /package/dist/{stale-GJN7UO3D.js.map → stale-MLQPXNLZ.js.map} +0 -0
- /package/dist/{status-6EGB6ORB.js.map → status-4G2YUCZR.js.map} +0 -0
- /package/dist/{studies-4XXCEAHH.js.map → studies-QLSKON6M.js.map} +0 -0
- /package/dist/{studio-OARORMDJ.js.map → studio-ZLBBYHNY.js.map} +0 -0
- /package/dist/{study-writes-J56UIIE3.js.map → study-writes-GBUUKX4O.js.map} +0 -0
- /package/dist/{sync-QHM3LMAX.js.map → sync-7LJZPHM3.js.map} +0 -0
- /package/dist/{sync-definition-YXGN6PIQ.js.map → sync-definition-MXVL2I2H.js.map} +0 -0
- /package/dist/{tags-MQYF2JHQ.js.map → tags-2ARVNEYS.js.map} +0 -0
- /package/dist/{tags-ZGXJHATH.js.map → tags-F4IT7RQR.js.map} +0 -0
- /package/dist/{tags-MBBRBZJH.js.map → tags-F7ZO52EM.js.map} +0 -0
- /package/dist/{tags-IDWUV2FY.js.map → tags-NBGGBHXR.js.map} +0 -0
- /package/dist/{tags-GHV5R7NI.js.map → tags-TCSGQYDR.js.map} +0 -0
- /package/dist/{targeting-KJ4DI56R.js.map → targeting-DAUTJDUB.js.map} +0 -0
- /package/dist/{targeting-criteria-GDCXOAUD.js.map → targeting-criteria-H42LRULY.js.map} +0 -0
- /package/dist/{targets-MYHOPAYY.js.map → targets-WB4E5XL2.js.map} +0 -0
- /package/dist/{testimonials-R6RFGAKP.js.map → testimonials-RIJSQDSB.js.map} +0 -0
- /package/dist/{themes-LHVXXVTX.js.map → themes-BGBDYQQK.js.map} +0 -0
- /package/dist/{top-companies-POTV3Y2A.js.map → top-companies-C2W5TJ7G.js.map} +0 -0
- /package/dist/{transcript-4RVYKDVZ.js.map → transcript-S7VR2GJE.js.map} +0 -0
- /package/dist/{translate-UCASCVMN.js.map → translate-A4GHRHSP.js.map} +0 -0
- /package/dist/{triggers-XHMMOZJK.js.map → triggers-EOKMR74O.js.map} +0 -0
- /package/dist/{unlink-3IW3EORE.js.map → unlink-PC3TMWUT.js.map} +0 -0
- /package/dist/{unstage-APVF6KHB.js.map → unstage-SU2ATDSZ.js.map} +0 -0
- /package/dist/{update-V7SRDGHN.js.map → update-DKX3EEES.js.map} +0 -0
- /package/dist/{update-2VSJH4LQ.js.map → update-JYZ45YJG.js.map} +0 -0
- /package/dist/{update-ESK6PSME.js.map → update-TAZSUOAS.js.map} +0 -0
- /package/dist/{update-42QYBUE3.js.map → update-WRJUH2NM.js.map} +0 -0
- /package/dist/{upload-42IR5RIL.js.map → upload-BLXTMK5Q.js.map} +0 -0
- /package/dist/{url-params-GEESXN57.js.map → url-params-YVOFU6MK.js.map} +0 -0
- /package/dist/{validate-Z5SSEUES.js.map → validate-44PVFQH7.js.map} +0 -0
- /package/dist/{videos-PJAPZPOT.js.map → videos-RWPQVXS5.js.map} +0 -0
- /package/dist/{viewer-check-6M34VY7K.js.map → viewer-check-KTRRUVZN.js.map} +0 -0
- /package/dist/{web-PUVVFMV3.js.map → web-6KUM7Q7S.js.map} +0 -0
- /package/dist/{winning-ads-ZCP4MIEQ.js.map → winning-ads-IT3O4EAN.js.map} +0 -0
- /package/dist/{write-commands-ZS4O4DSV.js.map → write-commands-3U5ZMIHH.js.map} +0 -0
- /package/dist/{write-commands-5LEEPKA7.js.map → write-commands-F5XPPLOO.js.map} +0 -0
- /package/dist/{x-ZKCLP23S.js.map → x-X7URL52T.js.map} +0 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import {
|
|
2
|
+
csvOrJson,
|
|
3
|
+
handleLinkedinError,
|
|
4
|
+
resolveAccountIdArg,
|
|
5
|
+
resolveStatusFilter,
|
|
6
|
+
statusesArgDescription
|
|
7
|
+
} from "./chunk-OTFHIGEO.js";
|
|
8
|
+
import {
|
|
9
|
+
writeAdsOutput,
|
|
10
|
+
writeJsonEnvelope
|
|
11
|
+
} from "./chunk-QYH2UZAK.js";
|
|
12
|
+
import {
|
|
13
|
+
NO_CACHE_ARG
|
|
14
|
+
} from "./chunk-GO6ISZUZ.js";
|
|
15
|
+
import {
|
|
16
|
+
shapeListRows
|
|
17
|
+
} from "./chunk-65Y3RCWP.js";
|
|
18
|
+
import "./chunk-MKLAZD23.js";
|
|
19
|
+
import "./chunk-QV6AST5T.js";
|
|
20
|
+
import "./chunk-WCU362Z6.js";
|
|
21
|
+
import "./chunk-GIWHHCD6.js";
|
|
22
|
+
import "./chunk-SOPVIIUW.js";
|
|
23
|
+
import "./chunk-G4FG5EQO.js";
|
|
24
|
+
import "./chunk-R7XDGNZD.js";
|
|
25
|
+
import "./chunk-MSMTG6OC.js";
|
|
26
|
+
import {
|
|
27
|
+
apiGet
|
|
28
|
+
} from "./chunk-GFWWHCBF.js";
|
|
29
|
+
import "./chunk-JXTNP3B5.js";
|
|
30
|
+
import "./chunk-45D6WRCJ.js";
|
|
31
|
+
import "./chunk-CCYZJMZ7.js";
|
|
32
|
+
import "./chunk-YQSBHWOI.js";
|
|
33
|
+
|
|
34
|
+
// src/commands/ads/linkedin/creatives.ts
|
|
35
|
+
import { defineCommand } from "citty";
|
|
36
|
+
function asRecord(value) {
|
|
37
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
38
|
+
}
|
|
39
|
+
function asString(value) {
|
|
40
|
+
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
41
|
+
}
|
|
42
|
+
function creativeDestination(content) {
|
|
43
|
+
if (!content) return { format: "unknown" };
|
|
44
|
+
const reference = asString(content.reference);
|
|
45
|
+
if (reference) return { format: "post", postUrn: reference };
|
|
46
|
+
const textAd = asRecord(content.textAd);
|
|
47
|
+
if (textAd) return { format: "text", landingUrl: asString(textAd.landingPage) };
|
|
48
|
+
const spotlight = asRecord(content.spotlight);
|
|
49
|
+
if (spotlight) return { format: "spotlight", landingUrl: asString(spotlight.landingPage) };
|
|
50
|
+
if (asRecord(content.follower)) return { format: "follower" };
|
|
51
|
+
if (asRecord(content.jobs)) return { format: "jobs" };
|
|
52
|
+
return { format: "unknown" };
|
|
53
|
+
}
|
|
54
|
+
var COMPACT_COLUMNS = [
|
|
55
|
+
"id",
|
|
56
|
+
"urn",
|
|
57
|
+
"campaign",
|
|
58
|
+
"intendedStatus",
|
|
59
|
+
"isServing",
|
|
60
|
+
"reviewStatus",
|
|
61
|
+
"format",
|
|
62
|
+
"landingUrl",
|
|
63
|
+
"postUrn",
|
|
64
|
+
"leadForm",
|
|
65
|
+
"leadFormButton"
|
|
66
|
+
];
|
|
67
|
+
function leadFormUrn(destination) {
|
|
68
|
+
const id = destination?.match(/(\d+)$/)?.[1];
|
|
69
|
+
return id ? `urn:li:leadGenForm:${id}` : void 0;
|
|
70
|
+
}
|
|
71
|
+
function compactRow(row) {
|
|
72
|
+
const destination = creativeDestination(row.content);
|
|
73
|
+
const leadForm = leadFormUrn(row.leadgenCallToAction?.destination);
|
|
74
|
+
return {
|
|
75
|
+
id: row.id,
|
|
76
|
+
urn: row.urn,
|
|
77
|
+
campaign: row.campaign,
|
|
78
|
+
intendedStatus: row.intendedStatus,
|
|
79
|
+
isServing: row.isServing,
|
|
80
|
+
reviewStatus: row.reviewStatus,
|
|
81
|
+
format: destination.format,
|
|
82
|
+
...destination.landingUrl ? { landingUrl: destination.landingUrl } : {},
|
|
83
|
+
...destination.postUrn ? { postUrn: destination.postUrn } : {},
|
|
84
|
+
...leadForm ? { leadForm, leadFormButton: row.leadgenCallToAction?.label } : {}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function unmappedShapeWarnings(rows, rawContentReturned) {
|
|
88
|
+
const unmapped = rows.filter((row) => row.content && creativeDestination(row.content).format === "unknown");
|
|
89
|
+
if (unmapped.length === 0) return [];
|
|
90
|
+
const remedy = rawContentReturned ? "Their raw content is in this response \u2014 read it directly; this command cannot resolve a destination for them." : "Re-read those with --full before drawing any conclusion about where they point.";
|
|
91
|
+
return [
|
|
92
|
+
{
|
|
93
|
+
code: "UNMAPPED_CREATIVE_CONTENT",
|
|
94
|
+
message: `${unmapped.length} of ${rows.length} creatives have a content shape this command can't read, so their destination is missing (ids: ${unmapped.slice(0, 5).map((row) => row.id).join(", ")}). ${remedy}`
|
|
95
|
+
}
|
|
96
|
+
];
|
|
97
|
+
}
|
|
98
|
+
var listArgs = {
|
|
99
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
100
|
+
"account-urn": { type: "string", description: "Alias for --account-id" },
|
|
101
|
+
"campaign-id": { type: "string", description: "Filter by campaign ID" },
|
|
102
|
+
"all-statuses": { type: "boolean", description: "Drop the default ACTIVE filter" },
|
|
103
|
+
statuses: { type: "string", description: statusesArgDescription("creatives") },
|
|
104
|
+
fields: {
|
|
105
|
+
type: "string",
|
|
106
|
+
description: "CSV of dotted paths to return instead of the compact row, e.g. id,content.textAd.landingPage"
|
|
107
|
+
},
|
|
108
|
+
full: { type: "boolean", description: "Return the complete raw records, including the opaque 'content' block" },
|
|
109
|
+
limit: { type: "string", description: "Max rows (default: 500)" },
|
|
110
|
+
"no-cache": NO_CACHE_ARG,
|
|
111
|
+
output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
|
|
112
|
+
};
|
|
113
|
+
var creativesListCommand = defineCommand({
|
|
114
|
+
meta: {
|
|
115
|
+
name: "list",
|
|
116
|
+
description: "List LinkedIn creatives (ads). Runs by default when no subcommand is given."
|
|
117
|
+
},
|
|
118
|
+
args: listArgs,
|
|
119
|
+
run: async ({ args }) => {
|
|
120
|
+
const accountId = resolveAccountIdArg(args);
|
|
121
|
+
try {
|
|
122
|
+
const params = { "account-id": accountId };
|
|
123
|
+
const statuses = resolveStatusFilter(args, "creatives");
|
|
124
|
+
if (statuses) params.statuses = statuses.join(",");
|
|
125
|
+
if (args["campaign-id"]) params["campaign-id"] = String(args["campaign-id"]);
|
|
126
|
+
if (args.limit) params.limit = String(args.limit);
|
|
127
|
+
if (args["no-cache"]) params["skip-cache"] = "true";
|
|
128
|
+
const data = await apiGet("/api/ads/linkedin/creatives", params);
|
|
129
|
+
const shaped = shapeListRows(data, args, {
|
|
130
|
+
row: compactRow,
|
|
131
|
+
columns: COMPACT_COLUMNS
|
|
132
|
+
});
|
|
133
|
+
const fmt = csvOrJson(args);
|
|
134
|
+
if (fmt !== "json") {
|
|
135
|
+
writeAdsOutput(shaped.rows, fmt, shaped.fields, shaped.hints);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const warnings = unmappedShapeWarnings(data, args.full === true);
|
|
139
|
+
writeJsonEnvelope({
|
|
140
|
+
ok: true,
|
|
141
|
+
data: shaped.rows,
|
|
142
|
+
...warnings.length > 0 ? { warnings } : {},
|
|
143
|
+
...shaped.hints ? { hints: shaped.hints } : {}
|
|
144
|
+
});
|
|
145
|
+
} catch (err) {
|
|
146
|
+
handleLinkedinError(err);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
var creativesGetCommand = defineCommand({
|
|
151
|
+
meta: {
|
|
152
|
+
name: "get",
|
|
153
|
+
description: `Read one ad as LinkedIn holds it: headline, intro text, landing URL, the lead gen form it opens, its review verdict (with rejection reasons) and why it is not serving (notServingBecause \u2014 e.g. FORM_HOLD, UNDER_REVIEW, CAMPAIGN_STOPPED).
|
|
154
|
+
The listing can only name a post-based ad's post; this is where its headline and link come back.
|
|
155
|
+
Example: baker ads linkedin creatives get 1584704523`
|
|
156
|
+
},
|
|
157
|
+
args: {
|
|
158
|
+
id: { type: "positional", description: "Creative id or urn:li:sponsoredCreative:N", required: true },
|
|
159
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
160
|
+
"account-urn": { type: "string", description: "Alias for --account-id" }
|
|
161
|
+
},
|
|
162
|
+
run: async ({ args }) => {
|
|
163
|
+
const accountId = resolveAccountIdArg(args);
|
|
164
|
+
try {
|
|
165
|
+
const data = await apiGet("/api/ads/linkedin/creative", {
|
|
166
|
+
"account-id": accountId,
|
|
167
|
+
"creative-id": String(args.id)
|
|
168
|
+
});
|
|
169
|
+
writeJsonEnvelope({
|
|
170
|
+
ok: true,
|
|
171
|
+
data,
|
|
172
|
+
hints: [
|
|
173
|
+
`These are the stored fields, not what people see. To look at the ad as the feed shows it: baker ads linkedin preview ${String(args.id)} --account-id ${accountId}`
|
|
174
|
+
]
|
|
175
|
+
});
|
|
176
|
+
} catch (err) {
|
|
177
|
+
handleLinkedinError(err);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
var creativesCommand = defineCommand({
|
|
182
|
+
meta: {
|
|
183
|
+
name: "creatives",
|
|
184
|
+
description: `List LinkedIn creatives (ads), or stage writes (create/update/pause/resume/duplicate).
|
|
185
|
+
|
|
186
|
+
Defaults to ACTIVE intended-status. Pass --all-statuses or --statuses ACTIVE,PAUSED to widen.
|
|
187
|
+
|
|
188
|
+
Rows are compact by default: id, urn, campaign, status, review status, format, and
|
|
189
|
+
the resolved destination (landingUrl, or postUrn for post-based ads), and for a
|
|
190
|
+
lead gen ad the form it opens (leadForm, leadFormButton). Use --fields
|
|
191
|
+
for specific dotted paths, or --full for the complete raw records.
|
|
192
|
+
|
|
193
|
+
Post-based ads (image, video, carousel, document, article, event, TLA) report a
|
|
194
|
+
postUrn, not a landingUrl \u2014 their destination lives in the post itself.
|
|
195
|
+
Use 'reviewStatus' to spot rejected/pending creatives during an audit.
|
|
196
|
+
|
|
197
|
+
Write subcommands stage ops on this chat's draft \u2014 media comes from the Baker
|
|
198
|
+
library and is uploaded to LinkedIn only at publish.
|
|
199
|
+
|
|
200
|
+
Examples:
|
|
201
|
+
baker ads linkedin creatives --account-id 503001492
|
|
202
|
+
baker ads linkedin creatives --account-id 503001492 --fields id,intendedStatus,content.textAd.landingPage
|
|
203
|
+
baker ads linkedin creatives create --campaign 1234 --format image --image-id <bakerImageId> --intro "\u2026" --headline "Book a demo" --landing-url https://example.com --cta REQUEST_DEMO
|
|
204
|
+
baker ads linkedin creatives get 1584704523 # one ad: headline, landing URL, form, review, why not serving
|
|
205
|
+
baker ads linkedin creatives pause urn:li:sponsoredCreative:789`
|
|
206
|
+
},
|
|
207
|
+
subCommands: {
|
|
208
|
+
list: creativesListCommand,
|
|
209
|
+
get: creativesGetCommand,
|
|
210
|
+
create: () => import("./write-commands-3U5ZMIHH.js").then((m) => m.creativesCreateCommand),
|
|
211
|
+
update: () => import("./write-commands-3U5ZMIHH.js").then((m) => m.creativesUpdateCommand),
|
|
212
|
+
pause: () => import("./write-commands-3U5ZMIHH.js").then((m) => m.creativesPauseCommand),
|
|
213
|
+
resume: () => import("./write-commands-3U5ZMIHH.js").then((m) => m.creativesResumeCommand),
|
|
214
|
+
duplicate: () => import("./write-commands-3U5ZMIHH.js").then((m) => m.creativesDuplicateCommand),
|
|
215
|
+
delete: () => import("./write-commands-3U5ZMIHH.js").then((m) => m.creativesDeleteCommand)
|
|
216
|
+
},
|
|
217
|
+
// A parent must never declare `run`: citty falls through to it *after* running
|
|
218
|
+
// the matched subcommand, so every write would also trigger a full live list.
|
|
219
|
+
// `args` stays here so citty's subcommand scan knows which flags take a value.
|
|
220
|
+
args: listArgs,
|
|
221
|
+
default: "list"
|
|
222
|
+
});
|
|
223
|
+
export {
|
|
224
|
+
compactRow,
|
|
225
|
+
creativeDestination,
|
|
226
|
+
creativesCommand,
|
|
227
|
+
unmappedShapeWarnings
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=creatives-WBBN6G7H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/linkedin/creatives.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiGet } from \"../../../client.ts\";\nimport { shapeListRows } from \"../list-rows.ts\";\nimport { writeAdsOutput, writeJsonEnvelope } from \"../output.ts\";\nimport type { AdsWarning } from \"../types.ts\";\nimport {\n csvOrJson,\n handleLinkedinError,\n resolveAccountIdArg,\n resolveStatusFilter,\n statusesArgDescription,\n} from \"./shared.ts\";\n\ninterface LinkedinCreativeRow {\n id: string;\n urn: string;\n account: string;\n campaign?: string;\n intendedStatus?: string;\n isServing?: boolean;\n reviewStatus?: string;\n type?: string;\n content?: Record<string, unknown>;\n leadgenCallToAction?: { destination?: string; label?: string };\n createdAt?: number;\n}\n\n/**\n * The shape of a creative's `content` depends on its format, and LinkedIn wraps\n * each one differently. Callers overwhelmingly want one thing from it — where\n * the ad sends people — so resolve that here instead of making every reader\n * re-learn the union.\n *\n * Post-based ads (image, video, carousel, document, article, event, TLA) only\n * carry a post reference: their destination lives inside the post and is not\n * readable — or writable — through the ads API.\n */\nexport interface CreativeDestination {\n format: string;\n landingUrl?: string;\n postUrn?: string;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction asString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nexport function creativeDestination(content: Record<string, unknown> | undefined): CreativeDestination {\n if (!content) return { format: \"unknown\" };\n\n const reference = asString(content.reference);\n if (reference) return { format: \"post\", postUrn: reference };\n\n const textAd = asRecord(content.textAd);\n if (textAd) return { format: \"text\", landingUrl: asString(textAd.landingPage) };\n\n const spotlight = asRecord(content.spotlight);\n if (spotlight) return { format: \"spotlight\", landingUrl: asString(spotlight.landingPage) };\n\n if (asRecord(content.follower)) return { format: \"follower\" };\n if (asRecord(content.jobs)) return { format: \"jobs\" };\n\n return { format: \"unknown\" };\n}\n\n/**\n * Every column a compact row can carry, in order. `compactRow` omits the destination\n * keys it has no value for, so the tabular writers cannot infer the header from a row:\n * a first row that is post-based would drop `landingUrl` from every later row.\n */\nconst COMPACT_COLUMNS = [\n \"id\",\n \"urn\",\n \"campaign\",\n \"intendedStatus\",\n \"isServing\",\n \"reviewStatus\",\n \"format\",\n \"landingUrl\",\n \"postUrn\",\n \"leadForm\",\n \"leadFormButton\",\n] as const;\n\n/** LinkedIn hands the creative's form back as `urn:li:adForm:N`; every other command names it `urn:li:leadGenForm:N`. */\nfunction leadFormUrn(destination: string | undefined): string | undefined {\n const id = destination?.match(/(\\d+)$/)?.[1];\n return id ? `urn:li:leadGenForm:${id}` : undefined;\n}\n\n/** The fields worth spending context on by default — everything else needs --fields or --full. */\nexport function compactRow(row: LinkedinCreativeRow): Record<string, unknown> {\n const destination = creativeDestination(row.content);\n const leadForm = leadFormUrn(row.leadgenCallToAction?.destination);\n return {\n id: row.id,\n urn: row.urn,\n campaign: row.campaign,\n intendedStatus: row.intendedStatus,\n isServing: row.isServing,\n reviewStatus: row.reviewStatus,\n format: destination.format,\n ...(destination.landingUrl ? { landingUrl: destination.landingUrl } : {}),\n ...(destination.postUrn ? { postUrn: destination.postUrn } : {}),\n ...(leadForm ? { leadForm, leadFormButton: row.leadgenCallToAction?.label } : {}),\n };\n}\n\n/**\n * `content` crosses the wire as an unvalidated bag, so if LinkedIn renames a\n * wrapper key nothing else in the stack would notice — the destination would\n * just quietly stop resolving. Counting the shapes this mapper couldn't read is\n * the cheapest signal that the contract moved.\n */\nexport function unmappedShapeWarnings(rows: LinkedinCreativeRow[], rawContentReturned: boolean): AdsWarning[] {\n const unmapped = rows.filter((row) => row.content && creativeDestination(row.content).format === \"unknown\");\n if (unmapped.length === 0) return [];\n // Under --full the caller already holds the raw `content`, so \"re-read with\n // --full\" is a dead end — point them at what they are already holding.\n const remedy = rawContentReturned\n ? \"Their raw content is in this response — read it directly; this command cannot resolve a destination for them.\"\n : \"Re-read those with --full before drawing any conclusion about where they point.\";\n return [\n {\n code: \"UNMAPPED_CREATIVE_CONTENT\",\n message: `${unmapped.length} of ${rows.length} creatives have a content shape this command can't read, so their destination is missing (ids: ${unmapped\n .slice(0, 5)\n .map((row) => row.id)\n .join(\", \")}). ${remedy}`,\n },\n ];\n}\n\nconst listArgs = {\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 \"campaign-id\": { type: \"string\", description: \"Filter by campaign ID\" },\n \"all-statuses\": { type: \"boolean\", description: \"Drop the default ACTIVE filter\" },\n statuses: { type: \"string\", description: statusesArgDescription(\"creatives\") },\n fields: {\n type: \"string\",\n description: \"CSV of dotted paths to return instead of the compact row, e.g. id,content.textAd.landingPage\",\n },\n full: { type: \"boolean\", description: \"Return the complete raw records, including the opaque 'content' block\" },\n limit: { type: \"string\", description: \"Max rows (default: 500)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n} as const;\n\nconst creativesListCommand = defineCommand({\n meta: {\n name: \"list\",\n description: \"List LinkedIn creatives (ads). Runs by default when no subcommand is given.\",\n },\n args: listArgs,\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n try {\n const params: Record<string, string> = { \"account-id\": accountId };\n const statuses = resolveStatusFilter(args, \"creatives\");\n if (statuses) params.statuses = statuses.join(\",\");\n if (args[\"campaign-id\"]) params[\"campaign-id\"] = String(args[\"campaign-id\"]);\n if (args.limit) params.limit = String(args.limit);\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n\n const data = await apiGet<LinkedinCreativeRow[]>(\"/api/ads/linkedin/creatives\", params);\n const shaped = shapeListRows(data, args as Record<string, unknown>, {\n row: compactRow,\n columns: COMPACT_COLUMNS,\n });\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(shaped.rows, fmt, shaped.fields, shaped.hints);\n return;\n }\n const warnings = unmappedShapeWarnings(data, args.full === true);\n writeJsonEnvelope({\n ok: true,\n data: shaped.rows,\n ...(warnings.length > 0 ? { warnings } : {}),\n ...(shaped.hints ? { hints: shaped.hints } : {}),\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nconst creativesGetCommand = defineCommand({\n meta: {\n name: \"get\",\n description: `Read one ad as LinkedIn holds it: headline, intro text, landing URL, the lead gen form it opens, its review verdict (with rejection reasons) and why it is not serving (notServingBecause — e.g. FORM_HOLD, UNDER_REVIEW, CAMPAIGN_STOPPED).\nThe listing can only name a post-based ad's post; this is where its headline and link come back.\nExample: baker ads linkedin creatives get 1584704523`,\n },\n args: {\n id: { type: \"positional\", description: \"Creative id or urn:li:sponsoredCreative:N\", required: true },\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 },\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n try {\n const data = await apiGet<Record<string, unknown>>(\"/api/ads/linkedin/creative\", {\n \"account-id\": accountId,\n \"creative-id\": String(args.id),\n });\n writeJsonEnvelope({\n ok: true,\n data,\n hints: [\n `These are the stored fields, not what people see. To look at the ad as the feed shows it: baker ads linkedin preview ${String(args.id)} --account-id ${accountId}`,\n ],\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nexport const creativesCommand = defineCommand({\n meta: {\n name: \"creatives\",\n description: `List LinkedIn creatives (ads), or stage writes (create/update/pause/resume/duplicate).\n\nDefaults to ACTIVE intended-status. Pass --all-statuses or --statuses ACTIVE,PAUSED to widen.\n\nRows are compact by default: id, urn, campaign, status, review status, format, and\nthe resolved destination (landingUrl, or postUrn for post-based ads), and for a\nlead gen ad the form it opens (leadForm, leadFormButton). Use --fields\nfor specific dotted paths, or --full for the complete raw records.\n\nPost-based ads (image, video, carousel, document, article, event, TLA) report a\npostUrn, not a landingUrl — their destination lives in the post itself.\nUse 'reviewStatus' to spot rejected/pending creatives during an audit.\n\nWrite subcommands stage ops on this chat's draft — media comes from the Baker\nlibrary and is uploaded to LinkedIn only at publish.\n\nExamples:\n baker ads linkedin creatives --account-id 503001492\n baker ads linkedin creatives --account-id 503001492 --fields id,intendedStatus,content.textAd.landingPage\n baker ads linkedin creatives create --campaign 1234 --format image --image-id <bakerImageId> --intro \"…\" --headline \"Book a demo\" --landing-url https://example.com --cta REQUEST_DEMO\n baker ads linkedin creatives get 1584704523 # one ad: headline, landing URL, form, review, why not serving\n baker ads linkedin creatives pause urn:li:sponsoredCreative:789`,\n },\n subCommands: {\n list: creativesListCommand,\n get: creativesGetCommand,\n create: () => import(\"./write-commands.ts\").then((m) => m.creativesCreateCommand),\n update: () => import(\"./write-commands.ts\").then((m) => m.creativesUpdateCommand),\n pause: () => import(\"./write-commands.ts\").then((m) => m.creativesPauseCommand),\n resume: () => import(\"./write-commands.ts\").then((m) => m.creativesResumeCommand),\n duplicate: () => import(\"./write-commands.ts\").then((m) => m.creativesDuplicateCommand),\n delete: () => import(\"./write-commands.ts\").then((m) => m.creativesDeleteCommand),\n },\n // A parent must never declare `run`: citty falls through to it *after* running\n // the matched subcommand, so every write would also trigger a full live list.\n // `args` stays here so citty's subcommand scan knows which flags take a value.\n args: listArgs,\n default: \"list\",\n});\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import {
|
|
2
|
+
repeatedValues
|
|
3
|
+
} from "./chunk-ERSX3MKH.js";
|
|
4
|
+
import {
|
|
5
|
+
failApi,
|
|
6
|
+
failValidation
|
|
7
|
+
} from "./chunk-BS2MC62Y.js";
|
|
8
|
+
import "./chunk-MKLAZD23.js";
|
|
9
|
+
import "./chunk-QV6AST5T.js";
|
|
10
|
+
import "./chunk-WCU362Z6.js";
|
|
11
|
+
import "./chunk-GIWHHCD6.js";
|
|
12
|
+
import "./chunk-SOPVIIUW.js";
|
|
13
|
+
import "./chunk-G4FG5EQO.js";
|
|
14
|
+
import "./chunk-R7XDGNZD.js";
|
|
15
|
+
import {
|
|
16
|
+
getPublicSuffix,
|
|
17
|
+
parse
|
|
18
|
+
} from "./chunk-MSMTG6OC.js";
|
|
19
|
+
import {
|
|
20
|
+
apiPost
|
|
21
|
+
} from "./chunk-GFWWHCBF.js";
|
|
22
|
+
import "./chunk-JXTNP3B5.js";
|
|
23
|
+
import "./chunk-45D6WRCJ.js";
|
|
24
|
+
import {
|
|
25
|
+
registerSchema,
|
|
26
|
+
writeJson
|
|
27
|
+
} from "./chunk-CCYZJMZ7.js";
|
|
28
|
+
import "./chunk-YQSBHWOI.js";
|
|
29
|
+
|
|
30
|
+
// ../api/src/credentials/contract.ts
|
|
31
|
+
import { z } from "zod";
|
|
32
|
+
|
|
33
|
+
// ../api/src/credentials/hosts.ts
|
|
34
|
+
function normaliseHost(host) {
|
|
35
|
+
return host.trim().toLowerCase().replace(/\.$/, "");
|
|
36
|
+
}
|
|
37
|
+
function asciiHost(host) {
|
|
38
|
+
if (!/[\u0080-\u{10FFFF}]/u.test(host) || /[/?#@:\\%[\]\s]/.test(host)) return host;
|
|
39
|
+
const url = `http://${host}`;
|
|
40
|
+
return URL.canParse(url) ? new URL(url).hostname : host;
|
|
41
|
+
}
|
|
42
|
+
function validateHostPattern(raw) {
|
|
43
|
+
const typed = normaliseHost(raw);
|
|
44
|
+
const wildcard = typed.startsWith("*.");
|
|
45
|
+
const host = asciiHost(wildcard ? typed.slice(2) : typed);
|
|
46
|
+
const pattern = wildcard ? `*.${host}` : host;
|
|
47
|
+
if (host === "" || host.includes("*")) {
|
|
48
|
+
return { ok: false, reason: "Use a website address like api.example.com or *.example.com." };
|
|
49
|
+
}
|
|
50
|
+
const parsed = parse(host);
|
|
51
|
+
if (parsed.isIp || host.startsWith("[")) {
|
|
52
|
+
return { ok: false, reason: "Use a website address, not an IP address." };
|
|
53
|
+
}
|
|
54
|
+
if (parsed.hostname !== host || parsed.domain === null) {
|
|
55
|
+
return { ok: false, reason: "Use only the website address, like api.example.com." };
|
|
56
|
+
}
|
|
57
|
+
if (wildcard && !wildcardSafe(host)) {
|
|
58
|
+
return { ok: false, reason: `*.${host} would allow any website. Name the company's own address.` };
|
|
59
|
+
}
|
|
60
|
+
return { ok: true, pattern };
|
|
61
|
+
}
|
|
62
|
+
var OPEN_HOSTING_DOMAINS = ["amazonaws.com", "cloudfront.net", "googleapis.com", "on.aws"];
|
|
63
|
+
var WITH_PRIVATE = { allowPrivateDomains: true };
|
|
64
|
+
function wildcardSafe(host) {
|
|
65
|
+
if (OPEN_HOSTING_DOMAINS.some((domain) => host === domain || host.endsWith(`.${domain}`))) return false;
|
|
66
|
+
const suffix = getPublicSuffix(host, WITH_PRIVATE);
|
|
67
|
+
return suffix !== host && getPublicSuffix(`zz.${host}`, WITH_PRIVATE) === suffix;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// ../api/src/credentials/placeholder.ts
|
|
71
|
+
var CREDENTIAL_NAME_PATTERN = "[a-z0-9][a-z0-9_-]{0,63}";
|
|
72
|
+
var CREDENTIAL_NAME_RE = new RegExp(`^${CREDENTIAL_NAME_PATTERN}$`);
|
|
73
|
+
var PLACEHOLDER_SOURCE = `\\{\\{credential:(${CREDENTIAL_NAME_PATTERN})\\}\\}`;
|
|
74
|
+
var WHOLE_PLACEHOLDER_RE = new RegExp(`^${PLACEHOLDER_SOURCE}$`);
|
|
75
|
+
|
|
76
|
+
// ../api/src/credentials/contract.ts
|
|
77
|
+
var MAX_CREDENTIAL_VALUE_LENGTH = 16384;
|
|
78
|
+
var MAX_CREDENTIAL_HOSTS = 20;
|
|
79
|
+
var credentialNameSchema = z.string().regex(new RegExp(`^${CREDENTIAL_NAME_PATTERN}$`), "Use lowercase letters, digits, - and _ (max 64).");
|
|
80
|
+
var credentialHostsSchema = z.array(z.string()).max(MAX_CREDENTIAL_HOSTS).transform((hosts, ctx) => {
|
|
81
|
+
const patterns = [];
|
|
82
|
+
for (const host of hosts) {
|
|
83
|
+
const result = validateHostPattern(host);
|
|
84
|
+
if (result.ok) patterns.push(result.pattern);
|
|
85
|
+
else ctx.addIssue({ code: "custom", message: `${host}: ${result.reason}` });
|
|
86
|
+
}
|
|
87
|
+
return [...new Set(patterns)];
|
|
88
|
+
});
|
|
89
|
+
var credentialSourceSchema = z.enum(["user", "agent", "chat-detected", "requested"]);
|
|
90
|
+
var credentialSummarySchema = z.object({
|
|
91
|
+
name: z.string(),
|
|
92
|
+
label: z.string(),
|
|
93
|
+
placeholder: z.string(),
|
|
94
|
+
allowedHosts: z.array(z.string()),
|
|
95
|
+
source: credentialSourceSchema,
|
|
96
|
+
lastUsedAt: z.number().nullable()
|
|
97
|
+
});
|
|
98
|
+
var credentialsListResponseSchema = z.object({ credentials: z.array(credentialSummarySchema) });
|
|
99
|
+
var credentialsPutRequestSchema = z.object({
|
|
100
|
+
name: credentialNameSchema,
|
|
101
|
+
label: z.string().trim().min(1).max(80).optional(),
|
|
102
|
+
value: z.string().min(1).max(MAX_CREDENTIAL_VALUE_LENGTH),
|
|
103
|
+
allowedHosts: credentialHostsSchema
|
|
104
|
+
});
|
|
105
|
+
var credentialsPutResponseSchema = z.object({
|
|
106
|
+
name: z.string(),
|
|
107
|
+
placeholder: z.string(),
|
|
108
|
+
replaced: z.boolean()
|
|
109
|
+
});
|
|
110
|
+
var credentialsDeleteRequestSchema = z.object({ name: credentialNameSchema });
|
|
111
|
+
var credentialsDeleteResponseSchema = z.object({ name: z.string(), deleted: z.literal(true) });
|
|
112
|
+
var brokerResolveResponseSchema = z.object({
|
|
113
|
+
credentials: z.array(z.object({ name: z.string(), value: z.string(), allowedHosts: z.array(z.string()) }))
|
|
114
|
+
});
|
|
115
|
+
var brokerUsageRequestSchema = z.object({
|
|
116
|
+
uses: z.array(z.object({ name: credentialNameSchema, host: z.string().max(253) })).max(100)
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
// src/commands/credentials/index.ts
|
|
120
|
+
import { defineCommand } from "citty";
|
|
121
|
+
var DOC = "__tooling__/docs/tools/baker/credentials.md";
|
|
122
|
+
var STDIN_ONLY = 'The value is read from stdin only, never from the command line (argv is visible to other processes and lands in logs). Pipe it: printf %s "$VALUE" | baker credentials put <name> --host <host>. For a credential the user owns, call request_credential instead.';
|
|
123
|
+
registerSchema({
|
|
124
|
+
command: "credentials.list",
|
|
125
|
+
description: "Start here: the credentials (API keys, tokens, passwords) this company stored, by name \u2014 never their values. Write the `placeholder` ({{credential:NAME}}) into an HTTPS request (curl header, URL, SDK config, JSON body) and the sandbox proxy sends the real value, only to the credential's allowedHosts. Nothing listed? Ask the user with the request_credential tool. Compact by default; --full adds source and lastUsedAt.",
|
|
126
|
+
args: {
|
|
127
|
+
full: { type: "boolean", description: "Add source and lastUsedAt per credential", required: false, default: false }
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
registerSchema({
|
|
131
|
+
command: "credentials.put",
|
|
132
|
+
description: `Store a credential YOU created on the user's behalf (e.g. a key you just generated through an API), so later requests can use {{credential:NAME}}. Example: printf %s "$KEY" | baker credentials put stripe-key --host api.stripe.com --label "Stripe key". The value comes from stdin ONLY. For a credential the user owns, call request_credential instead \u2014 never ask for it in chat. Replacing is allowed only for credentials the agent created.`,
|
|
133
|
+
args: {
|
|
134
|
+
name: { type: "positional", description: "Lowercase name: letters, digits, - and _ (max 64)", required: true },
|
|
135
|
+
host: {
|
|
136
|
+
type: "string",
|
|
137
|
+
description: "Website the value may be sent to (repeatable, or comma-separated): api.stripe.com, acme-store.myshopify.com",
|
|
138
|
+
required: true
|
|
139
|
+
},
|
|
140
|
+
label: { type: "string", description: "Human-readable label shown in Settings \u2192 Credentials", required: false }
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
registerSchema({
|
|
144
|
+
command: "credentials.delete",
|
|
145
|
+
description: "Delete a credential the agent created (e.g. a key it rotated out). Credentials the user added can only be removed by the user, in Settings \u2192 Credentials.",
|
|
146
|
+
args: {
|
|
147
|
+
name: { type: "positional", description: "Credential name", required: true }
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
async function readPipedValue() {
|
|
151
|
+
const stdin = process.stdin;
|
|
152
|
+
if (stdin.isTTY) return "";
|
|
153
|
+
const chunks = [];
|
|
154
|
+
for await (const chunk of stdin) {
|
|
155
|
+
chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
|
|
156
|
+
}
|
|
157
|
+
return Buffer.concat(chunks).toString("utf8").replace(/\r?\n$/, "");
|
|
158
|
+
}
|
|
159
|
+
function parseName(raw) {
|
|
160
|
+
const parsed = credentialNameSchema.safeParse(raw);
|
|
161
|
+
if (!parsed.success) {
|
|
162
|
+
failValidation(`Invalid credential name "${String(raw)}": use lowercase letters, digits, - and _ (max 64).`);
|
|
163
|
+
}
|
|
164
|
+
return parsed.data;
|
|
165
|
+
}
|
|
166
|
+
function parseHosts(rawArgs, parsed) {
|
|
167
|
+
const hosts = repeatedValues(rawArgs, "host", parsed).flatMap((value) => value.split(",")).map((host) => host.trim()).filter((host) => host !== "");
|
|
168
|
+
if (hosts.length === 0) {
|
|
169
|
+
failValidation("Name at least one website the value may be sent to: --host api.example.com (repeatable).");
|
|
170
|
+
}
|
|
171
|
+
const result = credentialHostsSchema.safeParse(hosts);
|
|
172
|
+
if (!result.success) {
|
|
173
|
+
failValidation(`Invalid --host: ${result.error.issues.map((issue) => issue.message).join("; ")}`);
|
|
174
|
+
}
|
|
175
|
+
return result.data;
|
|
176
|
+
}
|
|
177
|
+
var listCommand = defineCommand({
|
|
178
|
+
meta: {
|
|
179
|
+
name: "list",
|
|
180
|
+
description: "Start here: stored credentials by name with their {{credential:NAME}} placeholder and allowed websites. Never shows values."
|
|
181
|
+
},
|
|
182
|
+
args: {
|
|
183
|
+
full: { type: "boolean", description: "Add source and lastUsedAt", required: false, default: false }
|
|
184
|
+
},
|
|
185
|
+
run: async ({ args }) => {
|
|
186
|
+
try {
|
|
187
|
+
const response = await apiPost("/api/credentials/list", {});
|
|
188
|
+
const credentials = response.data.credentials.map(
|
|
189
|
+
(credential) => args.full ? credential : {
|
|
190
|
+
name: credential.name,
|
|
191
|
+
placeholder: credential.placeholder,
|
|
192
|
+
allowedHosts: credential.allowedHosts,
|
|
193
|
+
label: credential.label
|
|
194
|
+
}
|
|
195
|
+
);
|
|
196
|
+
writeJson({
|
|
197
|
+
ok: true,
|
|
198
|
+
data: { credentials },
|
|
199
|
+
meta: { count: credentials.length },
|
|
200
|
+
...credentials.length === 0 ? {
|
|
201
|
+
hints: [
|
|
202
|
+
"No credentials stored. When the task needs one the user owns, call the request_credential tool (label, reason, allowedHosts) \u2014 never ask them to paste it in chat."
|
|
203
|
+
]
|
|
204
|
+
} : {}
|
|
205
|
+
});
|
|
206
|
+
} catch (err) {
|
|
207
|
+
failApi(err);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
var putCommand = defineCommand({
|
|
212
|
+
meta: {
|
|
213
|
+
name: "put",
|
|
214
|
+
description: `Store a credential you created on the user's behalf; the value is read from stdin only.
|
|
215
|
+
Start here: printf %s "$KEY" | baker credentials put stripe-key --host api.stripe.com
|
|
216
|
+
For a credential the user owns, call request_credential instead.`
|
|
217
|
+
},
|
|
218
|
+
args: {
|
|
219
|
+
name: { type: "positional", description: "Lowercase name: letters, digits, - and _ (max 64)", required: true },
|
|
220
|
+
host: {
|
|
221
|
+
type: "string",
|
|
222
|
+
description: "Website the value may be sent to (repeatable, or comma-separated)",
|
|
223
|
+
required: false
|
|
224
|
+
},
|
|
225
|
+
label: { type: "string", description: "Label shown in Settings \u2192 Credentials", required: false },
|
|
226
|
+
value: {
|
|
227
|
+
type: "string",
|
|
228
|
+
description: "Refused \u2014 never put a value on the command line. Pipe it on stdin.",
|
|
229
|
+
required: false
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
run: async ({ args, rawArgs }) => {
|
|
233
|
+
if (args.value !== void 0 || args._.length > 1) {
|
|
234
|
+
failValidation(STDIN_ONLY);
|
|
235
|
+
}
|
|
236
|
+
const name = parseName(args.name);
|
|
237
|
+
const allowedHosts = parseHosts(rawArgs, args.host);
|
|
238
|
+
const value = await readPipedValue();
|
|
239
|
+
if (value === "") {
|
|
240
|
+
failValidation(`Nothing was piped on stdin. ${STDIN_ONLY}`);
|
|
241
|
+
}
|
|
242
|
+
if (value.length > MAX_CREDENTIAL_VALUE_LENGTH) {
|
|
243
|
+
failValidation(`The value is longer than ${MAX_CREDENTIAL_VALUE_LENGTH} characters.`);
|
|
244
|
+
}
|
|
245
|
+
const body = { name, value, allowedHosts, ...args.label ? { label: args.label } : {} };
|
|
246
|
+
try {
|
|
247
|
+
const response = await apiPost("/api/credentials/put", body);
|
|
248
|
+
writeJson({
|
|
249
|
+
ok: true,
|
|
250
|
+
data: { name: response.data.name, placeholder: response.data.placeholder },
|
|
251
|
+
hints: [
|
|
252
|
+
`Use ${response.data.placeholder} in the request; the value is sent only to: ${allowedHosts.join(", ")}.`,
|
|
253
|
+
"Never echo, print or write the value anywhere \u2014 unset the shell variable that held it."
|
|
254
|
+
]
|
|
255
|
+
});
|
|
256
|
+
} catch (err) {
|
|
257
|
+
failApi(err);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
var deleteCommand = defineCommand({
|
|
262
|
+
meta: {
|
|
263
|
+
name: "delete",
|
|
264
|
+
description: "Delete a credential the agent created. User-added credentials are removed by the user in Settings \u2192 Credentials."
|
|
265
|
+
},
|
|
266
|
+
args: {
|
|
267
|
+
name: { type: "positional", description: "Credential name", required: true }
|
|
268
|
+
},
|
|
269
|
+
run: async ({ args }) => {
|
|
270
|
+
const name = parseName(args.name);
|
|
271
|
+
try {
|
|
272
|
+
const response = await apiPost("/api/credentials/delete", { name });
|
|
273
|
+
writeJson({ ok: true, data: response.data });
|
|
274
|
+
} catch (err) {
|
|
275
|
+
failApi(err);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
var credentialsCommand = defineCommand({
|
|
280
|
+
meta: {
|
|
281
|
+
name: "credentials",
|
|
282
|
+
description: `Credentials (API keys, tokens, passwords) by name: write {{credential:NAME}} in an HTTPS request and the value is sent only to the websites it is bound to. You never see values.
|
|
283
|
+
Full guide: ${DOC}`
|
|
284
|
+
},
|
|
285
|
+
subCommands: { list: listCommand, put: putCommand, delete: deleteCommand }
|
|
286
|
+
});
|
|
287
|
+
export {
|
|
288
|
+
credentialsCommand
|
|
289
|
+
};
|
|
290
|
+
//# sourceMappingURL=credentials-J5DMQJWN.js.map
|