@koda-sl/baker-cli 0.571.0-dev.6a3439a0a → 0.571.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 +2 -1
- package/dist/account-52WDLW4Z.js +82 -0
- package/dist/account-7KZ7MHMN.js +82 -0
- package/dist/account-reads-CQIJCPCH.js +219 -0
- package/dist/account-users-NUI3ILRE.js +64 -0
- package/dist/account-writes-3BJSUM2V.js +68 -0
- package/dist/accounts-FLKNFDIE.js +713 -0
- package/dist/accounts-I2ZLR76R.js +80 -0
- package/dist/accounts-ZV4IXOF5.js +119 -0
- package/dist/actions-IR47GVZ6.js +55 -0
- package/dist/activecampaign-MNJYIWJL.js +938 -0
- package/dist/ad-group-writes-KU4QMQZP.js +172 -0
- package/dist/ad-groups-NMW2G32A.js +70 -0
- package/dist/ad-writes-7NOFTOM4.js +176 -0
- package/dist/add-4I25INAO.js +107 -0
- package/dist/add-QMTD6EGI.js +305 -0
- package/dist/ads-P4Z3MLKS.js +79 -0
- package/dist/ads-PWTQC6KV.js +48 -0
- package/dist/advertisers-LOIXTTGP.js +123 -0
- package/dist/analytics-6AHC3J4L.js +447 -0
- package/dist/analytics-NL2KGDLK.js +2437 -0
- package/dist/animate-VX7E7KJE.js +480 -0
- package/dist/assign-NKHIHVGI.js +80 -0
- package/dist/audience-size-WEOM6XIL.js +76 -0
- package/dist/audiences-P3SPTAJT.js +280 -0
- package/dist/audit-4RIBJ7BR.js +154 -0
- package/dist/autocomplete-FMTJDXTL.js +114 -0
- package/dist/avatars-LY5SFMWO.js +38 -0
- package/dist/bid-pricing-MQ7WLV5U.js +103 -0
- package/dist/brand-LR5IXW3W.js +22 -0
- package/dist/brief-4DSXIX3F.js +543 -0
- package/dist/campaign-groups-EZYLKMO2.js +99 -0
- package/dist/campaign-writes-P5XPFTRK.js +176 -0
- package/dist/campaign-writes-UMENYMKO.js +168 -0
- package/dist/campaigns-PP2DQMJE.js +113 -0
- package/dist/campaigns-SWZJVE2T.js +78 -0
- package/dist/campaigns-TAFDM242.js +111 -0
- package/dist/canvas-RKR3ZB4E.js +46 -0
- package/dist/capabilities-45RZ6E6W.js +147 -0
- package/dist/catalog-TOHUVBEU.js +66 -0
- package/dist/catalogs-V7PTEJBO.js +130 -0
- package/dist/changes-5OW3UYMF.js +167 -0
- package/dist/chatgpt-JBMYNVJB.js +47 -0
- package/dist/chats-VOLBYA3R.js +584 -0
- package/dist/check-4DI73QX4.js +107 -0
- package/dist/chunk-22RM3UOO.js +63 -0
- package/dist/chunk-2N7TB346.js +5368 -0
- package/dist/chunk-2N7TB346.js.map +1 -0
- package/dist/chunk-2Q7K4F4H.js +7899 -0
- package/dist/chunk-2Q7K4F4H.js.map +1 -0
- package/dist/chunk-2TS2ITSG.js +392 -0
- package/dist/chunk-2YXTXSYG.js +454 -0
- package/dist/chunk-2Z6PFHD2.js +91 -0
- package/dist/chunk-47VWQ7FQ.js +843 -0
- package/dist/chunk-4QFMRL6O.js +455 -0
- package/dist/chunk-5OC6VUDZ.js +930 -0
- package/dist/chunk-5VXEH72O.js +249 -0
- package/dist/chunk-B4BITHOD.js +2235 -0
- package/dist/chunk-B4BITHOD.js.map +1 -0
- package/dist/chunk-BFAPSFS7.js +1518 -0
- package/dist/chunk-BMMXYR7A.js +238 -0
- package/dist/chunk-BNEWJXKU.js +638 -0
- package/dist/chunk-BXTIG5JL.js +66 -0
- package/dist/chunk-C7KV5O5J.js +274 -0
- package/dist/chunk-CDPX6WAL.js +207 -0
- package/dist/chunk-COOJKEJE.js +312 -0
- package/dist/chunk-CTJWMZPL.js +430 -0
- package/dist/chunk-D5HD46VV.js +163 -0
- package/dist/chunk-EGICPBDY.js +1920 -0
- package/dist/chunk-EGICPBDY.js.map +1 -0
- package/dist/chunk-EKOMZH2S.js +685 -0
- package/dist/chunk-ELC42LJJ.js +8954 -0
- package/dist/chunk-ELC42LJJ.js.map +1 -0
- package/dist/chunk-G4FU6VC5.js +23 -0
- package/dist/chunk-H3RCEM6L.js +61 -0
- package/dist/chunk-H7LKYGLJ.js +24026 -0
- package/dist/chunk-H7LKYGLJ.js.map +1 -0
- package/dist/chunk-HM4NWA72.js +5471 -0
- package/dist/chunk-I33FO2ON.js +170 -0
- package/dist/chunk-IAE24RKD.js +604 -0
- package/dist/chunk-IB6VWG32.js +755 -0
- package/dist/chunk-IB6VWG32.js.map +1 -0
- package/dist/chunk-IGCS3X4F.js +150 -0
- package/dist/chunk-IJ6WA2JW.js +148 -0
- package/dist/chunk-ITIUWJGQ.js +131 -0
- package/dist/chunk-J4BJLHLQ.js +3510 -0
- package/dist/chunk-J4BJLHLQ.js.map +1 -0
- package/dist/chunk-JAC6JVCI.js +26 -0
- package/dist/chunk-JCDCIQMA.js +479 -0
- package/dist/chunk-JGK2FDZW.js +1919 -0
- package/dist/chunk-JSOOLOHP.js +468 -0
- package/dist/chunk-JT3UUBID.js +142 -0
- package/dist/chunk-KUI74TNG.js +169 -0
- package/dist/chunk-LAOCXV6Z.js +98 -0
- package/dist/chunk-LQACNCAV.js +334 -0
- package/dist/chunk-MC5F2L64.js +962 -0
- package/dist/chunk-MCJ5I5LR.js +3187 -0
- package/dist/chunk-MCJ5I5LR.js.map +1 -0
- package/dist/chunk-MKG57P2E.js +783 -0
- package/dist/chunk-MZPS46OR.js +76 -0
- package/dist/chunk-O2ECZKXP.js +197 -0
- package/dist/chunk-OJZKY5UM.js +46 -0
- package/dist/chunk-P4UCSXNA.js +156 -0
- package/dist/chunk-QLO4RNHU.js +51 -0
- package/dist/chunk-QSS34JWZ.js +224 -0
- package/dist/chunk-QVHZTCB5.js +1254 -0
- package/dist/chunk-RVIBHENP.js +344 -0
- package/dist/chunk-TEJOILEY.js +203 -0
- package/dist/chunk-TEQEZAJI.js +1320 -0
- package/dist/chunk-TNI7CN4L.js +547 -0
- package/dist/chunk-TPJ34LXX.js +220 -0
- package/dist/chunk-U6AWJIFP.js +225 -0
- package/dist/chunk-V5ODOBBI.js +399 -0
- package/dist/chunk-VAURJ4QJ.js +89 -0
- package/dist/chunk-VAV5CCDD.js +167 -0
- package/dist/chunk-VWHUO3AP.js +103 -0
- package/dist/chunk-W3TZPHZO.js +285 -0
- package/dist/chunk-WZATC4O5.js +297 -0
- package/dist/chunk-X25XRSDP.js +57 -0
- package/dist/chunk-XGG72YRO.js +91 -0
- package/dist/chunk-XHWHBGKX.js +4277 -0
- package/dist/chunk-XHWHBGKX.js.map +1 -0
- package/dist/chunk-XWAOECD2.js +831 -0
- package/dist/chunk-YDALLZNS.js +494 -0
- package/dist/chunk-Z3RGBLVJ.js +64 -0
- package/dist/chunk-Z5JWFNG4.js +19 -0
- package/dist/claim-3UMAFZEM.js +200 -0
- package/dist/cli.js +32 -32
- package/dist/companies-RL5A26AT.js +198 -0
- package/dist/company-DJ44F5C6.js +308 -0
- package/dist/complete-PGNIP3LN.js +84 -0
- package/dist/connect-ROARWN63.js +45 -0
- package/dist/conversation-GDFMJL7X.js +96 -0
- package/dist/conversion-report-2FREFML5.js +127 -0
- package/dist/conversion-upload-command-JAGV6GMG.js +439 -0
- package/dist/conversion-writes-JZIJSQ7T.js +122 -0
- package/dist/conversions-2IFWDQKK.js +140 -0
- package/dist/conversions-Q5EBTEXA.js +78 -0
- package/dist/create-B5DIYK5D.js +218 -0
- package/dist/create-BRCSXXFO.js +239 -0
- package/dist/create-PXAUL6FF.js +62 -0
- package/dist/create-R6CMATVY.js +135 -0
- package/dist/creatives-D6O6Z46U.js +229 -0
- package/dist/creatives-XNVWQWFF.js +58 -0
- package/dist/credentials-CLJO7WWY.js +290 -0
- package/dist/critique-MBMKW6SL.js +1451 -0
- package/dist/critique-OUJDTVMI.js +232 -0
- package/dist/crm-H5ITJ2RC.js +229 -0
- package/dist/crm-JJHYRABB.js +323 -0
- package/dist/currency-EFDQYW5B.js +88 -0
- package/dist/customers-C5YXAVXI.js +65 -0
- package/dist/delete-3GYCQK6B.js +57 -0
- package/dist/delete-NBUDIGSD.js +69 -0
- package/dist/delete-WZ3KVVX5.js +67 -0
- package/dist/demographics-O7AJW7DO.js +141 -0
- package/dist/discard-RMVZAX2J.js +69 -0
- package/dist/discover-BPUUWRBP.js +172 -0
- package/dist/domain-J3ZMBOHS.js +101 -0
- package/dist/download-ZVOGLTFB.js +172 -0
- package/dist/draft-6PJD3MCW.js +374 -0
- package/dist/draft-GCOCG4PO.js +315 -0
- package/dist/draft-GSDDK6FO.js +614 -0
- package/dist/draft-GSDDK6FO.js.map +1 -0
- package/dist/draft-TPR3DH5N.js +220 -0
- package/dist/draft-ZPGGWU7E.js +332 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-MM4BYHRH.js +236 -0
- package/dist/extract-JMY6YRPW.js +143 -0
- package/dist/facets-B5AZAU2C.js +117 -0
- package/dist/feedback-2EVDGTEN.js +115 -0
- package/dist/feedback-4MCMOMVN.js +114 -0
- package/dist/feedback-record-DL7UEU2H.js +269 -0
- package/dist/fetch-JDNFK476.js +204 -0
- package/dist/fit-DKVH5BDW.js +65 -0
- package/dist/flows-LURTZICL.js +340 -0
- package/dist/fonts-HUXFDDAE.js +39 -0
- package/dist/forecast-HMNQZFVL.js +169 -0
- package/dist/forecast-UHTW4Y7Q.js +121 -0
- package/dist/funnel-QM7WFFMD.js +397 -0
- package/dist/generate-KAWRRYTT.js +263 -0
- package/dist/get-237TYJZT.js +82 -0
- package/dist/get-FWPR2YPC.js +62 -0
- package/dist/google-3CAUWNWE.js +3300 -0
- package/dist/google-DTSLO3PT.js +163 -0
- package/dist/google-ads-RZOQQDQN.js +198 -0
- package/dist/history-H7S7XRBX.js +153 -0
- package/dist/history-XL52537O.js +102 -0
- package/dist/history-YQSYXBJH.js +69 -0
- package/dist/hubspot-2DSISSUI.js +814 -0
- package/dist/ideas-2XBFQJ56.js +45 -0
- package/dist/images-VFRQ32G5.js +92 -0
- package/dist/ingest-4RPLN54K.js +28 -0
- package/dist/ingest-TPVH44VI.js +131 -0
- package/dist/insights-UVCFOB3N.js +132 -0
- package/dist/inspect-VD3GVXDU.js +192 -0
- package/dist/intent-F5NTOSQC.js +95 -0
- package/dist/keyword-gap-EB5QATYN.js +130 -0
- package/dist/keyword-metrics-PW2DDIJW.js +200 -0
- package/dist/keywords-for-site-JEPABY6E.js +131 -0
- package/dist/landing-4N6YSB4L.js +28 -0
- package/dist/languages-4S26FJDP.js +40 -0
- package/dist/leads-R5OZJQHW.js +115 -0
- package/dist/learn-AQ2FRFB7.js +207 -0
- package/dist/line-item-writes-LGO7HIJJ.js +211 -0
- package/dist/line-items-AAZVKQ7E.js +107 -0
- package/dist/link-7IGHVARH.js +67 -0
- package/dist/linkedin-UB2CW4KP.js +1344 -0
- package/dist/linkedin-person-D6U2ZAUW.js +139 -0
- package/dist/list-P44QRX2O.js +154 -0
- package/dist/list-UMJACDTQ.js +67 -0
- package/dist/list-VZKUHY4Y.js +306 -0
- package/dist/locations-UWBQLHXW.js +40 -0
- package/dist/locations-WXGOI3VV.js +69 -0
- package/dist/log-6ZKMUTYS.js +95 -0
- package/dist/make-5CEIJRBC.js +1367 -0
- package/dist/map-ZL4MQVJZ.js +445 -0
- package/dist/mcp-GSRYLRD4.js +729 -0
- package/dist/media-sources-VSPVHLYN.js +35 -0
- package/dist/members-L6SXP6GC.js +47 -0
- package/dist/metrics-4AFEEDVP.js +152 -0
- package/dist/models-2ZEM64H5.js +155 -0
- package/dist/normalize-GK7DH7ZP.js +144 -0
- package/dist/options-FDAAHG7C.js +125 -0
- package/dist/organization-K2FTFAAO.js +949 -0
- package/dist/performance-N3UROH7Z.js +5565 -0
- package/dist/performance-RG2HR46T.js +27 -0
- package/dist/pixels-HEI5WVAO.js +62 -0
- package/dist/preview-NVWIEUHF.js +101 -0
- package/dist/promoted-tweet-writes-7QZRFDOM.js +183 -0
- package/dist/promoted-tweets-V555Y7DN.js +119 -0
- package/dist/publish-5KR6YLA6.js +350 -0
- package/dist/query-K7MYBRTS.js +62 -0
- package/dist/reddit-XPQ7YAJW.js +29 -0
- package/dist/refresh-XFHEBSDU.js +97 -0
- package/dist/release-3ECEF26P.js +63 -0
- package/dist/relevant-pages-XYQKVX3U.js +99 -0
- package/dist/remove-OCTUC3RB.js +53 -0
- package/dist/reopen-JRI3TYD4.js +66 -0
- package/dist/rerun-HWWYCDT2.js +97 -0
- package/dist/research-ODPU62BA.js +265 -0
- package/dist/research-TG5CBTYP.js +75 -0
- package/dist/reset-J2NLNITD.js +57 -0
- package/dist/reset-SRU7YJUR.js +57 -0
- package/dist/resolve-KHMMUGB2.js +124 -0
- package/dist/retry-VLH4AO7F.js +65 -0
- package/dist/retry-WP7LWKZF.js +63 -0
- package/dist/revenue-EEIS2AV5.js +91 -0
- package/dist/rules-TTUGQAEB.js +99 -0
- package/dist/rules-add-AIXUAZXG.js +465 -0
- package/dist/run-AQTACLY6.js +69 -0
- package/dist/run-YA6IWQAJ.js +72 -0
- package/dist/scaffold-ad-IYNFJPT7.js +1513 -0
- package/dist/scaffold-static-ad-SPYKSAJR.js +1012 -0
- package/dist/scaffold-static-ad-SPYKSAJR.js.map +1 -0
- package/dist/scaffold-video-BUN27PKS.js +885 -0
- package/dist/schedule-EH2MOC5C.js +64 -0
- package/dist/scheduled-agents-DTAEP25E.js +55 -0
- package/dist/schema-7B4MVVAS.js +135 -0
- package/dist/search-ZZWIJRXJ.js +177 -0
- package/dist/select-LWZRF7KV.js +110 -0
- package/dist/set-prompt-YKDH6FYK.js +199 -0
- package/dist/setup-links-OE6PC2YQ.js +144 -0
- package/dist/shopify-CCPLZI2H.js +4009 -0
- package/dist/site-FW5BBLYG.js +180 -0
- package/dist/sources-WPHMWBEK.js +30 -0
- package/dist/sources-X77TGJ52.js +457 -0
- package/dist/stale-SPCDL73V.js +90 -0
- package/dist/status-FLETGJ2A.js +65 -0
- package/dist/stock-5AOSQH52.js +212 -0
- package/dist/studio-4EV5S7PR.js +49 -0
- package/dist/sync-363VKXU3.js +57 -0
- package/dist/sync-definition-ZDE5L644.js +70 -0
- package/dist/tags-6MN3AWKN.js +23 -0
- package/dist/tags-VOKUNEIW.js +227 -0
- package/dist/tags-Y6MNMIEA.js +23 -0
- package/dist/tags-YHAC3NVY.js +23 -0
- package/dist/tags-ZCQMJ5YH.js +26 -0
- package/dist/targeting-criteria-ECQFHQF3.js +113 -0
- package/dist/targets-U2JHTB5U.js +106 -0
- package/dist/testimonials-IDVLMXDT.js +32 -0
- package/dist/themes-FW3VWZJE.js +95 -0
- package/dist/top-companies-CBI4O3ZB.js +111 -0
- package/dist/transcript-IIRFTFRW.js +165 -0
- package/dist/translate-N6QW4FZB.js +603 -0
- package/dist/triggers-Q3KRAMA3.js +144 -0
- package/dist/unlink-7RVQXKAR.js +70 -0
- package/dist/unstage-3LPHNZKR.js +88 -0
- package/dist/update-AL3LBHGK.js +192 -0
- package/dist/update-AWR7EHGA.js +155 -0
- package/dist/update-LNSSLZXG.js +66 -0
- package/dist/update-YBTFH5MN.js +101 -0
- package/dist/upload-45GCGMA5.js +137 -0
- package/dist/url-options-AHJPR5VY.js +131 -0
- package/dist/url-params-U6ZM4LL2.js +101 -0
- package/dist/validate-S325RXPH.js +135 -0
- package/dist/videos-NW2UP342.js +41 -0
- package/dist/viewer-check-IDXFRRCO.js +83 -0
- package/dist/web-VMPKMBKA.js +173 -0
- package/dist/winning-ads-7UJXCWFH.js +86 -0
- package/dist/write-commands-R42DQEW6.js +1524 -0
- package/dist/x-UGTUOCVR.js +47 -0
- package/package.json +1 -1
- package/dist/account-EXGRZIXS.js +0 -82
- package/dist/account-JVDP5ERG.js +0 -82
- package/dist/account-reads-Z467VAL4.js +0 -219
- package/dist/account-users-342OZALE.js +0 -64
- package/dist/account-writes-KEXINJ5D.js +0 -68
- package/dist/accounts-QESGQJGZ.js +0 -713
- package/dist/accounts-QR6OQ3GC.js +0 -119
- package/dist/accounts-UWC2TT6R.js +0 -80
- package/dist/actions-NT3HXFFA.js +0 -55
- package/dist/activecampaign-EYRHDSXY.js +0 -938
- package/dist/ad-group-writes-SVR4RCKB.js +0 -172
- package/dist/ad-groups-C726HUXS.js +0 -70
- package/dist/ad-writes-RWJIWGEL.js +0 -176
- package/dist/add-EPOHDTUO.js +0 -305
- package/dist/add-NSW26HIM.js +0 -107
- package/dist/ads-3KK7VQPU.js +0 -79
- package/dist/ads-EWZGIC4T.js +0 -48
- package/dist/advertisers-AHOWL3YL.js +0 -123
- package/dist/analytics-7H6NDVUQ.js +0 -447
- package/dist/analytics-GFFXCMLV.js +0 -2437
- package/dist/animate-GTUI7XX4.js +0 -480
- package/dist/assign-SDPPWP3Q.js +0 -80
- package/dist/audience-size-LKDDHKED.js +0 -76
- package/dist/audiences-6L43K2T2.js +0 -280
- package/dist/audit-TSZIQTUB.js +0 -154
- package/dist/autocomplete-5BSAOAMZ.js +0 -114
- package/dist/avatars-S6RRD7M3.js +0 -38
- package/dist/bid-pricing-5KUAINH4.js +0 -103
- package/dist/brand-KFK2MQWW.js +0 -22
- package/dist/brief-6DV2PKAU.js +0 -543
- package/dist/campaign-groups-5RPZPDNW.js +0 -99
- package/dist/campaign-writes-FUIGN5OR.js +0 -176
- package/dist/campaign-writes-XMYBEVZF.js +0 -168
- package/dist/campaigns-5A3IE735.js +0 -111
- package/dist/campaigns-JNP3VDZK.js +0 -113
- package/dist/campaigns-N2SWSBYT.js +0 -78
- package/dist/canvas-CHFNQTLY.js +0 -46
- package/dist/capabilities-2W3SRZ2I.js +0 -147
- package/dist/catalog-6BER3SF7.js +0 -66
- package/dist/catalogs-G5NOKL4L.js +0 -130
- package/dist/changes-AS4RVEAL.js +0 -167
- package/dist/chatgpt-O6EEAYLF.js +0 -47
- package/dist/chats-4JLWMUAC.js +0 -584
- package/dist/check-BOKLY5WG.js +0 -107
- package/dist/chunk-3KUNRKNV.js +0 -430
- package/dist/chunk-3UNMVVSI.js +0 -917
- package/dist/chunk-3UNMVVSI.js.map +0 -1
- package/dist/chunk-4INBMXUS.js +0 -930
- package/dist/chunk-5NMKNHJI.js +0 -46
- package/dist/chunk-6D7WTUF3.js +0 -98
- package/dist/chunk-6DSPB6YA.js +0 -7904
- package/dist/chunk-6DSPB6YA.js.map +0 -1
- package/dist/chunk-6FQ7CJEX.js +0 -57
- package/dist/chunk-6OIKNJ7G.js +0 -26
- package/dist/chunk-6OZDN2FI.js +0 -19
- package/dist/chunk-75OGTGC4.js +0 -89
- package/dist/chunk-AXLKR3E4.js +0 -66
- package/dist/chunk-BEZEZHQ6.js +0 -455
- package/dist/chunk-BMK4F4CU.js +0 -169
- package/dist/chunk-C52Q3L4C.js +0 -51
- package/dist/chunk-CST52ZME.js +0 -142
- package/dist/chunk-CUTTTFAU.js +0 -783
- package/dist/chunk-D32EWSMB.js +0 -150
- package/dist/chunk-DW3H2XQA.js +0 -91
- package/dist/chunk-EAA273XW.js +0 -2250
- package/dist/chunk-EAA273XW.js.map +0 -1
- package/dist/chunk-EM5R3BYC.js +0 -131
- package/dist/chunk-EMR5KGNY.js +0 -685
- package/dist/chunk-EONUZOJV.js +0 -962
- package/dist/chunk-F3CZFUXZ.js +0 -3187
- package/dist/chunk-F3CZFUXZ.js.map +0 -1
- package/dist/chunk-GRX3JXSR.js +0 -843
- package/dist/chunk-H4RHZJ65.js +0 -207
- package/dist/chunk-HFIHXIYY.js +0 -547
- package/dist/chunk-HOA74TOS.js +0 -249
- package/dist/chunk-HQDNDKNR.js +0 -5471
- package/dist/chunk-HXSYWXLH.js +0 -709
- package/dist/chunk-HXSYWXLH.js.map +0 -1
- package/dist/chunk-I3QLWGKS.js +0 -64
- package/dist/chunk-IMS53EQU.js +0 -4277
- package/dist/chunk-IMS53EQU.js.map +0 -1
- package/dist/chunk-J4AWNWKN.js +0 -1919
- package/dist/chunk-JAK5VDSG.js +0 -103
- package/dist/chunk-JGSEHX2Q.js +0 -3107
- package/dist/chunk-JGSEHX2Q.js.map +0 -1
- package/dist/chunk-JLAFNORO.js +0 -285
- package/dist/chunk-KG5VNPKU.js +0 -91
- package/dist/chunk-KJHG2DWS.js +0 -170
- package/dist/chunk-LAMSUL26.js +0 -1518
- package/dist/chunk-LLTHDEM2.js +0 -479
- package/dist/chunk-M5PZ6QQB.js +0 -312
- package/dist/chunk-MFGUR5OD.js +0 -334
- package/dist/chunk-MZLPOYCC.js +0 -10058
- package/dist/chunk-MZLPOYCC.js.map +0 -1
- package/dist/chunk-NOCBNING.js +0 -638
- package/dist/chunk-NWLK5RPA.js +0 -197
- package/dist/chunk-PR5OPERY.js +0 -167
- package/dist/chunk-QGAUDVMR.js +0 -148
- package/dist/chunk-QRRAMUKV.js +0 -468
- package/dist/chunk-QZ4YHQLW.js +0 -63
- package/dist/chunk-RGLTITIH.js +0 -494
- package/dist/chunk-RIVQ4PQQ.js +0 -225
- package/dist/chunk-RLLPY62L.js +0 -163
- package/dist/chunk-RQHXWPET.js +0 -61
- package/dist/chunk-RULW4627.js +0 -23
- package/dist/chunk-S4RCF3YT.js +0 -156
- package/dist/chunk-SIKCVWM3.js +0 -76
- package/dist/chunk-TCLJRWST.js +0 -831
- package/dist/chunk-UVUY6FLV.js +0 -1254
- package/dist/chunk-V4HS5JRL.js +0 -1320
- package/dist/chunk-WTOBG3YL.js +0 -392
- package/dist/chunk-WYMX3F47.js +0 -399
- package/dist/chunk-WZXMZFVB.js +0 -238
- package/dist/chunk-X5YHMGAT.js +0 -224
- package/dist/chunk-X7USE7IA.js +0 -24026
- package/dist/chunk-X7USE7IA.js.map +0 -1
- package/dist/chunk-XA7JN7YE.js +0 -297
- package/dist/chunk-XHAGX4J4.js +0 -604
- package/dist/chunk-XY7W6MQN.js +0 -274
- package/dist/chunk-YAINUFSC.js +0 -203
- package/dist/chunk-Z5BG47PO.js +0 -5752
- package/dist/chunk-Z5BG47PO.js.map +0 -1
- package/dist/chunk-Z7ICQKC2.js +0 -344
- package/dist/chunk-ZBXV2KOQ.js +0 -220
- package/dist/chunk-ZMNRSTNV.js +0 -454
- package/dist/claim-L4WLCVUL.js +0 -200
- package/dist/companies-HW46BRQG.js +0 -198
- package/dist/company-KCIDE7SL.js +0 -308
- package/dist/complete-JXM25FVW.js +0 -84
- package/dist/connect-7TX7AAM5.js +0 -45
- package/dist/conversation-YIDUB6GL.js +0 -96
- package/dist/conversion-report-33SG7SHU.js +0 -127
- package/dist/conversion-upload-command-N3OMLLF2.js +0 -439
- package/dist/conversion-writes-XGGTBML5.js +0 -122
- package/dist/conversions-F4OZYUCT.js +0 -140
- package/dist/conversions-PPP4QK7U.js +0 -78
- package/dist/create-6EAKNERA.js +0 -239
- package/dist/create-772LZHZR.js +0 -218
- package/dist/create-FDNMIVFX.js +0 -62
- package/dist/create-X2QM7GA7.js +0 -135
- package/dist/creatives-K2AAW6EL.js +0 -58
- package/dist/creatives-SNYN4KIM.js +0 -229
- package/dist/credentials-KZZVBO42.js +0 -290
- package/dist/critique-G5QXRHPF.js +0 -1451
- package/dist/critique-PUHOJI7V.js +0 -232
- package/dist/crm-4LZZVT4N.js +0 -229
- package/dist/crm-M6NXDU5B.js +0 -323
- package/dist/currency-HK2ZW2VW.js +0 -88
- package/dist/customers-V5NT4W7X.js +0 -65
- package/dist/delete-GQIKNO53.js +0 -57
- package/dist/delete-LFZIPQEO.js +0 -69
- package/dist/delete-YOEI63OT.js +0 -67
- package/dist/demographics-CEQ74O74.js +0 -141
- package/dist/discard-5GDF3TP3.js +0 -69
- package/dist/discover-Q5PAOIQQ.js +0 -172
- package/dist/domain-PKOUPHHF.js +0 -101
- package/dist/download-2WNTN7JQ.js +0 -172
- package/dist/draft-CF4XNJG5.js +0 -578
- package/dist/draft-CF4XNJG5.js.map +0 -1
- package/dist/draft-F4CVSL2I.js +0 -332
- package/dist/draft-L2NXCIYT.js +0 -315
- package/dist/draft-RZCTAOI2.js +0 -374
- package/dist/draft-UEVBUNKV.js +0 -220
- package/dist/experiments-DWC6L72S.js +0 -236
- package/dist/extract-6HJXSOZW.js +0 -143
- package/dist/facets-TBOXGYJT.js +0 -117
- package/dist/feedback-MSMFYAEY.js +0 -114
- package/dist/feedback-WAC6S42V.js +0 -115
- package/dist/feedback-record-XRQ2R2WD.js +0 -269
- package/dist/fetch-LGX7B3IC.js +0 -204
- package/dist/fit-RVWPRBNO.js +0 -65
- package/dist/flows-LA6EYMLS.js +0 -340
- package/dist/fonts-WRC34VSV.js +0 -39
- package/dist/forecast-6VHRGBJG.js +0 -121
- package/dist/forecast-OVKXBLJB.js +0 -169
- package/dist/funnel-U3GQIGND.js +0 -397
- package/dist/generate-Y4NJEYIH.js +0 -263
- package/dist/get-AHI247JG.js +0 -82
- package/dist/get-PF3HGECD.js +0 -62
- package/dist/google-BMUJKAUO.js +0 -3300
- package/dist/google-ZVAIFXQZ.js +0 -163
- package/dist/google-ads-6Z7P3SCD.js +0 -198
- package/dist/history-4QUV45ZJ.js +0 -102
- package/dist/history-PD7FCTDD.js +0 -153
- package/dist/history-VKRYKQ4C.js +0 -69
- package/dist/hubspot-WEFAFKVJ.js +0 -814
- package/dist/ideas-SMSEXKIA.js +0 -45
- package/dist/images-KAT4BPYV.js +0 -92
- package/dist/ingest-IHKTSJ4H.js +0 -28
- package/dist/ingest-TOHQ6MZA.js +0 -131
- package/dist/insights-3IPSEBYW.js +0 -132
- package/dist/inspect-5MZBPDYS.js +0 -192
- package/dist/intent-ZM4K623V.js +0 -95
- package/dist/keyword-gap-FAAF2I6V.js +0 -130
- package/dist/keyword-metrics-EXNJRJBY.js +0 -200
- package/dist/keywords-for-site-5LW77QWF.js +0 -131
- package/dist/landing-ZH4SD3DW.js +0 -28
- package/dist/languages-ZGDTERIQ.js +0 -40
- package/dist/leads-736RILZN.js +0 -115
- package/dist/learn-BESXWXEN.js +0 -207
- package/dist/line-item-writes-FA72DHNQ.js +0 -211
- package/dist/line-items-XVYE3IYT.js +0 -107
- package/dist/link-6FPKFVC3.js +0 -67
- package/dist/linkedin-TE6P4RYN.js +0 -1344
- package/dist/linkedin-person-TZJ6VEXE.js +0 -139
- package/dist/list-4R5EMKUQ.js +0 -154
- package/dist/list-MN2FPF3T.js +0 -306
- package/dist/list-ORO4WDF4.js +0 -67
- package/dist/locations-A65MFB7Q.js +0 -69
- package/dist/locations-WN6B3IJK.js +0 -40
- package/dist/log-ABBZLPRU.js +0 -95
- package/dist/make-QAFKU6WO.js +0 -1367
- package/dist/map-52P35OKE.js +0 -445
- package/dist/mcp-PZ3VBIF4.js +0 -729
- package/dist/media-sources-TT374PLN.js +0 -35
- package/dist/members-CF6VG6ZW.js +0 -47
- package/dist/metrics-3U3ZO2RF.js +0 -152
- package/dist/models-VOSJJFO2.js +0 -155
- package/dist/normalize-4LZCLMTQ.js +0 -144
- package/dist/options-6IRL7CL6.js +0 -125
- package/dist/organization-WMLLJE66.js +0 -949
- package/dist/performance-A7CYFBW2.js +0 -5565
- package/dist/performance-HYSTXLTS.js +0 -27
- package/dist/pixels-U6UA662G.js +0 -62
- package/dist/preview-76ZP2QA3.js +0 -101
- package/dist/promoted-tweet-writes-I5G4IDL5.js +0 -183
- package/dist/promoted-tweets-X5XNO7IT.js +0 -119
- package/dist/publish-S2Z4EF4H.js +0 -350
- package/dist/query-SAQADBM2.js +0 -62
- package/dist/reddit-S2L5WDY7.js +0 -29
- package/dist/refresh-K2YTJSH3.js +0 -97
- package/dist/release-FX76IIVN.js +0 -63
- package/dist/relevant-pages-KTSODNNW.js +0 -99
- package/dist/remove-LOVWPLDO.js +0 -53
- package/dist/reopen-DXV2Y6Z3.js +0 -66
- package/dist/rerun-TFQCRRFK.js +0 -97
- package/dist/research-7PGDAKC7.js +0 -265
- package/dist/research-HY5PSUCC.js +0 -75
- package/dist/reset-MEHUQJA4.js +0 -57
- package/dist/reset-Y5VZJRDQ.js +0 -57
- package/dist/resolve-FAVABEJW.js +0 -124
- package/dist/retry-5IY4MNDW.js +0 -65
- package/dist/retry-OMJ3C3AX.js +0 -63
- package/dist/revenue-S4KFZCOI.js +0 -91
- package/dist/rules-66IGR2KA.js +0 -99
- package/dist/rules-add-G7YGOYZJ.js +0 -465
- package/dist/run-LJVBH3JS.js +0 -72
- package/dist/run-XJBWDWN6.js +0 -69
- package/dist/scaffold-ad-GNMCB3QY.js +0 -1513
- package/dist/scaffold-static-ad-QIWKWURL.js +0 -1013
- package/dist/scaffold-static-ad-QIWKWURL.js.map +0 -1
- package/dist/scaffold-video-G6G2NPUF.js +0 -885
- package/dist/schedule-OX5XHXLH.js +0 -64
- package/dist/scheduled-agents-A5ZFQB5X.js +0 -55
- package/dist/schema-NTGHAPR2.js +0 -135
- package/dist/search-WCXQBMMM.js +0 -177
- package/dist/select-5ZD7FVBT.js +0 -110
- package/dist/set-prompt-NGCVMQIQ.js +0 -199
- package/dist/setup-links-4HCSF55G.js +0 -144
- package/dist/shopify-GDR5WGHH.js +0 -4009
- package/dist/site-B7LT6KAO.js +0 -180
- package/dist/sources-6DPUEROC.js +0 -30
- package/dist/sources-OSUXCLID.js +0 -457
- package/dist/stale-YKFKPPOH.js +0 -90
- package/dist/status-KIC3P5JV.js +0 -65
- package/dist/stock-VWFUFRYV.js +0 -212
- package/dist/studio-XLC37YGX.js +0 -49
- package/dist/sync-QBW4XH2H.js +0 -57
- package/dist/sync-definition-4KMJK46H.js +0 -70
- package/dist/tags-4F5UBPYG.js +0 -227
- package/dist/tags-4O5FPEEY.js +0 -26
- package/dist/tags-7RKKCQ4X.js +0 -23
- package/dist/tags-CB4MWI3A.js +0 -23
- package/dist/tags-QZJIP4LJ.js +0 -23
- package/dist/targeting-criteria-65UU7EYD.js +0 -113
- package/dist/targets-T742OPQI.js +0 -106
- package/dist/testimonials-HKJJXONO.js +0 -32
- package/dist/themes-Q6LVMEMF.js +0 -95
- package/dist/top-companies-T6AMU4C6.js +0 -111
- package/dist/transcript-DOUYMZAP.js +0 -165
- package/dist/translate-WKOXFZTQ.js +0 -603
- package/dist/triggers-EYY4GSUL.js +0 -144
- package/dist/unlink-JNM4WRZK.js +0 -70
- package/dist/unstage-QF4JT5YP.js +0 -88
- package/dist/update-6V3RBRIE.js +0 -101
- package/dist/update-J4DURR4K.js +0 -192
- package/dist/update-J7Y6LZC5.js +0 -155
- package/dist/update-MQ4NYIU6.js +0 -66
- package/dist/upload-CEIYYPID.js +0 -137
- package/dist/url-options-6WC2XQKB.js +0 -131
- package/dist/url-params-OVBIP6UA.js +0 -101
- package/dist/validate-UHXI2ESE.js +0 -135
- package/dist/videos-Z72RXCRB.js +0 -41
- package/dist/viewer-check-655BZRML.js +0 -83
- package/dist/web-4QN6QB7L.js +0 -173
- package/dist/winning-ads-2J2RIOLR.js +0 -86
- package/dist/write-commands-V7B4FBMX.js +0 -1524
- package/dist/x-7KXNCWTJ.js +0 -47
- /package/dist/{account-JVDP5ERG.js.map → account-52WDLW4Z.js.map} +0 -0
- /package/dist/{account-EXGRZIXS.js.map → account-7KZ7MHMN.js.map} +0 -0
- /package/dist/{account-reads-Z467VAL4.js.map → account-reads-CQIJCPCH.js.map} +0 -0
- /package/dist/{account-users-342OZALE.js.map → account-users-NUI3ILRE.js.map} +0 -0
- /package/dist/{account-writes-KEXINJ5D.js.map → account-writes-3BJSUM2V.js.map} +0 -0
- /package/dist/{accounts-QESGQJGZ.js.map → accounts-FLKNFDIE.js.map} +0 -0
- /package/dist/{accounts-UWC2TT6R.js.map → accounts-I2ZLR76R.js.map} +0 -0
- /package/dist/{accounts-QR6OQ3GC.js.map → accounts-ZV4IXOF5.js.map} +0 -0
- /package/dist/{actions-NT3HXFFA.js.map → actions-IR47GVZ6.js.map} +0 -0
- /package/dist/{activecampaign-EYRHDSXY.js.map → activecampaign-MNJYIWJL.js.map} +0 -0
- /package/dist/{ad-group-writes-SVR4RCKB.js.map → ad-group-writes-KU4QMQZP.js.map} +0 -0
- /package/dist/{ad-groups-C726HUXS.js.map → ad-groups-NMW2G32A.js.map} +0 -0
- /package/dist/{ad-writes-RWJIWGEL.js.map → ad-writes-7NOFTOM4.js.map} +0 -0
- /package/dist/{add-NSW26HIM.js.map → add-4I25INAO.js.map} +0 -0
- /package/dist/{add-EPOHDTUO.js.map → add-QMTD6EGI.js.map} +0 -0
- /package/dist/{ads-3KK7VQPU.js.map → ads-P4Z3MLKS.js.map} +0 -0
- /package/dist/{ads-EWZGIC4T.js.map → ads-PWTQC6KV.js.map} +0 -0
- /package/dist/{advertisers-AHOWL3YL.js.map → advertisers-LOIXTTGP.js.map} +0 -0
- /package/dist/{analytics-7H6NDVUQ.js.map → analytics-6AHC3J4L.js.map} +0 -0
- /package/dist/{analytics-GFFXCMLV.js.map → analytics-NL2KGDLK.js.map} +0 -0
- /package/dist/{animate-GTUI7XX4.js.map → animate-VX7E7KJE.js.map} +0 -0
- /package/dist/{assign-SDPPWP3Q.js.map → assign-NKHIHVGI.js.map} +0 -0
- /package/dist/{audience-size-LKDDHKED.js.map → audience-size-WEOM6XIL.js.map} +0 -0
- /package/dist/{audiences-6L43K2T2.js.map → audiences-P3SPTAJT.js.map} +0 -0
- /package/dist/{audit-TSZIQTUB.js.map → audit-4RIBJ7BR.js.map} +0 -0
- /package/dist/{autocomplete-5BSAOAMZ.js.map → autocomplete-FMTJDXTL.js.map} +0 -0
- /package/dist/{avatars-S6RRD7M3.js.map → avatars-LY5SFMWO.js.map} +0 -0
- /package/dist/{bid-pricing-5KUAINH4.js.map → bid-pricing-MQ7WLV5U.js.map} +0 -0
- /package/dist/{brand-KFK2MQWW.js.map → brand-LR5IXW3W.js.map} +0 -0
- /package/dist/{brief-6DV2PKAU.js.map → brief-4DSXIX3F.js.map} +0 -0
- /package/dist/{campaign-groups-5RPZPDNW.js.map → campaign-groups-EZYLKMO2.js.map} +0 -0
- /package/dist/{campaign-writes-FUIGN5OR.js.map → campaign-writes-P5XPFTRK.js.map} +0 -0
- /package/dist/{campaign-writes-XMYBEVZF.js.map → campaign-writes-UMENYMKO.js.map} +0 -0
- /package/dist/{campaigns-JNP3VDZK.js.map → campaigns-PP2DQMJE.js.map} +0 -0
- /package/dist/{campaigns-N2SWSBYT.js.map → campaigns-SWZJVE2T.js.map} +0 -0
- /package/dist/{campaigns-5A3IE735.js.map → campaigns-TAFDM242.js.map} +0 -0
- /package/dist/{canvas-CHFNQTLY.js.map → canvas-RKR3ZB4E.js.map} +0 -0
- /package/dist/{capabilities-2W3SRZ2I.js.map → capabilities-45RZ6E6W.js.map} +0 -0
- /package/dist/{catalog-6BER3SF7.js.map → catalog-TOHUVBEU.js.map} +0 -0
- /package/dist/{catalogs-G5NOKL4L.js.map → catalogs-V7PTEJBO.js.map} +0 -0
- /package/dist/{changes-AS4RVEAL.js.map → changes-5OW3UYMF.js.map} +0 -0
- /package/dist/{chatgpt-O6EEAYLF.js.map → chatgpt-JBMYNVJB.js.map} +0 -0
- /package/dist/{chats-4JLWMUAC.js.map → chats-VOLBYA3R.js.map} +0 -0
- /package/dist/{check-BOKLY5WG.js.map → check-4DI73QX4.js.map} +0 -0
- /package/dist/{chunk-QZ4YHQLW.js.map → chunk-22RM3UOO.js.map} +0 -0
- /package/dist/{chunk-WTOBG3YL.js.map → chunk-2TS2ITSG.js.map} +0 -0
- /package/dist/{chunk-ZMNRSTNV.js.map → chunk-2YXTXSYG.js.map} +0 -0
- /package/dist/{chunk-KG5VNPKU.js.map → chunk-2Z6PFHD2.js.map} +0 -0
- /package/dist/{chunk-GRX3JXSR.js.map → chunk-47VWQ7FQ.js.map} +0 -0
- /package/dist/{chunk-BEZEZHQ6.js.map → chunk-4QFMRL6O.js.map} +0 -0
- /package/dist/{chunk-4INBMXUS.js.map → chunk-5OC6VUDZ.js.map} +0 -0
- /package/dist/{chunk-HOA74TOS.js.map → chunk-5VXEH72O.js.map} +0 -0
- /package/dist/{chunk-LAMSUL26.js.map → chunk-BFAPSFS7.js.map} +0 -0
- /package/dist/{chunk-WZXMZFVB.js.map → chunk-BMMXYR7A.js.map} +0 -0
- /package/dist/{chunk-NOCBNING.js.map → chunk-BNEWJXKU.js.map} +0 -0
- /package/dist/{chunk-AXLKR3E4.js.map → chunk-BXTIG5JL.js.map} +0 -0
- /package/dist/{chunk-XY7W6MQN.js.map → chunk-C7KV5O5J.js.map} +0 -0
- /package/dist/{chunk-H4RHZJ65.js.map → chunk-CDPX6WAL.js.map} +0 -0
- /package/dist/{chunk-M5PZ6QQB.js.map → chunk-COOJKEJE.js.map} +0 -0
- /package/dist/{chunk-3KUNRKNV.js.map → chunk-CTJWMZPL.js.map} +0 -0
- /package/dist/{chunk-RLLPY62L.js.map → chunk-D5HD46VV.js.map} +0 -0
- /package/dist/{chunk-EMR5KGNY.js.map → chunk-EKOMZH2S.js.map} +0 -0
- /package/dist/{chunk-RULW4627.js.map → chunk-G4FU6VC5.js.map} +0 -0
- /package/dist/{chunk-RQHXWPET.js.map → chunk-H3RCEM6L.js.map} +0 -0
- /package/dist/{chunk-HQDNDKNR.js.map → chunk-HM4NWA72.js.map} +0 -0
- /package/dist/{chunk-KJHG2DWS.js.map → chunk-I33FO2ON.js.map} +0 -0
- /package/dist/{chunk-XHAGX4J4.js.map → chunk-IAE24RKD.js.map} +0 -0
- /package/dist/{chunk-D32EWSMB.js.map → chunk-IGCS3X4F.js.map} +0 -0
- /package/dist/{chunk-QGAUDVMR.js.map → chunk-IJ6WA2JW.js.map} +0 -0
- /package/dist/{chunk-EM5R3BYC.js.map → chunk-ITIUWJGQ.js.map} +0 -0
- /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
- /package/dist/{chunk-LLTHDEM2.js.map → chunk-JCDCIQMA.js.map} +0 -0
- /package/dist/{chunk-J4AWNWKN.js.map → chunk-JGK2FDZW.js.map} +0 -0
- /package/dist/{chunk-QRRAMUKV.js.map → chunk-JSOOLOHP.js.map} +0 -0
- /package/dist/{chunk-CST52ZME.js.map → chunk-JT3UUBID.js.map} +0 -0
- /package/dist/{chunk-BMK4F4CU.js.map → chunk-KUI74TNG.js.map} +0 -0
- /package/dist/{chunk-6D7WTUF3.js.map → chunk-LAOCXV6Z.js.map} +0 -0
- /package/dist/{chunk-MFGUR5OD.js.map → chunk-LQACNCAV.js.map} +0 -0
- /package/dist/{chunk-EONUZOJV.js.map → chunk-MC5F2L64.js.map} +0 -0
- /package/dist/{chunk-CUTTTFAU.js.map → chunk-MKG57P2E.js.map} +0 -0
- /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
- /package/dist/{chunk-NWLK5RPA.js.map → chunk-O2ECZKXP.js.map} +0 -0
- /package/dist/{chunk-5NMKNHJI.js.map → chunk-OJZKY5UM.js.map} +0 -0
- /package/dist/{chunk-S4RCF3YT.js.map → chunk-P4UCSXNA.js.map} +0 -0
- /package/dist/{chunk-C52Q3L4C.js.map → chunk-QLO4RNHU.js.map} +0 -0
- /package/dist/{chunk-X5YHMGAT.js.map → chunk-QSS34JWZ.js.map} +0 -0
- /package/dist/{chunk-UVUY6FLV.js.map → chunk-QVHZTCB5.js.map} +0 -0
- /package/dist/{chunk-Z7ICQKC2.js.map → chunk-RVIBHENP.js.map} +0 -0
- /package/dist/{chunk-YAINUFSC.js.map → chunk-TEJOILEY.js.map} +0 -0
- /package/dist/{chunk-V4HS5JRL.js.map → chunk-TEQEZAJI.js.map} +0 -0
- /package/dist/{chunk-HFIHXIYY.js.map → chunk-TNI7CN4L.js.map} +0 -0
- /package/dist/{chunk-ZBXV2KOQ.js.map → chunk-TPJ34LXX.js.map} +0 -0
- /package/dist/{chunk-RIVQ4PQQ.js.map → chunk-U6AWJIFP.js.map} +0 -0
- /package/dist/{chunk-WYMX3F47.js.map → chunk-V5ODOBBI.js.map} +0 -0
- /package/dist/{chunk-75OGTGC4.js.map → chunk-VAURJ4QJ.js.map} +0 -0
- /package/dist/{chunk-PR5OPERY.js.map → chunk-VAV5CCDD.js.map} +0 -0
- /package/dist/{chunk-JAK5VDSG.js.map → chunk-VWHUO3AP.js.map} +0 -0
- /package/dist/{chunk-JLAFNORO.js.map → chunk-W3TZPHZO.js.map} +0 -0
- /package/dist/{chunk-XA7JN7YE.js.map → chunk-WZATC4O5.js.map} +0 -0
- /package/dist/{chunk-6FQ7CJEX.js.map → chunk-X25XRSDP.js.map} +0 -0
- /package/dist/{chunk-DW3H2XQA.js.map → chunk-XGG72YRO.js.map} +0 -0
- /package/dist/{chunk-TCLJRWST.js.map → chunk-XWAOECD2.js.map} +0 -0
- /package/dist/{chunk-RGLTITIH.js.map → chunk-YDALLZNS.js.map} +0 -0
- /package/dist/{chunk-I3QLWGKS.js.map → chunk-Z3RGBLVJ.js.map} +0 -0
- /package/dist/{chunk-6OZDN2FI.js.map → chunk-Z5JWFNG4.js.map} +0 -0
- /package/dist/{claim-L4WLCVUL.js.map → claim-3UMAFZEM.js.map} +0 -0
- /package/dist/{companies-HW46BRQG.js.map → companies-RL5A26AT.js.map} +0 -0
- /package/dist/{company-KCIDE7SL.js.map → company-DJ44F5C6.js.map} +0 -0
- /package/dist/{complete-JXM25FVW.js.map → complete-PGNIP3LN.js.map} +0 -0
- /package/dist/{connect-7TX7AAM5.js.map → connect-ROARWN63.js.map} +0 -0
- /package/dist/{conversation-YIDUB6GL.js.map → conversation-GDFMJL7X.js.map} +0 -0
- /package/dist/{conversion-report-33SG7SHU.js.map → conversion-report-2FREFML5.js.map} +0 -0
- /package/dist/{conversion-upload-command-N3OMLLF2.js.map → conversion-upload-command-JAGV6GMG.js.map} +0 -0
- /package/dist/{conversion-writes-XGGTBML5.js.map → conversion-writes-JZIJSQ7T.js.map} +0 -0
- /package/dist/{conversions-F4OZYUCT.js.map → conversions-2IFWDQKK.js.map} +0 -0
- /package/dist/{conversions-PPP4QK7U.js.map → conversions-Q5EBTEXA.js.map} +0 -0
- /package/dist/{create-772LZHZR.js.map → create-B5DIYK5D.js.map} +0 -0
- /package/dist/{create-6EAKNERA.js.map → create-BRCSXXFO.js.map} +0 -0
- /package/dist/{create-FDNMIVFX.js.map → create-PXAUL6FF.js.map} +0 -0
- /package/dist/{create-X2QM7GA7.js.map → create-R6CMATVY.js.map} +0 -0
- /package/dist/{creatives-SNYN4KIM.js.map → creatives-D6O6Z46U.js.map} +0 -0
- /package/dist/{creatives-K2AAW6EL.js.map → creatives-XNVWQWFF.js.map} +0 -0
- /package/dist/{credentials-KZZVBO42.js.map → credentials-CLJO7WWY.js.map} +0 -0
- /package/dist/{critique-G5QXRHPF.js.map → critique-MBMKW6SL.js.map} +0 -0
- /package/dist/{critique-PUHOJI7V.js.map → critique-OUJDTVMI.js.map} +0 -0
- /package/dist/{crm-4LZZVT4N.js.map → crm-H5ITJ2RC.js.map} +0 -0
- /package/dist/{crm-M6NXDU5B.js.map → crm-JJHYRABB.js.map} +0 -0
- /package/dist/{currency-HK2ZW2VW.js.map → currency-EFDQYW5B.js.map} +0 -0
- /package/dist/{customers-V5NT4W7X.js.map → customers-C5YXAVXI.js.map} +0 -0
- /package/dist/{delete-GQIKNO53.js.map → delete-3GYCQK6B.js.map} +0 -0
- /package/dist/{delete-LFZIPQEO.js.map → delete-NBUDIGSD.js.map} +0 -0
- /package/dist/{delete-YOEI63OT.js.map → delete-WZ3KVVX5.js.map} +0 -0
- /package/dist/{demographics-CEQ74O74.js.map → demographics-O7AJW7DO.js.map} +0 -0
- /package/dist/{discard-5GDF3TP3.js.map → discard-RMVZAX2J.js.map} +0 -0
- /package/dist/{discover-Q5PAOIQQ.js.map → discover-BPUUWRBP.js.map} +0 -0
- /package/dist/{domain-PKOUPHHF.js.map → domain-J3ZMBOHS.js.map} +0 -0
- /package/dist/{download-2WNTN7JQ.js.map → download-ZVOGLTFB.js.map} +0 -0
- /package/dist/{draft-RZCTAOI2.js.map → draft-6PJD3MCW.js.map} +0 -0
- /package/dist/{draft-L2NXCIYT.js.map → draft-GCOCG4PO.js.map} +0 -0
- /package/dist/{draft-UEVBUNKV.js.map → draft-TPR3DH5N.js.map} +0 -0
- /package/dist/{draft-F4CVSL2I.js.map → draft-ZPGGWU7E.js.map} +0 -0
- /package/dist/{experiments-DWC6L72S.js.map → experiments-MM4BYHRH.js.map} +0 -0
- /package/dist/{extract-6HJXSOZW.js.map → extract-JMY6YRPW.js.map} +0 -0
- /package/dist/{facets-TBOXGYJT.js.map → facets-B5AZAU2C.js.map} +0 -0
- /package/dist/{feedback-WAC6S42V.js.map → feedback-2EVDGTEN.js.map} +0 -0
- /package/dist/{feedback-MSMFYAEY.js.map → feedback-4MCMOMVN.js.map} +0 -0
- /package/dist/{feedback-record-XRQ2R2WD.js.map → feedback-record-DL7UEU2H.js.map} +0 -0
- /package/dist/{fetch-LGX7B3IC.js.map → fetch-JDNFK476.js.map} +0 -0
- /package/dist/{fit-RVWPRBNO.js.map → fit-DKVH5BDW.js.map} +0 -0
- /package/dist/{flows-LA6EYMLS.js.map → flows-LURTZICL.js.map} +0 -0
- /package/dist/{fonts-WRC34VSV.js.map → fonts-HUXFDDAE.js.map} +0 -0
- /package/dist/{forecast-OVKXBLJB.js.map → forecast-HMNQZFVL.js.map} +0 -0
- /package/dist/{forecast-6VHRGBJG.js.map → forecast-UHTW4Y7Q.js.map} +0 -0
- /package/dist/{funnel-U3GQIGND.js.map → funnel-QM7WFFMD.js.map} +0 -0
- /package/dist/{generate-Y4NJEYIH.js.map → generate-KAWRRYTT.js.map} +0 -0
- /package/dist/{get-AHI247JG.js.map → get-237TYJZT.js.map} +0 -0
- /package/dist/{get-PF3HGECD.js.map → get-FWPR2YPC.js.map} +0 -0
- /package/dist/{google-BMUJKAUO.js.map → google-3CAUWNWE.js.map} +0 -0
- /package/dist/{google-ZVAIFXQZ.js.map → google-DTSLO3PT.js.map} +0 -0
- /package/dist/{google-ads-6Z7P3SCD.js.map → google-ads-RZOQQDQN.js.map} +0 -0
- /package/dist/{history-PD7FCTDD.js.map → history-H7S7XRBX.js.map} +0 -0
- /package/dist/{history-4QUV45ZJ.js.map → history-XL52537O.js.map} +0 -0
- /package/dist/{history-VKRYKQ4C.js.map → history-YQSYXBJH.js.map} +0 -0
- /package/dist/{hubspot-WEFAFKVJ.js.map → hubspot-2DSISSUI.js.map} +0 -0
- /package/dist/{ideas-SMSEXKIA.js.map → ideas-2XBFQJ56.js.map} +0 -0
- /package/dist/{images-KAT4BPYV.js.map → images-VFRQ32G5.js.map} +0 -0
- /package/dist/{ingest-IHKTSJ4H.js.map → ingest-4RPLN54K.js.map} +0 -0
- /package/dist/{ingest-TOHQ6MZA.js.map → ingest-TPVH44VI.js.map} +0 -0
- /package/dist/{insights-3IPSEBYW.js.map → insights-UVCFOB3N.js.map} +0 -0
- /package/dist/{inspect-5MZBPDYS.js.map → inspect-VD3GVXDU.js.map} +0 -0
- /package/dist/{intent-ZM4K623V.js.map → intent-F5NTOSQC.js.map} +0 -0
- /package/dist/{keyword-gap-FAAF2I6V.js.map → keyword-gap-EB5QATYN.js.map} +0 -0
- /package/dist/{keyword-metrics-EXNJRJBY.js.map → keyword-metrics-PW2DDIJW.js.map} +0 -0
- /package/dist/{keywords-for-site-5LW77QWF.js.map → keywords-for-site-JEPABY6E.js.map} +0 -0
- /package/dist/{landing-ZH4SD3DW.js.map → landing-4N6YSB4L.js.map} +0 -0
- /package/dist/{languages-ZGDTERIQ.js.map → languages-4S26FJDP.js.map} +0 -0
- /package/dist/{leads-736RILZN.js.map → leads-R5OZJQHW.js.map} +0 -0
- /package/dist/{learn-BESXWXEN.js.map → learn-AQ2FRFB7.js.map} +0 -0
- /package/dist/{line-item-writes-FA72DHNQ.js.map → line-item-writes-LGO7HIJJ.js.map} +0 -0
- /package/dist/{line-items-XVYE3IYT.js.map → line-items-AAZVKQ7E.js.map} +0 -0
- /package/dist/{link-6FPKFVC3.js.map → link-7IGHVARH.js.map} +0 -0
- /package/dist/{linkedin-TE6P4RYN.js.map → linkedin-UB2CW4KP.js.map} +0 -0
- /package/dist/{linkedin-person-TZJ6VEXE.js.map → linkedin-person-D6U2ZAUW.js.map} +0 -0
- /package/dist/{list-4R5EMKUQ.js.map → list-P44QRX2O.js.map} +0 -0
- /package/dist/{list-ORO4WDF4.js.map → list-UMJACDTQ.js.map} +0 -0
- /package/dist/{list-MN2FPF3T.js.map → list-VZKUHY4Y.js.map} +0 -0
- /package/dist/{locations-WN6B3IJK.js.map → locations-UWBQLHXW.js.map} +0 -0
- /package/dist/{locations-A65MFB7Q.js.map → locations-WXGOI3VV.js.map} +0 -0
- /package/dist/{log-ABBZLPRU.js.map → log-6ZKMUTYS.js.map} +0 -0
- /package/dist/{make-QAFKU6WO.js.map → make-5CEIJRBC.js.map} +0 -0
- /package/dist/{map-52P35OKE.js.map → map-ZL4MQVJZ.js.map} +0 -0
- /package/dist/{mcp-PZ3VBIF4.js.map → mcp-GSRYLRD4.js.map} +0 -0
- /package/dist/{media-sources-TT374PLN.js.map → media-sources-VSPVHLYN.js.map} +0 -0
- /package/dist/{members-CF6VG6ZW.js.map → members-L6SXP6GC.js.map} +0 -0
- /package/dist/{metrics-3U3ZO2RF.js.map → metrics-4AFEEDVP.js.map} +0 -0
- /package/dist/{models-VOSJJFO2.js.map → models-2ZEM64H5.js.map} +0 -0
- /package/dist/{normalize-4LZCLMTQ.js.map → normalize-GK7DH7ZP.js.map} +0 -0
- /package/dist/{options-6IRL7CL6.js.map → options-FDAAHG7C.js.map} +0 -0
- /package/dist/{organization-WMLLJE66.js.map → organization-K2FTFAAO.js.map} +0 -0
- /package/dist/{performance-A7CYFBW2.js.map → performance-N3UROH7Z.js.map} +0 -0
- /package/dist/{performance-HYSTXLTS.js.map → performance-RG2HR46T.js.map} +0 -0
- /package/dist/{pixels-U6UA662G.js.map → pixels-HEI5WVAO.js.map} +0 -0
- /package/dist/{preview-76ZP2QA3.js.map → preview-NVWIEUHF.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-I5G4IDL5.js.map → promoted-tweet-writes-7QZRFDOM.js.map} +0 -0
- /package/dist/{promoted-tweets-X5XNO7IT.js.map → promoted-tweets-V555Y7DN.js.map} +0 -0
- /package/dist/{publish-S2Z4EF4H.js.map → publish-5KR6YLA6.js.map} +0 -0
- /package/dist/{query-SAQADBM2.js.map → query-K7MYBRTS.js.map} +0 -0
- /package/dist/{reddit-S2L5WDY7.js.map → reddit-XPQ7YAJW.js.map} +0 -0
- /package/dist/{refresh-K2YTJSH3.js.map → refresh-XFHEBSDU.js.map} +0 -0
- /package/dist/{release-FX76IIVN.js.map → release-3ECEF26P.js.map} +0 -0
- /package/dist/{relevant-pages-KTSODNNW.js.map → relevant-pages-XYQKVX3U.js.map} +0 -0
- /package/dist/{remove-LOVWPLDO.js.map → remove-OCTUC3RB.js.map} +0 -0
- /package/dist/{reopen-DXV2Y6Z3.js.map → reopen-JRI3TYD4.js.map} +0 -0
- /package/dist/{rerun-TFQCRRFK.js.map → rerun-HWWYCDT2.js.map} +0 -0
- /package/dist/{research-7PGDAKC7.js.map → research-ODPU62BA.js.map} +0 -0
- /package/dist/{research-HY5PSUCC.js.map → research-TG5CBTYP.js.map} +0 -0
- /package/dist/{reset-Y5VZJRDQ.js.map → reset-J2NLNITD.js.map} +0 -0
- /package/dist/{reset-MEHUQJA4.js.map → reset-SRU7YJUR.js.map} +0 -0
- /package/dist/{resolve-FAVABEJW.js.map → resolve-KHMMUGB2.js.map} +0 -0
- /package/dist/{retry-5IY4MNDW.js.map → retry-VLH4AO7F.js.map} +0 -0
- /package/dist/{retry-OMJ3C3AX.js.map → retry-WP7LWKZF.js.map} +0 -0
- /package/dist/{revenue-S4KFZCOI.js.map → revenue-EEIS2AV5.js.map} +0 -0
- /package/dist/{rules-66IGR2KA.js.map → rules-TTUGQAEB.js.map} +0 -0
- /package/dist/{rules-add-G7YGOYZJ.js.map → rules-add-AIXUAZXG.js.map} +0 -0
- /package/dist/{run-XJBWDWN6.js.map → run-AQTACLY6.js.map} +0 -0
- /package/dist/{run-LJVBH3JS.js.map → run-YA6IWQAJ.js.map} +0 -0
- /package/dist/{scaffold-ad-GNMCB3QY.js.map → scaffold-ad-IYNFJPT7.js.map} +0 -0
- /package/dist/{scaffold-video-G6G2NPUF.js.map → scaffold-video-BUN27PKS.js.map} +0 -0
- /package/dist/{schedule-OX5XHXLH.js.map → schedule-EH2MOC5C.js.map} +0 -0
- /package/dist/{scheduled-agents-A5ZFQB5X.js.map → scheduled-agents-DTAEP25E.js.map} +0 -0
- /package/dist/{schema-NTGHAPR2.js.map → schema-7B4MVVAS.js.map} +0 -0
- /package/dist/{search-WCXQBMMM.js.map → search-ZZWIJRXJ.js.map} +0 -0
- /package/dist/{select-5ZD7FVBT.js.map → select-LWZRF7KV.js.map} +0 -0
- /package/dist/{set-prompt-NGCVMQIQ.js.map → set-prompt-YKDH6FYK.js.map} +0 -0
- /package/dist/{setup-links-4HCSF55G.js.map → setup-links-OE6PC2YQ.js.map} +0 -0
- /package/dist/{shopify-GDR5WGHH.js.map → shopify-CCPLZI2H.js.map} +0 -0
- /package/dist/{site-B7LT6KAO.js.map → site-FW5BBLYG.js.map} +0 -0
- /package/dist/{sources-6DPUEROC.js.map → sources-WPHMWBEK.js.map} +0 -0
- /package/dist/{sources-OSUXCLID.js.map → sources-X77TGJ52.js.map} +0 -0
- /package/dist/{stale-YKFKPPOH.js.map → stale-SPCDL73V.js.map} +0 -0
- /package/dist/{status-KIC3P5JV.js.map → status-FLETGJ2A.js.map} +0 -0
- /package/dist/{stock-VWFUFRYV.js.map → stock-5AOSQH52.js.map} +0 -0
- /package/dist/{studio-XLC37YGX.js.map → studio-4EV5S7PR.js.map} +0 -0
- /package/dist/{sync-QBW4XH2H.js.map → sync-363VKXU3.js.map} +0 -0
- /package/dist/{sync-definition-4KMJK46H.js.map → sync-definition-ZDE5L644.js.map} +0 -0
- /package/dist/{tags-CB4MWI3A.js.map → tags-6MN3AWKN.js.map} +0 -0
- /package/dist/{tags-4F5UBPYG.js.map → tags-VOKUNEIW.js.map} +0 -0
- /package/dist/{tags-QZJIP4LJ.js.map → tags-Y6MNMIEA.js.map} +0 -0
- /package/dist/{tags-7RKKCQ4X.js.map → tags-YHAC3NVY.js.map} +0 -0
- /package/dist/{tags-4O5FPEEY.js.map → tags-ZCQMJ5YH.js.map} +0 -0
- /package/dist/{targeting-criteria-65UU7EYD.js.map → targeting-criteria-ECQFHQF3.js.map} +0 -0
- /package/dist/{targets-T742OPQI.js.map → targets-U2JHTB5U.js.map} +0 -0
- /package/dist/{testimonials-HKJJXONO.js.map → testimonials-IDVLMXDT.js.map} +0 -0
- /package/dist/{themes-Q6LVMEMF.js.map → themes-FW3VWZJE.js.map} +0 -0
- /package/dist/{top-companies-T6AMU4C6.js.map → top-companies-CBI4O3ZB.js.map} +0 -0
- /package/dist/{transcript-DOUYMZAP.js.map → transcript-IIRFTFRW.js.map} +0 -0
- /package/dist/{translate-WKOXFZTQ.js.map → translate-N6QW4FZB.js.map} +0 -0
- /package/dist/{triggers-EYY4GSUL.js.map → triggers-Q3KRAMA3.js.map} +0 -0
- /package/dist/{unlink-JNM4WRZK.js.map → unlink-7RVQXKAR.js.map} +0 -0
- /package/dist/{unstage-QF4JT5YP.js.map → unstage-3LPHNZKR.js.map} +0 -0
- /package/dist/{update-J4DURR4K.js.map → update-AL3LBHGK.js.map} +0 -0
- /package/dist/{update-J7Y6LZC5.js.map → update-AWR7EHGA.js.map} +0 -0
- /package/dist/{update-MQ4NYIU6.js.map → update-LNSSLZXG.js.map} +0 -0
- /package/dist/{update-6V3RBRIE.js.map → update-YBTFH5MN.js.map} +0 -0
- /package/dist/{upload-CEIYYPID.js.map → upload-45GCGMA5.js.map} +0 -0
- /package/dist/{url-options-6WC2XQKB.js.map → url-options-AHJPR5VY.js.map} +0 -0
- /package/dist/{url-params-OVBIP6UA.js.map → url-params-U6ZM4LL2.js.map} +0 -0
- /package/dist/{validate-UHXI2ESE.js.map → validate-S325RXPH.js.map} +0 -0
- /package/dist/{videos-Z72RXCRB.js.map → videos-NW2UP342.js.map} +0 -0
- /package/dist/{viewer-check-655BZRML.js.map → viewer-check-IDXFRRCO.js.map} +0 -0
- /package/dist/{web-4QN6QB7L.js.map → web-VMPKMBKA.js.map} +0 -0
- /package/dist/{winning-ads-2J2RIOLR.js.map → winning-ads-7UJXCWFH.js.map} +0 -0
- /package/dist/{write-commands-V7B4FBMX.js.map → write-commands-R42DQEW6.js.map} +0 -0
- /package/dist/{x-7KXNCWTJ.js.map → x-UGTUOCVR.js.map} +0 -0
package/dist/chunk-RIVQ4PQQ.js
DELETED
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BRAND_DIR,
|
|
3
|
-
inkLuma,
|
|
4
|
-
logoArtwork
|
|
5
|
-
} from "./chunk-Z5BG47PO.js";
|
|
6
|
-
import {
|
|
7
|
-
fetchExternalBytes
|
|
8
|
-
} from "./chunk-O5VSYBUA.js";
|
|
9
|
-
import {
|
|
10
|
-
apiGet,
|
|
11
|
-
apiPost
|
|
12
|
-
} from "./chunk-LJEJCIHR.js";
|
|
13
|
-
|
|
14
|
-
// src/commands/canvas/clientLogo.ts
|
|
15
|
-
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
16
|
-
import * as cheerio from "cheerio";
|
|
17
|
-
import path from "path";
|
|
18
|
-
function decideClientLogo(domain, lookup) {
|
|
19
|
-
if (!domain) return { use: false, reason: "no_domain" };
|
|
20
|
-
const verdict = lookup?.brandMatch?.verdict;
|
|
21
|
-
if (verdict === "mismatch") {
|
|
22
|
-
return { use: false, reason: "mismatch", ...lookup?.brandMatch?.name ? { wrongBrand: lookup.brandMatch.name } : {} };
|
|
23
|
-
}
|
|
24
|
-
if (verdict !== "confirmed") return { use: false, reason: "unverified" };
|
|
25
|
-
const url = lookup?.hits?.map((hit) => hit.imageUrl ?? hit.sourceUrl).find((candidate) => Boolean(candidate));
|
|
26
|
-
return url ? { use: true, url } : { use: false, reason: "no_hits" };
|
|
27
|
-
}
|
|
28
|
-
function clientLogoMissNote(decision, domain) {
|
|
29
|
-
switch (decision.reason) {
|
|
30
|
-
case "no_domain":
|
|
31
|
-
return "Baker has no website on record for this company, so their mark could not be looked up.";
|
|
32
|
-
case "mismatch":
|
|
33
|
-
return `The mark found for \`${domain}\` belongs to ${decision.wrongBrand ?? "a different company"}, not to this client, so it was not used.`;
|
|
34
|
-
default:
|
|
35
|
-
return `No brand mark could be confirmed for \`${domain}\`, so nothing was placed.`;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
function hostOf(site) {
|
|
39
|
-
try {
|
|
40
|
-
return new URL(/^https?:\/\//i.test(site) ? site : `https://${site}`).hostname.replace(/^www\./i, "").toLowerCase();
|
|
41
|
-
} catch {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
var NOT_THE_LOGO = /favicon|apple-touch|sprite|(?:^|[/_.-])icons?(?:[/_.-]|$)|client|customer|partner|testimonial|trust|badge|award/i;
|
|
46
|
-
function sayings(hit, url) {
|
|
47
|
-
const meta = hit.providerMeta ?? {};
|
|
48
|
-
const given = ["alt", "class", "id", "title"].map((key) => typeof meta[key] === "string" ? meta[key] : "");
|
|
49
|
-
return [new URL(url).pathname, hit.name ?? "", hit.description ?? "", ...given].join(" ");
|
|
50
|
-
}
|
|
51
|
-
function logoFromExtract(hits, domain) {
|
|
52
|
-
const own = hostOf(domain);
|
|
53
|
-
if (!own) return null;
|
|
54
|
-
const candidates = hits.flatMap((hit) => {
|
|
55
|
-
const url = hit.url ?? hit.imageUrl ?? hit.sourceUrl;
|
|
56
|
-
const host = url ? hostOf(url) : null;
|
|
57
|
-
if (!url || !host || host !== own && !host.endsWith(`.${own}`)) return [];
|
|
58
|
-
const said = sayings(hit, url);
|
|
59
|
-
if (!/logo/i.test(said) || NOT_THE_LOGO.test(said)) return [];
|
|
60
|
-
return [{ url, score: (/\.svg(?:\?|$)/i.test(url) ? 2 : 0) + (/logo/i.test(new URL(url).pathname) ? 1 : 0) }];
|
|
61
|
-
});
|
|
62
|
-
candidates.sort((a, b) => b.score - a.score || a.url.length - b.url.length);
|
|
63
|
-
return candidates[0]?.url ?? null;
|
|
64
|
-
}
|
|
65
|
-
var MAX_INLINE_SVG = 3e5;
|
|
66
|
-
var BRAND_PLACES = "header, nav, [role=banner]";
|
|
67
|
-
var IMAGE_ADDRESS = ["src", "data-src", "data-lazy-src", "data-original"];
|
|
68
|
-
function logoFromPage(html, pageUrl, domain) {
|
|
69
|
-
const own = hostOf(domain);
|
|
70
|
-
if (!own) return null;
|
|
71
|
-
const $ = cheerio.load(html);
|
|
72
|
-
for (const el of $(`${BRAND_PLACES}`).find("img, svg").toArray()) {
|
|
73
|
-
const node = $(el);
|
|
74
|
-
const said = [node, node.closest("a")].flatMap((n) => ["class", "id", "alt", "aria-label", "title"].map((k) => n.attr(k) ?? "")).join(" ");
|
|
75
|
-
if (!/logo/i.test(said) || NOT_THE_LOGO.test(said)) continue;
|
|
76
|
-
if (el.tagName === "svg") {
|
|
77
|
-
const svg = standaloneSvg($, node);
|
|
78
|
-
if (svg) return { kind: "svg", svg };
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
|
-
const url = IMAGE_ADDRESS.map((k) => node.attr(k)?.trim() ?? "").filter((a) => a !== "" && !a.startsWith("data:")).map((a) => absolute(a, pageUrl)).find((a) => a !== null);
|
|
82
|
-
const host = url ? hostOf(url) : null;
|
|
83
|
-
if (url && host && (host === own || host.endsWith(`.${own}`))) return { kind: "url", url };
|
|
84
|
-
}
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
function absolute(address, base) {
|
|
88
|
-
try {
|
|
89
|
-
const url = new URL(address, base);
|
|
90
|
-
return /^https?:$/.test(url.protocol) ? url.href : null;
|
|
91
|
-
} catch {
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
function standaloneSvg($, node) {
|
|
96
|
-
const draws = node.find("path, circle, rect, polygon, polyline, ellipse, line, text").length > 0;
|
|
97
|
-
if (!draws || node.find("use").length > 0) return null;
|
|
98
|
-
const copy = node.clone();
|
|
99
|
-
if (!copy.attr("xmlns")) copy.attr("xmlns", "http://www.w3.org/2000/svg");
|
|
100
|
-
const svg = $.html(copy);
|
|
101
|
-
return svg.length <= MAX_INLINE_SVG ? svg : null;
|
|
102
|
-
}
|
|
103
|
-
function logoTone(inkLuma2) {
|
|
104
|
-
return inkLuma2 !== null && inkLuma2 > 170 ? "dark" : "light";
|
|
105
|
-
}
|
|
106
|
-
function withLogoRegistered(tokensJson, logo) {
|
|
107
|
-
if (tokensJson === null) return null;
|
|
108
|
-
let tokens;
|
|
109
|
-
try {
|
|
110
|
-
tokens = JSON.parse(tokensJson);
|
|
111
|
-
} catch {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
if (!tokens || typeof tokens !== "object" || Array.isArray(tokens)) return null;
|
|
115
|
-
const doc = tokens;
|
|
116
|
-
const logos = Array.isArray(doc.logos) ? doc.logos : [];
|
|
117
|
-
if (logos.some((l) => l?.path === logo.path)) return null;
|
|
118
|
-
const next = { ...doc, logos: [...logos, { variant: "logo", background: logo.background, path: logo.path }] };
|
|
119
|
-
return `${JSON.stringify(next, null, 2)}
|
|
120
|
-
`;
|
|
121
|
-
}
|
|
122
|
-
function logoMissingHint(company, domain) {
|
|
123
|
-
return `No logo on file for ${company}: add it on the Brand page${domain ? ` (we could not find it on ${domain})` : ""}.`;
|
|
124
|
-
}
|
|
125
|
-
function extensionOf(url) {
|
|
126
|
-
return /\.(svg|png|jpg|jpeg|webp)(?:\?|$)/i.exec(url)?.[1]?.toLowerCase() ?? "svg";
|
|
127
|
-
}
|
|
128
|
-
var MAX_LOGO_BYTES = 3e6;
|
|
129
|
-
async function downloaded(url) {
|
|
130
|
-
try {
|
|
131
|
-
const { buffer } = await fetchExternalBytes(url, { maxBytes: MAX_LOGO_BYTES });
|
|
132
|
-
return buffer.byteLength > 0 ? { bytes: buffer, extension: extensionOf(url) } : null;
|
|
133
|
-
} catch {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
async function logoOnSite(domain) {
|
|
138
|
-
const host = hostOf(domain);
|
|
139
|
-
if (!host) return null;
|
|
140
|
-
const page = `https://${host}/`;
|
|
141
|
-
try {
|
|
142
|
-
const { buffer } = await fetchExternalBytes(page, { maxBytes: MAX_LOGO_BYTES });
|
|
143
|
-
const found = logoFromPage(buffer.toString("utf8"), page, domain);
|
|
144
|
-
if (found?.kind === "svg") return { bytes: Buffer.from(found.svg, "utf8"), extension: "svg" };
|
|
145
|
-
const file = found ? await downloaded(found.url) : null;
|
|
146
|
-
if (file) return file;
|
|
147
|
-
} catch {
|
|
148
|
-
}
|
|
149
|
-
try {
|
|
150
|
-
const listed = await apiPost("/api/images/extract", { url: page, limit: 50 });
|
|
151
|
-
const url = logoFromExtract(listed.hits ?? [], domain);
|
|
152
|
-
return url ? await downloaded(url) : null;
|
|
153
|
-
} catch {
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
async function logoSource(domain) {
|
|
158
|
-
let lookup = null;
|
|
159
|
-
if (domain) {
|
|
160
|
-
try {
|
|
161
|
-
lookup = await apiPost("/api/images/logo", { domain, variant: "logo", autoIngest: 1 });
|
|
162
|
-
} catch {
|
|
163
|
-
lookup = null;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
const decision = decideClientLogo(domain, lookup);
|
|
167
|
-
if (decision.use) {
|
|
168
|
-
const file = await downloaded(decision.url);
|
|
169
|
-
if (file) return file;
|
|
170
|
-
}
|
|
171
|
-
if (domain && !(decision.use === false && decision.reason === "mismatch")) {
|
|
172
|
-
const file = await logoOnSite(domain);
|
|
173
|
-
if (file) return file;
|
|
174
|
-
}
|
|
175
|
-
return { note: clientLogoMissNote(decision.use ? { use: false, reason: "no_hits" } : decision, domain) };
|
|
176
|
-
}
|
|
177
|
-
async function inkOf(bytes) {
|
|
178
|
-
try {
|
|
179
|
-
return inkLuma((await logoArtwork(bytes)).data);
|
|
180
|
-
} catch {
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
async function fetchClientLogo(root = ".") {
|
|
185
|
-
let domain;
|
|
186
|
-
let company;
|
|
187
|
-
try {
|
|
188
|
-
const found = await apiGet("/api/company");
|
|
189
|
-
domain = found.data.domain?.trim() || void 0;
|
|
190
|
-
company = found.data.name;
|
|
191
|
-
} catch {
|
|
192
|
-
domain = void 0;
|
|
193
|
-
}
|
|
194
|
-
const named = { ...domain ? { domain } : {}, ...company ? { company } : {} };
|
|
195
|
-
const source = await logoSource(domain);
|
|
196
|
-
if ("note" in source) return { ok: false, reason: source.note, ...named };
|
|
197
|
-
try {
|
|
198
|
-
const tone = logoTone(await inkOf(source.bytes));
|
|
199
|
-
const dir = path.join(root, BRAND_DIR, "logos");
|
|
200
|
-
await mkdir(dir, { recursive: true });
|
|
201
|
-
const file = path.join(dir, `logo-${tone}.${source.extension}`);
|
|
202
|
-
await writeFile(file, source.bytes);
|
|
203
|
-
await registerLogo(root, path.join(BRAND_DIR, "logos", path.basename(file)), tone);
|
|
204
|
-
return { ok: true, path: file, ...named };
|
|
205
|
-
} catch {
|
|
206
|
-
return { ok: false, reason: clientLogoMissNote({ use: false, reason: "no_hits" }, domain), ...named };
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
async function registerLogo(root, relative, background) {
|
|
210
|
-
const tokensPath = path.join(root, BRAND_DIR, "tokens.json");
|
|
211
|
-
const next = withLogoRegistered(await readFile(tokensPath, "utf8").catch(() => null), { path: relative, background });
|
|
212
|
-
if (next !== null) await writeFile(tokensPath, next, "utf8").catch(() => void 0);
|
|
213
|
-
}
|
|
214
|
-
async function withClientLogo(root, kit, reread, fetch = fetchClientLogo) {
|
|
215
|
-
if (kit.logo) return { kit };
|
|
216
|
-
const fetched = await fetch(root).catch(() => null);
|
|
217
|
-
if (fetched?.ok) return { kit: await reread() };
|
|
218
|
-
return { kit, hint: logoMissingHint(fetched?.company ?? "your company", fetched?.domain) };
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
export {
|
|
222
|
-
fetchClientLogo,
|
|
223
|
-
withClientLogo
|
|
224
|
-
};
|
|
225
|
-
//# sourceMappingURL=chunk-RIVQ4PQQ.js.map
|
package/dist/chunk-RLLPY62L.js
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
failApi
|
|
3
|
-
} from "./chunk-YAINUFSC.js";
|
|
4
|
-
import {
|
|
5
|
-
CREATIVE_PERFORMANCE_DEFAULT_DAYS,
|
|
6
|
-
CREATIVE_PERFORMANCE_MAX_DAYS
|
|
7
|
-
} from "./chunk-6DSPB6YA.js";
|
|
8
|
-
import {
|
|
9
|
-
apiPost
|
|
10
|
-
} from "./chunk-LJEJCIHR.js";
|
|
11
|
-
import {
|
|
12
|
-
registerSchema,
|
|
13
|
-
writeJson
|
|
14
|
-
} from "./chunk-NXNOXZGB.js";
|
|
15
|
-
|
|
16
|
-
// src/commands/creatives/performance.ts
|
|
17
|
-
import { readFileSync } from "fs";
|
|
18
|
-
import path from "path";
|
|
19
|
-
import { defineCommand } from "citty";
|
|
20
|
-
import { parse as parseYaml } from "yaml";
|
|
21
|
-
var DESCRIPTION = `How each Baker creative is doing in the live Meta ads that show it: spend, impressions, CTR, CPC, results, cost per result, frequency and a fatigue verdict, next to the angle, hook, mechanism and dominant slot its definition set out to test. Video creatives add hookRate (percent of impressions that watched 3 seconds) and holdRate (percent of those that reached a ThruPlay). Use it before briefing new creatives, to learn which angle and mechanism to make next and which creatives to replace.
|
|
22
|
-
|
|
23
|
-
Start here:
|
|
24
|
-
baker creatives performance # every creative in an ad, last 30 days
|
|
25
|
-
baker creatives performance --slug spring-offer # one creative
|
|
26
|
-
baker creatives performance --days 14 --full # ids, last-7-day figures, a video's watch funnel, one row per ad
|
|
27
|
-
|
|
28
|
-
Fatigue follows the Meta playbook (07-creative-audit.md): fresh, fading, fatigued, dead, or too_early (under 14 days or 1,000 impressions) and no_delivery. A low hook rate means the first 3 seconds need new hooks; a working hook with a low hold rate means the body loses people. A creative counts once a Session's publish created an ad with it.`;
|
|
29
|
-
var ARGS = {
|
|
30
|
-
slug: { type: "string", description: "Only this creative (src/creatives/<slug>/)", required: false },
|
|
31
|
-
days: {
|
|
32
|
-
type: "string",
|
|
33
|
-
description: `Reporting window in days, ending today (1-${CREATIVE_PERFORMANCE_MAX_DAYS}, default ${CREATIVE_PERFORMANCE_DEFAULT_DAYS})`,
|
|
34
|
-
required: false
|
|
35
|
-
},
|
|
36
|
-
full: {
|
|
37
|
-
type: "boolean",
|
|
38
|
-
description: "Add ids, last-7-day CTR and cost per result, and one row per ad",
|
|
39
|
-
required: false,
|
|
40
|
-
default: false
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
registerSchema({ command: "creatives.performance", description: DESCRIPTION, args: ARGS });
|
|
44
|
-
var INSIGHT_KEYS = [
|
|
45
|
-
"idea",
|
|
46
|
-
"message",
|
|
47
|
-
"evidence",
|
|
48
|
-
"angle",
|
|
49
|
-
"hook",
|
|
50
|
-
"mechanism",
|
|
51
|
-
"dominantSlot",
|
|
52
|
-
"persona",
|
|
53
|
-
"awareness",
|
|
54
|
-
"hypothesis"
|
|
55
|
-
];
|
|
56
|
-
var FRONTMATTER = /^---\r?\n([\s\S]*?)\r?\n---/;
|
|
57
|
-
function insightValue(value) {
|
|
58
|
-
if (typeof value === "string") return value.trim() || null;
|
|
59
|
-
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
function definitionInsights(markdown) {
|
|
63
|
-
const block = FRONTMATTER.exec(markdown)?.[1];
|
|
64
|
-
if (!block) return null;
|
|
65
|
-
let parsed;
|
|
66
|
-
try {
|
|
67
|
-
parsed = parseYaml(block);
|
|
68
|
-
} catch {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
if (parsed === null || typeof parsed !== "object") return null;
|
|
72
|
-
const insights = {};
|
|
73
|
-
for (const [key, raw] of Object.entries(parsed)) {
|
|
74
|
-
if (!(INSIGHT_KEYS.includes(key) || key.startsWith("source") || key.startsWith("reference"))) continue;
|
|
75
|
-
const value = insightValue(raw);
|
|
76
|
-
if (value !== null) insights[key] = value;
|
|
77
|
-
}
|
|
78
|
-
return Object.keys(insights).length > 0 ? insights : null;
|
|
79
|
-
}
|
|
80
|
-
function readLocalDefinition(slug) {
|
|
81
|
-
try {
|
|
82
|
-
return readFileSync(path.join(process.cwd(), "src", "creatives", slug, "_definition.md"), "utf8");
|
|
83
|
-
} catch {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
var COMPARED_FIELDS = [
|
|
88
|
-
{ key: "angle", label: "angle", advice: "Brief the next creative on the cheapest angle with a new hook." },
|
|
89
|
-
{ key: "mechanism", label: "mechanism", advice: "Brief the next creative on the cheapest mechanism." },
|
|
90
|
-
{ key: "dominantSlot", label: "dominant slot", advice: "Lead the next creative with the cheapest dominant slot." }
|
|
91
|
-
];
|
|
92
|
-
function cheapestHint(creatives, { key, label, advice }) {
|
|
93
|
-
const byValue = /* @__PURE__ */ new Map();
|
|
94
|
-
for (const creative of creatives) {
|
|
95
|
-
const value = creative.definition?.[key];
|
|
96
|
-
if (!value || creative.costPerResult === null) continue;
|
|
97
|
-
const best = byValue.get(value);
|
|
98
|
-
if (!best || (best.costPerResult ?? Number.POSITIVE_INFINITY) > creative.costPerResult)
|
|
99
|
-
byValue.set(value, creative);
|
|
100
|
-
}
|
|
101
|
-
if (byValue.size < 2) return null;
|
|
102
|
-
const ranked = [...byValue.entries()].sort(([, a], [, b]) => (a.costPerResult ?? 0) - (b.costPerResult ?? 0)).map(
|
|
103
|
-
([value, creative]) => `"${value}" ${creative.costPerResult}${creative.currency ? ` ${creative.currency}` : ""} (${creative.slug ?? creative.title})`
|
|
104
|
-
);
|
|
105
|
-
return `Cost per result by ${label}: ${ranked.join(", ")}. ${advice}`;
|
|
106
|
-
}
|
|
107
|
-
function withDefinitions(response, readDefinition) {
|
|
108
|
-
const creatives = response.data.creatives.map((creative) => {
|
|
109
|
-
const markdown = creative.slug ? readDefinition(creative.slug) : null;
|
|
110
|
-
const definition = markdown ? definitionInsights(markdown) : null;
|
|
111
|
-
return definition ? { ...creative, definition } : creative;
|
|
112
|
-
});
|
|
113
|
-
const hints = [...response.hints ?? []];
|
|
114
|
-
for (const field of COMPARED_FIELDS) {
|
|
115
|
-
const hint = cheapestHint(creatives, field);
|
|
116
|
-
if (hint) hints.push(hint);
|
|
117
|
-
}
|
|
118
|
-
const unnamed = creatives.filter((creative) => !creative.definition?.angle).map((c) => c.slug ?? c.title);
|
|
119
|
-
if (unnamed.length > 0) {
|
|
120
|
-
hints.push(
|
|
121
|
-
`No angle recorded for: ${unnamed.join(", ")}. Add angle and hook to src/creatives/<slug>/_definition.md so results show which angle works.`
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
return { ...response, data: { ...response.data, creatives }, ...hints.length > 0 ? { hints } : {} };
|
|
125
|
-
}
|
|
126
|
-
function syncedCreativesHint(slug) {
|
|
127
|
-
return `Live Meta read. Across every platform, from the synced copy (no rate limit, full history): baker ads performance creatives ranks them against their ad-group peers (madeInBaker names this creative), and baker ads performance live-in --creative ${slug ?? "<slug>"} lists the live campaigns showing it.`;
|
|
128
|
-
}
|
|
129
|
-
function parseDays(raw) {
|
|
130
|
-
if (raw === void 0) return void 0;
|
|
131
|
-
const days = Number(raw);
|
|
132
|
-
if (!Number.isInteger(days) || days < 1 || days > CREATIVE_PERFORMANCE_MAX_DAYS) {
|
|
133
|
-
throw new Error(`--days must be a whole number from 1 to ${CREATIVE_PERFORMANCE_MAX_DAYS}`);
|
|
134
|
-
}
|
|
135
|
-
return days;
|
|
136
|
-
}
|
|
137
|
-
var performanceCommand = defineCommand({
|
|
138
|
-
meta: { name: "performance", description: DESCRIPTION },
|
|
139
|
-
args: ARGS,
|
|
140
|
-
run: async ({ args }) => {
|
|
141
|
-
try {
|
|
142
|
-
const body = {};
|
|
143
|
-
const slug = args.slug;
|
|
144
|
-
if (slug) body.slug = slug;
|
|
145
|
-
const days = parseDays(args.days);
|
|
146
|
-
if (days !== void 0) body.days = days;
|
|
147
|
-
if (args.full) body.full = true;
|
|
148
|
-
const response = await apiPost("/api/creatives/performance", body);
|
|
149
|
-
const out = withDefinitions(response, readLocalDefinition);
|
|
150
|
-
writeJson({ ...out, hints: [...out.hints ?? [], syncedCreativesHint(slug)] });
|
|
151
|
-
} catch (err) {
|
|
152
|
-
failApi(err);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
export {
|
|
158
|
-
definitionInsights,
|
|
159
|
-
withDefinitions,
|
|
160
|
-
parseDays,
|
|
161
|
-
performanceCommand
|
|
162
|
-
};
|
|
163
|
-
//# sourceMappingURL=chunk-RLLPY62L.js.map
|
package/dist/chunk-RQHXWPET.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
COST_TYPES,
|
|
3
|
-
OBJECTIVE_TYPES,
|
|
4
|
-
calendarDaySchema,
|
|
5
|
-
targetingCriteriaSchema
|
|
6
|
-
} from "./chunk-6DSPB6YA.js";
|
|
7
|
-
|
|
8
|
-
// ../api/src/ads-linkedin/planning.ts
|
|
9
|
-
import { z } from "zod";
|
|
10
|
-
var moneySchema = z.object({
|
|
11
|
-
amount: z.string().regex(/^\d+(\.\d+)?$/, "use a plain amount such as 250 or 5.57"),
|
|
12
|
-
currencyCode: z.string().regex(/^[A-Z]{3}$/).optional()
|
|
13
|
-
});
|
|
14
|
-
var accountIdSchema = z.string().min(1);
|
|
15
|
-
var linkedinBidPricingRequestSchema = z.object({
|
|
16
|
-
accountId: accountIdSchema,
|
|
17
|
-
objectiveType: z.enum(OBJECTIVE_TYPES),
|
|
18
|
-
costType: z.enum(COST_TYPES).default("CPC"),
|
|
19
|
-
campaignType: z.enum(["SPONSORED_UPDATES", "TEXT_AD", "SPONSORED_INMAILS"]).default("SPONSORED_UPDATES"),
|
|
20
|
-
/** EXACT = audience expansion off, the playbook default. */
|
|
21
|
-
matchType: z.enum(["EXACT", "AUDIENCE_EXPANDED"]).default("EXACT"),
|
|
22
|
-
targetingCriteria: targetingCriteriaSchema,
|
|
23
|
-
skipCache: z.boolean().optional()
|
|
24
|
-
});
|
|
25
|
-
var LINKEDIN_FORECAST_DEFAULT_DAYS = 30;
|
|
26
|
-
var linkedinForecastRequestSchema = z.object({
|
|
27
|
-
accountId: accountIdSchema,
|
|
28
|
-
objectiveType: z.enum(OBJECTIVE_TYPES).optional(),
|
|
29
|
-
costType: z.enum(COST_TYPES).default("CPC"),
|
|
30
|
-
campaignType: z.enum(["SPONSORED_UPDATES", "SPONSORED_INMAILS", "DYNAMIC"]).default("SPONSORED_UPDATES"),
|
|
31
|
-
/** First forecast day (UTC); defaults to tomorrow — LinkedIn forecasts only the future. */
|
|
32
|
-
startDate: calendarDaySchema.optional(),
|
|
33
|
-
days: z.number().int().min(1).max(365).default(LINKEDIN_FORECAST_DEFAULT_DAYS),
|
|
34
|
-
dailyBudget: moneySchema.optional(),
|
|
35
|
-
totalBudget: moneySchema.optional(),
|
|
36
|
-
/** A manual bid; without one LinkedIn forecasts its automated bidding. */
|
|
37
|
-
bid: moneySchema.optional(),
|
|
38
|
-
optimizationTarget: z.string().regex(/^[A-Z_]+$/).optional(),
|
|
39
|
-
targetingCriteria: targetingCriteriaSchema,
|
|
40
|
-
/** Add LinkedIn's raw series (daily, 7-day, 30-day) to the summary. */
|
|
41
|
-
full: z.boolean().default(false),
|
|
42
|
-
skipCache: z.boolean().optional()
|
|
43
|
-
}).superRefine((req, ctx) => {
|
|
44
|
-
if (!req.dailyBudget && !req.totalBudget) {
|
|
45
|
-
ctx.addIssue({
|
|
46
|
-
code: "custom",
|
|
47
|
-
path: ["totalBudget"],
|
|
48
|
-
message: "a budget is required (daily or total) \u2014 LinkedIn forecasts what a budget buys"
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
if (req.dailyBudget && req.totalBudget) {
|
|
52
|
-
ctx.addIssue({ code: "custom", path: ["totalBudget"], message: "pass a daily or a total budget, not both" });
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
export {
|
|
57
|
-
linkedinBidPricingRequestSchema,
|
|
58
|
-
LINKEDIN_FORECAST_DEFAULT_DAYS,
|
|
59
|
-
linkedinForecastRequestSchema
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=chunk-RQHXWPET.js.map
|
package/dist/chunk-RULW4627.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
creativesRunResponseSchema
|
|
3
|
-
} from "./chunk-6DSPB6YA.js";
|
|
4
|
-
import {
|
|
5
|
-
ApiError,
|
|
6
|
-
apiPost
|
|
7
|
-
} from "./chunk-LJEJCIHR.js";
|
|
8
|
-
|
|
9
|
-
// src/commands/canvas/run-history.ts
|
|
10
|
-
async function fetchRunRecord(runId, post = apiPost) {
|
|
11
|
-
try {
|
|
12
|
-
const response = await post("/api/creatives/run", { runId });
|
|
13
|
-
return creativesRunResponseSchema.parse(response).data;
|
|
14
|
-
} catch (e) {
|
|
15
|
-
if (e instanceof ApiError && e.code === "NOT_FOUND") return null;
|
|
16
|
-
throw e;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export {
|
|
21
|
-
fetchRunRecord
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=chunk-RULW4627.js.map
|
package/dist/chunk-S4RCF3YT.js
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Phrases,
|
|
3
|
-
RULE_APPLIES,
|
|
4
|
-
RULE_KINDS,
|
|
5
|
-
RULE_STRENGTHS
|
|
6
|
-
} from "./chunk-NOCBNING.js";
|
|
7
|
-
import {
|
|
8
|
-
holdWorkspaceSpend
|
|
9
|
-
} from "./chunk-Q3G4ZI2U.js";
|
|
10
|
-
import {
|
|
11
|
-
askAboutText
|
|
12
|
-
} from "./chunk-GRX3JXSR.js";
|
|
13
|
-
import {
|
|
14
|
-
CREATIVE_FEEDBACK_REASON_LABELS
|
|
15
|
-
} from "./chunk-6DSPB6YA.js";
|
|
16
|
-
|
|
17
|
-
// src/commands/creatives/rule-candidate.ts
|
|
18
|
-
import { createHash } from "crypto";
|
|
19
|
-
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
20
|
-
import path from "path";
|
|
21
|
-
import { z } from "zod";
|
|
22
|
-
var optionalPhrases = Phrases.optional().catch(void 0);
|
|
23
|
-
var Draft = z.object({
|
|
24
|
-
because: z.string().trim().min(3).max(400),
|
|
25
|
-
text: z.string().trim().min(1).max(300),
|
|
26
|
-
strength: z.enum(RULE_STRENGTHS).catch("must"),
|
|
27
|
-
applies: z.enum(RULE_APPLIES).catch("any"),
|
|
28
|
-
language: z.string().trim().regex(/^[a-z]{2,3}$/).optional().catch(void 0),
|
|
29
|
-
kinds: z.array(z.enum(RULE_KINDS)).optional().catch(void 0),
|
|
30
|
-
platforms: optionalPhrases,
|
|
31
|
-
forbid: optionalPhrases,
|
|
32
|
-
require: optionalPhrases,
|
|
33
|
-
allow: optionalPhrases,
|
|
34
|
-
people: z.literal("real").optional().catch(void 0)
|
|
35
|
-
});
|
|
36
|
-
function parseDrafts(answer) {
|
|
37
|
-
const rules = answer?.rules;
|
|
38
|
-
if (!Array.isArray(rules)) return [];
|
|
39
|
-
return rules.slice(0, MAX_DRAFTS).flatMap((raw) => {
|
|
40
|
-
const draft = Draft.safeParse(raw);
|
|
41
|
-
if (!draft.success) return [];
|
|
42
|
-
const { because: _because, ...rule } = draft.data;
|
|
43
|
-
return [
|
|
44
|
-
Object.fromEntries(
|
|
45
|
-
Object.entries(rule).filter(([, v]) => v !== void 0 && !(Array.isArray(v) && v.length === 0))
|
|
46
|
-
)
|
|
47
|
-
];
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
var MAX_DRAFTS = 3;
|
|
51
|
-
function draftRulesPrompt(note, ad) {
|
|
52
|
-
const where = [ad.kind ? `a ${ad.kind} ad` : "an ad", ad.platform ? `for ${ad.platform}` : ""].filter(Boolean).join(" ");
|
|
53
|
-
return [
|
|
54
|
-
`A person rejected ${where} and said, in their own words:`,
|
|
55
|
-
`"""${note}"""`,
|
|
56
|
-
"",
|
|
57
|
-
"List only the standing rules this note states for EVERY future ad of the company (at most 3). Most notes state none: they ask for changes to this ad (fix a word, move the logo, speed up a scene, redo the pieces), and a change to this ad is never a rule, however it is phrased. A rule is standing only when the note itself says it holds beyond this ad (always, never, in every video, in these creatives, these mistakes keep happening, it is the format of the programme, the rule of the other pieces), or it corrects how the company or what it sells must always be named.",
|
|
58
|
-
"For each rule, quote in `because` the note's own words that make it hold beyond this ad; a rule you cannot quote that for is not a rule. Return JSON only:",
|
|
59
|
-
'{"rules": [{"because": string, "text": string, "strength": "never" | "must" | "prefer", "applies": "copy" | "picture" | "cast" | "logo" | "voice" | "sound" | "subtitles" | "any", "language": string, "kinds": ["static" | "video"], "platforms": string[], "forbid": string[], "require": string[], "allow": string[], "people": "real" | null}]}',
|
|
60
|
-
"- text: the rule in one short sentence, in the note's own language and close to its words.",
|
|
61
|
-
'- strength: "never" for a ban, "must" for something every ad has to do, "prefer" for a taste.',
|
|
62
|
-
'- applies: what of the ad it is about ("copy" for its words, "picture", "cast" for who appears, "logo", "voice", "sound", "subtitles"), else "any".',
|
|
63
|
-
`- language: the note's language as a two-letter code ("es").`,
|
|
64
|
-
'- kinds and platforms: only when the note limits the rule to them ("en estos creativos de linkedin" gives platforms ["linkedin"]); else [].',
|
|
65
|
-
`- forbid: the exact words the rule bans in the ad's words, only when a word or phrase decides it ("100 % online", not "online" gives forbid ["online"], allow ["100 % online"]); else []. require: words every ad must say; usually []. allow: the right phrase that contains a banned word.`,
|
|
66
|
-
'- people: "real" only when the rule is that no AI-made or invented people appear; else null.',
|
|
67
|
-
'Return {"rules": []} when the note states no standing rule.'
|
|
68
|
-
].join("\n");
|
|
69
|
-
}
|
|
70
|
-
var RULE_DRAFT_MODEL = "google/gemini-3.5-flash";
|
|
71
|
-
var DRAFT_REQUEST = {
|
|
72
|
-
provider: { order: ["google-vertex"], allow_fallbacks: false },
|
|
73
|
-
seed: 0,
|
|
74
|
-
reasoning: { effort: "low" },
|
|
75
|
-
response_format: { type: "json_object" }
|
|
76
|
-
};
|
|
77
|
-
var DRAFT_TIMEOUT_MS = 3e4;
|
|
78
|
-
function modelRuleDrafter(cacheDir) {
|
|
79
|
-
return async (note, ad) => {
|
|
80
|
-
const prompt = draftRulesPrompt(note, ad);
|
|
81
|
-
const key = createHash("sha256").update(JSON.stringify([RULE_DRAFT_MODEL, prompt])).digest("hex").slice(0, 16);
|
|
82
|
-
const file = path.join(cacheDir, "rule-drafts", `${key}.json`);
|
|
83
|
-
const cached = await readFile(file, "utf8").then(
|
|
84
|
-
(raw) => parseDrafts(JSON.parse(raw)),
|
|
85
|
-
() => null
|
|
86
|
-
);
|
|
87
|
-
if (cached) return cached;
|
|
88
|
-
const spent = [];
|
|
89
|
-
const answer = await askAboutText(RULE_DRAFT_MODEL, prompt, (u) => spent.push(u), {
|
|
90
|
-
timeoutMs: DRAFT_TIMEOUT_MS,
|
|
91
|
-
request: DRAFT_REQUEST
|
|
92
|
-
}).catch(() => null);
|
|
93
|
-
await holdWorkspaceSpend(spent);
|
|
94
|
-
if (answer === null) return [];
|
|
95
|
-
await mkdir(path.dirname(file), { recursive: true }).catch(() => void 0);
|
|
96
|
-
await writeFile(file, JSON.stringify(answer), "utf8").catch(() => void 0);
|
|
97
|
-
return parseDrafts(answer);
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
async function ruleCandidates(note, ad, draft) {
|
|
101
|
-
const text = note?.trim();
|
|
102
|
-
if (!text) return [];
|
|
103
|
-
return await draft(text, ad).catch(() => []);
|
|
104
|
-
}
|
|
105
|
-
var candidatesDir = (cacheDir) => path.join(cacheDir, "rule-candidates");
|
|
106
|
-
async function saveCandidates(cacheDir, candidates) {
|
|
107
|
-
await mkdir(candidatesDir(cacheDir), { recursive: true });
|
|
108
|
-
return await Promise.all(
|
|
109
|
-
candidates.map(async (c) => {
|
|
110
|
-
const id = `rc-${createHash("sha256").update(JSON.stringify(c)).digest("hex").slice(0, 8)}`;
|
|
111
|
-
await writeFile(path.join(candidatesDir(cacheDir), `${id}.json`), JSON.stringify(c), "utf8");
|
|
112
|
-
return id;
|
|
113
|
-
})
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
async function loadCandidate(cacheDir, id) {
|
|
117
|
-
if (!/^rc-[0-9a-f]{8}$/.test(id)) return null;
|
|
118
|
-
return await readFile(path.join(candidatesDir(cacheDir), `${id}.json`), "utf8").then(
|
|
119
|
-
(raw) => JSON.parse(raw),
|
|
120
|
-
() => null
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
var REPEATED_ON = 2;
|
|
124
|
-
var REPEATED_NOTES = 3;
|
|
125
|
-
function repeatedReasons(notes, reasons, slug) {
|
|
126
|
-
return reasons.flatMap((reason) => {
|
|
127
|
-
const others = notes.filter((n) => n.creative !== slug && n.reasons.includes(reason));
|
|
128
|
-
const creatives = new Set(others.map((n) => n.creative)).size;
|
|
129
|
-
return creatives >= REPEATED_ON ? [
|
|
130
|
-
{
|
|
131
|
-
label: CREATIVE_FEEDBACK_REASON_LABELS[reason],
|
|
132
|
-
creatives,
|
|
133
|
-
notes: [...new Set(others.map((n) => n.note))].slice(0, REPEATED_NOTES)
|
|
134
|
-
}
|
|
135
|
-
] : [];
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
function ruleCandidateHints(drafted, repeated) {
|
|
139
|
-
const asks = drafted.map(
|
|
140
|
-
(d) => `Their words state a rule for every ad: "${d.text}". Ask them once, in their language: make this a rule for every ad from now on? Only on yes: \`baker creatives rules add --candidate ${d.id}\` (reword it with --text if they correct it). On no, never ask again in this chat.`
|
|
141
|
-
);
|
|
142
|
-
const patterns = repeated.map(
|
|
143
|
-
(r) => `"${r.label}" was also the reason on ${r.creatives} other ads (their words: ${r.notes.map((n) => `"${n}"`).join("; ")}). ${drafted.length > 0 ? "Say so when you ask." : 'Ask them once whether there is a rule for every ad behind it; on yes, `baker creatives rules add --text "<the rule, in their words>" \u2026`.'}`
|
|
144
|
-
);
|
|
145
|
-
return [...asks, ...patterns];
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export {
|
|
149
|
-
modelRuleDrafter,
|
|
150
|
-
ruleCandidates,
|
|
151
|
-
saveCandidates,
|
|
152
|
-
loadCandidate,
|
|
153
|
-
repeatedReasons,
|
|
154
|
-
ruleCandidateHints
|
|
155
|
-
};
|
|
156
|
-
//# sourceMappingURL=chunk-S4RCF3YT.js.map
|