@koda-sl/baker-cli 0.449.0 → 0.450.0-dev.b454c3dd2
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 +11 -2
- package/dist/account-4H7QVBRK.js +80 -0
- package/dist/account-XQXC7BR6.js +80 -0
- package/dist/account-XQXC7BR6.js.map +1 -0
- package/dist/account-writes-AK42HGRM.js +66 -0
- package/dist/accounts-722UY53A.js +78 -0
- package/dist/accounts-722UY53A.js.map +1 -0
- package/dist/accounts-E67BMK7T.js +612 -0
- package/dist/accounts-E67BMK7T.js.map +1 -0
- package/dist/actions-6TQMSVWD.js +55 -0
- package/dist/ad-group-writes-QQS4223F.js +170 -0
- package/dist/ad-groups-WGPDPUI2.js +68 -0
- package/dist/ad-writes-XE2IE4DS.js +174 -0
- package/dist/add-2BEGRHUX.js +303 -0
- package/dist/add-2BEGRHUX.js.map +1 -0
- package/dist/add-LEMKEOPO.js +105 -0
- package/dist/add-LEMKEOPO.js.map +1 -0
- package/dist/ads-AGYCVD62.js +40 -0
- package/dist/ads-BCOSQALY.js +77 -0
- package/dist/advertisers-2VQKAYKG.js +121 -0
- package/dist/advertisers-2VQKAYKG.js.map +1 -0
- package/dist/analytics-IFELDWLL.js +1962 -0
- package/dist/analytics-IFELDWLL.js.map +1 -0
- package/dist/analytics-OH5QEH7F.js +434 -0
- package/dist/analytics-OH5QEH7F.js.map +1 -0
- package/dist/animate-AIZ3GS4J.js +480 -0
- package/dist/assign-PTUJUCEL.js +78 -0
- package/dist/assign-PTUJUCEL.js.map +1 -0
- package/dist/audience-size-LRI6GJRT.js +95 -0
- package/dist/audience-size-LRI6GJRT.js.map +1 -0
- package/dist/audiences-TGD5US2M.js +268 -0
- package/dist/audit-HWP7OPB7.js +152 -0
- package/dist/audit-HWP7OPB7.js.map +1 -0
- package/dist/autocomplete-J6DHU6MR.js +112 -0
- package/dist/autocomplete-J6DHU6MR.js.map +1 -0
- package/dist/avatars-467OSBD6.js +38 -0
- package/dist/bid-pricing-EO5WLHGV.js +100 -0
- package/dist/bid-pricing-EO5WLHGV.js.map +1 -0
- package/dist/brand-YRTEPGBK.js +22 -0
- package/dist/brief-OSFJ2V7F.js +478 -0
- package/dist/brief-OSFJ2V7F.js.map +1 -0
- package/dist/campaign-groups-PQ6KSQJR.js +96 -0
- package/dist/campaign-groups-PQ6KSQJR.js.map +1 -0
- package/dist/campaign-writes-5OVLUD5E.js +166 -0
- package/dist/campaign-writes-5OVLUD5E.js.map +1 -0
- package/dist/campaign-writes-SXLZFYF6.js +170 -0
- package/dist/campaigns-6T3NSUT2.js +110 -0
- package/dist/campaigns-6T3NSUT2.js.map +1 -0
- package/dist/campaigns-OYMXDGWX.js +107 -0
- package/dist/campaigns-YS3OGQXO.js +76 -0
- package/dist/canvas-YQFG52IG.js +46 -0
- package/dist/capabilities-PXBKUN2G.js +145 -0
- package/dist/capabilities-PXBKUN2G.js.map +1 -0
- package/dist/catalog-XLXIM7IW.js +65 -0
- package/dist/catalogs-BRXEDE56.js +128 -0
- package/dist/chatgpt-7W75X3ER.js +47 -0
- package/dist/chats-UK47UE7C.js +263 -0
- package/dist/chats-UK47UE7C.js.map +1 -0
- package/dist/chunk-24EB7EDR.js +433 -0
- package/dist/chunk-2AOE2MZQ.js +159 -0
- package/dist/chunk-2VPBIT65.js +509 -0
- package/dist/chunk-4PDHHHUJ.js +537 -0
- package/dist/chunk-4PDHHHUJ.js.map +1 -0
- package/dist/chunk-54C6YDGJ.js +622 -0
- package/dist/chunk-5WCSKQ7Z.js +188 -0
- package/dist/chunk-5ZNTADVR.js +197 -0
- package/dist/chunk-6F7DVPOS.js +310 -0
- package/dist/chunk-6NY2GPR4.js +304 -0
- package/dist/chunk-6Y7ZBENQ.js +207 -0
- package/dist/chunk-7CTMH5AK.js +111 -0
- package/dist/chunk-7EPXVICM.js +6184 -0
- package/dist/chunk-7EPXVICM.js.map +1 -0
- package/dist/chunk-7J6EHOH6.js +274 -0
- package/dist/chunk-ASI4P6X2.js +6667 -0
- package/dist/chunk-C46GUI2S.js +19 -0
- package/dist/chunk-CAMX6OHF.js +3182 -0
- package/dist/chunk-CAMX6OHF.js.map +1 -0
- package/dist/chunk-CWYAELVG.js +60 -0
- package/dist/chunk-DCRPXOJJ.js +363 -0
- package/dist/chunk-EAP4O4FE.js +440 -0
- package/dist/chunk-FPOGPFAG.js +4383 -0
- package/dist/chunk-FTWJFDIN.js +23992 -0
- package/dist/chunk-FTWJFDIN.js.map +1 -0
- package/dist/chunk-FUHN4MFY.js +103 -0
- package/dist/chunk-FYGR3I2A.js +297 -0
- package/dist/chunk-H3427GPU.js +206 -0
- package/dist/chunk-HDLYPC6K.js +172 -0
- package/dist/chunk-HDLYPC6K.js.map +1 -0
- package/dist/chunk-HR6IWNKE.js +2942 -0
- package/dist/chunk-HR6IWNKE.js.map +1 -0
- package/dist/chunk-HROZYQ5H.js +275 -0
- package/dist/chunk-HROZYQ5H.js.map +1 -0
- package/dist/chunk-HZUDRKGR.js +98 -0
- package/dist/chunk-I3ZR655O.js +382 -0
- package/dist/chunk-KMKEYI37.js +96 -0
- package/dist/chunk-KS2QY6MK.js +139 -0
- package/dist/chunk-LYQJ4PZW.js +5189 -0
- package/dist/chunk-MACCF4JZ.js +3147 -0
- package/dist/chunk-N4LAYIIN.js +175 -0
- package/dist/chunk-NA63BH7V.js +346 -0
- package/dist/chunk-NCWCZY5P.js +1441 -0
- package/dist/chunk-NDEE6G2J.js +494 -0
- package/dist/chunk-NJXNU2G6.js +819 -0
- package/dist/chunk-NYIGXDUG.js +178 -0
- package/dist/chunk-NYIGXDUG.js.map +1 -0
- package/dist/chunk-P5T7OZKV.js +26 -0
- package/dist/chunk-PZXCWSKV.js +1830 -0
- package/dist/chunk-QE7W555R.js +541 -0
- package/dist/chunk-QE7W555R.js.map +1 -0
- package/dist/chunk-R25YLW6H.js +20 -0
- package/dist/chunk-RL5CP7N6.js +57 -0
- package/dist/chunk-RX2DKU3W.js +592 -0
- package/dist/chunk-SJYEY5MV.js +172 -0
- package/dist/chunk-SJYEY5MV.js.map +1 -0
- package/dist/chunk-ULG4QRTV.js +92 -0
- package/dist/chunk-VL43TNIP.js +455 -0
- package/dist/chunk-VLMBTPXU.js +51 -0
- package/dist/chunk-VNUNE5AB.js +160 -0
- package/dist/chunk-VYQ3QJ3C.js +169 -0
- package/dist/chunk-WGUQHAJY.js +23 -0
- package/dist/chunk-WKQG6TER.js +1079 -0
- package/dist/chunk-XFGAUP5B.js +76 -0
- package/dist/chunk-ZDMTXQ2Q.js +337 -0
- package/dist/claim-W6G6VEG5.js +198 -0
- package/dist/claim-W6G6VEG5.js.map +1 -0
- package/dist/cli.js +30 -30
- package/dist/companies-TS6KBATJ.js +196 -0
- package/dist/companies-TS6KBATJ.js.map +1 -0
- package/dist/complete-LYR2HMQU.js +82 -0
- package/dist/complete-LYR2HMQU.js.map +1 -0
- package/dist/connect-FCXNVTXG.js +43 -0
- package/dist/conversation-6ZJGPCXM.js +94 -0
- package/dist/conversation-6ZJGPCXM.js.map +1 -0
- package/dist/conversion-report-XQBJ6LG4.js +125 -0
- package/dist/conversion-writes-UBCVXP2E.js +120 -0
- package/dist/conversions-D236RTUK.js +76 -0
- package/dist/conversions-UHB55MMQ.js +136 -0
- package/dist/conversions-UHB55MMQ.js.map +1 -0
- package/dist/create-EX6OWLNM.js +208 -0
- package/dist/create-EX6OWLNM.js.map +1 -0
- package/dist/create-JCA7JPLP.js +131 -0
- package/dist/create-JCA7JPLP.js.map +1 -0
- package/dist/create-JFSK4BOP.js +60 -0
- package/dist/create-JFSK4BOP.js.map +1 -0
- package/dist/create-WU22YYU2.js +236 -0
- package/dist/create-WU22YYU2.js.map +1 -0
- package/dist/creatives-FXUQ5WSD.js +51 -0
- package/dist/creatives-KGXUOYPE.js +183 -0
- package/dist/creatives-KGXUOYPE.js.map +1 -0
- package/dist/credentials-MJC7PGKR.js +1056 -0
- package/dist/credentials-MJC7PGKR.js.map +1 -0
- package/dist/critique-GS5VV5ZC.js +214 -0
- package/dist/critique-GS5VV5ZC.js.map +1 -0
- package/dist/critique-TPHR27KH.js +1450 -0
- package/dist/critique-TPHR27KH.js.map +1 -0
- package/dist/crm-AVCM5D4G.js +319 -0
- package/dist/crm-AVCM5D4G.js.map +1 -0
- package/dist/crm-VK44O3ED.js +225 -0
- package/dist/crm-VK44O3ED.js.map +1 -0
- package/dist/customers-XH2DMTFH.js +57 -0
- package/dist/delete-E3R3TKIL.js +67 -0
- package/dist/delete-E3R3TKIL.js.map +1 -0
- package/dist/delete-KRH2YMSZ.js +55 -0
- package/dist/delete-KRH2YMSZ.js.map +1 -0
- package/dist/delete-WI5E3DR3.js +64 -0
- package/dist/delete-WI5E3DR3.js.map +1 -0
- package/dist/demographics-XV5PBA77.js +139 -0
- package/dist/demographics-XV5PBA77.js.map +1 -0
- package/dist/discard-HTQUUHJR.js +67 -0
- package/dist/discard-HTQUUHJR.js.map +1 -0
- package/dist/domain-RECGZXJB.js +99 -0
- package/dist/domain-RECGZXJB.js.map +1 -0
- package/dist/draft-2IBSJEKC.js +218 -0
- package/dist/draft-2IBSJEKC.js.map +1 -0
- package/dist/draft-MNFJ4G3C.js +281 -0
- package/dist/draft-PVTX6QT6.js +329 -0
- package/dist/draft-PVTX6QT6.js.map +1 -0
- package/dist/draft-Q546QPPU.js +307 -0
- package/dist/draft-Q546QPPU.js.map +1 -0
- package/dist/engine/index.js +6 -6
- package/dist/facets-7EVPJMKS.js +115 -0
- package/dist/facets-7EVPJMKS.js.map +1 -0
- package/dist/feedback-EIZKS4JU.js +66 -0
- package/dist/feedback-record-TKO54BOE.js +176 -0
- package/dist/feedback-record-TKO54BOE.js.map +1 -0
- package/dist/fetch-4BY6HYUM.js +177 -0
- package/dist/fetch-4BY6HYUM.js.map +1 -0
- package/dist/find-FRRHAPWX.js +134 -0
- package/dist/fit-UOFYFJ4Q.js +45 -0
- package/dist/flows-KTFAML22.js +248 -0
- package/dist/flows-KTFAML22.js.map +1 -0
- package/dist/fonts-MXR3ZKDX.js +35 -0
- package/dist/forecast-3QTJYVND.js +105 -0
- package/dist/forecast-3QTJYVND.js.map +1 -0
- package/dist/funnel-I6XIAEHG.js +393 -0
- package/dist/funnel-I6XIAEHG.js.map +1 -0
- package/dist/ga4-DV2AXCSL.js +55 -0
- package/dist/generate-3XYYITU6.js +262 -0
- package/dist/get-5PKNKJ5S.js +57 -0
- package/dist/get-5PKNKJ5S.js.map +1 -0
- package/dist/get-72YPHJGV.js +79 -0
- package/dist/get-72YPHJGV.js.map +1 -0
- package/dist/google-6OGZX47I.js +1872 -0
- package/dist/google-QYYYSSXI.js +136 -0
- package/dist/google-ads-QGMQKZQD.js +196 -0
- package/dist/google-ads-QGMQKZQD.js.map +1 -0
- package/dist/gsc-TAKOF7J5.js +30 -0
- package/dist/history-6AVQX2OQ.js +134 -0
- package/dist/history-6AVQX2OQ.js.map +1 -0
- package/dist/history-Q3QCT64S.js +67 -0
- package/dist/hubspot-SVEMFK5S.js +780 -0
- package/dist/hubspot-SVEMFK5S.js.map +1 -0
- package/dist/icon-L4RSS6PZ.js +137 -0
- package/dist/ideas-NFOW3HKJ.js +33 -0
- package/dist/images-2EFFUNNV.js +90 -0
- package/dist/ingest-2EIKN4QC.js +24 -0
- package/dist/ingest-2SO62RRI.js +108 -0
- package/dist/ingest-2SO62RRI.js.map +1 -0
- package/dist/insights-LNAXV2CG.js +122 -0
- package/dist/inspect-4OOS4APT.js +190 -0
- package/dist/inspect-4OOS4APT.js.map +1 -0
- package/dist/inspiration-S3DU4CMQ.js +53 -0
- package/dist/keyword-metrics-SF4CSNZ2.js +198 -0
- package/dist/keyword-metrics-SF4CSNZ2.js.map +1 -0
- package/dist/keywords-for-site-WDAOPNKC.js +129 -0
- package/dist/keywords-for-site-WDAOPNKC.js.map +1 -0
- package/dist/landing-2ZB46LXH.js +28 -0
- package/dist/leads-A4W5KTWB.js +91 -0
- package/dist/leads-A4W5KTWB.js.map +1 -0
- package/dist/learn-IPULBCOD.js +204 -0
- package/dist/learn-IPULBCOD.js.map +1 -0
- package/dist/line-item-writes-EMYSOJKM.js +209 -0
- package/dist/line-item-writes-EMYSOJKM.js.map +1 -0
- package/dist/line-items-5NECXUZT.js +103 -0
- package/dist/link-CI45HWFN.js +65 -0
- package/dist/link-CI45HWFN.js.map +1 -0
- package/dist/linkedin-B7SYR75X.js +1009 -0
- package/dist/linkedin-B7SYR75X.js.map +1 -0
- package/dist/list-2BARXOT5.js +152 -0
- package/dist/list-2BARXOT5.js.map +1 -0
- package/dist/list-BIEVLEHS.js +304 -0
- package/dist/list-BIEVLEHS.js.map +1 -0
- package/dist/list-ZBT3EBVZ.js +64 -0
- package/dist/list-ZBT3EBVZ.js.map +1 -0
- package/dist/locations-2NKBJKBT.js +67 -0
- package/dist/log-C23OOAJZ.js +93 -0
- package/dist/log-C23OOAJZ.js.map +1 -0
- package/dist/logo-Q5D7PZY6.js +18 -0
- package/dist/lookup-ETWY47F7.js +23 -0
- package/dist/make-TPKKJXGL.js +594 -0
- package/dist/make-TPKKJXGL.js.map +1 -0
- package/dist/map-SYZMPHLL.js +405 -0
- package/dist/map-SYZMPHLL.js.map +1 -0
- package/dist/mcp-6FQBVJ6F.js +477 -0
- package/dist/mcp-6FQBVJ6F.js.map +1 -0
- package/dist/media-sources-ZXHEEP6T.js +32 -0
- package/dist/members-UDY4OOJW.js +45 -0
- package/dist/members-UDY4OOJW.js.map +1 -0
- package/dist/models-3Z6MDHQW.js +155 -0
- package/dist/normalize-DAKHYS3V.js +142 -0
- package/dist/normalize-DAKHYS3V.js.map +1 -0
- package/dist/options-QL3ULED5.js +122 -0
- package/dist/options-QL3ULED5.js.map +1 -0
- package/dist/performance-UF5VTY2U.js +25 -0
- package/dist/pixels-TZPF746S.js +60 -0
- package/dist/plan-FT632COT.js +51 -0
- package/dist/plan-FT632COT.js.map +1 -0
- package/dist/promoted-tweet-writes-7HGESJ46.js +181 -0
- package/dist/promoted-tweet-writes-7HGESJ46.js.map +1 -0
- package/dist/promoted-tweets-LZKS5JIF.js +119 -0
- package/dist/publish-NPD3SMZL.js +323 -0
- package/dist/publish-NPD3SMZL.js.map +1 -0
- package/dist/questionnaire-JNGYJTAY.js +37 -0
- package/dist/questionnaire-JNGYJTAY.js.map +1 -0
- package/dist/reddit-NU2N3LZD.js +27 -0
- package/dist/refresh-EBVJ2C6L.js +95 -0
- package/dist/refresh-EBVJ2C6L.js.map +1 -0
- package/dist/release-V43YB2PY.js +61 -0
- package/dist/release-V43YB2PY.js.map +1 -0
- package/dist/remove-QPSWLFI4.js +51 -0
- package/dist/remove-QPSWLFI4.js.map +1 -0
- package/dist/reopen-GQ66NMWF.js +64 -0
- package/dist/reopen-GQ66NMWF.js.map +1 -0
- package/dist/rerun-PZK275DY.js +86 -0
- package/dist/rerun-PZK275DY.js.map +1 -0
- package/dist/research-FMM6AWZC.js +62 -0
- package/dist/research-GEOCUBXB.js +263 -0
- package/dist/research-GEOCUBXB.js.map +1 -0
- package/dist/reset-REXJ6AUK.js +55 -0
- package/dist/reset-REXJ6AUK.js.map +1 -0
- package/dist/reset-Y72IVESB.js +55 -0
- package/dist/reset-Y72IVESB.js.map +1 -0
- package/dist/resolve-OGX7C4TV.js +122 -0
- package/dist/resolve-OGX7C4TV.js.map +1 -0
- package/dist/retry-CD6JAQ3F.js +61 -0
- package/dist/retry-CD6JAQ3F.js.map +1 -0
- package/dist/retry-TCUBBFR5.js +63 -0
- package/dist/retry-TCUBBFR5.js.map +1 -0
- package/dist/run-A5ZDXTOI.js +66 -0
- package/dist/run-A5ZDXTOI.js.map +1 -0
- package/dist/run-EUO34T2J.js +61 -0
- package/dist/scaffold-ad-SW2HEWM3.js +1550 -0
- package/dist/scaffold-ad-SW2HEWM3.js.map +1 -0
- package/dist/scaffold-static-ad-ECTJL54Y.js +967 -0
- package/dist/scaffold-static-ad-ECTJL54Y.js.map +1 -0
- package/dist/scaffold-video-EI7U7RBK.js +874 -0
- package/dist/scaffold-video-EI7U7RBK.js.map +1 -0
- package/dist/schedule-S5YZJZ5U.js +62 -0
- package/dist/schedule-S5YZJZ5U.js.map +1 -0
- package/dist/scheduled-agents-N4LJRM4C.js +49 -0
- package/dist/schema-R7JWWOF4.js +133 -0
- package/dist/schema-R7JWWOF4.js.map +1 -0
- package/dist/search-KHMQH3AT.js +175 -0
- package/dist/search-KHMQH3AT.js.map +1 -0
- package/dist/select-O2FN2JEQ.js +95 -0
- package/dist/select-O2FN2JEQ.js.map +1 -0
- package/dist/sends-BQZM5PLS.js +310 -0
- package/dist/sends-BQZM5PLS.js.map +1 -0
- package/dist/set-prompt-2HASHGWC.js +187 -0
- package/dist/set-prompt-2HASHGWC.js.map +1 -0
- package/dist/setup-links-GYSE56GX.js +142 -0
- package/dist/setup-links-GYSE56GX.js.map +1 -0
- package/dist/site-4SKM7RKG.js +178 -0
- package/dist/site-4SKM7RKG.js.map +1 -0
- package/dist/sources-FQ2UZTHL.js +30 -0
- package/dist/sources-R2NKNC6J.js +422 -0
- package/dist/sources-R2NKNC6J.js.map +1 -0
- package/dist/stale-W756ACKC.js +64 -0
- package/dist/stale-W756ACKC.js.map +1 -0
- package/dist/status-SE2VZJJB.js +63 -0
- package/dist/status-SE2VZJJB.js.map +1 -0
- package/dist/stock-KXJ26BY4.js +179 -0
- package/dist/studio-SYKOSNDB.js +49 -0
- package/dist/sync-LJGSODK3.js +55 -0
- package/dist/sync-LJGSODK3.js.map +1 -0
- package/dist/sync-definition-QR2N233R.js +54 -0
- package/dist/tags-4BAVFH4S.js +225 -0
- package/dist/tags-4BAVFH4S.js.map +1 -0
- package/dist/tags-5SBMRC2A.js +21 -0
- package/dist/tags-5SBMRC2A.js.map +1 -0
- package/dist/tags-PYWFSBTR.js +26 -0
- package/dist/tags-QQU3OKMZ.js +21 -0
- package/dist/tags-QQU3OKMZ.js.map +1 -0
- package/dist/tags-YYLNF3PK.js +21 -0
- package/dist/tags-YYLNF3PK.js.map +1 -0
- package/dist/targeting-criteria-RJFLFICN.js +113 -0
- package/dist/targets-S2MT2PNB.js +103 -0
- package/dist/targets-S2MT2PNB.js.map +1 -0
- package/dist/templates-ZE5TOGRT.js +179 -0
- package/dist/templates-ZE5TOGRT.js.map +1 -0
- package/dist/testimonials-DII5DYLR.js +32 -0
- package/dist/top-companies-PGIAEHDF.js +109 -0
- package/dist/top-companies-PGIAEHDF.js.map +1 -0
- package/dist/translate-GXTS633J.js +599 -0
- package/dist/translate-GXTS633J.js.map +1 -0
- package/dist/triggers-2PTONXRU.js +142 -0
- package/dist/triggers-2PTONXRU.js.map +1 -0
- package/dist/unlink-XRMYJ6DB.js +68 -0
- package/dist/unlink-XRMYJ6DB.js.map +1 -0
- package/dist/unstage-FY7A3YFF.js +85 -0
- package/dist/unstage-FY7A3YFF.js.map +1 -0
- package/dist/unstage-RM2RLXKD.js +96 -0
- package/dist/unstage-RM2RLXKD.js.map +1 -0
- package/dist/update-E5SRBXQR.js +143 -0
- package/dist/update-E5SRBXQR.js.map +1 -0
- package/dist/update-PJ67D2OG.js +156 -0
- package/dist/update-PJ67D2OG.js.map +1 -0
- package/dist/update-S4562V3O.js +64 -0
- package/dist/update-S4562V3O.js.map +1 -0
- package/dist/update-V6YVEUI2.js +99 -0
- package/dist/update-V6YVEUI2.js.map +1 -0
- package/dist/upload-R6CQVLKF.js +127 -0
- package/dist/upload-R6CQVLKF.js.map +1 -0
- package/dist/url-options-JOKU46F2.js +128 -0
- package/dist/url-options-JOKU46F2.js.map +1 -0
- package/dist/url-params-7U2XMOWF.js +99 -0
- package/dist/url-params-7U2XMOWF.js.map +1 -0
- package/dist/validate-7YPOUKPB.js +90 -0
- package/dist/validate-7YPOUKPB.js.map +1 -0
- package/dist/videos-LICG6ACJ.js +39 -0
- package/dist/viewer-check-L4B4LIAX.js +69 -0
- package/dist/web-BA2PGTWU.js +141 -0
- package/dist/web-BA2PGTWU.js.map +1 -0
- package/dist/winning-ads-C6S2C5VP.js +62 -0
- package/dist/write-commands-7SJ3BOW5.js +1016 -0
- package/dist/write-commands-7SJ3BOW5.js.map +1 -0
- package/dist/x-CZHRC6U7.js +47 -0
- package/package.json +1 -1
- package/dist/account-AL2ZDSR7.js +0 -79
- package/dist/account-AL2ZDSR7.js.map +0 -1
- package/dist/account-F6MHQ64I.js +0 -80
- package/dist/account-writes-ISE4U2FQ.js +0 -66
- package/dist/accounts-HAFCLSR5.js +0 -77
- package/dist/accounts-HAFCLSR5.js.map +0 -1
- package/dist/accounts-O5MFO3QQ.js +0 -611
- package/dist/accounts-O5MFO3QQ.js.map +0 -1
- package/dist/actions-P35MEMGN.js +0 -55
- package/dist/ad-group-writes-UU5NNKSO.js +0 -170
- package/dist/ad-groups-CGFXZNIA.js +0 -68
- package/dist/ad-writes-NALDYWOR.js +0 -174
- package/dist/add-5GAN6CVO.js +0 -280
- package/dist/add-5GAN6CVO.js.map +0 -1
- package/dist/add-6DTC6X5G.js +0 -104
- package/dist/add-6DTC6X5G.js.map +0 -1
- package/dist/ads-C47NA2HH.js +0 -40
- package/dist/ads-PV7GZXPR.js +0 -77
- package/dist/advertisers-AE75CGVE.js +0 -120
- package/dist/advertisers-AE75CGVE.js.map +0 -1
- package/dist/analytics-FKCXIMPO.js +0 -1958
- package/dist/analytics-FKCXIMPO.js.map +0 -1
- package/dist/analytics-FPWQQGRM.js +0 -433
- package/dist/analytics-FPWQQGRM.js.map +0 -1
- package/dist/animate-FWWHSYPL.js +0 -480
- package/dist/assign-ABN2AQ4J.js +0 -77
- package/dist/assign-ABN2AQ4J.js.map +0 -1
- package/dist/audience-size-GNBJY35X.js +0 -94
- package/dist/audience-size-GNBJY35X.js.map +0 -1
- package/dist/audiences-VEKGLWBG.js +0 -268
- package/dist/audit-3VS63TBW.js +0 -151
- package/dist/audit-3VS63TBW.js.map +0 -1
- package/dist/autocomplete-VS3XG3B7.js +0 -111
- package/dist/autocomplete-VS3XG3B7.js.map +0 -1
- package/dist/avatars-EKCKHCC3.js +0 -38
- package/dist/bid-pricing-Q72B65AY.js +0 -99
- package/dist/bid-pricing-Q72B65AY.js.map +0 -1
- package/dist/brand-C6PFGGQN.js +0 -22
- package/dist/brief-UO52ZHFI.js +0 -477
- package/dist/brief-UO52ZHFI.js.map +0 -1
- package/dist/campaign-groups-KFFYQPU3.js +0 -95
- package/dist/campaign-groups-KFFYQPU3.js.map +0 -1
- package/dist/campaign-writes-FHOS5XZY.js +0 -165
- package/dist/campaign-writes-FHOS5XZY.js.map +0 -1
- package/dist/campaign-writes-SX52CJYW.js +0 -170
- package/dist/campaigns-2NHWBF5C.js +0 -109
- package/dist/campaigns-2NHWBF5C.js.map +0 -1
- package/dist/campaigns-KZYZTXDS.js +0 -107
- package/dist/campaigns-X3DPCCSN.js +0 -76
- package/dist/canvas-DPCBGW7K.js +0 -46
- package/dist/capabilities-DJFTRJKS.js +0 -144
- package/dist/capabilities-DJFTRJKS.js.map +0 -1
- package/dist/catalog-ME44ZRZF.js +0 -65
- package/dist/catalogs-G3YEVG6S.js +0 -128
- package/dist/chatgpt-QNUN63YS.js +0 -47
- package/dist/chats-D2CSDX5Q.js +0 -262
- package/dist/chats-D2CSDX5Q.js.map +0 -1
- package/dist/chunk-2QHODRR6.js +0 -19
- package/dist/chunk-35XWJEWH.js +0 -274
- package/dist/chunk-3G3ZDLMI.js +0 -197
- package/dist/chunk-3HJLHTWP.js +0 -163
- package/dist/chunk-3HJLHTWP.js.map +0 -1
- package/dist/chunk-3IBYKLXR.js +0 -337
- package/dist/chunk-4AUMTNVB.js +0 -346
- package/dist/chunk-4BQXAE7Z.js +0 -494
- package/dist/chunk-54UVGFX3.js +0 -440
- package/dist/chunk-5Y5UAJWD.js +0 -111
- package/dist/chunk-5ZDLTE5T.js +0 -159
- package/dist/chunk-647RO73Q.js +0 -92
- package/dist/chunk-7YCRFMXF.js +0 -433
- package/dist/chunk-7ZHMGXE2.js +0 -819
- package/dist/chunk-A4LOJ2VD.js +0 -23
- package/dist/chunk-AEOSAVVL.js +0 -310
- package/dist/chunk-CHSNHVYF.js +0 -3182
- package/dist/chunk-CHSNHVYF.js.map +0 -1
- package/dist/chunk-CSYSX4D2.js +0 -175
- package/dist/chunk-DWHIOO7E.js +0 -390
- package/dist/chunk-DWHIOO7E.js.map +0 -1
- package/dist/chunk-EDLZGTGN.js +0 -216
- package/dist/chunk-EDLZGTGN.js.map +0 -1
- package/dist/chunk-FD27ZDVP.js +0 -304
- package/dist/chunk-GBMP4F45.js +0 -3147
- package/dist/chunk-GLCPTMPG.js +0 -5189
- package/dist/chunk-HBTF25YG.js +0 -592
- package/dist/chunk-HQSCJYZO.js +0 -26
- package/dist/chunk-IBURXTL4.js +0 -509
- package/dist/chunk-IR6D7K4H.js +0 -382
- package/dist/chunk-J5IY3GVE.js +0 -96
- package/dist/chunk-JQJDXPCO.js +0 -103
- package/dist/chunk-K66OLA6Y.js +0 -4383
- package/dist/chunk-K7FZXIOZ.js +0 -60
- package/dist/chunk-KFE3S63W.js +0 -1441
- package/dist/chunk-KHRXPQID.js +0 -169
- package/dist/chunk-KLBTXETO.js +0 -23992
- package/dist/chunk-KLBTXETO.js.map +0 -1
- package/dist/chunk-KQTYTCKQ.js +0 -98
- package/dist/chunk-LYBXCXJB.js +0 -160
- package/dist/chunk-LZ73CZGP.js +0 -188
- package/dist/chunk-MELOSESI.js +0 -20
- package/dist/chunk-MXYBTMKB.js +0 -363
- package/dist/chunk-NPY4QUMQ.js +0 -622
- package/dist/chunk-OZRUJVIQ.js +0 -206
- package/dist/chunk-QRP3PXWN.js +0 -455
- package/dist/chunk-RPUSTYHL.js +0 -170
- package/dist/chunk-RPUSTYHL.js.map +0 -1
- package/dist/chunk-S77PZVYM.js +0 -297
- package/dist/chunk-SHL7LOC3.js +0 -51
- package/dist/chunk-SSJK7FEV.js +0 -2886
- package/dist/chunk-SSJK7FEV.js.map +0 -1
- package/dist/chunk-TT5R35PJ.js +0 -207
- package/dist/chunk-ULJ5RFOV.js +0 -76
- package/dist/chunk-VB6WJJR3.js +0 -1830
- package/dist/chunk-W3ZHJJVT.js +0 -139
- package/dist/chunk-XF4JUKVF.js +0 -6151
- package/dist/chunk-XF4JUKVF.js.map +0 -1
- package/dist/chunk-Y6O7EWYY.js +0 -57
- package/dist/chunk-YRQYA2LR.js +0 -217
- package/dist/chunk-YRQYA2LR.js.map +0 -1
- package/dist/chunk-Z2EOC6PL.js +0 -6667
- package/dist/chunk-ZEYEWPK6.js +0 -1079
- package/dist/claim-FZ5OQLMU.js +0 -197
- package/dist/claim-FZ5OQLMU.js.map +0 -1
- package/dist/companies-DNI634RC.js +0 -195
- package/dist/companies-DNI634RC.js.map +0 -1
- package/dist/complete-2FZMGJV5.js +0 -81
- package/dist/complete-2FZMGJV5.js.map +0 -1
- package/dist/connect-QCOGEPP4.js +0 -36
- package/dist/conversation-6IOGV7B7.js +0 -93
- package/dist/conversation-6IOGV7B7.js.map +0 -1
- package/dist/conversion-report-N4HANYOB.js +0 -125
- package/dist/conversion-writes-LW4HQKK5.js +0 -120
- package/dist/conversions-4SRZPBBX.js +0 -135
- package/dist/conversions-4SRZPBBX.js.map +0 -1
- package/dist/conversions-TS723AZV.js +0 -76
- package/dist/create-BJNMO6HT.js +0 -207
- package/dist/create-BJNMO6HT.js.map +0 -1
- package/dist/create-FX4OJ2XF.js +0 -59
- package/dist/create-FX4OJ2XF.js.map +0 -1
- package/dist/create-RM7HV77Y.js +0 -130
- package/dist/create-RM7HV77Y.js.map +0 -1
- package/dist/create-VXM34ZWH.js +0 -235
- package/dist/create-VXM34ZWH.js.map +0 -1
- package/dist/creatives-JSWBFQ5R.js +0 -182
- package/dist/creatives-JSWBFQ5R.js.map +0 -1
- package/dist/creatives-SJTJU6VT.js +0 -51
- package/dist/credentials-VOZTILFO.js +0 -1055
- package/dist/credentials-VOZTILFO.js.map +0 -1
- package/dist/critique-65W63MFZ.js +0 -213
- package/dist/critique-65W63MFZ.js.map +0 -1
- package/dist/critique-ZS4ON3SU.js +0 -1449
- package/dist/critique-ZS4ON3SU.js.map +0 -1
- package/dist/crm-52ROSWH5.js +0 -224
- package/dist/crm-52ROSWH5.js.map +0 -1
- package/dist/crm-R5IXIFIV.js +0 -318
- package/dist/crm-R5IXIFIV.js.map +0 -1
- package/dist/customers-4AWBFDUF.js +0 -56
- package/dist/delete-AIGE4Y4H.js +0 -63
- package/dist/delete-AIGE4Y4H.js.map +0 -1
- package/dist/delete-HGHXY24R.js +0 -54
- package/dist/delete-HGHXY24R.js.map +0 -1
- package/dist/delete-M2GDLPYN.js +0 -66
- package/dist/delete-M2GDLPYN.js.map +0 -1
- package/dist/demographics-NTWB2IMG.js +0 -138
- package/dist/demographics-NTWB2IMG.js.map +0 -1
- package/dist/discard-2WWQG6OU.js +0 -66
- package/dist/discard-2WWQG6OU.js.map +0 -1
- package/dist/domain-Y2LT6JLT.js +0 -98
- package/dist/domain-Y2LT6JLT.js.map +0 -1
- package/dist/draft-EJXNNJ3Y.js +0 -306
- package/dist/draft-EJXNNJ3Y.js.map +0 -1
- package/dist/draft-FJ7WHIXW.js +0 -328
- package/dist/draft-FJ7WHIXW.js.map +0 -1
- package/dist/draft-SLHAKJ2A.js +0 -217
- package/dist/draft-SLHAKJ2A.js.map +0 -1
- package/dist/draft-THPZFASM.js +0 -281
- package/dist/facets-U7AQC4H6.js +0 -114
- package/dist/facets-U7AQC4H6.js.map +0 -1
- package/dist/feedback-XNJQ63DS.js +0 -66
- package/dist/feedback-record-FDLMWMDG.js +0 -175
- package/dist/feedback-record-FDLMWMDG.js.map +0 -1
- package/dist/fetch-W7NULDEO.js +0 -176
- package/dist/fetch-W7NULDEO.js.map +0 -1
- package/dist/find-OTDIX6V4.js +0 -134
- package/dist/fit-7237F5EB.js +0 -45
- package/dist/flows-KABCBS3S.js +0 -244
- package/dist/flows-KABCBS3S.js.map +0 -1
- package/dist/fonts-EMMX3KII.js +0 -34
- package/dist/forecast-GNODEIIC.js +0 -104
- package/dist/forecast-GNODEIIC.js.map +0 -1
- package/dist/funnel-AAX27NH4.js +0 -837
- package/dist/funnel-AAX27NH4.js.map +0 -1
- package/dist/ga4-UDQ2HA2J.js +0 -55
- package/dist/generate-MMBYB44G.js +0 -262
- package/dist/get-QEYJRLV3.js +0 -54
- package/dist/get-QEYJRLV3.js.map +0 -1
- package/dist/get-RTVUZM6E.js +0 -78
- package/dist/get-RTVUZM6E.js.map +0 -1
- package/dist/google-KTO3PLEU.js +0 -136
- package/dist/google-M7KEXVK5.js +0 -1872
- package/dist/google-ads-OK6IG3UV.js +0 -195
- package/dist/google-ads-OK6IG3UV.js.map +0 -1
- package/dist/gsc-P3QYGDV2.js +0 -30
- package/dist/history-DBIEYQHY.js +0 -67
- package/dist/history-PQUJKK26.js +0 -133
- package/dist/history-PQUJKK26.js.map +0 -1
- package/dist/hubspot-Y77VLY6Y.js +0 -779
- package/dist/hubspot-Y77VLY6Y.js.map +0 -1
- package/dist/icon-I43F77FV.js +0 -137
- package/dist/ideas-MIDU7YOA.js +0 -32
- package/dist/images-S254MS6O.js +0 -90
- package/dist/ingest-J4I3HKM3.js +0 -107
- package/dist/ingest-J4I3HKM3.js.map +0 -1
- package/dist/ingest-YV2NLDBE.js +0 -23
- package/dist/insights-ZIU6FJMS.js +0 -122
- package/dist/inspect-Q5NHBBHX.js +0 -189
- package/dist/inspect-Q5NHBBHX.js.map +0 -1
- package/dist/inspiration-P265QJ2H.js +0 -53
- package/dist/keyword-metrics-PDY4ZXSP.js +0 -197
- package/dist/keyword-metrics-PDY4ZXSP.js.map +0 -1
- package/dist/keywords-for-site-GALSCV77.js +0 -128
- package/dist/keywords-for-site-GALSCV77.js.map +0 -1
- package/dist/landing-CJYGWCK4.js +0 -28
- package/dist/leads-PHKG6CP3.js +0 -90
- package/dist/leads-PHKG6CP3.js.map +0 -1
- package/dist/learn-3VO6DXUX.js +0 -203
- package/dist/learn-3VO6DXUX.js.map +0 -1
- package/dist/line-item-writes-E6MZPIZZ.js +0 -208
- package/dist/line-item-writes-E6MZPIZZ.js.map +0 -1
- package/dist/line-items-7ZGIKEF2.js +0 -103
- package/dist/link-QYAW6A2W.js +0 -64
- package/dist/link-QYAW6A2W.js.map +0 -1
- package/dist/linkedin-FFSDSGGS.js +0 -1008
- package/dist/linkedin-FFSDSGGS.js.map +0 -1
- package/dist/list-5IC6KIKO.js +0 -63
- package/dist/list-5IC6KIKO.js.map +0 -1
- package/dist/list-NVQC5SNY.js +0 -151
- package/dist/list-NVQC5SNY.js.map +0 -1
- package/dist/list-SAV3LQHY.js +0 -303
- package/dist/list-SAV3LQHY.js.map +0 -1
- package/dist/locations-74TPQWAT.js +0 -67
- package/dist/log-XZPVOALD.js +0 -92
- package/dist/log-XZPVOALD.js.map +0 -1
- package/dist/logo-2IP663QO.js +0 -18
- package/dist/lookup-XK45W2SH.js +0 -22
- package/dist/make-LCNP76OF.js +0 -593
- package/dist/make-LCNP76OF.js.map +0 -1
- package/dist/map-4J5WIWIG.js +0 -404
- package/dist/map-4J5WIWIG.js.map +0 -1
- package/dist/mcp-XXD7ZQCP.js +0 -476
- package/dist/mcp-XXD7ZQCP.js.map +0 -1
- package/dist/media-sources-O6ZRUA3N.js +0 -32
- package/dist/members-D5ZYLS4Y.js +0 -44
- package/dist/members-D5ZYLS4Y.js.map +0 -1
- package/dist/models-7U3GRYHF.js +0 -155
- package/dist/normalize-PCNC6E2N.js +0 -138
- package/dist/normalize-PCNC6E2N.js.map +0 -1
- package/dist/options-MQ65VEVD.js +0 -121
- package/dist/options-MQ65VEVD.js.map +0 -1
- package/dist/performance-6QW2KEEQ.js +0 -24
- package/dist/pixels-45A55MOP.js +0 -60
- package/dist/promoted-tweet-writes-JPLHY3GM.js +0 -180
- package/dist/promoted-tweet-writes-JPLHY3GM.js.map +0 -1
- package/dist/promoted-tweets-SURKMHFI.js +0 -119
- package/dist/publish-HCQ6MXLB.js +0 -322
- package/dist/publish-HCQ6MXLB.js.map +0 -1
- package/dist/reddit-GIP3ADMS.js +0 -26
- package/dist/refresh-UXQSLCR3.js +0 -94
- package/dist/refresh-UXQSLCR3.js.map +0 -1
- package/dist/release-5KVLXNP6.js +0 -60
- package/dist/release-5KVLXNP6.js.map +0 -1
- package/dist/remove-6FIVKCJI.js +0 -50
- package/dist/remove-6FIVKCJI.js.map +0 -1
- package/dist/reopen-YM5LNOLB.js +0 -63
- package/dist/reopen-YM5LNOLB.js.map +0 -1
- package/dist/rerun-CET74VPF.js +0 -85
- package/dist/rerun-CET74VPF.js.map +0 -1
- package/dist/research-EY7C7JJY.js +0 -62
- package/dist/research-YOGE7GT2.js +0 -262
- package/dist/research-YOGE7GT2.js.map +0 -1
- package/dist/reset-C4UHQ3EU.js +0 -54
- package/dist/reset-C4UHQ3EU.js.map +0 -1
- package/dist/reset-OLVB6AE6.js +0 -54
- package/dist/reset-OLVB6AE6.js.map +0 -1
- package/dist/resolve-XYH2GDAE.js +0 -121
- package/dist/resolve-XYH2GDAE.js.map +0 -1
- package/dist/retry-726GKI6V.js +0 -62
- package/dist/retry-726GKI6V.js.map +0 -1
- package/dist/retry-7EELDEQP.js +0 -60
- package/dist/retry-7EELDEQP.js.map +0 -1
- package/dist/run-P4KR2MXC.js +0 -65
- package/dist/run-P4KR2MXC.js.map +0 -1
- package/dist/run-XQ7EM3JT.js +0 -60
- package/dist/scaffold-ad-U2KSHKBC.js +0 -1549
- package/dist/scaffold-ad-U2KSHKBC.js.map +0 -1
- package/dist/scaffold-static-ad-63LQKUSO.js +0 -966
- package/dist/scaffold-static-ad-63LQKUSO.js.map +0 -1
- package/dist/scaffold-video-MUS6LHJQ.js +0 -873
- package/dist/scaffold-video-MUS6LHJQ.js.map +0 -1
- package/dist/schedule-RDK4GEPI.js +0 -61
- package/dist/schedule-RDK4GEPI.js.map +0 -1
- package/dist/scheduled-agents-6U44QE76.js +0 -49
- package/dist/schema-CHJDC7GQ.js +0 -129
- package/dist/schema-CHJDC7GQ.js.map +0 -1
- package/dist/search-PMJRU3C4.js +0 -174
- package/dist/search-PMJRU3C4.js.map +0 -1
- package/dist/select-4Z7BW5RH.js +0 -94
- package/dist/select-4Z7BW5RH.js.map +0 -1
- package/dist/sends-WGJVQUMF.js +0 -309
- package/dist/sends-WGJVQUMF.js.map +0 -1
- package/dist/set-prompt-OB2V3XJP.js +0 -186
- package/dist/set-prompt-OB2V3XJP.js.map +0 -1
- package/dist/setup-links-REPREN3C.js +0 -141
- package/dist/setup-links-REPREN3C.js.map +0 -1
- package/dist/site-WFSWIA3S.js +0 -177
- package/dist/site-WFSWIA3S.js.map +0 -1
- package/dist/sources-AMI2AWKZ.js +0 -421
- package/dist/sources-AMI2AWKZ.js.map +0 -1
- package/dist/sources-YBQ6KPFM.js +0 -30
- package/dist/stale-DAYXOY3Z.js +0 -63
- package/dist/stale-DAYXOY3Z.js.map +0 -1
- package/dist/status-7F2KHFGA.js +0 -62
- package/dist/status-7F2KHFGA.js.map +0 -1
- package/dist/stock-2YCDN3N6.js +0 -179
- package/dist/studio-C5K3YX3P.js +0 -49
- package/dist/sync-GWTLKZTU.js +0 -54
- package/dist/sync-GWTLKZTU.js.map +0 -1
- package/dist/sync-definition-ILS2B2BJ.js +0 -53
- package/dist/tags-3WPW6PTV.js +0 -26
- package/dist/tags-6342FQEB.js +0 -20
- package/dist/tags-6342FQEB.js.map +0 -1
- package/dist/tags-ABHSX6M5.js +0 -20
- package/dist/tags-ABHSX6M5.js.map +0 -1
- package/dist/tags-FJIBBBRG.js +0 -20
- package/dist/tags-FJIBBBRG.js.map +0 -1
- package/dist/tags-KFYLZLB3.js +0 -224
- package/dist/tags-KFYLZLB3.js.map +0 -1
- package/dist/targeting-criteria-NR47AF5C.js +0 -113
- package/dist/targets-L56KOVQE.js +0 -102
- package/dist/targets-L56KOVQE.js.map +0 -1
- package/dist/templates-B6XGDYUF.js +0 -178
- package/dist/templates-B6XGDYUF.js.map +0 -1
- package/dist/testimonials-CVC4YIXO.js +0 -32
- package/dist/top-companies-45X3DT7Z.js +0 -108
- package/dist/top-companies-45X3DT7Z.js.map +0 -1
- package/dist/translate-TA5KQIU7.js +0 -598
- package/dist/translate-TA5KQIU7.js.map +0 -1
- package/dist/triggers-22EMIVFD.js +0 -141
- package/dist/triggers-22EMIVFD.js.map +0 -1
- package/dist/unlink-65KUN6ID.js +0 -67
- package/dist/unlink-65KUN6ID.js.map +0 -1
- package/dist/unstage-2E3I5SWF.js +0 -84
- package/dist/unstage-2E3I5SWF.js.map +0 -1
- package/dist/unstage-4ZEULXEQ.js +0 -95
- package/dist/unstage-4ZEULXEQ.js.map +0 -1
- package/dist/update-2S7CSEAW.js +0 -63
- package/dist/update-2S7CSEAW.js.map +0 -1
- package/dist/update-7NCOTAQZ.js +0 -98
- package/dist/update-7NCOTAQZ.js.map +0 -1
- package/dist/update-D6DJC6T7.js +0 -155
- package/dist/update-D6DJC6T7.js.map +0 -1
- package/dist/update-KREBPGBH.js +0 -142
- package/dist/update-KREBPGBH.js.map +0 -1
- package/dist/upload-O6NHRPS7.js +0 -126
- package/dist/upload-O6NHRPS7.js.map +0 -1
- package/dist/url-options-GGXAL3J4.js +0 -127
- package/dist/url-options-GGXAL3J4.js.map +0 -1
- package/dist/url-params-3EFGVTZZ.js +0 -98
- package/dist/url-params-3EFGVTZZ.js.map +0 -1
- package/dist/validate-LDBAAXQO.js +0 -89
- package/dist/validate-LDBAAXQO.js.map +0 -1
- package/dist/videos-YSXYGTBM.js +0 -39
- package/dist/viewer-check-45T2HLAH.js +0 -69
- package/dist/web-IGIGVEKS.js +0 -140
- package/dist/web-IGIGVEKS.js.map +0 -1
- package/dist/winning-ads-ASH5DSV3.js +0 -62
- package/dist/write-commands-5C7FUOVN.js +0 -1015
- package/dist/write-commands-5C7FUOVN.js.map +0 -1
- package/dist/x-BFSKFCZD.js +0 -47
- /package/dist/{account-F6MHQ64I.js.map → account-4H7QVBRK.js.map} +0 -0
- /package/dist/{account-writes-ISE4U2FQ.js.map → account-writes-AK42HGRM.js.map} +0 -0
- /package/dist/{actions-P35MEMGN.js.map → actions-6TQMSVWD.js.map} +0 -0
- /package/dist/{ad-group-writes-UU5NNKSO.js.map → ad-group-writes-QQS4223F.js.map} +0 -0
- /package/dist/{ad-groups-CGFXZNIA.js.map → ad-groups-WGPDPUI2.js.map} +0 -0
- /package/dist/{ad-writes-NALDYWOR.js.map → ad-writes-XE2IE4DS.js.map} +0 -0
- /package/dist/{ads-C47NA2HH.js.map → ads-AGYCVD62.js.map} +0 -0
- /package/dist/{ads-PV7GZXPR.js.map → ads-BCOSQALY.js.map} +0 -0
- /package/dist/{animate-FWWHSYPL.js.map → animate-AIZ3GS4J.js.map} +0 -0
- /package/dist/{audiences-VEKGLWBG.js.map → audiences-TGD5US2M.js.map} +0 -0
- /package/dist/{avatars-EKCKHCC3.js.map → avatars-467OSBD6.js.map} +0 -0
- /package/dist/{brand-C6PFGGQN.js.map → brand-YRTEPGBK.js.map} +0 -0
- /package/dist/{campaign-writes-SX52CJYW.js.map → campaign-writes-SXLZFYF6.js.map} +0 -0
- /package/dist/{campaigns-KZYZTXDS.js.map → campaigns-OYMXDGWX.js.map} +0 -0
- /package/dist/{campaigns-X3DPCCSN.js.map → campaigns-YS3OGQXO.js.map} +0 -0
- /package/dist/{canvas-DPCBGW7K.js.map → canvas-YQFG52IG.js.map} +0 -0
- /package/dist/{catalog-ME44ZRZF.js.map → catalog-XLXIM7IW.js.map} +0 -0
- /package/dist/{catalogs-G3YEVG6S.js.map → catalogs-BRXEDE56.js.map} +0 -0
- /package/dist/{chatgpt-QNUN63YS.js.map → chatgpt-7W75X3ER.js.map} +0 -0
- /package/dist/{chunk-7YCRFMXF.js.map → chunk-24EB7EDR.js.map} +0 -0
- /package/dist/{chunk-5ZDLTE5T.js.map → chunk-2AOE2MZQ.js.map} +0 -0
- /package/dist/{chunk-IBURXTL4.js.map → chunk-2VPBIT65.js.map} +0 -0
- /package/dist/{chunk-NPY4QUMQ.js.map → chunk-54C6YDGJ.js.map} +0 -0
- /package/dist/{chunk-LZ73CZGP.js.map → chunk-5WCSKQ7Z.js.map} +0 -0
- /package/dist/{chunk-3G3ZDLMI.js.map → chunk-5ZNTADVR.js.map} +0 -0
- /package/dist/{chunk-AEOSAVVL.js.map → chunk-6F7DVPOS.js.map} +0 -0
- /package/dist/{chunk-FD27ZDVP.js.map → chunk-6NY2GPR4.js.map} +0 -0
- /package/dist/{chunk-TT5R35PJ.js.map → chunk-6Y7ZBENQ.js.map} +0 -0
- /package/dist/{chunk-5Y5UAJWD.js.map → chunk-7CTMH5AK.js.map} +0 -0
- /package/dist/{chunk-35XWJEWH.js.map → chunk-7J6EHOH6.js.map} +0 -0
- /package/dist/{chunk-Z2EOC6PL.js.map → chunk-ASI4P6X2.js.map} +0 -0
- /package/dist/{chunk-2QHODRR6.js.map → chunk-C46GUI2S.js.map} +0 -0
- /package/dist/{chunk-K7FZXIOZ.js.map → chunk-CWYAELVG.js.map} +0 -0
- /package/dist/{chunk-MXYBTMKB.js.map → chunk-DCRPXOJJ.js.map} +0 -0
- /package/dist/{chunk-54UVGFX3.js.map → chunk-EAP4O4FE.js.map} +0 -0
- /package/dist/{chunk-K66OLA6Y.js.map → chunk-FPOGPFAG.js.map} +0 -0
- /package/dist/{chunk-JQJDXPCO.js.map → chunk-FUHN4MFY.js.map} +0 -0
- /package/dist/{chunk-S77PZVYM.js.map → chunk-FYGR3I2A.js.map} +0 -0
- /package/dist/{chunk-OZRUJVIQ.js.map → chunk-H3427GPU.js.map} +0 -0
- /package/dist/{chunk-KQTYTCKQ.js.map → chunk-HZUDRKGR.js.map} +0 -0
- /package/dist/{chunk-IR6D7K4H.js.map → chunk-I3ZR655O.js.map} +0 -0
- /package/dist/{chunk-J5IY3GVE.js.map → chunk-KMKEYI37.js.map} +0 -0
- /package/dist/{chunk-W3ZHJJVT.js.map → chunk-KS2QY6MK.js.map} +0 -0
- /package/dist/{chunk-GLCPTMPG.js.map → chunk-LYQJ4PZW.js.map} +0 -0
- /package/dist/{chunk-GBMP4F45.js.map → chunk-MACCF4JZ.js.map} +0 -0
- /package/dist/{chunk-CSYSX4D2.js.map → chunk-N4LAYIIN.js.map} +0 -0
- /package/dist/{chunk-4AUMTNVB.js.map → chunk-NA63BH7V.js.map} +0 -0
- /package/dist/{chunk-KFE3S63W.js.map → chunk-NCWCZY5P.js.map} +0 -0
- /package/dist/{chunk-4BQXAE7Z.js.map → chunk-NDEE6G2J.js.map} +0 -0
- /package/dist/{chunk-7ZHMGXE2.js.map → chunk-NJXNU2G6.js.map} +0 -0
- /package/dist/{chunk-HQSCJYZO.js.map → chunk-P5T7OZKV.js.map} +0 -0
- /package/dist/{chunk-VB6WJJR3.js.map → chunk-PZXCWSKV.js.map} +0 -0
- /package/dist/{chunk-MELOSESI.js.map → chunk-R25YLW6H.js.map} +0 -0
- /package/dist/{chunk-Y6O7EWYY.js.map → chunk-RL5CP7N6.js.map} +0 -0
- /package/dist/{chunk-HBTF25YG.js.map → chunk-RX2DKU3W.js.map} +0 -0
- /package/dist/{chunk-647RO73Q.js.map → chunk-ULG4QRTV.js.map} +0 -0
- /package/dist/{chunk-QRP3PXWN.js.map → chunk-VL43TNIP.js.map} +0 -0
- /package/dist/{chunk-SHL7LOC3.js.map → chunk-VLMBTPXU.js.map} +0 -0
- /package/dist/{chunk-LYBXCXJB.js.map → chunk-VNUNE5AB.js.map} +0 -0
- /package/dist/{chunk-KHRXPQID.js.map → chunk-VYQ3QJ3C.js.map} +0 -0
- /package/dist/{chunk-A4LOJ2VD.js.map → chunk-WGUQHAJY.js.map} +0 -0
- /package/dist/{chunk-ZEYEWPK6.js.map → chunk-WKQG6TER.js.map} +0 -0
- /package/dist/{chunk-ULJ5RFOV.js.map → chunk-XFGAUP5B.js.map} +0 -0
- /package/dist/{chunk-3IBYKLXR.js.map → chunk-ZDMTXQ2Q.js.map} +0 -0
- /package/dist/{connect-QCOGEPP4.js.map → connect-FCXNVTXG.js.map} +0 -0
- /package/dist/{conversion-report-N4HANYOB.js.map → conversion-report-XQBJ6LG4.js.map} +0 -0
- /package/dist/{conversion-writes-LW4HQKK5.js.map → conversion-writes-UBCVXP2E.js.map} +0 -0
- /package/dist/{conversions-TS723AZV.js.map → conversions-D236RTUK.js.map} +0 -0
- /package/dist/{creatives-SJTJU6VT.js.map → creatives-FXUQ5WSD.js.map} +0 -0
- /package/dist/{customers-4AWBFDUF.js.map → customers-XH2DMTFH.js.map} +0 -0
- /package/dist/{draft-THPZFASM.js.map → draft-MNFJ4G3C.js.map} +0 -0
- /package/dist/{feedback-XNJQ63DS.js.map → feedback-EIZKS4JU.js.map} +0 -0
- /package/dist/{find-OTDIX6V4.js.map → find-FRRHAPWX.js.map} +0 -0
- /package/dist/{fit-7237F5EB.js.map → fit-UOFYFJ4Q.js.map} +0 -0
- /package/dist/{fonts-EMMX3KII.js.map → fonts-MXR3ZKDX.js.map} +0 -0
- /package/dist/{ga4-UDQ2HA2J.js.map → ga4-DV2AXCSL.js.map} +0 -0
- /package/dist/{generate-MMBYB44G.js.map → generate-3XYYITU6.js.map} +0 -0
- /package/dist/{google-M7KEXVK5.js.map → google-6OGZX47I.js.map} +0 -0
- /package/dist/{google-KTO3PLEU.js.map → google-QYYYSSXI.js.map} +0 -0
- /package/dist/{gsc-P3QYGDV2.js.map → gsc-TAKOF7J5.js.map} +0 -0
- /package/dist/{history-DBIEYQHY.js.map → history-Q3QCT64S.js.map} +0 -0
- /package/dist/{icon-I43F77FV.js.map → icon-L4RSS6PZ.js.map} +0 -0
- /package/dist/{ideas-MIDU7YOA.js.map → ideas-NFOW3HKJ.js.map} +0 -0
- /package/dist/{images-S254MS6O.js.map → images-2EFFUNNV.js.map} +0 -0
- /package/dist/{ingest-YV2NLDBE.js.map → ingest-2EIKN4QC.js.map} +0 -0
- /package/dist/{insights-ZIU6FJMS.js.map → insights-LNAXV2CG.js.map} +0 -0
- /package/dist/{inspiration-P265QJ2H.js.map → inspiration-S3DU4CMQ.js.map} +0 -0
- /package/dist/{landing-CJYGWCK4.js.map → landing-2ZB46LXH.js.map} +0 -0
- /package/dist/{line-items-7ZGIKEF2.js.map → line-items-5NECXUZT.js.map} +0 -0
- /package/dist/{locations-74TPQWAT.js.map → locations-2NKBJKBT.js.map} +0 -0
- /package/dist/{logo-2IP663QO.js.map → logo-Q5D7PZY6.js.map} +0 -0
- /package/dist/{lookup-XK45W2SH.js.map → lookup-ETWY47F7.js.map} +0 -0
- /package/dist/{media-sources-O6ZRUA3N.js.map → media-sources-ZXHEEP6T.js.map} +0 -0
- /package/dist/{models-7U3GRYHF.js.map → models-3Z6MDHQW.js.map} +0 -0
- /package/dist/{performance-6QW2KEEQ.js.map → performance-UF5VTY2U.js.map} +0 -0
- /package/dist/{pixels-45A55MOP.js.map → pixels-TZPF746S.js.map} +0 -0
- /package/dist/{promoted-tweets-SURKMHFI.js.map → promoted-tweets-LZKS5JIF.js.map} +0 -0
- /package/dist/{reddit-GIP3ADMS.js.map → reddit-NU2N3LZD.js.map} +0 -0
- /package/dist/{research-EY7C7JJY.js.map → research-FMM6AWZC.js.map} +0 -0
- /package/dist/{run-XQ7EM3JT.js.map → run-EUO34T2J.js.map} +0 -0
- /package/dist/{scheduled-agents-6U44QE76.js.map → scheduled-agents-N4LJRM4C.js.map} +0 -0
- /package/dist/{sources-YBQ6KPFM.js.map → sources-FQ2UZTHL.js.map} +0 -0
- /package/dist/{stock-2YCDN3N6.js.map → stock-KXJ26BY4.js.map} +0 -0
- /package/dist/{studio-C5K3YX3P.js.map → studio-SYKOSNDB.js.map} +0 -0
- /package/dist/{sync-definition-ILS2B2BJ.js.map → sync-definition-QR2N233R.js.map} +0 -0
- /package/dist/{tags-3WPW6PTV.js.map → tags-PYWFSBTR.js.map} +0 -0
- /package/dist/{targeting-criteria-NR47AF5C.js.map → targeting-criteria-RJFLFICN.js.map} +0 -0
- /package/dist/{testimonials-CVC4YIXO.js.map → testimonials-DII5DYLR.js.map} +0 -0
- /package/dist/{videos-YSXYGTBM.js.map → videos-LICG6ACJ.js.map} +0 -0
- /package/dist/{viewer-check-45T2HLAH.js.map → viewer-check-L4B4LIAX.js.map} +0 -0
- /package/dist/{winning-ads-ASH5DSV3.js.map → winning-ads-C6S2C5VP.js.map} +0 -0
- /package/dist/{x-BFSKFCZD.js.map → x-CZHRC6U7.js.map} +0 -0
package/dist/chunk-RPUSTYHL.js
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CONVERSION_COUNT_MODES,
|
|
3
|
-
findNameCollision,
|
|
4
|
-
isLandingViewKey,
|
|
5
|
-
parseEventKey
|
|
6
|
-
} from "./chunk-SSJK7FEV.js";
|
|
7
|
-
|
|
8
|
-
// src/commands/analytics/conversionArgs.ts
|
|
9
|
-
var ConversionArgsError = class extends Error {
|
|
10
|
-
};
|
|
11
|
-
function allValues(flag, argv) {
|
|
12
|
-
const values = [];
|
|
13
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
14
|
-
const arg = argv[i];
|
|
15
|
-
if (arg === flag) {
|
|
16
|
-
const next = argv[i + 1];
|
|
17
|
-
if (next !== void 0 && !next.startsWith("--")) values.push(next);
|
|
18
|
-
continue;
|
|
19
|
-
}
|
|
20
|
-
if (arg.startsWith(`${flag}=`)) values.push(arg.slice(flag.length + 1));
|
|
21
|
-
}
|
|
22
|
-
return values.map((value) => value.trim()).filter((value) => value !== "");
|
|
23
|
-
}
|
|
24
|
-
function onlyOnce(value, flag, argv) {
|
|
25
|
-
if (value === void 0) return void 0;
|
|
26
|
-
const given = argv.filter((arg) => arg === flag || arg.startsWith(`${flag}=`)).length;
|
|
27
|
-
if (given > 1) {
|
|
28
|
-
throw new ConversionArgsError(
|
|
29
|
-
`${flag} was given ${given} times and only the last would have been used. It takes one value.`
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
const trimmed = String(value).trim();
|
|
33
|
-
return trimmed === "" ? void 0 : trimmed;
|
|
34
|
-
}
|
|
35
|
-
function repeatable(flag, cittyValue, argv) {
|
|
36
|
-
const fromArgv = allValues(flag, argv);
|
|
37
|
-
if (fromArgv.length > 0) return fromArgv;
|
|
38
|
-
if (cittyValue === void 0) return [];
|
|
39
|
-
const trimmed = String(cittyValue).trim();
|
|
40
|
-
return trimmed === "" ? [] : [trimmed];
|
|
41
|
-
}
|
|
42
|
-
function checkFlagShape(args) {
|
|
43
|
-
if (args.eventKeys.length > 0 && args.name === void 0 && args.countMode === void 0) {
|
|
44
|
-
throw new ConversionArgsError(
|
|
45
|
-
"--event needs --name: a conversion nobody named is a row labelled with a UUID. (--event with only --count-mode changes how an event already counted is counted.)"
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
if (args.name !== void 0 && args.eventKeys.length === 0 && args.renameTo === void 0) {
|
|
49
|
-
throw new ConversionArgsError("--name needs --event, naming which event to count.");
|
|
50
|
-
}
|
|
51
|
-
if (args.renameFrom !== void 0 && args.renameTo === void 0) {
|
|
52
|
-
throw new ConversionArgsError('--rename needs --to: `--rename "Lead form" --to "Lead"`.');
|
|
53
|
-
}
|
|
54
|
-
if (args.renameTo !== void 0 && args.renameFrom === void 0) {
|
|
55
|
-
throw new ConversionArgsError(
|
|
56
|
-
'--to needs --rename, naming which outcome to rename: `--rename "Lead form" --to "Lead"`.'
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
function checkEventKeys(eventKeys) {
|
|
61
|
-
for (const eventKey of eventKeys) {
|
|
62
|
-
if (parseEventKey(eventKey) === null) {
|
|
63
|
-
throw new ConversionArgsError(
|
|
64
|
-
`"${eventKey}" is not an event key. Run with --candidates (or --flow <slug> for one Form) and copy one; they look like form:<form>:<step>:<trigger>, submit:<form>, page:<name> or exit:<host>.`
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
if (isLandingViewKey(eventKey)) {
|
|
68
|
-
throw new ConversionArgsError(
|
|
69
|
-
`"${eventKey}" is a landing being viewed \u2014 a funnel step, never a conversion. Add it as a step with \`baker funnel\` instead.`
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
function readDays(raw) {
|
|
75
|
-
if (raw === void 0) return void 0;
|
|
76
|
-
const days = Number(raw);
|
|
77
|
-
if (!Number.isFinite(days) || days <= 0) {
|
|
78
|
-
throw new ConversionArgsError("--days must be a positive number of days.");
|
|
79
|
-
}
|
|
80
|
-
return days;
|
|
81
|
-
}
|
|
82
|
-
function parseConversionsArgs(raw, argv) {
|
|
83
|
-
const countMode = onlyOnce(raw["count-mode"], "--count-mode", argv);
|
|
84
|
-
if (countMode !== void 0 && !CONVERSION_COUNT_MODES.includes(countMode)) {
|
|
85
|
-
throw new ConversionArgsError(`--count-mode must be one of ${CONVERSION_COUNT_MODES.join(", ")}.`);
|
|
86
|
-
}
|
|
87
|
-
const args = {
|
|
88
|
-
eventKeys: repeatable("--event", raw.event, argv),
|
|
89
|
-
removeKeys: repeatable("--remove", raw.remove, argv),
|
|
90
|
-
name: onlyOnce(raw.name, "--name", argv),
|
|
91
|
-
countMode,
|
|
92
|
-
renameFrom: onlyOnce(raw.rename, "--rename", argv),
|
|
93
|
-
renameTo: onlyOnce(raw.to, "--to", argv),
|
|
94
|
-
removeName: onlyOnce(raw["remove-name"], "--remove-name", argv),
|
|
95
|
-
flowSlug: onlyOnce(raw.flow, "--flow", argv),
|
|
96
|
-
candidates: raw.candidates === true,
|
|
97
|
-
full: raw.full === true,
|
|
98
|
-
days: readDays(raw.days)
|
|
99
|
-
};
|
|
100
|
-
checkFlagShape(args);
|
|
101
|
-
checkEventKeys(args.eventKeys);
|
|
102
|
-
return args;
|
|
103
|
-
}
|
|
104
|
-
function existingNames(existing) {
|
|
105
|
-
return [...new Set(existing.map((row) => row.name))];
|
|
106
|
-
}
|
|
107
|
-
function checkNameCollision(name, existing) {
|
|
108
|
-
const collision = findNameCollision(name, existingNames(existing));
|
|
109
|
-
if (collision === null) return;
|
|
110
|
-
throw new ConversionArgsError(
|
|
111
|
-
`This company already counts "${collision}", and "${name}" would be a second row for the same outcome \u2014 Baker groups by exact name, so the number would be split in two. Use "${collision}" to make them one number, or pick a name that means something different.`
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
function under(name, existing) {
|
|
115
|
-
const rows = existing.filter((row) => row.name === name);
|
|
116
|
-
if (rows.length === 0) {
|
|
117
|
-
throw new ConversionArgsError(
|
|
118
|
-
`Nothing is counted under "${name}". This company counts: ${existingNames(existing).join(", ") || "nothing yet"}.`
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
return rows;
|
|
122
|
-
}
|
|
123
|
-
function setFromEvents(args, existing) {
|
|
124
|
-
if (args.eventKeys.length === 0) return [];
|
|
125
|
-
if (args.name !== void 0) {
|
|
126
|
-
checkNameCollision(args.name, existing);
|
|
127
|
-
const name = args.name;
|
|
128
|
-
return args.eventKeys.map((eventKey) => ({
|
|
129
|
-
eventKey,
|
|
130
|
-
name,
|
|
131
|
-
...args.countMode ? { countMode: args.countMode } : {}
|
|
132
|
-
}));
|
|
133
|
-
}
|
|
134
|
-
return args.eventKeys.map((eventKey) => {
|
|
135
|
-
const current = existing.find((row) => row.eventKey === eventKey);
|
|
136
|
-
if (!current) {
|
|
137
|
-
throw new ConversionArgsError(
|
|
138
|
-
`"${eventKey}" is not counted, so there is no count mode to change. Add it with --event "${eventKey}" --name "<what a person calls it>" --count-mode ${args.countMode}.`
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
return { eventKey, name: current.name, countMode: args.countMode };
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
function setFromRename(args, existing) {
|
|
145
|
-
if (args.renameFrom === void 0 || args.renameTo === void 0) return [];
|
|
146
|
-
const renameTo = args.renameTo;
|
|
147
|
-
checkNameCollision(renameTo, existing);
|
|
148
|
-
return under(args.renameFrom, existing).map((row) => ({
|
|
149
|
-
eventKey: row.eventKey,
|
|
150
|
-
name: renameTo,
|
|
151
|
-
countMode: row.countMode
|
|
152
|
-
}));
|
|
153
|
-
}
|
|
154
|
-
function conversionsWrite(args, existing) {
|
|
155
|
-
const set = [...setFromEvents(args, existing), ...setFromRename(args, existing)];
|
|
156
|
-
const remove = [
|
|
157
|
-
...args.removeKeys,
|
|
158
|
-
...args.removeName === void 0 ? [] : under(args.removeName, existing).map((row) => row.eventKey)
|
|
159
|
-
];
|
|
160
|
-
if (set.length === 0 && remove.length === 0) return null;
|
|
161
|
-
return { ...set.length > 0 ? { set } : {}, ...remove.length > 0 ? { remove } : {} };
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export {
|
|
165
|
-
ConversionArgsError,
|
|
166
|
-
onlyOnce,
|
|
167
|
-
parseConversionsArgs,
|
|
168
|
-
conversionsWrite
|
|
169
|
-
};
|
|
170
|
-
//# sourceMappingURL=chunk-RPUSTYHL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/analytics/conversionArgs.ts"],"sourcesContent":["/**\n * Reading the flags of `baker analytics conversions`, and refusing the shapes\n * that would otherwise count the wrong thing in silence.\n *\n * Its own module because every refusal here is cheap and every one it misses is\n * expensive: a conversion definition that never matches anything does not\n * error, it counts zero forever, and the company reports a rate that is quietly\n * too low. The same is true of the other direction — a name that splits one\n * outcome into two rows makes both numbers too low and neither of them wrong\n * enough to notice.\n *\n * The write is built against what the company **already counts**, which is why\n * `conversionsWrite` takes the current definitions: renaming, re-moding and the\n * near-duplicate refusal are all questions about the existing set, and a CLI\n * that could not see it could only add.\n */\n\nimport { CONVERSION_COUNT_MODES, findNameCollision, isLandingViewKey, parseEventKey } from \"@baker/api/analytics\";\n\nexport interface ConversionsArgs {\n /** Every `--event` given. Several under one `--name` is how they become one number. */\n eventKeys: string[];\n name?: string;\n countMode?: string;\n /** Every `--remove` given. */\n removeKeys: string[];\n renameFrom?: string;\n renameTo?: string;\n removeName?: string;\n /** A Form to read its own endings from, whether or not any of them has fired. */\n flowSlug?: string;\n candidates: boolean;\n /** Every field of every candidate, instead of one short line each. */\n full: boolean;\n days?: number;\n}\n\n/** One definition as this module needs to read it. */\nexport interface ExistingConversion {\n eventKey: string;\n name: string;\n countMode: string;\n}\n\n/** Thrown for anything the caller can fix by re-running with different flags. */\nexport class ConversionArgsError extends Error {}\n\n/**\n * Every value given for a flag, in the order they were typed.\n *\n * Read out of the raw argv rather than out of citty's parsed args, because\n * citty keeps only the LAST value of a repeated flag and hands it over as a\n * plain string: `--event a --event b` arrives as `\"b\"` with nothing recording\n * that `a` was ever there. By the time the handler runs, the evidence is gone.\n *\n * The identical shape has cost this repo before: `--param a=1 --param b=2`\n * staged only `b=2` against a write that replaces an entity's whole set, and\n * two of three UTM parameters were silently deleted on publish. Here the flags\n * that can legitimately repeat are collected, and the ones that cannot are\n * refused by {@link onlyOnce} — never quietly resolved to one of them.\n */\nexport function allValues(flag: string, argv: readonly string[]): string[] {\n const values: string[] = [];\n for (let i = 0; i < argv.length; i += 1) {\n const arg = argv[i] as string;\n if (arg === flag) {\n const next = argv[i + 1];\n if (next !== undefined && !next.startsWith(\"--\")) values.push(next);\n continue;\n }\n if (arg.startsWith(`${flag}=`)) values.push(arg.slice(flag.length + 1));\n }\n return values.map((value) => value.trim()).filter((value) => value !== \"\");\n}\n\n/** One value for a flag, or a refusal — never the last of several. */\nexport function onlyOnce(value: unknown, flag: string, argv: readonly string[]): string | undefined {\n if (value === undefined) return undefined;\n const given = argv.filter((arg) => arg === flag || arg.startsWith(`${flag}=`)).length;\n if (given > 1) {\n throw new ConversionArgsError(\n `${flag} was given ${given} times and only the last would have been used. It takes one value.`,\n );\n }\n const trimmed = String(value).trim();\n return trimmed === \"\" ? undefined : trimmed;\n}\n\n/**\n * The repeatable flags, read from argv with citty's value as the fallback.\n *\n * The fallback matters for the single-value case: a test — and any caller that\n * builds the args itself — passes the parsed object without an argv, and\n * dropping the value there would make every one of those calls a silent read.\n */\nfunction repeatable(flag: string, cittyValue: unknown, argv: readonly string[]): string[] {\n const fromArgv = allValues(flag, argv);\n if (fromArgv.length > 0) return fromArgv;\n if (cittyValue === undefined) return [];\n const trimmed = String(cittyValue).trim();\n return trimmed === \"\" ? [] : [trimmed];\n}\n\n/**\n * The four ways a set of flags can fail to say anything, each named.\n *\n * Split out of the parser for the reason the linter gives: a run of unrelated\n * refusals is the shape that grows one branch per flag until nobody can see\n * which combinations are legal.\n */\nfunction checkFlagShape(args: {\n eventKeys: string[];\n name?: string;\n countMode?: string;\n renameFrom?: string;\n renameTo?: string;\n}): void {\n // An event with no name and no mode change says which event and nothing about\n // it; a name with no event names an outcome with nothing to count.\n if (args.eventKeys.length > 0 && args.name === undefined && args.countMode === undefined) {\n throw new ConversionArgsError(\n \"--event needs --name: a conversion nobody named is a row labelled with a UUID. (--event with only --count-mode changes how an event already counted is counted.)\",\n );\n }\n if (args.name !== undefined && args.eventKeys.length === 0 && args.renameTo === undefined) {\n throw new ConversionArgsError(\"--name needs --event, naming which event to count.\");\n }\n if (args.renameFrom !== undefined && args.renameTo === undefined) {\n throw new ConversionArgsError('--rename needs --to: `--rename \"Lead form\" --to \"Lead\"`.');\n }\n if (args.renameTo !== undefined && args.renameFrom === undefined) {\n throw new ConversionArgsError(\n '--to needs --rename, naming which outcome to rename: `--rename \"Lead form\" --to \"Lead\"`.',\n );\n }\n}\n\n/**\n * Refuse a key that cannot parse, here rather than at the backend.\n *\n * This is the mistake that costs a turn: an event key nothing can produce never\n * matches anything, so it does not error — it counts zero forever.\n */\nfunction checkEventKeys(eventKeys: readonly string[]): void {\n for (const eventKey of eventKeys) {\n if (parseEventKey(eventKey) === null) {\n throw new ConversionArgsError(\n `\"${eventKey}\" is not an event key. Run with --candidates (or --flow <slug> for one Form) and copy one; they look like form:<form>:<step>:<trigger>, submit:<form>, page:<name> or exit:<host>.`,\n );\n }\n // The one readable key that is not an outcome. It exists so a funnel can\n // begin at \"saw the page\"; marked as a conversion it would make the rate a\n // ratio of the traffic to itself.\n if (isLandingViewKey(eventKey)) {\n throw new ConversionArgsError(\n `\"${eventKey}\" is a landing being viewed — a funnel step, never a conversion. Add it as a step with \\`baker funnel\\` instead.`,\n );\n }\n }\n}\n\nfunction readDays(raw: unknown): number | undefined {\n if (raw === undefined) return undefined;\n const days = Number(raw);\n if (!Number.isFinite(days) || days <= 0) {\n throw new ConversionArgsError(\"--days must be a positive number of days.\");\n }\n return days;\n}\n\nexport function parseConversionsArgs(raw: Record<string, unknown>, argv: readonly string[]): ConversionsArgs {\n const countMode = onlyOnce(raw[\"count-mode\"], \"--count-mode\", argv);\n if (countMode !== undefined && !(CONVERSION_COUNT_MODES as readonly string[]).includes(countMode)) {\n throw new ConversionArgsError(`--count-mode must be one of ${CONVERSION_COUNT_MODES.join(\", \")}.`);\n }\n\n const args: ConversionsArgs = {\n eventKeys: repeatable(\"--event\", raw.event, argv),\n removeKeys: repeatable(\"--remove\", raw.remove, argv),\n name: onlyOnce(raw.name, \"--name\", argv),\n countMode,\n renameFrom: onlyOnce(raw.rename, \"--rename\", argv),\n renameTo: onlyOnce(raw.to, \"--to\", argv),\n removeName: onlyOnce(raw[\"remove-name\"], \"--remove-name\", argv),\n flowSlug: onlyOnce(raw.flow, \"--flow\", argv),\n candidates: raw.candidates === true,\n full: raw.full === true,\n days: readDays(raw.days),\n };\n\n checkFlagShape(args);\n checkEventKeys(args.eventKeys);\n return args;\n}\n\nexport interface ConversionsWrite {\n set?: { eventKey: string; name: string; countMode?: string }[];\n remove?: string[];\n}\n\n/**\n * The names this company already counts, in the order they were defined.\n *\n * Exported because it is what every hint about reuse is built from: the first\n * thing an agent naming an outcome should see is what this company calls its\n * outcomes already.\n */\nexport function existingNames(existing: readonly ExistingConversion[]): string[] {\n return [...new Set(existing.map((row) => row.name))];\n}\n\n/**\n * Refuse a name that reads the same as one already counted but stores\n * differently.\n *\n * Baker groups by exact name, so \"Booked a call\" and \"Booked a Call\" are two\n * rows and two numbers — a headline quietly split in half, with both halves\n * plausible. Nothing else in the system can catch it: both names are valid,\n * both keys are real, and every report is correct about the wrong grouping.\n *\n * A refusal rather than a hint because the fix is one character and the damage\n * is permanent-looking: nobody re-reads a conversion list to check for two rows\n * that mean the same thing.\n */\nfunction checkNameCollision(name: string, existing: readonly ExistingConversion[]): void {\n const collision = findNameCollision(name, existingNames(existing));\n if (collision === null) return;\n throw new ConversionArgsError(\n `This company already counts \"${collision}\", and \"${name}\" would be a second row for the same outcome — Baker groups by exact name, so the number would be split in two. Use \"${collision}\" to make them one number, or pick a name that means something different.`,\n );\n}\n\n/** The definitions counted under a name, or a refusal naming what is. */\nfunction under(name: string, existing: readonly ExistingConversion[]): ExistingConversion[] {\n const rows = existing.filter((row) => row.name === name);\n if (rows.length === 0) {\n throw new ConversionArgsError(\n `Nothing is counted under \"${name}\". This company counts: ${existingNames(existing).join(\", \") || \"nothing yet\"}.`,\n );\n }\n return rows;\n}\n\n/** `--event …` — each key set to the given name, or re-moded keeping the one it has. */\nfunction setFromEvents(args: ConversionsArgs, existing: readonly ExistingConversion[]) {\n if (args.eventKeys.length === 0) return [];\n if (args.name !== undefined) {\n checkNameCollision(args.name, existing);\n const name = args.name;\n return args.eventKeys.map((eventKey) => ({\n eventKey,\n name,\n ...(args.countMode ? { countMode: args.countMode } : {}),\n }));\n }\n // `--count-mode` alone. The store needs a name on every write, and the only\n // honest one is the name it already has: inventing one here would rename an\n // outcome somebody chose, as a side effect of changing how it counts.\n return args.eventKeys.map((eventKey) => {\n const current = existing.find((row) => row.eventKey === eventKey);\n if (!current) {\n throw new ConversionArgsError(\n `\"${eventKey}\" is not counted, so there is no count mode to change. Add it with --event \"${eventKey}\" --name \"<what a person calls it>\" --count-mode ${args.countMode}.`,\n );\n }\n return { eventKey, name: current.name, countMode: args.countMode };\n });\n}\n\n/**\n * `--rename … --to …` — every event under one name moved to another.\n *\n * Collision-checked like every other name, and that is not in tension with the\n * merge: renaming ONTO an existing name is the main thing the flag is for, and\n * `findNameCollision` returns `null` for an exact match precisely so that stays\n * free. What it refuses is the near-miss — renaming onto \"Booked a Call\" when\n * the company counts \"Booked a call\" — which is the split the whole rule exists\n * to prevent, arriving through the one flag that used to be exempt.\n */\nfunction setFromRename(args: ConversionsArgs, existing: readonly ExistingConversion[]) {\n if (args.renameFrom === undefined || args.renameTo === undefined) return [];\n const renameTo = args.renameTo;\n checkNameCollision(renameTo, existing);\n return under(args.renameFrom, existing).map((row) => ({\n eventKey: row.eventKey,\n name: renameTo,\n countMode: row.countMode,\n }));\n}\n\n/**\n * The write this call makes, or `null` when it is only a read. *\n * Every operation is expressed as `set` / `remove` over event keys, because\n * that is the only vocabulary the store has: a name is a property of a\n * definition, not a row of its own, so renaming an outcome is re-setting every\n * key underneath it and dropping one is removing them all.\n */\nexport function conversionsWrite(\n args: ConversionsArgs,\n existing: readonly ExistingConversion[],\n): ConversionsWrite | null {\n const set = [...setFromEvents(args, existing), ...setFromRename(args, existing)];\n const remove = [\n ...args.removeKeys,\n ...(args.removeName === undefined ? [] : under(args.removeName, existing).map((row) => row.eventKey)),\n ];\n\n if (set.length === 0 && remove.length === 0) return null;\n return { ...(set.length > 0 ? { set } : {}), ...(remove.length > 0 ? { remove } : {}) };\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-S77PZVYM.js
DELETED
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
REDDIT_LINK_REJECTED,
|
|
3
|
-
redditSearchHints,
|
|
4
|
-
redditSubredditsHints,
|
|
5
|
-
redditThreadHints
|
|
6
|
-
} from "./chunk-OZRUJVIQ.js";
|
|
7
|
-
import {
|
|
8
|
-
handleResearchError,
|
|
9
|
-
writeResearchJson
|
|
10
|
-
} from "./chunk-WNFIJAUO.js";
|
|
11
|
-
import {
|
|
12
|
-
repeatedValues
|
|
13
|
-
} from "./chunk-ERSX3MKH.js";
|
|
14
|
-
import {
|
|
15
|
-
RESEARCH_REDDIT_THREAD_DEFAULT_COMMENTS
|
|
16
|
-
} from "./chunk-XF4JUKVF.js";
|
|
17
|
-
import {
|
|
18
|
-
apiPost
|
|
19
|
-
} from "./chunk-XBOK23HI.js";
|
|
20
|
-
import {
|
|
21
|
-
registerSchema
|
|
22
|
-
} from "./chunk-NU7JSWVA.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-S77PZVYM.js.map
|
package/dist/chunk-SHL7LOC3.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
failApi
|
|
3
|
-
} from "./chunk-3HJLHTWP.js";
|
|
4
|
-
import {
|
|
5
|
-
HUBSPOT_MISSING_GRANT_MARKER,
|
|
6
|
-
HUBSPOT_NOT_CONNECTED_MESSAGE
|
|
7
|
-
} from "./chunk-XF4JUKVF.js";
|
|
8
|
-
import {
|
|
9
|
-
ApiError
|
|
10
|
-
} from "./chunk-XBOK23HI.js";
|
|
11
|
-
import {
|
|
12
|
-
writeJson
|
|
13
|
-
} from "./chunk-NU7JSWVA.js";
|
|
14
|
-
|
|
15
|
-
// src/commands/hubspot/refusal.ts
|
|
16
|
-
var CONTINUE = "Keep going with the wider task: say which part you could not read, skip it, and finish everything else. If the `request_connection` call fails, say so plainly and give the exact route: dashboard \u2192 Brain \u2192 Integrations \u2192 Platforms \u2192 HubSpot.";
|
|
17
|
-
function hubspotRefusal(code, message, reason = "so I can count a contact becoming a customer") {
|
|
18
|
-
if (code === "NOT_FOUND" && message.includes(HUBSPOT_NOT_CONNECTED_MESSAGE)) {
|
|
19
|
-
return {
|
|
20
|
-
code: "NO_HUBSPOT_CONNECTION",
|
|
21
|
-
fix: {
|
|
22
|
-
action: "request_connection",
|
|
23
|
-
explanation: `AGENT INSTRUCTION: HubSpot is not connected, and only the user can connect it. Call the \`request_connection\` tool with { platform: "hubspot", reason } \u2014 reason in their words, e.g. "${reason}" \u2014 and they connect it inside the chat; then run this command again. ` + CONTINUE
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
if (code === "FORBIDDEN" && message.includes(HUBSPOT_MISSING_GRANT_MARKER)) {
|
|
28
|
-
return {
|
|
29
|
-
code: "HUBSPOT_RECONNECT_REQUIRED",
|
|
30
|
-
fix: {
|
|
31
|
-
action: "request_connection",
|
|
32
|
-
explanation: 'AGENT INSTRUCTION: HubSpot is connected \u2014 do not tell the user it is missing, and do not retry. Its access does not cover this read (it was connected before Baker asked for it, or the access was withdrawn), and only the user can widen it. Call the `request_connection` tool with { platform: "hubspot", reason } naming what you need to read; the card offers them a Reconnect button. Run this command again once they have. ' + CONTINUE
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
function failNotConnected(err, reason) {
|
|
39
|
-
const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message, reason) : null;
|
|
40
|
-
if (err instanceof ApiError && refusal !== null) {
|
|
41
|
-
writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
failApi(err);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export {
|
|
48
|
-
hubspotRefusal,
|
|
49
|
-
failNotConnected
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=chunk-SHL7LOC3.js.map
|