@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
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseBrandTokens
|
|
3
|
+
} from "./chunk-ZDMTXQ2Q.js";
|
|
4
|
+
|
|
5
|
+
// src/engine/brand/fonts.ts
|
|
6
|
+
import { posix } from "path";
|
|
7
|
+
var GOOGLE_CSS2 = "https://fonts.googleapis.com/css2";
|
|
8
|
+
function parseGoogleFontFaces(css) {
|
|
9
|
+
const faces = [];
|
|
10
|
+
const re = /\/\*\s*([\w-]+)\s*\*\/\s*@font-face\s*\{([^}]*)\}/g;
|
|
11
|
+
for (const match of String(css).matchAll(re)) {
|
|
12
|
+
const subset = match[1] ?? "";
|
|
13
|
+
const body = match[2] ?? "";
|
|
14
|
+
const family = body.match(/font-family\s*:\s*['"]?([^'";]+)['"]?\s*;/i)?.[1]?.trim();
|
|
15
|
+
const url = body.match(/src\s*:\s*url\(\s*['"]?([^'")]+)['"]?\s*\)/i)?.[1]?.trim();
|
|
16
|
+
const weight = body.match(/font-weight\s*:\s*(\d{3})\s*;/i)?.[1];
|
|
17
|
+
if (!family || !url || !weight) continue;
|
|
18
|
+
faces.push({
|
|
19
|
+
subset,
|
|
20
|
+
family,
|
|
21
|
+
style: body.match(/font-style\s*:\s*([\w-]+)\s*;/i)?.[1]?.trim() ?? "normal",
|
|
22
|
+
weight: Number(weight),
|
|
23
|
+
url,
|
|
24
|
+
unicodeRange: body.match(/unicode-range\s*:\s*([^;]+);/i)?.[1]?.trim() ?? ""
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return faces;
|
|
28
|
+
}
|
|
29
|
+
function fontFileName(face) {
|
|
30
|
+
const family = face.family.replace(/[^A-Za-z0-9]/g, "");
|
|
31
|
+
const style = face.style === "italic" ? "italic" : "";
|
|
32
|
+
return `${family}-${face.weight}${style}-${face.subset}.woff2`;
|
|
33
|
+
}
|
|
34
|
+
function fontFaceHref(face) {
|
|
35
|
+
return `../brand/fonts/${fontFileName(face)}`;
|
|
36
|
+
}
|
|
37
|
+
function renderFontFaceCss(faces) {
|
|
38
|
+
return faces.map(
|
|
39
|
+
(face) => [
|
|
40
|
+
"@font-face {",
|
|
41
|
+
` font-family: '${face.family}';`,
|
|
42
|
+
` font-style: ${face.style};`,
|
|
43
|
+
` font-weight: ${face.weight};`,
|
|
44
|
+
" font-display: swap;",
|
|
45
|
+
` src: url('${fontFaceHref(face)}') format('woff2');`,
|
|
46
|
+
...face.unicodeRange ? [` unicode-range: ${face.unicodeRange};`] : [],
|
|
47
|
+
"}"
|
|
48
|
+
].join("\n")
|
|
49
|
+
).join("\n");
|
|
50
|
+
}
|
|
51
|
+
var FONT_PROVIDERS = ["google", "fontsource"];
|
|
52
|
+
var FONTSOURCE_API = "https://api.fontsource.org/v1";
|
|
53
|
+
var FONT_STYLES = ["normal", "italic"];
|
|
54
|
+
var ITAL_AXIS = { normal: 0, italic: 1 };
|
|
55
|
+
function fontsourceId(family) {
|
|
56
|
+
return family.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
57
|
+
}
|
|
58
|
+
function fontsourceFaces(meta, weights, subsets, styles = ["normal"]) {
|
|
59
|
+
const faces = [];
|
|
60
|
+
for (const subset of subsets.filter((s) => meta.subsets.includes(s))) {
|
|
61
|
+
for (const weight of weights.filter((w) => meta.weights.includes(w))) {
|
|
62
|
+
for (const style of styles.filter((style2) => meta.styles.includes(style2))) {
|
|
63
|
+
const url = meta.variants[String(weight)]?.[style]?.[subset]?.url?.woff2;
|
|
64
|
+
if (!url) continue;
|
|
65
|
+
faces.push({
|
|
66
|
+
subset,
|
|
67
|
+
family: meta.family,
|
|
68
|
+
style,
|
|
69
|
+
weight,
|
|
70
|
+
url,
|
|
71
|
+
unicodeRange: meta.unicodeRange?.[subset] ?? "",
|
|
72
|
+
provider: "fontsource"
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return faces;
|
|
78
|
+
}
|
|
79
|
+
function undisambiguatedSubsets(faces) {
|
|
80
|
+
if (new Set(faces.map((face) => face.subset)).size < 2) return [];
|
|
81
|
+
return [...new Set(faces.filter((face) => !face.unicodeRange).map((face) => face.subset))];
|
|
82
|
+
}
|
|
83
|
+
function suggestFamilies(wanted, catalogue, limit = 5) {
|
|
84
|
+
const key = (s) => s.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
|
|
85
|
+
const target = key(wanted);
|
|
86
|
+
if (!target) return [];
|
|
87
|
+
const words = target.split(" ");
|
|
88
|
+
const scored = catalogue.map((family) => {
|
|
89
|
+
const candidate = key(family);
|
|
90
|
+
if (candidate === target) return { family, score: 0 };
|
|
91
|
+
if (candidate.startsWith(target)) return { family, score: 1 };
|
|
92
|
+
if (candidate.includes(target)) return { family, score: 2 };
|
|
93
|
+
const shared = words.filter((w) => w.length > 2 && candidate.includes(w)).length;
|
|
94
|
+
return { family, score: shared > 0 ? 3 + (words.length - shared) : Number.POSITIVE_INFINITY };
|
|
95
|
+
}).filter((c) => Number.isFinite(c.score)).sort((a, b) => a.score - b.score || a.family.localeCompare(b.family));
|
|
96
|
+
return scored.slice(0, limit).map((c) => c.family);
|
|
97
|
+
}
|
|
98
|
+
function asFontsourceMeta(body) {
|
|
99
|
+
if (typeof body !== "object" || body === null) return null;
|
|
100
|
+
const meta = body;
|
|
101
|
+
const ok = typeof meta.family === "string" && Array.isArray(meta.weights) && Array.isArray(meta.styles) && Array.isArray(meta.subsets) && typeof meta.variants === "object" && meta.variants !== null;
|
|
102
|
+
return ok ? meta : null;
|
|
103
|
+
}
|
|
104
|
+
async function probeGoogleFaces(family, lookup) {
|
|
105
|
+
const got = await lookup(googleFontCssUrl(family, STANDARD_WEIGHTS, FONT_STYLES));
|
|
106
|
+
if (got.status === "unreachable") return null;
|
|
107
|
+
return got.status === "served" ? parseGoogleFontFaces(got.css) : [];
|
|
108
|
+
}
|
|
109
|
+
async function resolveFromGoogle(family, weights, subsets, styles, deps) {
|
|
110
|
+
const google = await deps.lookupGoogleCss(googleFontCssUrl(family, weights, FONT_STYLES));
|
|
111
|
+
if (google.status === "unreachable") return { ok: false, reason: "unreachable", provider: "google" };
|
|
112
|
+
if (google.status === "absent") {
|
|
113
|
+
const served2 = await probeGoogleFaces(family, deps.lookupGoogleCss);
|
|
114
|
+
if (served2 === null) return { ok: false, reason: "unreachable", provider: "google" };
|
|
115
|
+
const available = [...new Set(served2.map((face) => face.weight))].sort((a, b) => a - b);
|
|
116
|
+
return available.length > 0 ? { ok: false, reason: "weight", provider: "google", available } : null;
|
|
117
|
+
}
|
|
118
|
+
const served = parseGoogleFontFaces(google.css);
|
|
119
|
+
if (served.length === 0) return null;
|
|
120
|
+
const availableStyles = [...new Set(served.map((face) => face.style))].sort();
|
|
121
|
+
const inSubset = served.filter((face) => subsets.includes(face.subset));
|
|
122
|
+
const faces = inSubset.filter((face) => styles.includes(face.style)).map((face) => ({ ...face, provider: "google" }));
|
|
123
|
+
if (faces.length > 0) return { ok: true, provider: "google", faces, availableStyles };
|
|
124
|
+
return { ok: false, reason: "subset", provider: "google", available: [...new Set(served.map((f) => f.subset))] };
|
|
125
|
+
}
|
|
126
|
+
async function resolveBrandFaces(family, weights, subsets, deps, styles = ["normal"]) {
|
|
127
|
+
const google = await resolveFromGoogle(family, weights, subsets, styles, deps);
|
|
128
|
+
if (google) return google;
|
|
129
|
+
let body;
|
|
130
|
+
try {
|
|
131
|
+
body = await deps.fetchJson(`${FONTSOURCE_API}/fonts/${fontsourceId(family)}`);
|
|
132
|
+
} catch {
|
|
133
|
+
return { ok: false, reason: "unreachable", provider: "fontsource" };
|
|
134
|
+
}
|
|
135
|
+
const meta = asFontsourceMeta(body);
|
|
136
|
+
if (meta) {
|
|
137
|
+
const faces = fontsourceFaces(meta, weights, subsets, styles);
|
|
138
|
+
const ambiguous = undisambiguatedSubsets(faces);
|
|
139
|
+
if (ambiguous.length > 0) {
|
|
140
|
+
return { ok: false, reason: "ambiguous-subsets", provider: "fontsource", available: meta.subsets };
|
|
141
|
+
}
|
|
142
|
+
if (faces.length > 0) return { ok: true, provider: "fontsource", faces, availableStyles: [...meta.styles].sort() };
|
|
143
|
+
if (!subsets.some((subset) => meta.subsets.includes(subset))) {
|
|
144
|
+
return { ok: false, reason: "subset", provider: "fontsource", available: meta.subsets };
|
|
145
|
+
}
|
|
146
|
+
return { ok: false, reason: "weight", provider: "fontsource", available: meta.weights };
|
|
147
|
+
}
|
|
148
|
+
return { ok: false, reason: "unknown-family" };
|
|
149
|
+
}
|
|
150
|
+
function rebaseFontFaceSrc(block, fromDir, toDir = "src/styles") {
|
|
151
|
+
return block.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi, (whole, _quote, href) => {
|
|
152
|
+
if (!isRepoFontHref(href)) return whole;
|
|
153
|
+
const target = posix.normalize(posix.join(fromDir, href));
|
|
154
|
+
return `url('${posix.relative(toDir, target)}')`;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
function declaredFontFaces(source) {
|
|
158
|
+
const out = [];
|
|
159
|
+
for (const rule of stripCssComments(source).matchAll(/@font-face\s*\{[^}]*\}/gi)) {
|
|
160
|
+
const family = rule[0].match(/font-family\s*:\s*([^;]+)/i)?.[1];
|
|
161
|
+
if (!family || rule.index === void 0) continue;
|
|
162
|
+
out.push({ family: normalizeFamily(family), block: source.slice(rule.index, rule.index + rule[0].length) });
|
|
163
|
+
}
|
|
164
|
+
return out;
|
|
165
|
+
}
|
|
166
|
+
function isRepoFontHref(href) {
|
|
167
|
+
return !/^(?:data:|https?:|\/)/i.test(href);
|
|
168
|
+
}
|
|
169
|
+
function missingFontFiles(urls, available) {
|
|
170
|
+
return urls.filter(isRepoFontHref).map((url) => posix.basename(url.split("?")[0] ?? "")).filter((file) => !available.has(file));
|
|
171
|
+
}
|
|
172
|
+
function planFontAdoption(sources, families) {
|
|
173
|
+
const wanted = new Map(families.map((family) => [normalizeFamily(family), family]));
|
|
174
|
+
const byFamily = /* @__PURE__ */ new Map();
|
|
175
|
+
for (const { path, source } of sources) {
|
|
176
|
+
const dir = posix.dirname(path);
|
|
177
|
+
for (const face of declaredFontFaces(source)) {
|
|
178
|
+
if (!wanted.has(face.family)) continue;
|
|
179
|
+
const perFile = byFamily.get(face.family) ?? /* @__PURE__ */ new Map();
|
|
180
|
+
perFile.set(path, [...perFile.get(path) ?? [], rebaseFontFaceSrc(face.block, dir)]);
|
|
181
|
+
byFamily.set(face.family, perFile);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
const plans = [];
|
|
185
|
+
const conflicts = [];
|
|
186
|
+
for (const [family, perFile] of byFamily) {
|
|
187
|
+
const display = wanted.get(family) ?? family;
|
|
188
|
+
const files = [...perFile.keys()];
|
|
189
|
+
const shapes = new Set([...perFile.values()].map((blocks2) => blocks2.join("\n")));
|
|
190
|
+
if (shapes.size > 1) {
|
|
191
|
+
conflicts.push({ family: display, files });
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
const blocks = perFile.get(files[0] ?? "") ?? [];
|
|
195
|
+
const urls = blocks.flatMap(
|
|
196
|
+
(block) => [...block.matchAll(/url\(\s*['"]?([^'")]+)['"]?\s*\)/gi)].map((m) => m[1] ?? "")
|
|
197
|
+
);
|
|
198
|
+
plans.push({ family: display, blocks, files, urls });
|
|
199
|
+
}
|
|
200
|
+
return { plans, conflicts };
|
|
201
|
+
}
|
|
202
|
+
async function fontsourceCatalogue(deps) {
|
|
203
|
+
const body = await deps.fetchJson(`${FONTSOURCE_API}/fonts`).catch(() => null);
|
|
204
|
+
if (!Array.isArray(body)) return [];
|
|
205
|
+
return body.map((entry) => typeof entry === "object" && entry !== null ? entry.family : null).filter((family) => typeof family === "string");
|
|
206
|
+
}
|
|
207
|
+
function parseWeightAxis(spec) {
|
|
208
|
+
const axis = spec.match(/wght@([^&]+)/i)?.[1] ?? "";
|
|
209
|
+
const weights = /* @__PURE__ */ new Set();
|
|
210
|
+
for (const tuple of axis.split(";")) {
|
|
211
|
+
const last = tuple.split(",").pop()?.trim() ?? "";
|
|
212
|
+
const range = last.match(/^(\d{3})\.\.(\d{3})$/);
|
|
213
|
+
if (range) {
|
|
214
|
+
for (let w = Number(range[1]); w <= Number(range[2]); w += 100) weights.add(w);
|
|
215
|
+
} else if (/^\d{3}$/.test(last)) {
|
|
216
|
+
weights.add(Number(last));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return [...weights].sort((a, b) => a - b);
|
|
220
|
+
}
|
|
221
|
+
function googleFontRequests(css) {
|
|
222
|
+
const out = [];
|
|
223
|
+
for (const link of String(css).matchAll(/fonts\.googleapis\.com\/[^\s"')]+/gi)) {
|
|
224
|
+
for (const param of link[0].matchAll(/[?&]family=([^&]+)/gi)) {
|
|
225
|
+
const [namePart, ...specParts] = (param[1] ?? "").split(":");
|
|
226
|
+
const family = decodeURIComponent((namePart ?? "").replaceAll("+", " ")).trim();
|
|
227
|
+
if (!family) continue;
|
|
228
|
+
out.push({ family, weights: parseWeightAxis(specParts.join(":")) });
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return out;
|
|
232
|
+
}
|
|
233
|
+
function resolveFetchWeights(flag, declared) {
|
|
234
|
+
if (flag) {
|
|
235
|
+
return String(flag).split(",").map((w) => Number(w.trim())).filter((w) => Number.isInteger(w) && w >= 100 && w <= 900);
|
|
236
|
+
}
|
|
237
|
+
return declared?.length ? declared : [400];
|
|
238
|
+
}
|
|
239
|
+
var DEFAULT_SUBSETS = ["latin"];
|
|
240
|
+
function resolveFetchSubsets(flag, selfHosted) {
|
|
241
|
+
const asked = String(flag ?? "").split(",").map((subset) => subset.trim()).filter(Boolean);
|
|
242
|
+
const named = flag ? [...new Set(asked)] : selfHosted;
|
|
243
|
+
return named.length > 0 ? named : [...DEFAULT_SUBSETS];
|
|
244
|
+
}
|
|
245
|
+
function resolveFetchStyles(italic, selfHosted) {
|
|
246
|
+
return italic || selfHosted.includes("italic") ? ["normal", "italic"] : ["normal"];
|
|
247
|
+
}
|
|
248
|
+
function googleFontCssUrl(family, weights, styles = ["normal"]) {
|
|
249
|
+
const name = family.trim().split(/\s+/).map(encodeURIComponent).join("+");
|
|
250
|
+
const sorted = [...new Set(weights)].sort((a, b) => a - b);
|
|
251
|
+
if (sorted.length === 0) return `${GOOGLE_CSS2}?family=${name}&display=swap`;
|
|
252
|
+
const wanted = FONT_STYLES.filter((style) => styles.includes(style));
|
|
253
|
+
const spec = wanted.length > 1 ? `${name}:ital,wght@${wanted.flatMap((style) => sorted.map((w) => `${ITAL_AXIS[style]},${w}`)).join(";")}` : `${name}:wght@${sorted.join(";")}`;
|
|
254
|
+
return `${GOOGLE_CSS2}?family=${spec}&display=swap`;
|
|
255
|
+
}
|
|
256
|
+
var STANDARD_WEIGHTS = [100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
257
|
+
async function probeServedWeights(family, fetchCss) {
|
|
258
|
+
const css = await fetchCss(googleFontCssUrl(family, STANDARD_WEIGHTS));
|
|
259
|
+
if (css === null) return [];
|
|
260
|
+
return [...new Set(parseGoogleFontFaces(css).map((face) => face.weight))].sort((a, b) => a - b);
|
|
261
|
+
}
|
|
262
|
+
async function checkFontRequests(requests, fetchCss) {
|
|
263
|
+
const results = [];
|
|
264
|
+
for (const request of requests) {
|
|
265
|
+
const css = await fetchCss(googleFontCssUrl(request.family, request.weights));
|
|
266
|
+
if (css === null) {
|
|
267
|
+
const served2 = await probeServedWeights(request.family, fetchCss);
|
|
268
|
+
results.push({
|
|
269
|
+
family: request.family,
|
|
270
|
+
requested: request.weights,
|
|
271
|
+
served: served2,
|
|
272
|
+
missing: request.weights.filter((w) => !served2.includes(w)),
|
|
273
|
+
subsets: [],
|
|
274
|
+
cause: served2.length === 0 ? "unknown-family" : "unavailable-weight"
|
|
275
|
+
});
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
const faces = parseGoogleFontFaces(css);
|
|
279
|
+
const served = [...new Set(faces.map((f) => f.weight))].sort((a, b) => a - b);
|
|
280
|
+
results.push({
|
|
281
|
+
family: request.family,
|
|
282
|
+
requested: request.weights,
|
|
283
|
+
served,
|
|
284
|
+
missing: request.weights.filter((w) => !served.includes(w)),
|
|
285
|
+
subsets: [...new Set(faces.map((f) => f.subset))]
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
return results;
|
|
289
|
+
}
|
|
290
|
+
var GENERIC_FAMILIES = /* @__PURE__ */ new Set([
|
|
291
|
+
"sans-serif",
|
|
292
|
+
"serif",
|
|
293
|
+
"monospace",
|
|
294
|
+
"cursive",
|
|
295
|
+
"fantasy",
|
|
296
|
+
"system-ui",
|
|
297
|
+
"ui-sans-serif",
|
|
298
|
+
"ui-serif",
|
|
299
|
+
"ui-monospace",
|
|
300
|
+
"ui-rounded",
|
|
301
|
+
"arial",
|
|
302
|
+
"helvetica",
|
|
303
|
+
"georgia",
|
|
304
|
+
"times",
|
|
305
|
+
"courier",
|
|
306
|
+
"inherit",
|
|
307
|
+
"initial",
|
|
308
|
+
"unset"
|
|
309
|
+
]);
|
|
310
|
+
function stripCssComments(css) {
|
|
311
|
+
return css.replace(/\/\*[\s\S]*?\*\//g, (block) => block.replace(/[^\n]/g, " "));
|
|
312
|
+
}
|
|
313
|
+
function normalizeFamily(raw) {
|
|
314
|
+
return raw.trim().replace(/^['"]|['"]$/g, "").trim().toLowerCase();
|
|
315
|
+
}
|
|
316
|
+
function fontFaceFamilies(css) {
|
|
317
|
+
const out = /* @__PURE__ */ new Set();
|
|
318
|
+
for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
|
|
319
|
+
const family = (rule[1] ?? "").match(/font-family\s*:\s*([^;]+)/i)?.[1];
|
|
320
|
+
if (family) out.add(normalizeFamily(family));
|
|
321
|
+
}
|
|
322
|
+
return out;
|
|
323
|
+
}
|
|
324
|
+
function declaredWeights(body) {
|
|
325
|
+
const spec = (body.match(/font-weight\s*:\s*([^;}]+)/i)?.[1] ?? "").match(/\d{3}/g) ?? [];
|
|
326
|
+
if (spec.length !== 2) return spec.map(Number);
|
|
327
|
+
const range = [];
|
|
328
|
+
for (let w = Number(spec[0]); w <= Number(spec[1]); w += 100) range.push(w);
|
|
329
|
+
return range;
|
|
330
|
+
}
|
|
331
|
+
function selfHostedWeights(css, family) {
|
|
332
|
+
const target = normalizeFamily(family);
|
|
333
|
+
const weights = /* @__PURE__ */ new Set();
|
|
334
|
+
for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
|
|
335
|
+
const body = rule[1] ?? "";
|
|
336
|
+
const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
|
|
337
|
+
if (!declared || normalizeFamily(declared) !== target) continue;
|
|
338
|
+
for (const weight of declaredWeights(body)) weights.add(weight);
|
|
339
|
+
}
|
|
340
|
+
return [...weights].sort((a, b) => a - b);
|
|
341
|
+
}
|
|
342
|
+
function fontFileSubset(href) {
|
|
343
|
+
const file = posix.basename((href.split("?")[0] ?? "").split("#")[0] ?? "");
|
|
344
|
+
return /^[A-Za-z0-9]+-[1-9]00(?:italic)?-([\w-]+)\.woff2$/.exec(file)?.[1] ?? null;
|
|
345
|
+
}
|
|
346
|
+
function selfHostedSubsets(css, family) {
|
|
347
|
+
const target = normalizeFamily(family);
|
|
348
|
+
const subsets = /* @__PURE__ */ new Set();
|
|
349
|
+
for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
|
|
350
|
+
const body = rule[1] ?? "";
|
|
351
|
+
const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
|
|
352
|
+
if (!declared || normalizeFamily(declared) !== target) continue;
|
|
353
|
+
for (const url of body.matchAll(/url\(\s*['"]?([^'")]+)['"]?\s*\)/gi)) {
|
|
354
|
+
const subset = fontFileSubset(url[1] ?? "");
|
|
355
|
+
if (subset) subsets.add(subset);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return [...subsets].sort();
|
|
359
|
+
}
|
|
360
|
+
function selfHostedStyles(css, family) {
|
|
361
|
+
const target = normalizeFamily(family);
|
|
362
|
+
const styles = /* @__PURE__ */ new Set();
|
|
363
|
+
for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
|
|
364
|
+
const body = rule[1] ?? "";
|
|
365
|
+
const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
|
|
366
|
+
if (declared && normalizeFamily(declared) === target) styles.add(faceStyle(body));
|
|
367
|
+
}
|
|
368
|
+
return [...styles].sort();
|
|
369
|
+
}
|
|
370
|
+
function fontsourceFamilies(css) {
|
|
371
|
+
const out = /* @__PURE__ */ new Set();
|
|
372
|
+
for (const imported of stripCssComments(css).matchAll(/@fontsource(-variable)?\/([\w-]+)/gi)) {
|
|
373
|
+
const slug = imported[2];
|
|
374
|
+
if (!slug) continue;
|
|
375
|
+
out.add(`${slug.replaceAll("-", " ")}${imported[1] ? " variable" : ""}`.toLowerCase());
|
|
376
|
+
}
|
|
377
|
+
return out;
|
|
378
|
+
}
|
|
379
|
+
function asAuthored(css, normalized) {
|
|
380
|
+
const escaped = normalized.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
381
|
+
const text = stripCssComments(css);
|
|
382
|
+
return text.match(new RegExp(`["']${escaped}["']`, "i"))?.[0]?.slice(1, -1) ?? text.match(new RegExp(`(?<![\\w-])${escaped}(?![\\w-])`, "i"))?.[0] ?? normalized;
|
|
383
|
+
}
|
|
384
|
+
function unresolvedBrandFamilies(css) {
|
|
385
|
+
const declared = [...parseBrandTokens(css).fonts].filter((family) => !GENERIC_FAMILIES.has(family));
|
|
386
|
+
const loaded = fontFaceFamilies(css);
|
|
387
|
+
return declared.filter((family) => !loaded.has(family)).map((family) => asAuthored(css, family));
|
|
388
|
+
}
|
|
389
|
+
function stripFontFaceBlocks(source, family, styles) {
|
|
390
|
+
const target = normalizeFamily(family);
|
|
391
|
+
const ranges = [];
|
|
392
|
+
for (const rule of stripCssComments(source).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
|
|
393
|
+
const body = rule[1] ?? "";
|
|
394
|
+
const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
|
|
395
|
+
if (!declared || normalizeFamily(declared) !== target || rule.index === void 0) continue;
|
|
396
|
+
if (styles && !styles.has(faceStyle(body))) continue;
|
|
397
|
+
ranges.push([rule.index, rule.index + rule[0].length]);
|
|
398
|
+
}
|
|
399
|
+
let out = source;
|
|
400
|
+
for (const [start, end] of ranges.reverse()) out = `${out.slice(0, start)}${out.slice(end)}`;
|
|
401
|
+
return out.replace(/\n{3,}/g, "\n\n");
|
|
402
|
+
}
|
|
403
|
+
function faceStyle(body) {
|
|
404
|
+
return body.match(/font-style\s*:\s*([\w-]+)/i)?.[1]?.trim().toLowerCase() ?? "normal";
|
|
405
|
+
}
|
|
406
|
+
function declaredStyles(block) {
|
|
407
|
+
const styles = /* @__PURE__ */ new Set();
|
|
408
|
+
for (const rule of stripCssComments(block).matchAll(/@font-face\s*\{([^}]*)\}/gi))
|
|
409
|
+
styles.add(faceStyle(rule[1] ?? ""));
|
|
410
|
+
return styles;
|
|
411
|
+
}
|
|
412
|
+
function upsertFontFaceCss(css, family, block) {
|
|
413
|
+
const styles = declaredStyles(block);
|
|
414
|
+
const out = stripFontFaceBlocks(css, family, styles.size > 0 ? styles : void 0);
|
|
415
|
+
const themeAt = stripCssComments(out).search(/@theme\b/);
|
|
416
|
+
if (themeAt < 0) return `${out.trimEnd()}
|
|
417
|
+
|
|
418
|
+
${block}
|
|
419
|
+
`;
|
|
420
|
+
const head = out.slice(0, themeAt).trimEnd();
|
|
421
|
+
const tail = out.slice(themeAt);
|
|
422
|
+
return head ? `${head}
|
|
423
|
+
|
|
424
|
+
${block}
|
|
425
|
+
|
|
426
|
+
${tail}` : `${block}
|
|
427
|
+
|
|
428
|
+
${tail}`;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
export {
|
|
432
|
+
fontFileName,
|
|
433
|
+
renderFontFaceCss,
|
|
434
|
+
FONT_PROVIDERS,
|
|
435
|
+
suggestFamilies,
|
|
436
|
+
resolveBrandFaces,
|
|
437
|
+
missingFontFiles,
|
|
438
|
+
planFontAdoption,
|
|
439
|
+
fontsourceCatalogue,
|
|
440
|
+
googleFontRequests,
|
|
441
|
+
resolveFetchWeights,
|
|
442
|
+
DEFAULT_SUBSETS,
|
|
443
|
+
resolveFetchSubsets,
|
|
444
|
+
resolveFetchStyles,
|
|
445
|
+
checkFontRequests,
|
|
446
|
+
GENERIC_FAMILIES,
|
|
447
|
+
selfHostedWeights,
|
|
448
|
+
selfHostedSubsets,
|
|
449
|
+
selfHostedStyles,
|
|
450
|
+
fontsourceFamilies,
|
|
451
|
+
unresolvedBrandFamilies,
|
|
452
|
+
stripFontFaceBlocks,
|
|
453
|
+
upsertFontFaceCss
|
|
454
|
+
};
|
|
455
|
+
//# sourceMappingURL=chunk-VL43TNIP.js.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {
|
|
2
|
+
failApi
|
|
3
|
+
} from "./chunk-SJYEY5MV.js";
|
|
4
|
+
import {
|
|
5
|
+
HUBSPOT_MISSING_GRANT_MARKER,
|
|
6
|
+
HUBSPOT_NOT_CONNECTED_MESSAGE
|
|
7
|
+
} from "./chunk-7EPXVICM.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-VLMBTPXU.js.map
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import {
|
|
2
|
+
IDEA_VIDEO_FORMATS,
|
|
3
|
+
figuresIn,
|
|
4
|
+
unsourcedClaims
|
|
5
|
+
} from "./chunk-4QEY2L6U.js";
|
|
6
|
+
import {
|
|
7
|
+
AD_SPEC_SCHEMA
|
|
8
|
+
} from "./chunk-PZXCWSKV.js";
|
|
9
|
+
|
|
10
|
+
// src/commands/creatives/make-model.ts
|
|
11
|
+
import { parse, parseDocument, Scalar, visit } from "yaml";
|
|
12
|
+
var REFERENCE_CANDIDATES = 6;
|
|
13
|
+
function isVideoIdea(idea) {
|
|
14
|
+
return IDEA_VIDEO_FORMATS.includes(idea.format);
|
|
15
|
+
}
|
|
16
|
+
var BY_TEMPERATURE = {
|
|
17
|
+
cold: { audienceTemperature: "0_cold", excludeBrandReliant: true },
|
|
18
|
+
warm: { audienceTemperature: "1_warm_engaged,2_hot_visited", excludeBrandReliant: true },
|
|
19
|
+
hot: { audienceTemperature: "3_customer" }
|
|
20
|
+
};
|
|
21
|
+
function referenceSearchFor(idea, temperature, excludeAdvertiser) {
|
|
22
|
+
return {
|
|
23
|
+
query: idea.message,
|
|
24
|
+
scope: "followed-first",
|
|
25
|
+
platform: "meta",
|
|
26
|
+
format: "static",
|
|
27
|
+
formatPattern: idea.format,
|
|
28
|
+
awareness: idea.awareness,
|
|
29
|
+
...BY_TEMPERATURE[temperature],
|
|
30
|
+
...excludeAdvertiser ? { excludeAdvertiser } : {},
|
|
31
|
+
maxPerAdvertiser: 1,
|
|
32
|
+
limit: REFERENCE_CANDIDATES,
|
|
33
|
+
diverse: true
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function referenceSearchesFor(idea, temperature, excludeAdvertiser) {
|
|
37
|
+
const strict = referenceSearchFor(idea, temperature, excludeAdvertiser);
|
|
38
|
+
const { awareness: _awareness, ...anyStage } = strict;
|
|
39
|
+
const { audienceTemperature: _temperature, excludeBrandReliant: _reliant, ...anyViewer } = anyStage;
|
|
40
|
+
const { query: _query, ...winners } = anyStage;
|
|
41
|
+
const { query: _anyQuery, ...anyWinners } = anyViewer;
|
|
42
|
+
return [
|
|
43
|
+
strict,
|
|
44
|
+
anyStage,
|
|
45
|
+
{ ...anyViewer, scope: "all" },
|
|
46
|
+
{ ...winners, sort: "winner" },
|
|
47
|
+
{ ...anyWinners, scope: "all", sort: "winner" }
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
function pooledCandidates(searches, limit) {
|
|
51
|
+
const seen = /* @__PURE__ */ new Set();
|
|
52
|
+
const pooled = [];
|
|
53
|
+
for (const candidate of searches.flat()) {
|
|
54
|
+
if (!candidate.ad_id || seen.has(candidate.ad_id)) continue;
|
|
55
|
+
seen.add(candidate.ad_id);
|
|
56
|
+
pooled.push(candidate);
|
|
57
|
+
}
|
|
58
|
+
return pooled.slice(0, limit);
|
|
59
|
+
}
|
|
60
|
+
function fitsIdea(fit) {
|
|
61
|
+
return fit.verdict !== "reject" && missingElements(fit).length === 0;
|
|
62
|
+
}
|
|
63
|
+
function missingElements(fit) {
|
|
64
|
+
return fit.load_bearing.filter((l) => l.have === "missing" && !l.ours?.trim()).map((l) => l.element);
|
|
65
|
+
}
|
|
66
|
+
function definitionFieldsOf(idea, evidence) {
|
|
67
|
+
return {
|
|
68
|
+
idea: idea.id,
|
|
69
|
+
message: idea.message,
|
|
70
|
+
...evidence !== "explore" ? { evidence } : {},
|
|
71
|
+
angle: idea.angle,
|
|
72
|
+
persona: idea.who,
|
|
73
|
+
awareness: idea.awareness,
|
|
74
|
+
hypothesis: idea.why
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
var FRONTMATTER = /^---\r?\n([\s\S]*?\r?\n)?---/;
|
|
78
|
+
function readsAsText11(text) {
|
|
79
|
+
try {
|
|
80
|
+
return parse(text, { version: "1.1" }) === text;
|
|
81
|
+
} catch {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function setDefinitionFields(raw, fields) {
|
|
86
|
+
const match = raw.match(FRONTMATTER);
|
|
87
|
+
if (!match) return raw;
|
|
88
|
+
const doc = parseDocument(match[1] ?? "");
|
|
89
|
+
if (doc.errors.length > 0) return raw;
|
|
90
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
91
|
+
if (value === void 0) continue;
|
|
92
|
+
const node = doc.createNode(value);
|
|
93
|
+
visit(node, {
|
|
94
|
+
Scalar(_, scalar) {
|
|
95
|
+
if (typeof scalar.value === "string" && !readsAsText11(scalar.value)) {
|
|
96
|
+
scalar.type = Scalar.QUOTE_DOUBLE;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
doc.set(key, node);
|
|
101
|
+
}
|
|
102
|
+
return `---
|
|
103
|
+
${doc.toString()}---${raw.slice(match[0].length)}`;
|
|
104
|
+
}
|
|
105
|
+
function setSpecMessage(specJson, message) {
|
|
106
|
+
const spec = JSON.parse(specJson);
|
|
107
|
+
return `${JSON.stringify({ ...spec, message }, null, 2)}
|
|
108
|
+
`;
|
|
109
|
+
}
|
|
110
|
+
function withFitConcept(specJson, seeded) {
|
|
111
|
+
const spec = JSON.parse(specJson);
|
|
112
|
+
const held = spec.concept;
|
|
113
|
+
if (held?.reference_ad_id) return specJson;
|
|
114
|
+
return `${JSON.stringify({ ...spec, ...seeded }, null, 2)}
|
|
115
|
+
`;
|
|
116
|
+
}
|
|
117
|
+
function unsourcedCopyLines(specJson, corpus) {
|
|
118
|
+
const spec = JSON.parse(specJson);
|
|
119
|
+
const figures = figuresIn(corpus);
|
|
120
|
+
const lines = Array.isArray(spec.copy) ? spec.copy : [];
|
|
121
|
+
return lines.flatMap((line) => {
|
|
122
|
+
const text = typeof line === "object" && line !== null ? line.text : void 0;
|
|
123
|
+
return typeof text === "string" && unsourcedClaims(text, figures).length > 0 ? [text] : [];
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
var PHOTO_FORMATS = /photo|lifestyle|before_after|ugc|product|selfie|street/;
|
|
127
|
+
function ideaSpec(idea, who) {
|
|
128
|
+
const container = idea.format.replace(/_/g, " ");
|
|
129
|
+
return {
|
|
130
|
+
schema: AD_SPEC_SCHEMA,
|
|
131
|
+
viewer: { who },
|
|
132
|
+
message: idea.message,
|
|
133
|
+
copy: [{ text: "[TODO: the headline, in the customer's words]", lettering: "designed", role: "headline" }],
|
|
134
|
+
scene: {
|
|
135
|
+
description: `[TODO: what the viewer sees, as a ${container}, that shows: ${idea.message}]`,
|
|
136
|
+
look: PHOTO_FORMATS.test(idea.format) ? "photo" : "designed"
|
|
137
|
+
},
|
|
138
|
+
colors: [],
|
|
139
|
+
references: [],
|
|
140
|
+
logo: false,
|
|
141
|
+
third_party_brands: [],
|
|
142
|
+
scene_text: [],
|
|
143
|
+
mechanism: []
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export {
|
|
148
|
+
isVideoIdea,
|
|
149
|
+
referenceSearchesFor,
|
|
150
|
+
pooledCandidates,
|
|
151
|
+
fitsIdea,
|
|
152
|
+
missingElements,
|
|
153
|
+
definitionFieldsOf,
|
|
154
|
+
setDefinitionFields,
|
|
155
|
+
setSpecMessage,
|
|
156
|
+
withFitConcept,
|
|
157
|
+
unsourcedCopyLines,
|
|
158
|
+
ideaSpec
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=chunk-VNUNE5AB.js.map
|