@koda-sl/baker-cli 0.545.0 → 0.546.0-dev.a72c87f73
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/dist/account-IG3U6UXZ.js +82 -0
- package/dist/account-IGWCS2VJ.js +82 -0
- package/dist/account-reads-LOCJMS35.js +219 -0
- package/dist/account-users-H4VP43RZ.js +64 -0
- package/dist/account-writes-BSSKSTZ2.js +68 -0
- package/dist/accounts-C4PNBT5X.js +701 -0
- package/dist/accounts-GPTG4XW5.js +80 -0
- package/dist/actions-F7YO5I27.js +55 -0
- package/dist/activecampaign-S4E46SA6.js +938 -0
- package/dist/ad-group-writes-KMB3OMJG.js +172 -0
- package/dist/ad-groups-E67CNQS4.js +70 -0
- package/dist/ad-writes-FNMKNFUN.js +176 -0
- package/dist/add-LROKBWW4.js +107 -0
- package/dist/add-SG5XWFRN.js +305 -0
- package/dist/ads-4LASBP4G.js +79 -0
- package/dist/ads-7ICT2D4M.js +48 -0
- package/dist/advertisers-IQMTOR4D.js +123 -0
- package/dist/analytics-6DSJ6WHO.js +2437 -0
- package/dist/analytics-D6S5LW2F.js +447 -0
- package/dist/animate-OWXAT2RK.js +480 -0
- package/dist/assign-TMG6FDLW.js +80 -0
- package/dist/audience-size-KPJOSG5W.js +76 -0
- package/dist/audiences-3R574STZ.js +280 -0
- package/dist/audit-35TDKIGY.js +154 -0
- package/dist/autocomplete-T63KPKRZ.js +114 -0
- package/dist/avatars-AVK4S3HS.js +38 -0
- package/dist/bid-pricing-O5IK37CL.js +103 -0
- package/dist/brand-SG6VOHF4.js +22 -0
- package/dist/brief-RWA6MXTN.js +543 -0
- package/dist/campaign-groups-SSZISPJ5.js +99 -0
- package/dist/campaign-writes-74KDZ7RR.js +168 -0
- package/dist/campaign-writes-Z2J24SUZ.js +176 -0
- package/dist/campaigns-43OS6EUG.js +78 -0
- package/dist/campaigns-B5TSL3UD.js +113 -0
- package/dist/campaigns-TFNPOQEW.js +111 -0
- package/dist/canvas-4LSM4Y5I.js +46 -0
- package/dist/capabilities-CTKSS7AI.js +147 -0
- package/dist/catalog-7LINLVVY.js +66 -0
- package/dist/catalogs-IR22RGZD.js +130 -0
- package/dist/changes-JAGWBHQC.js +143 -0
- package/dist/chatgpt-NE2RBMFK.js +47 -0
- package/dist/chats-6TRVVEBG.js +449 -0
- package/dist/check-DZGMLLRL.js +107 -0
- package/dist/chunk-2DQC4XSN.js +224 -0
- package/dist/chunk-3BWT5YDD.js +57 -0
- package/dist/chunk-3EUITH4J.js +638 -0
- package/dist/chunk-3J5ZTJGN.js +163 -0
- package/dist/chunk-3OFLYMPK.js +547 -0
- package/dist/chunk-4IRJ5JXA.js +46 -0
- package/dist/chunk-5IFFPSEN.js +225 -0
- package/dist/chunk-5YNGVEX2.js +23 -0
- package/dist/chunk-64ALJ6TJ.js +274 -0
- package/dist/chunk-6OIKNJ7G.js +26 -0
- package/dist/chunk-7L3Z2GDZ.js +61 -0
- package/dist/chunk-7LYJVM7L.js +377 -0
- package/dist/chunk-7UFV6H7J.js +167 -0
- package/dist/chunk-AGVLJLOT.js +203 -0
- package/dist/chunk-B3CDNANO.js +843 -0
- package/dist/chunk-BNI5DAB7.js +783 -0
- package/dist/chunk-BRT5IG7N.js +438 -0
- package/dist/chunk-CXRS5YLB.js +150 -0
- package/dist/chunk-CY6EPTJA.js +191 -0
- package/dist/chunk-CZ4Q3I25.js +2209 -0
- package/dist/chunk-E5H7JIWB.js +3510 -0
- package/dist/chunk-EGW3D3RW.js +207 -0
- package/dist/chunk-EPLSDHBT.js +8954 -0
- package/dist/chunk-F2VUMTCJ.js +103 -0
- package/dist/chunk-F3CZFUXZ.js +3187 -0
- package/dist/chunk-F3CZFUXZ.js.map +1 -0
- package/dist/chunk-FLF2CIL2.js +66 -0
- package/dist/chunk-FM4YT7QA.js +156 -0
- package/dist/chunk-FUIPDGGH.js +197 -0
- package/dist/chunk-G47B4DOH.js +910 -0
- package/dist/chunk-G6J6AWTE.js +5471 -0
- package/dist/chunk-GCZK4BMB.js +5368 -0
- package/dist/chunk-GVYJOHX5.js +455 -0
- package/dist/chunk-H4CLWLYF.js +4269 -0
- package/dist/chunk-H4CLWLYF.js.map +1 -0
- package/dist/chunk-ICEYCLRU.js +679 -0
- package/dist/chunk-IDFTXHRQ.js +275 -0
- package/dist/chunk-J2RUOIME.js +494 -0
- package/dist/chunk-JBNT444M.js +285 -0
- package/dist/chunk-K4IPXVVC.js +430 -0
- package/dist/chunk-K4IPXVVC.js.map +1 -0
- package/dist/chunk-KAUP6ONR.js +89 -0
- package/dist/chunk-KTO2Y3DI.js +1646 -0
- package/dist/chunk-KVYXHWX2.js +249 -0
- package/dist/chunk-L7AJMZ6Z.js +24026 -0
- package/dist/chunk-L7AJMZ6Z.js.map +1 -0
- package/dist/chunk-LDFM37DM.js +148 -0
- package/dist/chunk-LHC6OHQ6.js +857 -0
- package/dist/chunk-LQOJBPKV.js +142 -0
- package/dist/chunk-METHLFNZ.js +63 -0
- package/dist/chunk-MGOSJSDV.js +51 -0
- package/dist/chunk-O34P4WD5.js +604 -0
- package/dist/chunk-O5V2KBI4.js +387 -0
- package/dist/chunk-OO7Y2NMT.js +685 -0
- package/dist/chunk-P3AHGZH2.js +170 -0
- package/dist/chunk-P6FMQHJJ.js +131 -0
- package/dist/chunk-Q6LCL67T.js +1518 -0
- package/dist/chunk-Q7G5CWH6.js +169 -0
- package/dist/chunk-RA73BVUX.js +392 -0
- package/dist/chunk-S6ZCFRL5.js +19 -0
- package/dist/chunk-SIKCVWM3.js +76 -0
- package/dist/chunk-SIWXWRAD.js +831 -0
- package/dist/chunk-UKIS6BLM.js +7800 -0
- package/dist/chunk-UKIS6BLM.js.map +1 -0
- package/dist/chunk-UNIJPTDU.js +344 -0
- package/dist/chunk-UXFRUYTR.js +91 -0
- package/dist/chunk-V4UJERGL.js +64 -0
- package/dist/chunk-W46BM7HF.js +334 -0
- package/dist/chunk-WH7CATSZ.js +930 -0
- package/dist/chunk-WM2PLENG.js +1902 -0
- package/dist/chunk-XU6XQPNM.js +1919 -0
- package/dist/chunk-YKFGXS26.js +228 -0
- package/dist/chunk-YQB66YKJ.js +98 -0
- package/dist/chunk-YZKZQXRX.js +297 -0
- package/dist/chunk-ZDHWB32Y.js +91 -0
- package/dist/chunk-ZOYNCIRB.js +479 -0
- package/dist/claim-PTCFUZM2.js +200 -0
- package/dist/cli.js +31 -31
- package/dist/companies-STCBOG5Z.js +198 -0
- package/dist/company-4CE7CGNC.js +308 -0
- package/dist/complete-R4A7LBOQ.js +84 -0
- package/dist/connect-4VLRGTAM.js +45 -0
- package/dist/conversation-JS52LHCZ.js +96 -0
- package/dist/conversion-report-R4KJI4VA.js +127 -0
- package/dist/conversion-upload-command-WCLWA27O.js +439 -0
- package/dist/conversion-writes-XIQEIDPS.js +122 -0
- package/dist/conversions-IYEF6WZP.js +140 -0
- package/dist/conversions-RMBQNW3T.js +78 -0
- package/dist/create-6I7SRQHV.js +135 -0
- package/dist/create-JYBMK5JH.js +210 -0
- package/dist/create-MPUAOJQB.js +62 -0
- package/dist/create-W7L5B374.js +239 -0
- package/dist/creatives-EPXJ2PDV.js +223 -0
- package/dist/creatives-PP6Z2T6Z.js +58 -0
- package/dist/credentials-R4BZ76RD.js +290 -0
- package/dist/critique-ICVRILIZ.js +232 -0
- package/dist/critique-OTIGYFZU.js +1451 -0
- package/dist/crm-5JFMA2YB.js +227 -0
- package/dist/crm-PRTHRLXM.js +323 -0
- package/dist/currency-BY647ZB7.js +88 -0
- package/dist/customers-5EWPVKJV.js +65 -0
- package/dist/delete-5EWH2SQQ.js +57 -0
- package/dist/delete-V2FBPIN7.js +69 -0
- package/dist/delete-ZWUCKXI5.js +67 -0
- package/dist/demographics-2YCVAAPH.js +141 -0
- package/dist/discard-N7K3UQ7M.js +69 -0
- package/dist/discover-TAJUFO5R.js +172 -0
- package/dist/domain-YYTNWNSF.js +101 -0
- package/dist/download-JMJRYJ37.js +172 -0
- package/dist/draft-KQACMPH2.js +313 -0
- package/dist/draft-PENVOYCI.js +220 -0
- package/dist/draft-RGSDXFFT.js +408 -0
- package/dist/draft-SKEGKHIK.js +288 -0
- package/dist/draft-UOMHLIVY.js +342 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-W5D7ERVJ.js +236 -0
- package/dist/facets-FUNOZ6JS.js +117 -0
- package/dist/feedback-OVZFH7UV.js +115 -0
- package/dist/feedback-record-DKDR3XHH.js +269 -0
- package/dist/fetch-QKP23NSX.js +204 -0
- package/dist/fit-PZPU2IZZ.js +65 -0
- package/dist/flows-GBMZJX4R.js +250 -0
- package/dist/fonts-2YY5465Q.js +39 -0
- package/dist/forecast-7B75GCRH.js +121 -0
- package/dist/forecast-VOND3WVO.js +169 -0
- package/dist/funnel-G4CMJ2C4.js +397 -0
- package/dist/generate-SW5KLHXG.js +263 -0
- package/dist/get-44VNCDBQ.js +59 -0
- package/dist/get-ZPJFKFHL.js +82 -0
- package/dist/google-VYARAUQH.js +3270 -0
- package/dist/google-ads-BKDTCXUS.js +198 -0
- package/dist/history-7DF5HFJT.js +69 -0
- package/dist/history-NEKVFRGQ.js +102 -0
- package/dist/history-YU6HH574.js +153 -0
- package/dist/hubspot-Q3ZQODAX.js +782 -0
- package/dist/ideas-75LW4KBY.js +45 -0
- package/dist/images-7FS4KEGU.js +92 -0
- package/dist/ingest-MHH5OQP4.js +27 -0
- package/dist/ingest-S5OS6WIU.js +123 -0
- package/dist/insights-YVV5MHPQ.js +132 -0
- package/dist/inspect-PIFZILBU.js +192 -0
- package/dist/inspiration-KL27O45N.js +53 -0
- package/dist/intent-GIAQDMHF.js +95 -0
- package/dist/keyword-gap-NZF75XGF.js +130 -0
- package/dist/keyword-metrics-H5M5I3N4.js +200 -0
- package/dist/keywords-for-site-RILBDULX.js +131 -0
- package/dist/landing-H5KY6F7K.js +28 -0
- package/dist/languages-GGNN7FEK.js +40 -0
- package/dist/leads-WCWH4C73.js +115 -0
- package/dist/learn-RUZUBNQZ.js +207 -0
- package/dist/line-item-writes-5Z3AEUV2.js +211 -0
- package/dist/line-items-IYSM2NEA.js +107 -0
- package/dist/link-KRNL5O7Z.js +67 -0
- package/dist/linkedin-GZIYAH4C.js +1330 -0
- package/dist/linkedin-person-PMXUBPVL.js +139 -0
- package/dist/list-ALQGX6JI.js +67 -0
- package/dist/list-I37IE3NN.js +154 -0
- package/dist/list-JD5T6CGQ.js +306 -0
- package/dist/locations-7RYEWKJO.js +69 -0
- package/dist/locations-BU4ZGWAS.js +40 -0
- package/dist/log-JWUFDOG6.js +95 -0
- package/dist/make-QCGOTYNW.js +1367 -0
- package/dist/map-EYKEY4VA.js +436 -0
- package/dist/mcp-P2PZCFFJ.js +729 -0
- package/dist/media-sources-UUNS3LES.js +35 -0
- package/dist/members-XTW5F5N5.js +47 -0
- package/dist/metrics-Z75Q2FHP.js +152 -0
- package/dist/models-X2IXXAD6.js +155 -0
- package/dist/normalize-P2UQIQOX.js +144 -0
- package/dist/options-2OK4LBAD.js +125 -0
- package/dist/organization-I5AIPZEH.js +949 -0
- package/dist/performance-4UPNHWC2.js +5565 -0
- package/dist/performance-H5FJQBOP.js +27 -0
- package/dist/pixels-DBSPNHIE.js +62 -0
- package/dist/promoted-tweet-writes-V5N5JDYQ.js +183 -0
- package/dist/promoted-tweets-ZSNBS3QQ.js +119 -0
- package/dist/publish-M6U72N3H.js +344 -0
- package/dist/query-NMQKS4MY.js +62 -0
- package/dist/reddit-AZMVTHPR.js +29 -0
- package/dist/refresh-42TJTJSN.js +97 -0
- package/dist/release-VT6TNWUV.js +63 -0
- package/dist/relevant-pages-JRIDJL4L.js +99 -0
- package/dist/remove-YW25PRT4.js +53 -0
- package/dist/reopen-WGTMBOHK.js +66 -0
- package/dist/rerun-O7P5LMC4.js +96 -0
- package/dist/research-IQWYPRBV.js +265 -0
- package/dist/research-WYNVU26K.js +75 -0
- package/dist/reset-4YPVS6QU.js +57 -0
- package/dist/reset-NF6K4NHK.js +57 -0
- package/dist/resolve-GB4ORVSB.js +124 -0
- package/dist/retry-LKJVOXVX.js +65 -0
- package/dist/retry-W3NSNNDV.js +63 -0
- package/dist/revenue-KHUWJPMJ.js +91 -0
- package/dist/rules-HMAONF3A.js +99 -0
- package/dist/rules-add-BP5XSD23.js +465 -0
- package/dist/run-EBCP5VIQ.js +71 -0
- package/dist/run-QP7JP2H4.js +69 -0
- package/dist/scaffold-ad-JVDV7FET.js +1513 -0
- package/dist/scaffold-static-ad-VD3KXMHT.js +1011 -0
- package/dist/scaffold-video-X3YR6APK.js +885 -0
- package/dist/schedule-7OKUUJHO.js +64 -0
- package/dist/scheduled-agents-N6FDAL7K.js +55 -0
- package/dist/schema-6O6CJTT5.js +135 -0
- package/dist/scrape-U6DIREQ2.js +2241 -0
- package/dist/scrape-U6DIREQ2.js.map +1 -0
- package/dist/search-WGOCL2KW.js +177 -0
- package/dist/select-6PVDRJQJ.js +110 -0
- package/dist/set-prompt-EDM7CPME.js +199 -0
- package/dist/setup-links-Z2KIKKJM.js +144 -0
- package/dist/shopify-AANLSYQY.js +3980 -0
- package/dist/site-6HHZJW2S.js +180 -0
- package/dist/sources-72AAZL4C.js +30 -0
- package/dist/sources-VRWQ65G6.js +457 -0
- package/dist/stale-KO6NQVR4.js +90 -0
- package/dist/status-QRO7U5K2.js +65 -0
- package/dist/studio-OV2ZY5W3.js +49 -0
- package/dist/sync-AQZ7JYEG.js +57 -0
- package/dist/sync-definition-OKSJA6MA.js +70 -0
- package/dist/tags-5GFUNIIK.js +23 -0
- package/dist/tags-DIFC2HFB.js +23 -0
- package/dist/tags-M26JKN2F.js +23 -0
- package/dist/tags-QFEG7LJV.js +26 -0
- package/dist/tags-ZWYUQYWT.js +227 -0
- package/dist/targeting-criteria-UQMPM2K5.js +113 -0
- package/dist/targets-YCVILKKZ.js +106 -0
- package/dist/testimonials-SJQJDEK4.js +32 -0
- package/dist/themes-RRLYZ46U.js +95 -0
- package/dist/top-companies-LPYM65KX.js +111 -0
- package/dist/transcript-D2IQWUSP.js +165 -0
- package/dist/translate-CPDFHEI4.js +603 -0
- package/dist/triggers-543HDVJK.js +144 -0
- package/dist/unlink-DQGU7K7V.js +70 -0
- package/dist/unstage-7UQU4MQT.js +88 -0
- package/dist/update-DGIBKKIB.js +155 -0
- package/dist/update-FEZ3EVTA.js +66 -0
- package/dist/update-QF6WBJU7.js +101 -0
- package/dist/update-RY3GU5QI.js +192 -0
- package/dist/upload-VMDGQ4HS.js +130 -0
- package/dist/url-options-2TQCGD2W.js +131 -0
- package/dist/url-params-LMC2DRHP.js +101 -0
- package/dist/validate-TLWEN4IL.js +125 -0
- package/dist/videos-GFOHRAJ7.js +41 -0
- package/dist/view-ZT3SAZKQ.js +121 -0
- package/dist/view-ZT3SAZKQ.js.map +1 -0
- package/dist/viewer-check-EKDFC7LQ.js +83 -0
- package/dist/web-L7LF6FLF.js +173 -0
- package/dist/winning-ads-RUS4NE5C.js +86 -0
- package/dist/write-commands-2JYDSXAX.js +1525 -0
- package/dist/x-HLZUSGJT.js +47 -0
- package/package.json +1 -1
- package/dist/account-2HJ4GKHN.js +0 -82
- package/dist/account-6GKPLNDY.js +0 -82
- package/dist/account-reads-X36NPCX5.js +0 -219
- package/dist/account-users-FGL3DZES.js +0 -64
- package/dist/account-writes-FZ3KCJZY.js +0 -68
- package/dist/accounts-PKSW3DBQ.js +0 -80
- package/dist/accounts-S5C6MZFO.js +0 -701
- package/dist/actions-ARN3OFB7.js +0 -55
- package/dist/activecampaign-3YJC3H2R.js +0 -938
- package/dist/ad-group-writes-XGG3WQEO.js +0 -172
- package/dist/ad-groups-GZIPUN64.js +0 -70
- package/dist/ad-writes-2VTRWQLW.js +0 -176
- package/dist/add-CNYKQD7B.js +0 -107
- package/dist/add-IABKHM5N.js +0 -305
- package/dist/ads-LNWALF6G.js +0 -79
- package/dist/ads-UXHJCUTX.js +0 -48
- package/dist/advertisers-UT7EJ6YS.js +0 -123
- package/dist/analytics-COUVH7MV.js +0 -447
- package/dist/analytics-EHUUNMGZ.js +0 -2437
- package/dist/animate-DM4OUJMR.js +0 -480
- package/dist/assign-FWT5QQDF.js +0 -80
- package/dist/audience-size-YI2RLIG7.js +0 -76
- package/dist/audiences-7D5VPOWF.js +0 -280
- package/dist/audit-BPRRCIWN.js +0 -154
- package/dist/autocomplete-OD6SHZZH.js +0 -114
- package/dist/avatars-FFFPCH6D.js +0 -38
- package/dist/bid-pricing-JF557IO2.js +0 -103
- package/dist/brand-ZUYJWKI3.js +0 -22
- package/dist/brief-CJDBD5GJ.js +0 -543
- package/dist/campaign-groups-VCT6ZH66.js +0 -99
- package/dist/campaign-writes-H22P6YPW.js +0 -176
- package/dist/campaign-writes-YOHDMYDT.js +0 -168
- package/dist/campaigns-265JXD2Z.js +0 -78
- package/dist/campaigns-7EGRZ3V6.js +0 -113
- package/dist/campaigns-ORK5BYAM.js +0 -111
- package/dist/canvas-FW5F3KZJ.js +0 -46
- package/dist/capabilities-ISW7XT44.js +0 -147
- package/dist/catalog-DPUQBZZ7.js +0 -66
- package/dist/catalogs-SBXFAD3X.js +0 -130
- package/dist/changes-HXVZUJMH.js +0 -143
- package/dist/chatgpt-UXJPCGZU.js +0 -47
- package/dist/chats-FH3DQNYD.js +0 -449
- package/dist/check-QC5RHS3Z.js +0 -107
- package/dist/chunk-2AC5GJHC.js +0 -455
- package/dist/chunk-2VSUMGJV.js +0 -89
- package/dist/chunk-4D73PLXU.js +0 -843
- package/dist/chunk-4S5ZAG4S.js +0 -63
- package/dist/chunk-5MMJPUBH.js +0 -387
- package/dist/chunk-5Y2XPKW2.js +0 -156
- package/dist/chunk-6HCYCMIH.js +0 -61
- package/dist/chunk-6R2BQ6FK.js +0 -344
- package/dist/chunk-7P74QKVC.js +0 -297
- package/dist/chunk-7SJU6PQ7.js +0 -604
- package/dist/chunk-A37TIYFD.js +0 -91
- package/dist/chunk-A6NVGPCZ.js +0 -479
- package/dist/chunk-AK7CL5IW.js +0 -334
- package/dist/chunk-AOT3UZBM.js +0 -930
- package/dist/chunk-D2ZAZGQH.js +0 -547
- package/dist/chunk-DYTBVVQX.js +0 -679
- package/dist/chunk-EB76M4ZH.js +0 -19
- package/dist/chunk-EBWOLUII.js +0 -24026
- package/dist/chunk-EBWOLUII.js.map +0 -1
- package/dist/chunk-EOMY5SUJ.js +0 -783
- package/dist/chunk-EY5WWPPZ.js +0 -1902
- package/dist/chunk-EZKT5YGX.js +0 -23
- package/dist/chunk-FVDC6AKZ.js +0 -150
- package/dist/chunk-GN7K3NPI.js +0 -148
- package/dist/chunk-GQAKWQAV.js +0 -224
- package/dist/chunk-HBDWE7WK.js +0 -98
- package/dist/chunk-HETNOUE4.js +0 -377
- package/dist/chunk-HFAT5S5B.js +0 -170
- package/dist/chunk-HQ3I2QVT.js +0 -275
- package/dist/chunk-IN5UCEJD.js +0 -91
- package/dist/chunk-JAC6JVCI.js +0 -26
- package/dist/chunk-JLLGXYOZ.js +0 -857
- package/dist/chunk-JY3OJBKZ.js +0 -3510
- package/dist/chunk-KBZRG6IK.js +0 -429
- package/dist/chunk-KBZRG6IK.js.map +0 -1
- package/dist/chunk-KCRBAMFU.js +0 -392
- package/dist/chunk-KIXVHP2C.js +0 -1919
- package/dist/chunk-KTY7H44G.js +0 -831
- package/dist/chunk-LKOMEXUB.js +0 -51
- package/dist/chunk-LVKAMWKJ.js +0 -163
- package/dist/chunk-LWCGQNVU.js +0 -685
- package/dist/chunk-MCJ5I5LR.js +0 -3187
- package/dist/chunk-MCJ5I5LR.js.map +0 -1
- package/dist/chunk-MSMTG6OC.js +0 -4269
- package/dist/chunk-MSMTG6OC.js.map +0 -1
- package/dist/chunk-MZPS46OR.js +0 -76
- package/dist/chunk-N4AIJQ4W.js +0 -438
- package/dist/chunk-NBWZVBDG.js +0 -131
- package/dist/chunk-OKB2EAJH.js +0 -8954
- package/dist/chunk-OT2MN5UR.js +0 -169
- package/dist/chunk-OZR3KUJ3.js +0 -57
- package/dist/chunk-P3VY5JEM.js +0 -274
- package/dist/chunk-PXGR3VGW.js +0 -1646
- package/dist/chunk-QK3HMAVU.js +0 -5471
- package/dist/chunk-R65V26HH.js +0 -7770
- package/dist/chunk-R65V26HH.js.map +0 -1
- package/dist/chunk-RHEWQB5O.js +0 -638
- package/dist/chunk-RP36XHWT.js +0 -46
- package/dist/chunk-RXOQZA4K.js +0 -66
- package/dist/chunk-SEHJ7Y7J.js +0 -207
- package/dist/chunk-SNWFM2DB.js +0 -228
- package/dist/chunk-TAGRKRFI.js +0 -103
- package/dist/chunk-TARINRA4.js +0 -1518
- package/dist/chunk-TNZUMU55.js +0 -167
- package/dist/chunk-TP2NS5SG.js +0 -191
- package/dist/chunk-UOXC3XA5.js +0 -494
- package/dist/chunk-UQA6Z23M.js +0 -142
- package/dist/chunk-VOUCQ2YW.js +0 -64
- package/dist/chunk-WJ5AHR4K.js +0 -2209
- package/dist/chunk-WOE4TZHJ.js +0 -285
- package/dist/chunk-XYNQMRNX.js +0 -5368
- package/dist/chunk-YEISVDKW.js +0 -203
- package/dist/chunk-YNLWSP5E.js +0 -910
- package/dist/chunk-ZEUAJAKN.js +0 -225
- package/dist/chunk-ZUUVWWB5.js +0 -197
- package/dist/chunk-ZVAZFHH7.js +0 -249
- package/dist/claim-FBL5VBYZ.js +0 -200
- package/dist/companies-URRCAJZE.js +0 -198
- package/dist/company-LDCNUPHZ.js +0 -308
- package/dist/complete-3UGPO444.js +0 -84
- package/dist/connect-M5KPZQWE.js +0 -45
- package/dist/conversation-S7YANZJR.js +0 -96
- package/dist/conversion-report-RB2MU7UD.js +0 -127
- package/dist/conversion-upload-command-HFZYKVXA.js +0 -439
- package/dist/conversion-writes-56AIPXPK.js +0 -122
- package/dist/conversions-NRX76ZIT.js +0 -78
- package/dist/conversions-QZL4DSJO.js +0 -140
- package/dist/create-56PJRLMA.js +0 -62
- package/dist/create-OE5MRW3X.js +0 -210
- package/dist/create-RL7PRIDY.js +0 -239
- package/dist/create-Y6YVJ5L4.js +0 -135
- package/dist/creatives-ESVH63AP.js +0 -223
- package/dist/creatives-URHXATY6.js +0 -58
- package/dist/credentials-O6QSB7ZR.js +0 -290
- package/dist/critique-EWJBOCXQ.js +0 -1451
- package/dist/critique-PTGGXRFG.js +0 -232
- package/dist/crm-F6RGNQH5.js +0 -323
- package/dist/crm-GLPOO22Q.js +0 -227
- package/dist/currency-CHBV6WIO.js +0 -88
- package/dist/customers-Q76FCWYO.js +0 -65
- package/dist/delete-ODFDZCL3.js +0 -57
- package/dist/delete-OVMPDGWQ.js +0 -69
- package/dist/delete-XN7N4S4H.js +0 -67
- package/dist/demographics-IY5RI55Z.js +0 -141
- package/dist/discard-GKIA5FML.js +0 -69
- package/dist/discover-ZU2DAV23.js +0 -172
- package/dist/domain-WGXA7OXV.js +0 -101
- package/dist/download-DYYNUGLX.js +0 -172
- package/dist/draft-EWGNZUU4.js +0 -288
- package/dist/draft-EX2I6UJB.js +0 -313
- package/dist/draft-GKI6MB7L.js +0 -342
- package/dist/draft-R7BNWMBR.js +0 -408
- package/dist/draft-VYIRZO3E.js +0 -220
- package/dist/experiments-6DOKWFH4.js +0 -236
- package/dist/facets-ZU5DT2QW.js +0 -117
- package/dist/feedback-RIUBM557.js +0 -115
- package/dist/feedback-record-3VVAUCOH.js +0 -269
- package/dist/fetch-T6TZCU74.js +0 -204
- package/dist/fit-YPOHTM7Y.js +0 -65
- package/dist/flows-CKVEZFF2.js +0 -250
- package/dist/fonts-3J3UVZ2E.js +0 -39
- package/dist/forecast-372Q6KQZ.js +0 -169
- package/dist/forecast-JEAFUR2O.js +0 -121
- package/dist/funnel-FBTNPTS7.js +0 -397
- package/dist/generate-JQIK3UYS.js +0 -263
- package/dist/get-5N5FCGNH.js +0 -59
- package/dist/get-EXHUQT65.js +0 -82
- package/dist/google-JHTOX6WM.js +0 -3270
- package/dist/google-ads-ZAYRCG2D.js +0 -198
- package/dist/history-4ULZ4BVV.js +0 -153
- package/dist/history-6J3XRNTZ.js +0 -102
- package/dist/history-VNLS2TKB.js +0 -69
- package/dist/hubspot-ZEHWWJHK.js +0 -782
- package/dist/ideas-SB6546GI.js +0 -45
- package/dist/images-LEZYVE7R.js +0 -92
- package/dist/ingest-4OOTCOLO.js +0 -123
- package/dist/ingest-KNJCCIBG.js +0 -27
- package/dist/insights-XY6II7TX.js +0 -132
- package/dist/inspect-MHKEYNIC.js +0 -192
- package/dist/inspiration-CSN3AXDD.js +0 -53
- package/dist/intent-5QUPPZNI.js +0 -95
- package/dist/keyword-gap-IG3EFLDH.js +0 -130
- package/dist/keyword-metrics-EL7MO3H6.js +0 -200
- package/dist/keywords-for-site-I7KJLZ2I.js +0 -131
- package/dist/landing-Z3QGJYM3.js +0 -28
- package/dist/languages-LNHWSCMT.js +0 -40
- package/dist/leads-WQCTZYKT.js +0 -115
- package/dist/learn-6KW6TUVL.js +0 -207
- package/dist/line-item-writes-B2KSP36W.js +0 -211
- package/dist/line-items-3ICE5DBI.js +0 -107
- package/dist/link-QRQ34ZDH.js +0 -67
- package/dist/linkedin-D4RKHQPS.js +0 -1330
- package/dist/linkedin-person-Y5TCUOXS.js +0 -139
- package/dist/list-6HZVHA6T.js +0 -154
- package/dist/list-CHYJ53JD.js +0 -306
- package/dist/list-XAMJSOGI.js +0 -67
- package/dist/locations-64JNCQID.js +0 -69
- package/dist/locations-KVAAO7LD.js +0 -40
- package/dist/log-PLXGA74X.js +0 -95
- package/dist/make-EP4YSN26.js +0 -1367
- package/dist/map-CAFMAMPP.js +0 -436
- package/dist/mcp-DDWSXLU7.js +0 -729
- package/dist/media-sources-J5FXYPV5.js +0 -35
- package/dist/members-ZA7S5KWP.js +0 -47
- package/dist/metrics-MXGA3EFS.js +0 -152
- package/dist/models-Z6SUHWKI.js +0 -155
- package/dist/normalize-ZHM2ZVXZ.js +0 -144
- package/dist/options-JTMDZECY.js +0 -125
- package/dist/organization-5OJEJEQV.js +0 -949
- package/dist/performance-AHVTOYTM.js +0 -5565
- package/dist/performance-S273NSUB.js +0 -27
- package/dist/pixels-H642RPK4.js +0 -62
- package/dist/promoted-tweet-writes-UF6LYMH4.js +0 -183
- package/dist/promoted-tweets-Z4GG6D7P.js +0 -119
- package/dist/publish-YQ6MHS7P.js +0 -344
- package/dist/query-FT2BA3WH.js +0 -62
- package/dist/reddit-YWYRZBL2.js +0 -29
- package/dist/refresh-TEXTTECA.js +0 -97
- package/dist/release-3JDETBZI.js +0 -63
- package/dist/relevant-pages-OCHLUV5K.js +0 -99
- package/dist/remove-KZTSU4K2.js +0 -53
- package/dist/reopen-GIJSFNDH.js +0 -66
- package/dist/rerun-6UZNOPUG.js +0 -96
- package/dist/research-TMKG4NQJ.js +0 -75
- package/dist/research-XA2IJ2XV.js +0 -265
- package/dist/reset-7VL6WJLE.js +0 -57
- package/dist/reset-HLZ6JHGY.js +0 -57
- package/dist/resolve-H2QW3U5Y.js +0 -124
- package/dist/retry-MIZ67MPP.js +0 -65
- package/dist/retry-WSWW6EJT.js +0 -63
- package/dist/revenue-LTU7HRT2.js +0 -91
- package/dist/rules-BGBCUUPH.js +0 -99
- package/dist/rules-add-SZT2MSOD.js +0 -465
- package/dist/run-FHGT4UQ7.js +0 -69
- package/dist/run-XUDGECLL.js +0 -71
- package/dist/scaffold-ad-VXNO3SQP.js +0 -1513
- package/dist/scaffold-static-ad-FT55VV3T.js +0 -1011
- package/dist/scaffold-video-V7WX5AWZ.js +0 -885
- package/dist/schedule-BNRLEFMZ.js +0 -64
- package/dist/scheduled-agents-MAXXXJ7W.js +0 -55
- package/dist/schema-YADPD54K.js +0 -135
- package/dist/scrape-3PWNMK4D.js +0 -2241
- package/dist/scrape-3PWNMK4D.js.map +0 -1
- package/dist/search-56ORG4PL.js +0 -177
- package/dist/select-DON4DMNM.js +0 -110
- package/dist/set-prompt-J22TUCRU.js +0 -199
- package/dist/setup-links-CHODCBYH.js +0 -144
- package/dist/shopify-FCYU4AR6.js +0 -3980
- package/dist/site-BF3Q26W5.js +0 -180
- package/dist/sources-SLCYAWTZ.js +0 -457
- package/dist/sources-VHHC6YQM.js +0 -30
- package/dist/stale-GLVTL2ZK.js +0 -90
- package/dist/status-E3RA644P.js +0 -65
- package/dist/studio-6ZXUKA4G.js +0 -49
- package/dist/sync-6QCDDJMO.js +0 -57
- package/dist/sync-definition-DXNHGY5E.js +0 -70
- package/dist/tags-AMZSQJJ2.js +0 -26
- package/dist/tags-KW7PG2TR.js +0 -23
- package/dist/tags-MGV5KG6I.js +0 -23
- package/dist/tags-TM27EIAL.js +0 -23
- package/dist/tags-VWGKVGZD.js +0 -227
- package/dist/targeting-criteria-FT3G4HAW.js +0 -113
- package/dist/targets-XLVHWO6Z.js +0 -106
- package/dist/testimonials-INXY7CXU.js +0 -32
- package/dist/themes-R3A6IVQN.js +0 -95
- package/dist/top-companies-MNX3GBCP.js +0 -111
- package/dist/transcript-GIAOWCTO.js +0 -165
- package/dist/translate-JEQ4K4AH.js +0 -603
- package/dist/triggers-KDXLDZ23.js +0 -144
- package/dist/unlink-PNBSDLBQ.js +0 -70
- package/dist/unstage-X2PDLT5O.js +0 -88
- package/dist/update-4JGHSQVZ.js +0 -66
- package/dist/update-4XUQN4LK.js +0 -101
- package/dist/update-TJTDFWER.js +0 -155
- package/dist/update-URU4TO2F.js +0 -192
- package/dist/upload-TO5EPTVD.js +0 -130
- package/dist/url-options-YZ6UG3NY.js +0 -131
- package/dist/url-params-533CWJH3.js +0 -101
- package/dist/validate-XF6HU7D4.js +0 -125
- package/dist/videos-KYZ4CUOB.js +0 -41
- package/dist/view-VFZUL5UL.js +0 -121
- package/dist/view-VFZUL5UL.js.map +0 -1
- package/dist/viewer-check-U5GUU34Z.js +0 -83
- package/dist/web-ZYMSMIV6.js +0 -173
- package/dist/winning-ads-BCN5RVAE.js +0 -86
- package/dist/write-commands-PZZ72PNL.js +0 -1525
- package/dist/x-DLEZYTAU.js +0 -47
- /package/dist/{account-2HJ4GKHN.js.map → account-IG3U6UXZ.js.map} +0 -0
- /package/dist/{account-6GKPLNDY.js.map → account-IGWCS2VJ.js.map} +0 -0
- /package/dist/{account-reads-X36NPCX5.js.map → account-reads-LOCJMS35.js.map} +0 -0
- /package/dist/{account-users-FGL3DZES.js.map → account-users-H4VP43RZ.js.map} +0 -0
- /package/dist/{account-writes-FZ3KCJZY.js.map → account-writes-BSSKSTZ2.js.map} +0 -0
- /package/dist/{accounts-S5C6MZFO.js.map → accounts-C4PNBT5X.js.map} +0 -0
- /package/dist/{accounts-PKSW3DBQ.js.map → accounts-GPTG4XW5.js.map} +0 -0
- /package/dist/{actions-ARN3OFB7.js.map → actions-F7YO5I27.js.map} +0 -0
- /package/dist/{activecampaign-3YJC3H2R.js.map → activecampaign-S4E46SA6.js.map} +0 -0
- /package/dist/{ad-group-writes-XGG3WQEO.js.map → ad-group-writes-KMB3OMJG.js.map} +0 -0
- /package/dist/{ad-groups-GZIPUN64.js.map → ad-groups-E67CNQS4.js.map} +0 -0
- /package/dist/{ad-writes-2VTRWQLW.js.map → ad-writes-FNMKNFUN.js.map} +0 -0
- /package/dist/{add-CNYKQD7B.js.map → add-LROKBWW4.js.map} +0 -0
- /package/dist/{add-IABKHM5N.js.map → add-SG5XWFRN.js.map} +0 -0
- /package/dist/{ads-LNWALF6G.js.map → ads-4LASBP4G.js.map} +0 -0
- /package/dist/{ads-UXHJCUTX.js.map → ads-7ICT2D4M.js.map} +0 -0
- /package/dist/{advertisers-UT7EJ6YS.js.map → advertisers-IQMTOR4D.js.map} +0 -0
- /package/dist/{analytics-EHUUNMGZ.js.map → analytics-6DSJ6WHO.js.map} +0 -0
- /package/dist/{analytics-COUVH7MV.js.map → analytics-D6S5LW2F.js.map} +0 -0
- /package/dist/{animate-DM4OUJMR.js.map → animate-OWXAT2RK.js.map} +0 -0
- /package/dist/{assign-FWT5QQDF.js.map → assign-TMG6FDLW.js.map} +0 -0
- /package/dist/{audience-size-YI2RLIG7.js.map → audience-size-KPJOSG5W.js.map} +0 -0
- /package/dist/{audiences-7D5VPOWF.js.map → audiences-3R574STZ.js.map} +0 -0
- /package/dist/{audit-BPRRCIWN.js.map → audit-35TDKIGY.js.map} +0 -0
- /package/dist/{autocomplete-OD6SHZZH.js.map → autocomplete-T63KPKRZ.js.map} +0 -0
- /package/dist/{avatars-FFFPCH6D.js.map → avatars-AVK4S3HS.js.map} +0 -0
- /package/dist/{bid-pricing-JF557IO2.js.map → bid-pricing-O5IK37CL.js.map} +0 -0
- /package/dist/{brand-ZUYJWKI3.js.map → brand-SG6VOHF4.js.map} +0 -0
- /package/dist/{brief-CJDBD5GJ.js.map → brief-RWA6MXTN.js.map} +0 -0
- /package/dist/{campaign-groups-VCT6ZH66.js.map → campaign-groups-SSZISPJ5.js.map} +0 -0
- /package/dist/{campaign-writes-YOHDMYDT.js.map → campaign-writes-74KDZ7RR.js.map} +0 -0
- /package/dist/{campaign-writes-H22P6YPW.js.map → campaign-writes-Z2J24SUZ.js.map} +0 -0
- /package/dist/{campaigns-265JXD2Z.js.map → campaigns-43OS6EUG.js.map} +0 -0
- /package/dist/{campaigns-7EGRZ3V6.js.map → campaigns-B5TSL3UD.js.map} +0 -0
- /package/dist/{campaigns-ORK5BYAM.js.map → campaigns-TFNPOQEW.js.map} +0 -0
- /package/dist/{canvas-FW5F3KZJ.js.map → canvas-4LSM4Y5I.js.map} +0 -0
- /package/dist/{capabilities-ISW7XT44.js.map → capabilities-CTKSS7AI.js.map} +0 -0
- /package/dist/{catalog-DPUQBZZ7.js.map → catalog-7LINLVVY.js.map} +0 -0
- /package/dist/{catalogs-SBXFAD3X.js.map → catalogs-IR22RGZD.js.map} +0 -0
- /package/dist/{changes-HXVZUJMH.js.map → changes-JAGWBHQC.js.map} +0 -0
- /package/dist/{chatgpt-UXJPCGZU.js.map → chatgpt-NE2RBMFK.js.map} +0 -0
- /package/dist/{chats-FH3DQNYD.js.map → chats-6TRVVEBG.js.map} +0 -0
- /package/dist/{check-QC5RHS3Z.js.map → check-DZGMLLRL.js.map} +0 -0
- /package/dist/{chunk-GQAKWQAV.js.map → chunk-2DQC4XSN.js.map} +0 -0
- /package/dist/{chunk-OZR3KUJ3.js.map → chunk-3BWT5YDD.js.map} +0 -0
- /package/dist/{chunk-RHEWQB5O.js.map → chunk-3EUITH4J.js.map} +0 -0
- /package/dist/{chunk-LVKAMWKJ.js.map → chunk-3J5ZTJGN.js.map} +0 -0
- /package/dist/{chunk-D2ZAZGQH.js.map → chunk-3OFLYMPK.js.map} +0 -0
- /package/dist/{chunk-RP36XHWT.js.map → chunk-4IRJ5JXA.js.map} +0 -0
- /package/dist/{chunk-ZEUAJAKN.js.map → chunk-5IFFPSEN.js.map} +0 -0
- /package/dist/{chunk-EZKT5YGX.js.map → chunk-5YNGVEX2.js.map} +0 -0
- /package/dist/{chunk-P3VY5JEM.js.map → chunk-64ALJ6TJ.js.map} +0 -0
- /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
- /package/dist/{chunk-6HCYCMIH.js.map → chunk-7L3Z2GDZ.js.map} +0 -0
- /package/dist/{chunk-HETNOUE4.js.map → chunk-7LYJVM7L.js.map} +0 -0
- /package/dist/{chunk-TNZUMU55.js.map → chunk-7UFV6H7J.js.map} +0 -0
- /package/dist/{chunk-YEISVDKW.js.map → chunk-AGVLJLOT.js.map} +0 -0
- /package/dist/{chunk-4D73PLXU.js.map → chunk-B3CDNANO.js.map} +0 -0
- /package/dist/{chunk-EOMY5SUJ.js.map → chunk-BNI5DAB7.js.map} +0 -0
- /package/dist/{chunk-N4AIJQ4W.js.map → chunk-BRT5IG7N.js.map} +0 -0
- /package/dist/{chunk-FVDC6AKZ.js.map → chunk-CXRS5YLB.js.map} +0 -0
- /package/dist/{chunk-TP2NS5SG.js.map → chunk-CY6EPTJA.js.map} +0 -0
- /package/dist/{chunk-WJ5AHR4K.js.map → chunk-CZ4Q3I25.js.map} +0 -0
- /package/dist/{chunk-JY3OJBKZ.js.map → chunk-E5H7JIWB.js.map} +0 -0
- /package/dist/{chunk-SEHJ7Y7J.js.map → chunk-EGW3D3RW.js.map} +0 -0
- /package/dist/{chunk-OKB2EAJH.js.map → chunk-EPLSDHBT.js.map} +0 -0
- /package/dist/{chunk-TAGRKRFI.js.map → chunk-F2VUMTCJ.js.map} +0 -0
- /package/dist/{chunk-RXOQZA4K.js.map → chunk-FLF2CIL2.js.map} +0 -0
- /package/dist/{chunk-5Y2XPKW2.js.map → chunk-FM4YT7QA.js.map} +0 -0
- /package/dist/{chunk-ZUUVWWB5.js.map → chunk-FUIPDGGH.js.map} +0 -0
- /package/dist/{chunk-YNLWSP5E.js.map → chunk-G47B4DOH.js.map} +0 -0
- /package/dist/{chunk-QK3HMAVU.js.map → chunk-G6J6AWTE.js.map} +0 -0
- /package/dist/{chunk-XYNQMRNX.js.map → chunk-GCZK4BMB.js.map} +0 -0
- /package/dist/{chunk-2AC5GJHC.js.map → chunk-GVYJOHX5.js.map} +0 -0
- /package/dist/{chunk-DYTBVVQX.js.map → chunk-ICEYCLRU.js.map} +0 -0
- /package/dist/{chunk-HQ3I2QVT.js.map → chunk-IDFTXHRQ.js.map} +0 -0
- /package/dist/{chunk-UOXC3XA5.js.map → chunk-J2RUOIME.js.map} +0 -0
- /package/dist/{chunk-WOE4TZHJ.js.map → chunk-JBNT444M.js.map} +0 -0
- /package/dist/{chunk-2VSUMGJV.js.map → chunk-KAUP6ONR.js.map} +0 -0
- /package/dist/{chunk-PXGR3VGW.js.map → chunk-KTO2Y3DI.js.map} +0 -0
- /package/dist/{chunk-ZVAZFHH7.js.map → chunk-KVYXHWX2.js.map} +0 -0
- /package/dist/{chunk-GN7K3NPI.js.map → chunk-LDFM37DM.js.map} +0 -0
- /package/dist/{chunk-JLLGXYOZ.js.map → chunk-LHC6OHQ6.js.map} +0 -0
- /package/dist/{chunk-UQA6Z23M.js.map → chunk-LQOJBPKV.js.map} +0 -0
- /package/dist/{chunk-4S5ZAG4S.js.map → chunk-METHLFNZ.js.map} +0 -0
- /package/dist/{chunk-LKOMEXUB.js.map → chunk-MGOSJSDV.js.map} +0 -0
- /package/dist/{chunk-7SJU6PQ7.js.map → chunk-O34P4WD5.js.map} +0 -0
- /package/dist/{chunk-5MMJPUBH.js.map → chunk-O5V2KBI4.js.map} +0 -0
- /package/dist/{chunk-LWCGQNVU.js.map → chunk-OO7Y2NMT.js.map} +0 -0
- /package/dist/{chunk-HFAT5S5B.js.map → chunk-P3AHGZH2.js.map} +0 -0
- /package/dist/{chunk-NBWZVBDG.js.map → chunk-P6FMQHJJ.js.map} +0 -0
- /package/dist/{chunk-TARINRA4.js.map → chunk-Q6LCL67T.js.map} +0 -0
- /package/dist/{chunk-OT2MN5UR.js.map → chunk-Q7G5CWH6.js.map} +0 -0
- /package/dist/{chunk-KCRBAMFU.js.map → chunk-RA73BVUX.js.map} +0 -0
- /package/dist/{chunk-EB76M4ZH.js.map → chunk-S6ZCFRL5.js.map} +0 -0
- /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
- /package/dist/{chunk-KTY7H44G.js.map → chunk-SIWXWRAD.js.map} +0 -0
- /package/dist/{chunk-6R2BQ6FK.js.map → chunk-UNIJPTDU.js.map} +0 -0
- /package/dist/{chunk-A37TIYFD.js.map → chunk-UXFRUYTR.js.map} +0 -0
- /package/dist/{chunk-VOUCQ2YW.js.map → chunk-V4UJERGL.js.map} +0 -0
- /package/dist/{chunk-AK7CL5IW.js.map → chunk-W46BM7HF.js.map} +0 -0
- /package/dist/{chunk-AOT3UZBM.js.map → chunk-WH7CATSZ.js.map} +0 -0
- /package/dist/{chunk-EY5WWPPZ.js.map → chunk-WM2PLENG.js.map} +0 -0
- /package/dist/{chunk-KIXVHP2C.js.map → chunk-XU6XQPNM.js.map} +0 -0
- /package/dist/{chunk-SNWFM2DB.js.map → chunk-YKFGXS26.js.map} +0 -0
- /package/dist/{chunk-HBDWE7WK.js.map → chunk-YQB66YKJ.js.map} +0 -0
- /package/dist/{chunk-7P74QKVC.js.map → chunk-YZKZQXRX.js.map} +0 -0
- /package/dist/{chunk-IN5UCEJD.js.map → chunk-ZDHWB32Y.js.map} +0 -0
- /package/dist/{chunk-A6NVGPCZ.js.map → chunk-ZOYNCIRB.js.map} +0 -0
- /package/dist/{claim-FBL5VBYZ.js.map → claim-PTCFUZM2.js.map} +0 -0
- /package/dist/{companies-URRCAJZE.js.map → companies-STCBOG5Z.js.map} +0 -0
- /package/dist/{company-LDCNUPHZ.js.map → company-4CE7CGNC.js.map} +0 -0
- /package/dist/{complete-3UGPO444.js.map → complete-R4A7LBOQ.js.map} +0 -0
- /package/dist/{connect-M5KPZQWE.js.map → connect-4VLRGTAM.js.map} +0 -0
- /package/dist/{conversation-S7YANZJR.js.map → conversation-JS52LHCZ.js.map} +0 -0
- /package/dist/{conversion-report-RB2MU7UD.js.map → conversion-report-R4KJI4VA.js.map} +0 -0
- /package/dist/{conversion-upload-command-HFZYKVXA.js.map → conversion-upload-command-WCLWA27O.js.map} +0 -0
- /package/dist/{conversion-writes-56AIPXPK.js.map → conversion-writes-XIQEIDPS.js.map} +0 -0
- /package/dist/{conversions-QZL4DSJO.js.map → conversions-IYEF6WZP.js.map} +0 -0
- /package/dist/{conversions-NRX76ZIT.js.map → conversions-RMBQNW3T.js.map} +0 -0
- /package/dist/{create-Y6YVJ5L4.js.map → create-6I7SRQHV.js.map} +0 -0
- /package/dist/{create-OE5MRW3X.js.map → create-JYBMK5JH.js.map} +0 -0
- /package/dist/{create-56PJRLMA.js.map → create-MPUAOJQB.js.map} +0 -0
- /package/dist/{create-RL7PRIDY.js.map → create-W7L5B374.js.map} +0 -0
- /package/dist/{creatives-ESVH63AP.js.map → creatives-EPXJ2PDV.js.map} +0 -0
- /package/dist/{creatives-URHXATY6.js.map → creatives-PP6Z2T6Z.js.map} +0 -0
- /package/dist/{credentials-O6QSB7ZR.js.map → credentials-R4BZ76RD.js.map} +0 -0
- /package/dist/{critique-PTGGXRFG.js.map → critique-ICVRILIZ.js.map} +0 -0
- /package/dist/{critique-EWJBOCXQ.js.map → critique-OTIGYFZU.js.map} +0 -0
- /package/dist/{crm-GLPOO22Q.js.map → crm-5JFMA2YB.js.map} +0 -0
- /package/dist/{crm-F6RGNQH5.js.map → crm-PRTHRLXM.js.map} +0 -0
- /package/dist/{currency-CHBV6WIO.js.map → currency-BY647ZB7.js.map} +0 -0
- /package/dist/{customers-Q76FCWYO.js.map → customers-5EWPVKJV.js.map} +0 -0
- /package/dist/{delete-ODFDZCL3.js.map → delete-5EWH2SQQ.js.map} +0 -0
- /package/dist/{delete-OVMPDGWQ.js.map → delete-V2FBPIN7.js.map} +0 -0
- /package/dist/{delete-XN7N4S4H.js.map → delete-ZWUCKXI5.js.map} +0 -0
- /package/dist/{demographics-IY5RI55Z.js.map → demographics-2YCVAAPH.js.map} +0 -0
- /package/dist/{discard-GKIA5FML.js.map → discard-N7K3UQ7M.js.map} +0 -0
- /package/dist/{discover-ZU2DAV23.js.map → discover-TAJUFO5R.js.map} +0 -0
- /package/dist/{domain-WGXA7OXV.js.map → domain-YYTNWNSF.js.map} +0 -0
- /package/dist/{download-DYYNUGLX.js.map → download-JMJRYJ37.js.map} +0 -0
- /package/dist/{draft-EX2I6UJB.js.map → draft-KQACMPH2.js.map} +0 -0
- /package/dist/{draft-VYIRZO3E.js.map → draft-PENVOYCI.js.map} +0 -0
- /package/dist/{draft-R7BNWMBR.js.map → draft-RGSDXFFT.js.map} +0 -0
- /package/dist/{draft-EWGNZUU4.js.map → draft-SKEGKHIK.js.map} +0 -0
- /package/dist/{draft-GKI6MB7L.js.map → draft-UOMHLIVY.js.map} +0 -0
- /package/dist/{experiments-6DOKWFH4.js.map → experiments-W5D7ERVJ.js.map} +0 -0
- /package/dist/{facets-ZU5DT2QW.js.map → facets-FUNOZ6JS.js.map} +0 -0
- /package/dist/{feedback-RIUBM557.js.map → feedback-OVZFH7UV.js.map} +0 -0
- /package/dist/{feedback-record-3VVAUCOH.js.map → feedback-record-DKDR3XHH.js.map} +0 -0
- /package/dist/{fetch-T6TZCU74.js.map → fetch-QKP23NSX.js.map} +0 -0
- /package/dist/{fit-YPOHTM7Y.js.map → fit-PZPU2IZZ.js.map} +0 -0
- /package/dist/{flows-CKVEZFF2.js.map → flows-GBMZJX4R.js.map} +0 -0
- /package/dist/{fonts-3J3UVZ2E.js.map → fonts-2YY5465Q.js.map} +0 -0
- /package/dist/{forecast-JEAFUR2O.js.map → forecast-7B75GCRH.js.map} +0 -0
- /package/dist/{forecast-372Q6KQZ.js.map → forecast-VOND3WVO.js.map} +0 -0
- /package/dist/{funnel-FBTNPTS7.js.map → funnel-G4CMJ2C4.js.map} +0 -0
- /package/dist/{generate-JQIK3UYS.js.map → generate-SW5KLHXG.js.map} +0 -0
- /package/dist/{get-5N5FCGNH.js.map → get-44VNCDBQ.js.map} +0 -0
- /package/dist/{get-EXHUQT65.js.map → get-ZPJFKFHL.js.map} +0 -0
- /package/dist/{google-JHTOX6WM.js.map → google-VYARAUQH.js.map} +0 -0
- /package/dist/{google-ads-ZAYRCG2D.js.map → google-ads-BKDTCXUS.js.map} +0 -0
- /package/dist/{history-VNLS2TKB.js.map → history-7DF5HFJT.js.map} +0 -0
- /package/dist/{history-6J3XRNTZ.js.map → history-NEKVFRGQ.js.map} +0 -0
- /package/dist/{history-4ULZ4BVV.js.map → history-YU6HH574.js.map} +0 -0
- /package/dist/{hubspot-ZEHWWJHK.js.map → hubspot-Q3ZQODAX.js.map} +0 -0
- /package/dist/{ideas-SB6546GI.js.map → ideas-75LW4KBY.js.map} +0 -0
- /package/dist/{images-LEZYVE7R.js.map → images-7FS4KEGU.js.map} +0 -0
- /package/dist/{ingest-KNJCCIBG.js.map → ingest-MHH5OQP4.js.map} +0 -0
- /package/dist/{ingest-4OOTCOLO.js.map → ingest-S5OS6WIU.js.map} +0 -0
- /package/dist/{insights-XY6II7TX.js.map → insights-YVV5MHPQ.js.map} +0 -0
- /package/dist/{inspect-MHKEYNIC.js.map → inspect-PIFZILBU.js.map} +0 -0
- /package/dist/{inspiration-CSN3AXDD.js.map → inspiration-KL27O45N.js.map} +0 -0
- /package/dist/{intent-5QUPPZNI.js.map → intent-GIAQDMHF.js.map} +0 -0
- /package/dist/{keyword-gap-IG3EFLDH.js.map → keyword-gap-NZF75XGF.js.map} +0 -0
- /package/dist/{keyword-metrics-EL7MO3H6.js.map → keyword-metrics-H5M5I3N4.js.map} +0 -0
- /package/dist/{keywords-for-site-I7KJLZ2I.js.map → keywords-for-site-RILBDULX.js.map} +0 -0
- /package/dist/{landing-Z3QGJYM3.js.map → landing-H5KY6F7K.js.map} +0 -0
- /package/dist/{languages-LNHWSCMT.js.map → languages-GGNN7FEK.js.map} +0 -0
- /package/dist/{leads-WQCTZYKT.js.map → leads-WCWH4C73.js.map} +0 -0
- /package/dist/{learn-6KW6TUVL.js.map → learn-RUZUBNQZ.js.map} +0 -0
- /package/dist/{line-item-writes-B2KSP36W.js.map → line-item-writes-5Z3AEUV2.js.map} +0 -0
- /package/dist/{line-items-3ICE5DBI.js.map → line-items-IYSM2NEA.js.map} +0 -0
- /package/dist/{link-QRQ34ZDH.js.map → link-KRNL5O7Z.js.map} +0 -0
- /package/dist/{linkedin-D4RKHQPS.js.map → linkedin-GZIYAH4C.js.map} +0 -0
- /package/dist/{linkedin-person-Y5TCUOXS.js.map → linkedin-person-PMXUBPVL.js.map} +0 -0
- /package/dist/{list-XAMJSOGI.js.map → list-ALQGX6JI.js.map} +0 -0
- /package/dist/{list-6HZVHA6T.js.map → list-I37IE3NN.js.map} +0 -0
- /package/dist/{list-CHYJ53JD.js.map → list-JD5T6CGQ.js.map} +0 -0
- /package/dist/{locations-64JNCQID.js.map → locations-7RYEWKJO.js.map} +0 -0
- /package/dist/{locations-KVAAO7LD.js.map → locations-BU4ZGWAS.js.map} +0 -0
- /package/dist/{log-PLXGA74X.js.map → log-JWUFDOG6.js.map} +0 -0
- /package/dist/{make-EP4YSN26.js.map → make-QCGOTYNW.js.map} +0 -0
- /package/dist/{map-CAFMAMPP.js.map → map-EYKEY4VA.js.map} +0 -0
- /package/dist/{mcp-DDWSXLU7.js.map → mcp-P2PZCFFJ.js.map} +0 -0
- /package/dist/{media-sources-J5FXYPV5.js.map → media-sources-UUNS3LES.js.map} +0 -0
- /package/dist/{members-ZA7S5KWP.js.map → members-XTW5F5N5.js.map} +0 -0
- /package/dist/{metrics-MXGA3EFS.js.map → metrics-Z75Q2FHP.js.map} +0 -0
- /package/dist/{models-Z6SUHWKI.js.map → models-X2IXXAD6.js.map} +0 -0
- /package/dist/{normalize-ZHM2ZVXZ.js.map → normalize-P2UQIQOX.js.map} +0 -0
- /package/dist/{options-JTMDZECY.js.map → options-2OK4LBAD.js.map} +0 -0
- /package/dist/{organization-5OJEJEQV.js.map → organization-I5AIPZEH.js.map} +0 -0
- /package/dist/{performance-AHVTOYTM.js.map → performance-4UPNHWC2.js.map} +0 -0
- /package/dist/{performance-S273NSUB.js.map → performance-H5FJQBOP.js.map} +0 -0
- /package/dist/{pixels-H642RPK4.js.map → pixels-DBSPNHIE.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-UF6LYMH4.js.map → promoted-tweet-writes-V5N5JDYQ.js.map} +0 -0
- /package/dist/{promoted-tweets-Z4GG6D7P.js.map → promoted-tweets-ZSNBS3QQ.js.map} +0 -0
- /package/dist/{publish-YQ6MHS7P.js.map → publish-M6U72N3H.js.map} +0 -0
- /package/dist/{query-FT2BA3WH.js.map → query-NMQKS4MY.js.map} +0 -0
- /package/dist/{reddit-YWYRZBL2.js.map → reddit-AZMVTHPR.js.map} +0 -0
- /package/dist/{refresh-TEXTTECA.js.map → refresh-42TJTJSN.js.map} +0 -0
- /package/dist/{release-3JDETBZI.js.map → release-VT6TNWUV.js.map} +0 -0
- /package/dist/{relevant-pages-OCHLUV5K.js.map → relevant-pages-JRIDJL4L.js.map} +0 -0
- /package/dist/{remove-KZTSU4K2.js.map → remove-YW25PRT4.js.map} +0 -0
- /package/dist/{reopen-GIJSFNDH.js.map → reopen-WGTMBOHK.js.map} +0 -0
- /package/dist/{rerun-6UZNOPUG.js.map → rerun-O7P5LMC4.js.map} +0 -0
- /package/dist/{research-XA2IJ2XV.js.map → research-IQWYPRBV.js.map} +0 -0
- /package/dist/{research-TMKG4NQJ.js.map → research-WYNVU26K.js.map} +0 -0
- /package/dist/{reset-7VL6WJLE.js.map → reset-4YPVS6QU.js.map} +0 -0
- /package/dist/{reset-HLZ6JHGY.js.map → reset-NF6K4NHK.js.map} +0 -0
- /package/dist/{resolve-H2QW3U5Y.js.map → resolve-GB4ORVSB.js.map} +0 -0
- /package/dist/{retry-MIZ67MPP.js.map → retry-LKJVOXVX.js.map} +0 -0
- /package/dist/{retry-WSWW6EJT.js.map → retry-W3NSNNDV.js.map} +0 -0
- /package/dist/{revenue-LTU7HRT2.js.map → revenue-KHUWJPMJ.js.map} +0 -0
- /package/dist/{rules-BGBCUUPH.js.map → rules-HMAONF3A.js.map} +0 -0
- /package/dist/{rules-add-SZT2MSOD.js.map → rules-add-BP5XSD23.js.map} +0 -0
- /package/dist/{run-XUDGECLL.js.map → run-EBCP5VIQ.js.map} +0 -0
- /package/dist/{run-FHGT4UQ7.js.map → run-QP7JP2H4.js.map} +0 -0
- /package/dist/{scaffold-ad-VXNO3SQP.js.map → scaffold-ad-JVDV7FET.js.map} +0 -0
- /package/dist/{scaffold-static-ad-FT55VV3T.js.map → scaffold-static-ad-VD3KXMHT.js.map} +0 -0
- /package/dist/{scaffold-video-V7WX5AWZ.js.map → scaffold-video-X3YR6APK.js.map} +0 -0
- /package/dist/{schedule-BNRLEFMZ.js.map → schedule-7OKUUJHO.js.map} +0 -0
- /package/dist/{scheduled-agents-MAXXXJ7W.js.map → scheduled-agents-N6FDAL7K.js.map} +0 -0
- /package/dist/{schema-YADPD54K.js.map → schema-6O6CJTT5.js.map} +0 -0
- /package/dist/{search-56ORG4PL.js.map → search-WGOCL2KW.js.map} +0 -0
- /package/dist/{select-DON4DMNM.js.map → select-6PVDRJQJ.js.map} +0 -0
- /package/dist/{set-prompt-J22TUCRU.js.map → set-prompt-EDM7CPME.js.map} +0 -0
- /package/dist/{setup-links-CHODCBYH.js.map → setup-links-Z2KIKKJM.js.map} +0 -0
- /package/dist/{shopify-FCYU4AR6.js.map → shopify-AANLSYQY.js.map} +0 -0
- /package/dist/{site-BF3Q26W5.js.map → site-6HHZJW2S.js.map} +0 -0
- /package/dist/{sources-VHHC6YQM.js.map → sources-72AAZL4C.js.map} +0 -0
- /package/dist/{sources-SLCYAWTZ.js.map → sources-VRWQ65G6.js.map} +0 -0
- /package/dist/{stale-GLVTL2ZK.js.map → stale-KO6NQVR4.js.map} +0 -0
- /package/dist/{status-E3RA644P.js.map → status-QRO7U5K2.js.map} +0 -0
- /package/dist/{studio-6ZXUKA4G.js.map → studio-OV2ZY5W3.js.map} +0 -0
- /package/dist/{sync-6QCDDJMO.js.map → sync-AQZ7JYEG.js.map} +0 -0
- /package/dist/{sync-definition-DXNHGY5E.js.map → sync-definition-OKSJA6MA.js.map} +0 -0
- /package/dist/{tags-KW7PG2TR.js.map → tags-5GFUNIIK.js.map} +0 -0
- /package/dist/{tags-MGV5KG6I.js.map → tags-DIFC2HFB.js.map} +0 -0
- /package/dist/{tags-TM27EIAL.js.map → tags-M26JKN2F.js.map} +0 -0
- /package/dist/{tags-AMZSQJJ2.js.map → tags-QFEG7LJV.js.map} +0 -0
- /package/dist/{tags-VWGKVGZD.js.map → tags-ZWYUQYWT.js.map} +0 -0
- /package/dist/{targeting-criteria-FT3G4HAW.js.map → targeting-criteria-UQMPM2K5.js.map} +0 -0
- /package/dist/{targets-XLVHWO6Z.js.map → targets-YCVILKKZ.js.map} +0 -0
- /package/dist/{testimonials-INXY7CXU.js.map → testimonials-SJQJDEK4.js.map} +0 -0
- /package/dist/{themes-R3A6IVQN.js.map → themes-RRLYZ46U.js.map} +0 -0
- /package/dist/{top-companies-MNX3GBCP.js.map → top-companies-LPYM65KX.js.map} +0 -0
- /package/dist/{transcript-GIAOWCTO.js.map → transcript-D2IQWUSP.js.map} +0 -0
- /package/dist/{translate-JEQ4K4AH.js.map → translate-CPDFHEI4.js.map} +0 -0
- /package/dist/{triggers-KDXLDZ23.js.map → triggers-543HDVJK.js.map} +0 -0
- /package/dist/{unlink-PNBSDLBQ.js.map → unlink-DQGU7K7V.js.map} +0 -0
- /package/dist/{unstage-X2PDLT5O.js.map → unstage-7UQU4MQT.js.map} +0 -0
- /package/dist/{update-TJTDFWER.js.map → update-DGIBKKIB.js.map} +0 -0
- /package/dist/{update-4JGHSQVZ.js.map → update-FEZ3EVTA.js.map} +0 -0
- /package/dist/{update-4XUQN4LK.js.map → update-QF6WBJU7.js.map} +0 -0
- /package/dist/{update-URU4TO2F.js.map → update-RY3GU5QI.js.map} +0 -0
- /package/dist/{upload-TO5EPTVD.js.map → upload-VMDGQ4HS.js.map} +0 -0
- /package/dist/{url-options-YZ6UG3NY.js.map → url-options-2TQCGD2W.js.map} +0 -0
- /package/dist/{url-params-533CWJH3.js.map → url-params-LMC2DRHP.js.map} +0 -0
- /package/dist/{validate-XF6HU7D4.js.map → validate-TLWEN4IL.js.map} +0 -0
- /package/dist/{videos-KYZ4CUOB.js.map → videos-GFOHRAJ7.js.map} +0 -0
- /package/dist/{viewer-check-U5GUU34Z.js.map → viewer-check-EKDFC7LQ.js.map} +0 -0
- /package/dist/{web-ZYMSMIV6.js.map → web-L7LF6FLF.js.map} +0 -0
- /package/dist/{winning-ads-BCN5RVAE.js.map → winning-ads-RUS4NE5C.js.map} +0 -0
- /package/dist/{write-commands-PZZ72PNL.js.map → write-commands-2JYDSXAX.js.map} +0 -0
- /package/dist/{x-DLEZYTAU.js.map → x-HLZUSGJT.js.map} +0 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NUMERIC_ID_REGEX
|
|
3
|
+
} from "./chunk-H4CLWLYF.js";
|
|
4
|
+
|
|
5
|
+
// ../api/src/ads-google/change-history.ts
|
|
6
|
+
var CHANGE_SCOPES = ["detail", "summary"];
|
|
7
|
+
var CHANGE_SCOPE_MAX_DAYS = {
|
|
8
|
+
detail: 30,
|
|
9
|
+
summary: 90
|
|
10
|
+
};
|
|
11
|
+
var DEFAULT_CHANGE_DAYS = 7;
|
|
12
|
+
var MAX_CHANGE_DAYS = CHANGE_SCOPE_MAX_DAYS.summary;
|
|
13
|
+
function isChangeLookbackWithinReach(days, scope) {
|
|
14
|
+
return days <= CHANGE_SCOPE_MAX_DAYS[scope];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// ../api/src/ads-google/keyword-planning.ts
|
|
18
|
+
import { z } from "zod";
|
|
19
|
+
var ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
20
|
+
var micros = z.number().int().positive();
|
|
21
|
+
var FORECAST_MATCH_TYPES = ["EXACT", "PHRASE", "BROAD"];
|
|
22
|
+
var googleForecastBiddingSchema = z.discriminatedUnion("strategy", [
|
|
23
|
+
z.object({ strategy: z.literal("MANUAL_CPC"), maxCpcBidMicros: micros, dailyBudgetMicros: micros.optional() }),
|
|
24
|
+
z.object({
|
|
25
|
+
strategy: z.literal("MAXIMIZE_CLICKS"),
|
|
26
|
+
dailyTargetSpendMicros: micros,
|
|
27
|
+
maxCpcBidCeilingMicros: micros.optional()
|
|
28
|
+
}),
|
|
29
|
+
z.object({ strategy: z.literal("MAXIMIZE_CONVERSIONS"), dailyTargetSpendMicros: micros })
|
|
30
|
+
]);
|
|
31
|
+
var googleKeywordForecastRequestSchema = z.object({
|
|
32
|
+
customerId: z.string().regex(NUMERIC_ID_REGEX, "customerId must be the bare numeric customer id"),
|
|
33
|
+
managerId: z.string().optional(),
|
|
34
|
+
/** One forecast ad group per entry; most forecasts are a single group. */
|
|
35
|
+
adGroups: z.array(
|
|
36
|
+
z.object({
|
|
37
|
+
keywords: z.array(z.object({ text: z.string().trim().min(1).max(80), matchType: z.enum(FORECAST_MATCH_TYPES) })).min(1)
|
|
38
|
+
})
|
|
39
|
+
).min(1),
|
|
40
|
+
locationIds: z.array(z.string().regex(NUMERIC_ID_REGEX)).optional(),
|
|
41
|
+
languageId: z.string().regex(NUMERIC_ID_REGEX).optional(),
|
|
42
|
+
bidding: googleForecastBiddingSchema,
|
|
43
|
+
/** Must start in the future and end within a year. Without them Baker forecasts the 30 days from tomorrow. */
|
|
44
|
+
startDate: z.string().regex(ISO_DATE).optional(),
|
|
45
|
+
endDate: z.string().regex(ISO_DATE).optional(),
|
|
46
|
+
currencyCode: z.string().length(3).optional()
|
|
47
|
+
}).refine((body) => body.startDate === void 0 === (body.endDate === void 0), {
|
|
48
|
+
message: "Give both --start and --end, or neither (the forecast then covers the 30 days from tomorrow)",
|
|
49
|
+
path: ["endDate"]
|
|
50
|
+
});
|
|
51
|
+
var KEYWORD_FORECAST_SOURCE = "keyword_planner_forecast";
|
|
52
|
+
var googleKeywordForecastResponseSchema = z.object({
|
|
53
|
+
source: z.literal(KEYWORD_FORECAST_SOURCE),
|
|
54
|
+
period: z.object({ startDate: z.string(), endDate: z.string() }),
|
|
55
|
+
forecast_clicks: z.number().nullable(),
|
|
56
|
+
forecast_cost_micros: z.number().nullable(),
|
|
57
|
+
forecast_conversions: z.number().nullable(),
|
|
58
|
+
forecast_average_cpc_micros: z.number().nullable(),
|
|
59
|
+
forecast_average_cpa_micros: z.number().nullable()
|
|
60
|
+
});
|
|
61
|
+
var googleAdGroupThemesRequestSchema = z.object({
|
|
62
|
+
customerId: z.string().regex(NUMERIC_ID_REGEX, "customerId must be the bare numeric customer id"),
|
|
63
|
+
managerId: z.string().optional(),
|
|
64
|
+
keywords: z.array(z.string().trim().min(1)).min(1),
|
|
65
|
+
/** Existing ad groups to sort the keywords into: numeric ids or `customers/{cid}/adGroups/{id}`. */
|
|
66
|
+
adGroups: z.array(z.string().min(1)).min(1)
|
|
67
|
+
});
|
|
68
|
+
var googleAdGroupThemesResponseSchema = z.object({
|
|
69
|
+
suggestions: z.array(
|
|
70
|
+
z.object({
|
|
71
|
+
keyword: z.string(),
|
|
72
|
+
suggested_keyword: z.string(),
|
|
73
|
+
match_type: z.string(),
|
|
74
|
+
ad_group: z.string(),
|
|
75
|
+
campaign: z.string()
|
|
76
|
+
})
|
|
77
|
+
),
|
|
78
|
+
unusable_ad_groups: z.array(z.object({ ad_group: z.string(), campaign: z.string() }))
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// ../api/src/ads-google/url-options.ts
|
|
82
|
+
import { z as z2 } from "zod";
|
|
83
|
+
var URL_OPTION_LEVELS = ["account", "campaign", "ad_group", "ad"];
|
|
84
|
+
var googleUrlOptionValueSchema = z2.discriminatedUnion("state", [
|
|
85
|
+
z2.object({ state: z2.literal("set"), value: z2.string() }),
|
|
86
|
+
z2.object({ state: z2.literal("not_set") }),
|
|
87
|
+
z2.object({ state: z2.literal("not_read"), reason: z2.string() })
|
|
88
|
+
]);
|
|
89
|
+
var googleUrlOptionsRequestSchema = z2.object({
|
|
90
|
+
customerId: z2.string().regex(NUMERIC_ID_REGEX, "customerId must be the bare numeric customer id"),
|
|
91
|
+
managerId: z2.string().optional(),
|
|
92
|
+
/** Compact by default: only campaigns that actually override the account. `full` lists every campaign. */
|
|
93
|
+
full: z2.boolean().optional(),
|
|
94
|
+
skipCache: z2.boolean().optional()
|
|
95
|
+
});
|
|
96
|
+
var googleUrlOptionsCampaignSchema = z2.object({
|
|
97
|
+
id: z2.string(),
|
|
98
|
+
name: z2.string(),
|
|
99
|
+
status: z2.string(),
|
|
100
|
+
final_url_suffix: googleUrlOptionValueSchema,
|
|
101
|
+
tracking_url_template: googleUrlOptionValueSchema
|
|
102
|
+
});
|
|
103
|
+
var googleUrlOptionsAdGroupSchema = z2.object({
|
|
104
|
+
id: z2.string(),
|
|
105
|
+
name: z2.string(),
|
|
106
|
+
status: z2.string(),
|
|
107
|
+
campaign_id: z2.string(),
|
|
108
|
+
final_url_suffix: googleUrlOptionValueSchema,
|
|
109
|
+
tracking_url_template: googleUrlOptionValueSchema
|
|
110
|
+
});
|
|
111
|
+
var googleUrlOptionsAdSchema = z2.object({
|
|
112
|
+
id: z2.string(),
|
|
113
|
+
status: z2.string(),
|
|
114
|
+
ad_group_id: z2.string(),
|
|
115
|
+
campaign_id: z2.string(),
|
|
116
|
+
final_url_suffix: googleUrlOptionValueSchema,
|
|
117
|
+
tracking_url_template: googleUrlOptionValueSchema
|
|
118
|
+
});
|
|
119
|
+
var googleUrlOptionsResponseSchema = z2.object({
|
|
120
|
+
customer_id: z2.string(),
|
|
121
|
+
account: z2.object({
|
|
122
|
+
level: z2.literal("account"),
|
|
123
|
+
read: z2.boolean(),
|
|
124
|
+
final_url_suffix: googleUrlOptionValueSchema,
|
|
125
|
+
tracking_url_template: googleUrlOptionValueSchema
|
|
126
|
+
}),
|
|
127
|
+
campaigns: z2.object({
|
|
128
|
+
level: z2.literal("campaign"),
|
|
129
|
+
read: z2.boolean(),
|
|
130
|
+
/** Campaigns actually observed. 0 with `read: true` means the account has no non-removed campaigns. */
|
|
131
|
+
campaigns_read: z2.number().int().nonnegative(),
|
|
132
|
+
/** Campaigns observed to carry no override of their own — an explicit finding, not an omission. */
|
|
133
|
+
campaigns_without_override: z2.number().int().nonnegative(),
|
|
134
|
+
overrides: z2.array(googleUrlOptionsCampaignSchema),
|
|
135
|
+
/** Compact mode only: campaigns read but not listed because they carry no override. */
|
|
136
|
+
omitted: z2.number().int().nonnegative()
|
|
137
|
+
}),
|
|
138
|
+
/**
|
|
139
|
+
* Ad groups and ads that carry an override of their own — read by asking Google only for the
|
|
140
|
+
* entities whose suffix or template IS NOT NULL, so an account of thousands of ads costs one page.
|
|
141
|
+
* `read: true` with no overrides is a finding: nothing at this level overrides the levels above.
|
|
142
|
+
* `truncated` means more overriding entities exist than one page listed.
|
|
143
|
+
*/
|
|
144
|
+
ad_groups: z2.object({
|
|
145
|
+
level: z2.literal("ad_group"),
|
|
146
|
+
read: z2.boolean(),
|
|
147
|
+
overrides: z2.array(googleUrlOptionsAdGroupSchema),
|
|
148
|
+
truncated: z2.boolean()
|
|
149
|
+
}),
|
|
150
|
+
ads: z2.object({
|
|
151
|
+
level: z2.literal("ad"),
|
|
152
|
+
read: z2.boolean(),
|
|
153
|
+
overrides: z2.array(googleUrlOptionsAdSchema),
|
|
154
|
+
truncated: z2.boolean()
|
|
155
|
+
}),
|
|
156
|
+
/** Levels this command could not read. Nothing here may be reported as "not configured". */
|
|
157
|
+
levels_not_read: z2.array(z2.object({ level: z2.enum(URL_OPTION_LEVELS), reason: z2.string() }))
|
|
158
|
+
});
|
|
159
|
+
var ACCOUNT_URL_OPTIONS_LOCATION = "Google Ads UI \u2192 Admin \u2192 Account settings \u2192 Tracking (account-level tracking template and final URL suffix)";
|
|
160
|
+
var ACCOUNT_URL_OPTIONS_STAGE_COMMAND = 'baker ads google account update --customer-id <id> --final-url-suffix "utm_agency=baker"';
|
|
161
|
+
function isSet(value) {
|
|
162
|
+
return value.state === "set";
|
|
163
|
+
}
|
|
164
|
+
function entityOverrideHints(label, plural, field, level) {
|
|
165
|
+
if (!level.read) return [];
|
|
166
|
+
const hints = [];
|
|
167
|
+
const overriding = level.overrides.filter((entity) => isSet(entity.final_url_suffix));
|
|
168
|
+
if (overriding.length > 0) {
|
|
169
|
+
const named = overriding.slice(0, 5).map((entity) => entity.name || entity.id).join(", ");
|
|
170
|
+
hints.push(
|
|
171
|
+
`${overriding.length} ${label}(s) set their own final URL suffix (${named}${overriding.length > 5 ? ", \u2026" : ""}). It REPLACES the campaign and account suffix for every click through it, so an account-wide parameter must be added to theirs too.`
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
if (level.truncated) {
|
|
175
|
+
hints.push(
|
|
176
|
+
`More ${plural} override the URL options than one page lists \u2014 read them all with \`baker ads google query\` on ${field}.final_url_suffix IS NOT NULL --all before saying which ones do.`
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
return hints;
|
|
180
|
+
}
|
|
181
|
+
function urlOptionsHints(report) {
|
|
182
|
+
const hints = [];
|
|
183
|
+
const { account, campaigns } = report;
|
|
184
|
+
if (!account.read) {
|
|
185
|
+
hints.push(
|
|
186
|
+
"The account level did NOT read \u2014 its URL options are unknown, not empty. Re-run before telling the user anything about account-wide tagging."
|
|
187
|
+
);
|
|
188
|
+
} else if (account.final_url_suffix.state === "not_set") {
|
|
189
|
+
hints.push(
|
|
190
|
+
`No account-level final URL suffix is set. An account-wide parameter (agency/partner tagging such as utm_agency=\u2026) belongs at the account level so it reaches every ad \u2014 stage it with \`${ACCOUNT_URL_OPTIONS_STAGE_COMMAND}\` (applies at Publish; the user sees it under ${ACCOUNT_URL_OPTIONS_LOCATION}).`
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
if (!campaigns.read) {
|
|
194
|
+
hints.push(
|
|
195
|
+
"Campaign-level URL options did NOT read \u2014 do not report that no campaign overrides exist. Re-run before concluding."
|
|
196
|
+
);
|
|
197
|
+
} else {
|
|
198
|
+
const overriding = campaigns.overrides.filter((c) => isSet(c.final_url_suffix));
|
|
199
|
+
if (overriding.length > 0) {
|
|
200
|
+
const named = overriding.slice(0, 5).map((c) => c.name || c.id).join(", ");
|
|
201
|
+
hints.push(
|
|
202
|
+
`A campaign's final URL suffix REPLACES the account-level one for that campaign \u2014 it does not merge. ${overriding.length} campaign(s) set their own (${named}${overriding.length > 5 ? ", \u2026" : ""}) and will not pick up an account-wide parameter until their own suffix carries it too. Every other campaign read here inherits the account level normally.`
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
hints.push(...entityOverrideHints("ad group", "ad groups", "ad_group", report.ad_groups));
|
|
207
|
+
hints.push(...entityOverrideHints("ad", "ads", "ad_group_ad.ad", report.ads));
|
|
208
|
+
const overridingLevelsNotRead = report.levels_not_read.filter((level) => level.level !== "account");
|
|
209
|
+
if (overridingLevelsNotRead.length > 0) {
|
|
210
|
+
hints.push(
|
|
211
|
+
`Not read at this level: ${overridingLevelsNotRead.map((l) => l.level).join(", ")}. A suffix set there still wins over the levels above it.`
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
if (campaigns.omitted > 0) {
|
|
215
|
+
hints.push(`${campaigns.omitted} campaign(s) read with no override of their own are not listed \u2014 pass --full.`);
|
|
216
|
+
}
|
|
217
|
+
return hints;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export {
|
|
221
|
+
CHANGE_SCOPES,
|
|
222
|
+
CHANGE_SCOPE_MAX_DAYS,
|
|
223
|
+
DEFAULT_CHANGE_DAYS,
|
|
224
|
+
isChangeLookbackWithinReach,
|
|
225
|
+
googleKeywordForecastRequestSchema,
|
|
226
|
+
urlOptionsHints
|
|
227
|
+
};
|
|
228
|
+
//# sourceMappingURL=chunk-YKFGXS26.js.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isRemoteUrl
|
|
3
|
+
} from "./chunk-GI7B47X3.js";
|
|
4
|
+
import {
|
|
5
|
+
detectImageContentType,
|
|
6
|
+
uploadLocalImage
|
|
7
|
+
} from "./chunk-EMCTUCCJ.js";
|
|
8
|
+
import {
|
|
9
|
+
IMAGE_GENERATE_MODELS,
|
|
10
|
+
MODEL_REGISTRY,
|
|
11
|
+
VIDEO_GENERATE_MODELS
|
|
12
|
+
} from "./chunk-F3CZFUXZ.js";
|
|
13
|
+
import {
|
|
14
|
+
ApiError,
|
|
15
|
+
apiPost
|
|
16
|
+
} from "./chunk-B2OHCWYB.js";
|
|
17
|
+
|
|
18
|
+
// src/commands/studio/modelOptions.ts
|
|
19
|
+
function unionOfStringEnum(node, models, param) {
|
|
20
|
+
const values = /* @__PURE__ */ new Set();
|
|
21
|
+
for (const model of models) {
|
|
22
|
+
const schema = MODEL_REGISTRY[node][model]?.params[param];
|
|
23
|
+
if (schema?.kind === "string") for (const value of schema.enum ?? []) values.add(value);
|
|
24
|
+
}
|
|
25
|
+
return [...values];
|
|
26
|
+
}
|
|
27
|
+
function unionOfNumberEnum(node, models, param) {
|
|
28
|
+
const values = /* @__PURE__ */ new Set();
|
|
29
|
+
for (const model of models) {
|
|
30
|
+
const schema = MODEL_REGISTRY[node][model]?.params[param];
|
|
31
|
+
if (schema?.kind === "number") for (const value of schema.enum ?? []) values.add(value);
|
|
32
|
+
}
|
|
33
|
+
return [...values].sort((a, b) => a - b);
|
|
34
|
+
}
|
|
35
|
+
var IMAGE_MODEL_IDS = [...IMAGE_GENERATE_MODELS];
|
|
36
|
+
var VIDEO_MODEL_IDS = [...VIDEO_GENERATE_MODELS];
|
|
37
|
+
var IMAGE_SIZES = unionOfStringEnum("image_generate", IMAGE_GENERATE_MODELS, "image_size");
|
|
38
|
+
var IMAGE_QUALITIES = unionOfStringEnum("image_generate", IMAGE_GENERATE_MODELS, "quality");
|
|
39
|
+
var CLIP_RESOLUTIONS = unionOfStringEnum("video_generate", VIDEO_GENERATE_MODELS, "resolution");
|
|
40
|
+
var CLIP_DURATIONS = unionOfNumberEnum("video_generate", VIDEO_GENERATE_MODELS, "duration");
|
|
41
|
+
var CLIP_PERSON_GENERATION = unionOfStringEnum("video_generate", VIDEO_GENERATE_MODELS, "person_generation");
|
|
42
|
+
|
|
43
|
+
// src/commands/studio/references.ts
|
|
44
|
+
var LIBRARY_ID_RE = /^[a-z0-9]{16,}$/i;
|
|
45
|
+
var FILE_EXTENSION_RE = /\.[a-z0-9]{2,5}$/i;
|
|
46
|
+
var PATH_HINT_RE = /[/\\]/;
|
|
47
|
+
function classify(entry) {
|
|
48
|
+
if (isRemoteUrl(entry)) return { kind: "url", value: entry };
|
|
49
|
+
if (PATH_HINT_RE.test(entry) || FILE_EXTENSION_RE.test(entry)) return { kind: "path", value: entry };
|
|
50
|
+
if (LIBRARY_ID_RE.test(entry)) return { kind: "id", value: entry };
|
|
51
|
+
throw new ApiError(
|
|
52
|
+
"VALIDATION_ERROR",
|
|
53
|
+
`"${entry}" is not a library image id, a file path, or an image URL. Pass a comma-separated mix of those.`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
function parseImageRefs(spec) {
|
|
57
|
+
return spec.split(",").map((entry) => entry.trim()).filter(Boolean).map(classify);
|
|
58
|
+
}
|
|
59
|
+
var defaultDeps = {
|
|
60
|
+
ingest: (url) => apiPost("/api/images/ingest", { url, source: "uploaded" }),
|
|
61
|
+
upload: (path) => uploadLocalImage({ file: path, contentType: detectImageContentType(path), source: "uploaded" })
|
|
62
|
+
};
|
|
63
|
+
async function resolveLibraryImageIds(spec, limit, deps = defaultDeps) {
|
|
64
|
+
const refs = parseImageRefs(spec);
|
|
65
|
+
if (limit && refs.length > limit.max) {
|
|
66
|
+
throw new ApiError("VALIDATION_ERROR", limit.refuse(refs.length));
|
|
67
|
+
}
|
|
68
|
+
const imageIds = [];
|
|
69
|
+
const added = [];
|
|
70
|
+
for (const ref of refs) {
|
|
71
|
+
if (ref.kind === "id") {
|
|
72
|
+
imageIds.push(ref.value);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const { imageId } = ref.kind === "url" ? await deps.ingest(ref.value) : await deps.upload(ref.value).catch(uploadFailure(ref.value));
|
|
76
|
+
imageIds.push(imageId);
|
|
77
|
+
added.push(imageId);
|
|
78
|
+
}
|
|
79
|
+
return { imageIds, added };
|
|
80
|
+
}
|
|
81
|
+
function uploadFailure(path) {
|
|
82
|
+
return (error) => {
|
|
83
|
+
if (error instanceof ApiError) throw error;
|
|
84
|
+
throw new ApiError("VALIDATION_ERROR", `Could not read "${path}" as an image.`);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export {
|
|
89
|
+
IMAGE_MODEL_IDS,
|
|
90
|
+
VIDEO_MODEL_IDS,
|
|
91
|
+
IMAGE_SIZES,
|
|
92
|
+
IMAGE_QUALITIES,
|
|
93
|
+
CLIP_RESOLUTIONS,
|
|
94
|
+
CLIP_DURATIONS,
|
|
95
|
+
CLIP_PERSON_GENERATION,
|
|
96
|
+
resolveLibraryImageIds
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=chunk-YQB66YKJ.js.map
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import {
|
|
2
|
+
REDDIT_LINK_REJECTED,
|
|
3
|
+
redditSearchHints,
|
|
4
|
+
redditSubredditsHints,
|
|
5
|
+
redditThreadHints
|
|
6
|
+
} from "./chunk-W46BM7HF.js";
|
|
7
|
+
import {
|
|
8
|
+
handleResearchError,
|
|
9
|
+
writeResearchJson
|
|
10
|
+
} from "./chunk-W4W3F3P7.js";
|
|
11
|
+
import {
|
|
12
|
+
repeatedValues
|
|
13
|
+
} from "./chunk-ERSX3MKH.js";
|
|
14
|
+
import {
|
|
15
|
+
RESEARCH_REDDIT_THREAD_DEFAULT_COMMENTS
|
|
16
|
+
} from "./chunk-UKIS6BLM.js";
|
|
17
|
+
import {
|
|
18
|
+
apiPost
|
|
19
|
+
} from "./chunk-B2OHCWYB.js";
|
|
20
|
+
import {
|
|
21
|
+
registerSchema
|
|
22
|
+
} from "./chunk-WCIS4FZH.js";
|
|
23
|
+
|
|
24
|
+
// src/commands/research/reddit.ts
|
|
25
|
+
import { defineCommand } from "citty";
|
|
26
|
+
var TIMEOUT_MS = 18e4;
|
|
27
|
+
var TEXT_PREVIEW_CHARS = 1500;
|
|
28
|
+
var ITEM_FIELDS = {
|
|
29
|
+
kind: "post or comment",
|
|
30
|
+
subreddit: "Where it was said",
|
|
31
|
+
title: "The post's title (on a comment: the post it answers)",
|
|
32
|
+
text: "Verbatim \u2014 quote this, exactly",
|
|
33
|
+
text_truncated: "The text was cut; re-run with --full before quoting the end of it",
|
|
34
|
+
author: "Reddit username, or null once the account is deleted",
|
|
35
|
+
score: "Points",
|
|
36
|
+
comment_count: "Posts only",
|
|
37
|
+
created: "Date written (UTC)",
|
|
38
|
+
permalink: "Cite THIS link \u2014 it is built from where the words actually are",
|
|
39
|
+
depth: "Thread comments: 0 answers the post, 1 answers a comment",
|
|
40
|
+
source: "reddit_api / reddit_web = live Reddit; archive = the Arctic Shift archive of Reddit"
|
|
41
|
+
};
|
|
42
|
+
registerSchema({
|
|
43
|
+
command: "research.reddit.search",
|
|
44
|
+
description: "Search Reddit posts or comments for the audience's own words. Returns verbatim text with a real permalink for each hit. Start here for voice-of-customer work on Reddit.",
|
|
45
|
+
args: {
|
|
46
|
+
query: {
|
|
47
|
+
type: "string",
|
|
48
|
+
description: "Words to match \u2014 the audience's phrasing, not a description of it",
|
|
49
|
+
required: true
|
|
50
|
+
},
|
|
51
|
+
subreddit: {
|
|
52
|
+
type: "string",
|
|
53
|
+
description: "Subreddits to search (up to 10): comma-separated (couriersofreddit,AmazonFlexUK) or the flag repeated. Needed for --kind comments",
|
|
54
|
+
required: false
|
|
55
|
+
},
|
|
56
|
+
kind: {
|
|
57
|
+
type: "string",
|
|
58
|
+
description: "posts (default) or comments \u2014 the replies are where most of the voice is",
|
|
59
|
+
required: false,
|
|
60
|
+
enum: ["posts", "comments"]
|
|
61
|
+
},
|
|
62
|
+
since: { type: "string", description: "Only things written on or after this day, YYYY-MM-DD", required: false },
|
|
63
|
+
limit: { type: "number", description: "Results to return (1-50, default 25)", required: false },
|
|
64
|
+
full: {
|
|
65
|
+
type: "boolean",
|
|
66
|
+
description: "Return every text whole instead of a preview",
|
|
67
|
+
required: false,
|
|
68
|
+
default: false
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
registerSchema({
|
|
73
|
+
command: "research.reddit.thread",
|
|
74
|
+
description: "Read one Reddit thread verbatim: the post and its best comments, each with its own permalink. Use it on any Reddit link before quoting it \u2014 it also exposes links that point somewhere other than they claim.",
|
|
75
|
+
args: {
|
|
76
|
+
target: {
|
|
77
|
+
type: "string",
|
|
78
|
+
description: "The thread's link (any Reddit form, including share links) or post id",
|
|
79
|
+
required: true
|
|
80
|
+
},
|
|
81
|
+
comments: { type: "number", description: "Comments to return, best first (0-200, default 40)", required: false },
|
|
82
|
+
full: {
|
|
83
|
+
type: "boolean",
|
|
84
|
+
description: "Return every text whole instead of a preview",
|
|
85
|
+
required: false,
|
|
86
|
+
default: false
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
registerSchema({
|
|
91
|
+
command: "research.reddit.subreddits",
|
|
92
|
+
description: "Find the subreddits where an audience talks about a topic, with member counts and whether they can be read. Run it before searching, instead of guessing subreddit names.",
|
|
93
|
+
args: {
|
|
94
|
+
query: { type: "string", description: 'The audience or topic, e.g. "amazon flex uk", "deliveroo"', required: true },
|
|
95
|
+
limit: { type: "number", description: "Subreddits to return (1-25, default 10)", required: false }
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
function searchReddit(body) {
|
|
99
|
+
return apiPost("/api/research/reddit/search", body, { timeoutMs: TIMEOUT_MS });
|
|
100
|
+
}
|
|
101
|
+
function findSubreddits(body) {
|
|
102
|
+
return apiPost("/api/research/reddit/subreddits", body, { timeoutMs: TIMEOUT_MS });
|
|
103
|
+
}
|
|
104
|
+
function row(item, full) {
|
|
105
|
+
const cut = !full && item.text.length > TEXT_PREVIEW_CHARS;
|
|
106
|
+
return {
|
|
107
|
+
kind: item.kind,
|
|
108
|
+
subreddit: item.subreddit,
|
|
109
|
+
title: item.title,
|
|
110
|
+
text: cut ? `${item.text.slice(0, TEXT_PREVIEW_CHARS)}\u2026` : item.text,
|
|
111
|
+
...cut ? { text_truncated: true } : {},
|
|
112
|
+
author: item.author,
|
|
113
|
+
score: item.score,
|
|
114
|
+
...item.kind === "post" ? { comment_count: item.commentCount } : {},
|
|
115
|
+
created: item.createdAt.slice(0, 10),
|
|
116
|
+
permalink: item.permalink,
|
|
117
|
+
...item.depth !== null ? { depth: item.depth } : {}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function redditFix(code) {
|
|
121
|
+
if (code === "NOT_FOUND") return REDDIT_LINK_REJECTED;
|
|
122
|
+
if (code === "BAD_REQUEST" || code === "VALIDATION_ERROR") {
|
|
123
|
+
return { action: "retry_with_changes", explanation: "Follow the message above and run the command again." };
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
action: "continue_without",
|
|
127
|
+
explanation: "Don't loop on it. Finish the job with the other sources, say plainly that Reddit is a gap in this research, and never stand in a summary's paraphrase for a Reddit quote."
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function failValidation(message) {
|
|
131
|
+
writeResearchJson({ ok: false, error: { code: "VALIDATION_ERROR", message, fix: redditFix("VALIDATION_ERROR") } });
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
function subredditsFromArgs(rawArgs, parsed) {
|
|
135
|
+
return repeatedValues(rawArgs, "subreddit", parsed).flatMap((value) => value.split(",")).map((name) => name.trim()).filter(Boolean);
|
|
136
|
+
}
|
|
137
|
+
var searchCommand = defineCommand({
|
|
138
|
+
meta: {
|
|
139
|
+
name: "search",
|
|
140
|
+
description: `Search Reddit for the audience's own words, verbatim, each with a permalink you can cite.
|
|
141
|
+
|
|
142
|
+
Start here for Reddit voice-of-customer. Matches words, not meaning \u2014 search the way the audience writes, and quote a phrase to keep it together ('"right to work"').
|
|
143
|
+
|
|
144
|
+
Examples:
|
|
145
|
+
baker research reddit search "agency never paid" --subreddit couriersofreddit,AmazonFlexUK
|
|
146
|
+
baker research reddit search '"right to work"' --subreddit UKJobs,AmazonFlexUK
|
|
147
|
+
baker research reddit search "visa" --subreddit UberEATS --kind comments --since 2025-01-01
|
|
148
|
+
baker research reddit search "side hustle student deliveries"`
|
|
149
|
+
},
|
|
150
|
+
args: {
|
|
151
|
+
query: { type: "positional", description: "Words to match", required: false },
|
|
152
|
+
subreddit: {
|
|
153
|
+
type: "string",
|
|
154
|
+
description: "Subreddits (up to 10): comma-separated, or repeat the flag",
|
|
155
|
+
required: false
|
|
156
|
+
},
|
|
157
|
+
kind: { type: "string", description: "posts (default) or comments", required: false },
|
|
158
|
+
since: { type: "string", description: "YYYY-MM-DD", required: false },
|
|
159
|
+
limit: { type: "string", description: "1-50, default 25", required: false },
|
|
160
|
+
full: { type: "boolean", description: "Whole texts, not previews", required: false }
|
|
161
|
+
},
|
|
162
|
+
run: async ({ args, rawArgs }) => {
|
|
163
|
+
const query = args.query?.trim();
|
|
164
|
+
if (!query) failValidation('Say what to search for: baker research reddit search "<words>"');
|
|
165
|
+
const kind = args.kind ?? "posts";
|
|
166
|
+
if (kind !== "posts" && kind !== "comments") failValidation("--kind must be posts or comments");
|
|
167
|
+
const body = {
|
|
168
|
+
query,
|
|
169
|
+
kind,
|
|
170
|
+
subreddits: subredditsFromArgs(rawArgs, args.subreddit)
|
|
171
|
+
};
|
|
172
|
+
if (args.since) body.since = args.since;
|
|
173
|
+
if (args.limit) body.limit = Number(args.limit);
|
|
174
|
+
try {
|
|
175
|
+
const data = await searchReddit(body);
|
|
176
|
+
writeResearchJson({
|
|
177
|
+
ok: true,
|
|
178
|
+
data: data.results.map((item) => row(item, Boolean(args.full))),
|
|
179
|
+
source: data.source,
|
|
180
|
+
fields: ITEM_FIELDS,
|
|
181
|
+
hints: redditSearchHints({ resultCount: data.results.length, kind, source: data.source })
|
|
182
|
+
});
|
|
183
|
+
} catch (err) {
|
|
184
|
+
handleResearchError(err, redditFix);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
var threadCommand = defineCommand({
|
|
189
|
+
meta: {
|
|
190
|
+
name: "thread",
|
|
191
|
+
description: `Read one Reddit thread verbatim \u2014 the post and its best comments, each with its own permalink.
|
|
192
|
+
|
|
193
|
+
Run it on every Reddit link before you quote from it, including links a research summary gave you: it refuses a link whose post is somewhere other than the link claims.
|
|
194
|
+
|
|
195
|
+
Examples:
|
|
196
|
+
baker research reddit thread "https://www.reddit.com/r/AmazonFlexUK/comments/1abc2de/agency_still_hasnt_paid_me/"
|
|
197
|
+
baker research reddit thread "https://www.reddit.com/r/UberEATS/s/3TzXiyxaMD" --comments 100
|
|
198
|
+
baker research reddit thread 1abc2de --full`
|
|
199
|
+
},
|
|
200
|
+
args: {
|
|
201
|
+
target: { type: "positional", description: "Thread link or post id", required: false },
|
|
202
|
+
comments: { type: "string", description: "0-200, default 40", required: false },
|
|
203
|
+
full: { type: "boolean", description: "Whole texts, not previews", required: false }
|
|
204
|
+
},
|
|
205
|
+
run: async ({ args }) => {
|
|
206
|
+
const target = args.target?.trim();
|
|
207
|
+
if (!target) failValidation("Pass the thread's link or post id: baker research reddit thread <url>");
|
|
208
|
+
const commentsAsked = args.comments ? Number(args.comments) : RESEARCH_REDDIT_THREAD_DEFAULT_COMMENTS;
|
|
209
|
+
const body = { target, comments: commentsAsked };
|
|
210
|
+
try {
|
|
211
|
+
const data = await apiPost("/api/research/reddit/thread", body, {
|
|
212
|
+
timeoutMs: TIMEOUT_MS
|
|
213
|
+
});
|
|
214
|
+
const full = Boolean(args.full);
|
|
215
|
+
writeResearchJson({
|
|
216
|
+
ok: true,
|
|
217
|
+
data: { post: row(data.post, full), comments: data.comments.map((item) => row(item, full)) },
|
|
218
|
+
source: data.source,
|
|
219
|
+
fields: ITEM_FIELDS,
|
|
220
|
+
hints: redditThreadHints({
|
|
221
|
+
commentsShown: data.comments.length,
|
|
222
|
+
commentsAsked,
|
|
223
|
+
commentCount: data.post.commentCount,
|
|
224
|
+
source: data.source
|
|
225
|
+
})
|
|
226
|
+
});
|
|
227
|
+
} catch (err) {
|
|
228
|
+
handleResearchError(err, redditFix);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
var subredditsCommand = defineCommand({
|
|
233
|
+
meta: {
|
|
234
|
+
name: "subreddits",
|
|
235
|
+
description: `Find the subreddits where an audience talks \u2014 name, members, and whether it can be read.
|
|
236
|
+
|
|
237
|
+
Run it before \`reddit search\` instead of guessing names: a plausible-sounding subreddit can be dead (r/CouriersUK has one post), while the conversation sits in r/AmazonFlexUK or r/deliveroos.
|
|
238
|
+
|
|
239
|
+
Examples:
|
|
240
|
+
baker research reddit subreddits "amazon flex uk"
|
|
241
|
+
baker research reddit subreddits "deliveroo" --limit 5`
|
|
242
|
+
},
|
|
243
|
+
args: {
|
|
244
|
+
query: { type: "positional", description: "Audience or topic", required: false },
|
|
245
|
+
limit: { type: "string", description: "1-25, default 10", required: false }
|
|
246
|
+
},
|
|
247
|
+
run: async ({ args }) => {
|
|
248
|
+
const query = args.query?.trim();
|
|
249
|
+
if (!query) failValidation('Say what to look for: baker research reddit subreddits "<audience or topic>"');
|
|
250
|
+
const body = { query };
|
|
251
|
+
if (args.limit) body.limit = Number(args.limit);
|
|
252
|
+
try {
|
|
253
|
+
const data = await findSubreddits(body);
|
|
254
|
+
writeResearchJson({
|
|
255
|
+
ok: true,
|
|
256
|
+
data: data.results,
|
|
257
|
+
source: data.source,
|
|
258
|
+
fields: {
|
|
259
|
+
name: "Pass this to --subreddit",
|
|
260
|
+
subscribers: "Members \u2014 size, not activity",
|
|
261
|
+
access: "public / restricted (readable, members post) / private (unreadable) / null when the source doesn't say",
|
|
262
|
+
description: "The subreddit's own summary",
|
|
263
|
+
url: "The subreddit"
|
|
264
|
+
},
|
|
265
|
+
hints: redditSubredditsHints({ resultCount: data.results.length })
|
|
266
|
+
});
|
|
267
|
+
} catch (err) {
|
|
268
|
+
handleResearchError(err, redditFix);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
var redditCommand = defineCommand({
|
|
273
|
+
meta: {
|
|
274
|
+
name: "reddit",
|
|
275
|
+
description: `Read Reddit verbatim \u2014 the one site no page reader will open for us.
|
|
276
|
+
|
|
277
|
+
Commands:
|
|
278
|
+
subreddits \u2014 Find where the audience talks (start here)
|
|
279
|
+
search \u2014 Find posts or comments in the audience's own words
|
|
280
|
+
thread \u2014 Read one thread: the post and its best comments
|
|
281
|
+
|
|
282
|
+
Examples:
|
|
283
|
+
baker research reddit subreddits "amazon flex uk"
|
|
284
|
+
baker research reddit search "agency never paid" --subreddit couriersofreddit,AmazonFlexUK --kind comments
|
|
285
|
+
baker research reddit thread "https://www.reddit.com/r/AmazonFlexUK/comments/1abc2de/"
|
|
286
|
+
Full guide: __tooling__/docs/tools/baker/research.md`
|
|
287
|
+
},
|
|
288
|
+
subCommands: { subreddits: subredditsCommand, search: searchCommand, thread: threadCommand }
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
export {
|
|
292
|
+
searchReddit,
|
|
293
|
+
findSubreddits,
|
|
294
|
+
subredditsFromArgs,
|
|
295
|
+
redditCommand
|
|
296
|
+
};
|
|
297
|
+
//# sourceMappingURL=chunk-YZKZQXRX.js.map
|