@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,275 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FLOW_ACCOUNT_ONLY_KINDS,
|
|
3
|
+
FLOW_AGENT_DESTINATION_KINDS,
|
|
4
|
+
FLOW_RESOURCE_NODE_TYPES,
|
|
5
|
+
FLOW_SECRET_FIELDS,
|
|
6
|
+
FLOW_SECRET_SIDE_EFFECT_TYPES,
|
|
7
|
+
flowCatalogEntry,
|
|
8
|
+
isFlowOauthSideEffect
|
|
9
|
+
} from "./chunk-7EPXVICM.js";
|
|
10
|
+
import {
|
|
11
|
+
apiPost
|
|
12
|
+
} from "./chunk-XBOK23HI.js";
|
|
13
|
+
import {
|
|
14
|
+
writeJson
|
|
15
|
+
} from "./chunk-NU7JSWVA.js";
|
|
16
|
+
|
|
17
|
+
// src/commands/flows/shared.ts
|
|
18
|
+
import { existsSync, readdirSync, readFileSync, writeFileSync } from "fs";
|
|
19
|
+
import { join } from "path";
|
|
20
|
+
var FLOWS_DIR = "src/lib/flow-engine/flows";
|
|
21
|
+
function flowsDir() {
|
|
22
|
+
let dir = process.cwd();
|
|
23
|
+
for (let i = 0; i < 6; i++) {
|
|
24
|
+
const candidate = join(dir, FLOWS_DIR);
|
|
25
|
+
if (existsSync(candidate)) {
|
|
26
|
+
return candidate;
|
|
27
|
+
}
|
|
28
|
+
const parent = join(dir, "..");
|
|
29
|
+
if (parent === dir) {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
dir = parent;
|
|
33
|
+
}
|
|
34
|
+
return join(process.cwd(), FLOWS_DIR);
|
|
35
|
+
}
|
|
36
|
+
function failLocal(message) {
|
|
37
|
+
writeJson({ ok: false, error: { code: "NOT_FOUND", message } });
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
function listFlowSlugs() {
|
|
41
|
+
const dir = flowsDir();
|
|
42
|
+
if (!existsSync(dir)) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
return readdirSync(dir, { withFileTypes: true }).filter((entry) => entry.isDirectory() && !entry.name.startsWith("_") && entry.name !== ".gitkeep").map((entry) => entry.name).sort();
|
|
46
|
+
}
|
|
47
|
+
function flowDataPath(slug) {
|
|
48
|
+
return join(flowsDir(), slug, "_data.json");
|
|
49
|
+
}
|
|
50
|
+
function writeFlowTree(slug, tree) {
|
|
51
|
+
writeFileSync(flowDataPath(slug), `${JSON.stringify(tree, null, 2)}
|
|
52
|
+
`, "utf-8");
|
|
53
|
+
}
|
|
54
|
+
function walkNodes(node, acc = []) {
|
|
55
|
+
if (!node || typeof node !== "object") return acc;
|
|
56
|
+
acc.push(node);
|
|
57
|
+
if (Array.isArray(node.children)) {
|
|
58
|
+
for (const child of node.children) walkNodes(child, acc);
|
|
59
|
+
}
|
|
60
|
+
return acc;
|
|
61
|
+
}
|
|
62
|
+
function collectSideEffects(tree) {
|
|
63
|
+
return walkNodes(tree).flatMap(
|
|
64
|
+
(node) => Array.isArray(node.sideEffects) ? node.sideEffects.filter((sideEffect) => Boolean(sideEffect) && typeof sideEffect === "object").map((sideEffect) => ({ node, sideEffect })) : []
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function sealedSideEffects(tree) {
|
|
68
|
+
return collectSideEffects(tree).flatMap(({ sideEffect }) => {
|
|
69
|
+
const { id, type, encryptedConfig } = sideEffect;
|
|
70
|
+
const sealed = typeof id === "string" && typeof type === "string" && FLOW_SECRET_SIDE_EFFECT_TYPES.includes(type) && typeof encryptedConfig === "string" && encryptedConfig.length > 0;
|
|
71
|
+
return sealed ? [{ sideEffectId: id, type, encryptedConfig }] : [];
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function describeSettings(settings) {
|
|
75
|
+
if (typeof settings.email === "string") {
|
|
76
|
+
return `to ${settings.email}${typeof settings.subject === "string" ? ` \xB7 subject "${settings.subject}"` : ""}`;
|
|
77
|
+
}
|
|
78
|
+
return Object.entries(settings).filter(([, value]) => typeof value === "string" || typeof value === "number").map(([key, value]) => `${key}: ${String(value)}`).join(" \xB7 ");
|
|
79
|
+
}
|
|
80
|
+
function withSettings(rows, settingsById) {
|
|
81
|
+
return rows.map((row) => {
|
|
82
|
+
const settings = row.sideEffectId ? settingsById[row.sideEffectId] : void 0;
|
|
83
|
+
const described = settings ? describeSettings(settings) : "";
|
|
84
|
+
return described ? { ...row, status: `${row.status} \u2192 ${described}` } : row;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function flowExists(slug) {
|
|
88
|
+
return existsSync(join(flowsDir(), slug, "_data.json"));
|
|
89
|
+
}
|
|
90
|
+
function readFlowTree(slug) {
|
|
91
|
+
const path = join(flowsDir(), slug, "_data.json");
|
|
92
|
+
if (!existsSync(path)) {
|
|
93
|
+
failLocal(`No form "${slug}". Run "baker flows list" to see the forms in this workspace.`);
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
return JSON.parse(readFileSync(path, "utf-8"));
|
|
97
|
+
} catch (error) {
|
|
98
|
+
failLocal(`Could not read form "${slug}": ${error instanceof Error ? error.message : String(error)}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function isConfigured(value) {
|
|
102
|
+
return typeof value === "string" && value.length > 0;
|
|
103
|
+
}
|
|
104
|
+
function nodeMeta(record) {
|
|
105
|
+
const nodeId = typeof record.id === "string" ? record.id : "";
|
|
106
|
+
const nodeName = typeof record.name === "string" ? record.name : void 0;
|
|
107
|
+
return { nodeId, ...nodeName ? { nodeName } : {} };
|
|
108
|
+
}
|
|
109
|
+
function widgetNodeStatus(record, meta) {
|
|
110
|
+
const nodeData = record.nodeData;
|
|
111
|
+
const nodeType = nodeData?.type;
|
|
112
|
+
if (typeof nodeType !== "string" || !FLOW_RESOURCE_NODE_TYPES.includes(nodeType)) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
const external = nodeData?.form?.external;
|
|
116
|
+
const selected = external != null && typeof external === "object";
|
|
117
|
+
const name = selected ? external.name : void 0;
|
|
118
|
+
return {
|
|
119
|
+
...meta,
|
|
120
|
+
target: "node",
|
|
121
|
+
kind: nodeType,
|
|
122
|
+
status: selected ? `${nodeType} \u2014 selected${typeof name === "string" ? ` "${name}"` : ""}` : `${nodeType} \u2014 not selected`,
|
|
123
|
+
needsInput: !selected
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function sideEffectNeedsInput(raw) {
|
|
127
|
+
const effect = raw;
|
|
128
|
+
const type = effect?.type;
|
|
129
|
+
if (typeof type !== "string" || !FLOW_SECRET_SIDE_EFFECT_TYPES.includes(type)) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
const configured = isConfigured(effect?.encryptedConfig);
|
|
133
|
+
if (!isFlowOauthSideEffect(type)) return !configured;
|
|
134
|
+
return !isConfigured(effect?.oauthProviderId) || !configured;
|
|
135
|
+
}
|
|
136
|
+
function trackingStatus(effect, type, meta) {
|
|
137
|
+
if (flowCatalogEntry("side-effect", type)?.owners?.tagIds !== "tags") return null;
|
|
138
|
+
const tags = Array.isArray(effect.tagIds) ? effect.tagIds.length : 0;
|
|
139
|
+
const event = typeof effect.eventName === "string" ? ` "${effect.eventName}"` : "";
|
|
140
|
+
return {
|
|
141
|
+
...meta,
|
|
142
|
+
target: "sideEffect",
|
|
143
|
+
...typeof effect.id === "string" ? { sideEffectId: effect.id } : {},
|
|
144
|
+
kind: type,
|
|
145
|
+
status: `${type}${event} \u2014 ${tags > 0 ? `[${tags} tag${tags === 1 ? "" : "s"}]` : "[no tag]"}`,
|
|
146
|
+
needsInput: false
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function sideEffectStatus(raw, meta) {
|
|
150
|
+
const effect = raw;
|
|
151
|
+
const type = effect?.type;
|
|
152
|
+
if (typeof type !== "string") return null;
|
|
153
|
+
if (!FLOW_SECRET_SIDE_EFFECT_TYPES.includes(type)) {
|
|
154
|
+
return effect ? trackingStatus(effect, type, meta) : null;
|
|
155
|
+
}
|
|
156
|
+
const configured = isConfigured(effect?.encryptedConfig);
|
|
157
|
+
const oauth = isFlowOauthSideEffect(type);
|
|
158
|
+
const connected = isConfigured(effect?.oauthProviderId);
|
|
159
|
+
const needs = FLOW_SECRET_FIELDS[type];
|
|
160
|
+
const status = oauth ? `${type} \u2014 connection ${connected ? "[connected]" : "[needs connection]"}, config ${configured ? "[set]" : "[missing]"}` : configured ? `${type} \u2014 [configured]` : `${type} \u2014 [missing]${needs.length > 0 ? ` (needs: ${needs.join(", ")})` : ""}`;
|
|
161
|
+
return {
|
|
162
|
+
...meta,
|
|
163
|
+
target: "sideEffect",
|
|
164
|
+
...typeof effect?.id === "string" ? { sideEffectId: effect.id } : {},
|
|
165
|
+
kind: type,
|
|
166
|
+
status,
|
|
167
|
+
needsInput: sideEffectNeedsInput(effect)
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
function requestFlowInputCall(slug, status) {
|
|
171
|
+
const args = status.target === "node" ? `{ target: "node", flowSlug: "${slug}", nodeId: "${status.nodeId}", nodeType: "${status.kind}" }` : `{ target: "sideEffect", flowSlug: "${slug}", nodeId: "${status.nodeId}", sideEffectId: "${status.sideEffectId}", sideEffectType: "${status.kind}" }`;
|
|
172
|
+
const card = `request_flow_input with ${args}`;
|
|
173
|
+
const target = status.target === "node" ? `--node ${status.nodeId}` : `--side-effect ${status.sideEffectId}`;
|
|
174
|
+
const fallback = "only if nothing is connected or several could be meant";
|
|
175
|
+
if (status.kind === "email") {
|
|
176
|
+
return `baker flows connect ${slug} ${target} --email "<who receives each lead, comma-separated>" --subject "<New lead \u2014 the Form's name>"`;
|
|
177
|
+
}
|
|
178
|
+
if (status.kind === "httpWebhook") {
|
|
179
|
+
return `baker flows connect ${slug} ${target} --url <https address> \u2014 only a webhook that needs a token or password goes to the user: ${card}`;
|
|
180
|
+
}
|
|
181
|
+
if (status.kind === "hubspotForm") {
|
|
182
|
+
return `baker flows connect ${slug} ${target} --hubspot-form <formId from baker hubspot forms list> \u2014 ${fallback}: ${card}`;
|
|
183
|
+
}
|
|
184
|
+
if (status.kind === "hubspot" || status.kind === "hubspotMeeting") {
|
|
185
|
+
const list = status.kind === "hubspot" ? "forms view <id>" : "meetings view <slug>";
|
|
186
|
+
return `write \`baker hubspot ${list} --as-node\` into the step's form.external \u2014 ${fallback}: ${card}`;
|
|
187
|
+
}
|
|
188
|
+
if (FLOW_ACCOUNT_ONLY_KINDS.includes(status.kind)) {
|
|
189
|
+
return `baker flows connect ${slug} ${target} \u2014 ${fallback}: ${card}`;
|
|
190
|
+
}
|
|
191
|
+
if (FLOW_AGENT_DESTINATION_KINDS.includes(status.kind)) {
|
|
192
|
+
const sheet = status.kind === "googleSpreadsheet" ? ' (or --new-sheet "<title>" --columns "\u2026")' : "";
|
|
193
|
+
return `baker flows connect ${slug} ${target} --resource <id from baker flows options ${status.kind}>${sheet} \u2014 ${fallback}: ${card}`;
|
|
194
|
+
}
|
|
195
|
+
return card;
|
|
196
|
+
}
|
|
197
|
+
function collectConfigStatus(node, acc) {
|
|
198
|
+
if (!node || typeof node !== "object") {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const record = node;
|
|
202
|
+
const meta = nodeMeta(record);
|
|
203
|
+
const widget = widgetNodeStatus(record, meta);
|
|
204
|
+
if (widget) {
|
|
205
|
+
acc.push(widget);
|
|
206
|
+
}
|
|
207
|
+
if (Array.isArray(record.sideEffects)) {
|
|
208
|
+
for (const raw of record.sideEffects) {
|
|
209
|
+
const status = sideEffectStatus(raw, meta);
|
|
210
|
+
if (status) {
|
|
211
|
+
acc.push(status);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (Array.isArray(record.children)) {
|
|
216
|
+
for (const child of record.children) {
|
|
217
|
+
collectConfigStatus(child, acc);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function redactTree(node) {
|
|
222
|
+
if (Array.isArray(node)) {
|
|
223
|
+
return node.map(redactTree);
|
|
224
|
+
}
|
|
225
|
+
if (!node || typeof node !== "object") {
|
|
226
|
+
return node;
|
|
227
|
+
}
|
|
228
|
+
const out = {};
|
|
229
|
+
for (const [key, value] of Object.entries(node)) {
|
|
230
|
+
if (key === "encryptedConfig") {
|
|
231
|
+
out[key] = isConfigured(value) ? "[configured]" : value;
|
|
232
|
+
} else {
|
|
233
|
+
out[key] = redactTree(value);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return out;
|
|
237
|
+
}
|
|
238
|
+
function stepNameKey(name) {
|
|
239
|
+
return name.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[-\s]+/g, "_").toUpperCase();
|
|
240
|
+
}
|
|
241
|
+
function isUsableStepNameKey(key) {
|
|
242
|
+
return /^[\p{ID_Start}$_][\p{ID_Continue}$]*$/u.test(key);
|
|
243
|
+
}
|
|
244
|
+
async function readSettings(tree) {
|
|
245
|
+
const sealed = sealedSideEffects(tree);
|
|
246
|
+
if (sealed.length === 0) return {};
|
|
247
|
+
try {
|
|
248
|
+
const { data } = await apiPost("/api/flows/destinations/reveal", {
|
|
249
|
+
items: sealed.map(({ type, encryptedConfig }) => ({ type, encryptedConfig }))
|
|
250
|
+
});
|
|
251
|
+
return Object.fromEntries(sealed.map((item, index) => [item.sideEffectId, data.items[index] ?? null]));
|
|
252
|
+
} catch {
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
export {
|
|
258
|
+
flowsDir,
|
|
259
|
+
listFlowSlugs,
|
|
260
|
+
flowDataPath,
|
|
261
|
+
writeFlowTree,
|
|
262
|
+
walkNodes,
|
|
263
|
+
collectSideEffects,
|
|
264
|
+
withSettings,
|
|
265
|
+
flowExists,
|
|
266
|
+
readFlowTree,
|
|
267
|
+
sideEffectNeedsInput,
|
|
268
|
+
requestFlowInputCall,
|
|
269
|
+
collectConfigStatus,
|
|
270
|
+
redactTree,
|
|
271
|
+
stepNameKey,
|
|
272
|
+
isUsableStepNameKey,
|
|
273
|
+
readSettings
|
|
274
|
+
};
|
|
275
|
+
//# sourceMappingURL=chunk-HROZYQ5H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/flows/shared.ts"],"sourcesContent":["import { existsSync, readdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport {\n FLOW_ACCOUNT_ONLY_KINDS,\n FLOW_AGENT_DESTINATION_KINDS,\n FLOW_RESOURCE_NODE_TYPES,\n FLOW_SECRET_FIELDS,\n FLOW_SECRET_SIDE_EFFECT_TYPES,\n type FlowConfigStatus,\n type FlowSideEffectType,\n type FlowsRevealResponse,\n flowCatalogEntry,\n isFlowOauthSideEffect,\n} from \"@baker/api\";\nimport { apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\n\nconst FLOWS_DIR = \"src/lib/flow-engine/flows\";\n\n/** Resolve the flows directory from cwd (walk up a few levels to find the repo root). */\nexport function flowsDir(): string {\n let dir = process.cwd();\n for (let i = 0; i < 6; i++) {\n const candidate = join(dir, FLOWS_DIR);\n if (existsSync(candidate)) {\n return candidate;\n }\n const parent = join(dir, \"..\");\n if (parent === dir) {\n break;\n }\n dir = parent;\n }\n return join(process.cwd(), FLOWS_DIR);\n}\n\nexport function failLocal(message: string): never {\n writeJson({ ok: false, error: { code: \"NOT_FOUND\", message } });\n process.exit(1);\n}\n\nexport function listFlowSlugs(): string[] {\n const dir = flowsDir();\n if (!existsSync(dir)) {\n return [];\n }\n return readdirSync(dir, { withFileTypes: true })\n .filter((entry) => entry.isDirectory() && !entry.name.startsWith(\"_\") && entry.name !== \".gitkeep\")\n .map((entry) => entry.name)\n .sort();\n}\n\ntype AnyRecord = Record<string, unknown>;\n\n/** Absolute path to a form's `_data.json` — the one file the agent may edit. */\nexport function flowDataPath(slug: string): string {\n return join(flowsDir(), slug, \"_data.json\");\n}\n\n/**\n * Write a form tree back. Two-space JSON with a trailing newline, matching what\n * the scaffolder and the repo's markdown/JSON formatting already produce — a\n * write in any other shape turns a one-field edit into a whole-file diff.\n */\nexport function writeFlowTree(slug: string, tree: AnyRecord): void {\n writeFileSync(flowDataPath(slug), `${JSON.stringify(tree, null, 2)}\\n`, \"utf-8\");\n}\n\n/**\n * Every node in the tree, depth-first, parents before children.\n *\n * `Array.isArray`, not `?? []`: `_data.json` is hand-authored, so `children`\n * can be an object or a string, and `??` only guards null. These walkers are\n * what `flows show` and the pre-commit `normalize` run over, which are the two\n * things reached for when a form file is already wrong — throwing there would\n * take out the diagnosis along with the form.\n */\nexport function walkNodes(node: AnyRecord, acc: AnyRecord[] = []): AnyRecord[] {\n if (!node || typeof node !== \"object\") return acc;\n acc.push(node);\n if (Array.isArray(node.children)) {\n for (const child of node.children as AnyRecord[]) walkNodes(child, acc);\n }\n return acc;\n}\n\n/**\n * Every side effect in the tree, with the node that owns it.\n *\n * Walked rather than read off the root: side effects hang off whichever node\n * fires them, so a multi-step form keeps them on a child step. Reading\n * `tree.sideEffects` alone reports \"no side effects\" for a form that plainly\n * has one.\n */\nexport function collectSideEffects(tree: AnyRecord): Array<{ node: AnyRecord; sideEffect: AnyRecord }> {\n return walkNodes(tree).flatMap((node) =>\n Array.isArray(node.sideEffects)\n ? (node.sideEffects as AnyRecord[])\n .filter((sideEffect): sideEffect is AnyRecord => Boolean(sideEffect) && typeof sideEffect === \"object\")\n .map((sideEffect) => ({ node, sideEffect }))\n : [],\n );\n}\n\n/** A destination with something sealed in it, as `/api/flows/destinations/reveal` takes it. */\nexport type SealedSideEffect = { sideEffectId: string; type: FlowSideEffectType; encryptedConfig: string };\n\nexport function sealedSideEffects(tree: AnyRecord): SealedSideEffect[] {\n return collectSideEffects(tree).flatMap(({ sideEffect }) => {\n const { id, type, encryptedConfig } = sideEffect;\n const sealed =\n typeof id === \"string\" &&\n typeof type === \"string\" &&\n (FLOW_SECRET_SIDE_EFFECT_TYPES as readonly string[]).includes(type) &&\n typeof encryptedConfig === \"string\" &&\n encryptedConfig.length > 0;\n return sealed\n ? [{ sideEffectId: id as string, type: type as FlowSideEffectType, encryptedConfig: encryptedConfig as string }]\n : [];\n });\n}\n\nfunction describeSettings(settings: Record<string, unknown>): string {\n if (typeof settings.email === \"string\") {\n return `to ${settings.email}${typeof settings.subject === \"string\" ? ` · subject \"${settings.subject}\"` : \"\"}`;\n }\n return Object.entries(settings)\n .filter(([, value]) => typeof value === \"string\" || typeof value === \"number\")\n .map(([key, value]) => `${key}: ${String(value)}`)\n .join(\" · \");\n}\n\n/** Each sealed destination's row, saying where it sends — credentials never included (the backend strips them). */\nexport function withSettings(\n rows: FlowConfigStatus[],\n settingsById: Record<string, Record<string, unknown> | null>,\n): FlowConfigStatus[] {\n return rows.map((row) => {\n const settings = row.sideEffectId ? settingsById[row.sideEffectId] : undefined;\n const described = settings ? describeSettings(settings) : \"\";\n return described ? { ...row, status: `${row.status} → ${described}` } : row;\n });\n}\n\n/** Whether this workspace holds a Form by that slug. Never exits. */\nexport function flowExists(slug: string): boolean {\n return existsSync(join(flowsDir(), slug, \"_data.json\"));\n}\n\nexport function readFlowTree(slug: string): AnyRecord {\n const path = join(flowsDir(), slug, \"_data.json\");\n if (!existsSync(path)) {\n failLocal(`No form \"${slug}\". Run \"baker flows list\" to see the forms in this workspace.`);\n }\n try {\n return JSON.parse(readFileSync(path, \"utf-8\")) as AnyRecord;\n } catch (error) {\n failLocal(`Could not read form \"${slug}\": ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n\nfunction isConfigured(value: unknown): boolean {\n return typeof value === \"string\" && value.length > 0;\n}\n\ntype NodeMeta = { nodeId: string; nodeName?: string };\n\nfunction nodeMeta(record: AnyRecord): NodeMeta {\n const nodeId = typeof record.id === \"string\" ? record.id : \"\";\n const nodeName = typeof record.name === \"string\" ? record.name : undefined;\n return { nodeId, ...(nodeName ? { nodeName } : {}) };\n}\n\nfunction widgetNodeStatus(record: AnyRecord, meta: NodeMeta): FlowConfigStatus | null {\n const nodeData = record.nodeData as AnyRecord | undefined;\n const nodeType = nodeData?.type;\n if (typeof nodeType !== \"string\" || !(FLOW_RESOURCE_NODE_TYPES as readonly string[]).includes(nodeType)) {\n return null;\n }\n const external = (nodeData?.form as AnyRecord | undefined)?.external;\n const selected = external != null && typeof external === \"object\";\n const name = selected ? (external as AnyRecord).name : undefined;\n return {\n ...meta,\n target: \"node\",\n kind: nodeType,\n status: selected\n ? `${nodeType} — selected${typeof name === \"string\" ? ` \"${name}\"` : \"\"}`\n : `${nodeType} — not selected`,\n needsInput: !selected,\n };\n}\n\n/**\n * Whether this side effect still needs something only the user can give.\n *\n * `false` for a type that has no confidential half at all (a pixel takes a tag\n * ref and nothing else), so a caller can ask the question of any side effect\n * without first checking whether the question applies.\n */\nexport function sideEffectNeedsInput(raw: unknown): boolean {\n const effect = raw as AnyRecord | null;\n const type = effect?.type;\n if (typeof type !== \"string\" || !(FLOW_SECRET_SIDE_EFFECT_TYPES as readonly string[]).includes(type)) {\n return false;\n }\n const configured = isConfigured(effect?.encryptedConfig);\n if (!isFlowOauthSideEffect(type as FlowSideEffectType)) return !configured;\n return !isConfigured(effect?.oauthProviderId) || !configured;\n}\n\n/** A pixel has no confidential half; it is listed so a form's tracking is visible before anyone adds to it. */\nfunction trackingStatus(effect: AnyRecord, type: string, meta: NodeMeta): FlowConfigStatus | null {\n if (flowCatalogEntry(\"side-effect\", type)?.owners?.tagIds !== \"tags\") return null;\n const tags = Array.isArray(effect.tagIds) ? effect.tagIds.length : 0;\n const event = typeof effect.eventName === \"string\" ? ` \"${effect.eventName}\"` : \"\";\n return {\n ...meta,\n target: \"sideEffect\",\n ...(typeof effect.id === \"string\" ? { sideEffectId: effect.id } : {}),\n kind: type,\n status: `${type}${event} — ${tags > 0 ? `[${tags} tag${tags === 1 ? \"\" : \"s\"}]` : \"[no tag]\"}`,\n needsInput: false,\n };\n}\n\nfunction sideEffectStatus(raw: unknown, meta: NodeMeta): FlowConfigStatus | null {\n const effect = raw as AnyRecord | null;\n const type = effect?.type;\n if (typeof type !== \"string\") return null;\n if (!(FLOW_SECRET_SIDE_EFFECT_TYPES as readonly string[]).includes(type)) {\n return effect ? trackingStatus(effect, type, meta) : null;\n }\n const configured = isConfigured(effect?.encryptedConfig);\n const oauth = isFlowOauthSideEffect(type as FlowSideEffectType);\n const connected = isConfigured(effect?.oauthProviderId);\n const needs = FLOW_SECRET_FIELDS[type as FlowSideEffectType];\n const status = oauth\n ? `${type} — connection ${connected ? \"[connected]\" : \"[needs connection]\"}, config ${configured ? \"[set]\" : \"[missing]\"}`\n : configured\n ? `${type} — [configured]`\n : `${type} — [missing]${needs.length > 0 ? ` (needs: ${needs.join(\", \")})` : \"\"}`;\n return {\n ...meta,\n target: \"sideEffect\",\n ...(typeof effect?.id === \"string\" ? { sideEffectId: effect.id } : {}),\n kind: type,\n status,\n needsInput: sideEffectNeedsInput(effect),\n };\n}\n\n/**\n * The exact call that fills a still-unconfigured item — `baker flows connect`\n * for anything the agent can wire itself, `request_flow_input` for the rest\n * and as the fallback.\n *\n * Emitted as a ready-to-issue call rather than a reminder that one exists. The\n * argument set is not guessable — it needs the node id, and for a side effect\n * the side-effect id too — so a hint that only named the tool would still cost\n * the agent a `flows show --full` to assemble.\n */\nexport function requestFlowInputCall(slug: string, status: FlowConfigStatus): string {\n const args =\n status.target === \"node\"\n ? `{ target: \"node\", flowSlug: \"${slug}\", nodeId: \"${status.nodeId}\", nodeType: \"${status.kind}\" }`\n : `{ target: \"sideEffect\", flowSlug: \"${slug}\", nodeId: \"${status.nodeId}\", sideEffectId: \"${status.sideEffectId}\", sideEffectType: \"${status.kind}\" }`;\n const card = `request_flow_input with ${args}`;\n const target = status.target === \"node\" ? `--node ${status.nodeId}` : `--side-effect ${status.sideEffectId}`;\n const fallback = \"only if nothing is connected or several could be meant\";\n // Nothing in an email is confidential: you state it, and the user is never handed a card for it.\n if (status.kind === \"email\") {\n return `baker flows connect ${slug} ${target} --email \"<who receives each lead, comma-separated>\" --subject \"<New lead — the Form's name>\"`;\n }\n if (status.kind === \"httpWebhook\") {\n return `baker flows connect ${slug} ${target} --url <https address> — only a webhook that needs a token or password goes to the user: ${card}`;\n }\n if (status.kind === \"hubspotForm\") {\n return `baker flows connect ${slug} ${target} --hubspot-form <formId from baker hubspot forms list> — ${fallback}: ${card}`;\n }\n if (status.kind === \"hubspot\" || status.kind === \"hubspotMeeting\") {\n const list = status.kind === \"hubspot\" ? \"forms view <id>\" : \"meetings view <slug>\";\n return `write \\`baker hubspot ${list} --as-node\\` into the step's form.external — ${fallback}: ${card}`;\n }\n if ((FLOW_ACCOUNT_ONLY_KINDS as readonly string[]).includes(status.kind)) {\n return `baker flows connect ${slug} ${target} — ${fallback}: ${card}`;\n }\n if ((FLOW_AGENT_DESTINATION_KINDS as readonly string[]).includes(status.kind)) {\n const sheet = status.kind === \"googleSpreadsheet\" ? ' (or --new-sheet \"<title>\" --columns \"…\")' : \"\";\n return `baker flows connect ${slug} ${target} --resource <id from baker flows options ${status.kind}>${sheet} — ${fallback}: ${card}`;\n }\n return card;\n}\n\n/**\n * Walk a local flow tree collecting the configuration status of every\n * confidential field — WITHOUT decrypting anything. A present `encryptedConfig`\n * string / `oauthProviderId` / `form.external` object means \"configured\"; null /\n * absent means the agent still needs to run `request_flow_input` for it.\n */\nexport function collectConfigStatus(node: unknown, acc: FlowConfigStatus[]): void {\n if (!node || typeof node !== \"object\") {\n return;\n }\n const record = node as AnyRecord;\n const meta = nodeMeta(record);\n\n const widget = widgetNodeStatus(record, meta);\n if (widget) {\n acc.push(widget);\n }\n if (Array.isArray(record.sideEffects)) {\n for (const raw of record.sideEffects) {\n const status = sideEffectStatus(raw, meta);\n if (status) {\n acc.push(status);\n }\n }\n }\n if (Array.isArray(record.children)) {\n for (const child of record.children) {\n collectConfigStatus(child, acc);\n }\n }\n}\n\n/** Replace opaque ciphertext with a status marker so `--full` stays readable and never leaks noise. */\nexport function redactTree(node: unknown): unknown {\n if (Array.isArray(node)) {\n return node.map(redactTree);\n }\n if (!node || typeof node !== \"object\") {\n return node;\n }\n const out: AnyRecord = {};\n for (const [key, value] of Object.entries(node as AnyRecord)) {\n if (key === \"encryptedConfig\") {\n out[key] = isConfigured(value) ? \"[configured]\" : value;\n } else {\n out[key] = redactTree(value);\n }\n }\n return out;\n}\n\n/**\n * The constant a step's name becomes in the generated `_query.ts`.\n *\n * Byte-for-byte the scaffold's own `toScreamingSnake`\n * (`__tooling__/checks/base/flow-typed/flow-typed.mjs`), which is the only implementation\n * that decides anything: the watcher writes `export const <key> = \"<node id>\";`\n * for every step and throws `Duplicate flow node name` when two steps produce\n * the same one. `flows-step-name-key.test.ts` pins the two together.\n *\n * It is copied rather than imported because the CLI ships as a binary into a\n * Session Runtime and the scaffold ships as files — there is no module boundary\n * they share. The copy that was here before was NOT this rule: it uppercased and\n * squashed every non-alphanumeric run, which agrees on `Contact Info` and\n * disagrees on `contactInfo` (`CONTACTINFO` here, `CONTACT_INFO` there). So\n * `add-node` waved through a name that collided in the generator, the watcher\n * then threw, and `_query.ts` stopped regenerating for the whole form.\n */\nexport function stepNameKey(name: string): string {\n return name\n .replace(/([a-z])([A-Z])/g, \"$1_$2\")\n .replace(/[-\\s]+/g, \"_\")\n .toUpperCase();\n}\n\n/**\n * Whether that constant is one TypeScript will accept.\n *\n * `flow-typed.mjs` interpolates the key straight into `export const <key> = …`\n * without checking, so a step called \"1. Your details\" or \"Thanks!\" writes a\n * `_query.ts` that is a syntax error, and the whole workspace stops building —\n * a failure whose message names the generated file rather than the step that\n * caused it. `add-node` is where a name is minted, so it is where this is worth\n * catching.\n *\n * The real identifier grammar, not `[A-Z0-9_]`: this product is Spanish-first\n * and `INFORMACIÓN_DE_CONTACTO` is both a legal identifier and an ordinary step\n * name. Rejecting it would be the check being wrong, not the name.\n */\nexport function isUsableStepNameKey(key: string): boolean {\n return /^[\\p{ID_Start}$_][\\p{ID_Continue}$]*$/u.test(key);\n}\n\n/**\n * What each sealed destination holds, minus credentials — so \"add Fran to the\n * leads email\" starts from who gets it today instead of a card for the user.\n * A destination Baker would not open for this company (sealed for another,\n * or saved before destinations recorded whose they are) maps to null; the whole call failing\n * returns null. `flows show` leaves those rows as they were, and `connect`\n * refuses to overwrite what it cannot see.\n */\nexport async function readSettings(\n tree: Record<string, unknown>,\n): Promise<Record<string, Record<string, unknown> | null> | null> {\n const sealed = sealedSideEffects(tree);\n if (sealed.length === 0) return {};\n try {\n const { data } = await apiPost<FlowsRevealResponse>(\"/api/flows/destinations/reveal\", {\n items: sealed.map(({ type, encryptedConfig }) => ({ type, encryptedConfig })),\n });\n return Object.fromEntries(sealed.map((item, index) => [item.sideEffectId, data.items[index] ?? null]));\n } catch {\n return null;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isRemoteUrl
|
|
3
|
+
} from "./chunk-PBA3YCZA.js";
|
|
4
|
+
import {
|
|
5
|
+
detectImageContentType,
|
|
6
|
+
uploadLocalImage
|
|
7
|
+
} from "./chunk-75FDTDLH.js";
|
|
8
|
+
import {
|
|
9
|
+
IMAGE_GENERATE_MODELS,
|
|
10
|
+
MODEL_REGISTRY,
|
|
11
|
+
VIDEO_GENERATE_MODELS
|
|
12
|
+
} from "./chunk-CAMX6OHF.js";
|
|
13
|
+
import {
|
|
14
|
+
ApiError,
|
|
15
|
+
apiPost
|
|
16
|
+
} from "./chunk-XBOK23HI.js";
|
|
17
|
+
|
|
18
|
+
// src/commands/studio/modelOptions.ts
|
|
19
|
+
function unionOfStringEnum(node, models, param) {
|
|
20
|
+
const values = /* @__PURE__ */ new Set();
|
|
21
|
+
for (const model of models) {
|
|
22
|
+
const schema = MODEL_REGISTRY[node][model]?.params[param];
|
|
23
|
+
if (schema?.kind === "string") for (const value of schema.enum ?? []) values.add(value);
|
|
24
|
+
}
|
|
25
|
+
return [...values];
|
|
26
|
+
}
|
|
27
|
+
function unionOfNumberEnum(node, models, param) {
|
|
28
|
+
const values = /* @__PURE__ */ new Set();
|
|
29
|
+
for (const model of models) {
|
|
30
|
+
const schema = MODEL_REGISTRY[node][model]?.params[param];
|
|
31
|
+
if (schema?.kind === "number") for (const value of schema.enum ?? []) values.add(value);
|
|
32
|
+
}
|
|
33
|
+
return [...values].sort((a, b) => a - b);
|
|
34
|
+
}
|
|
35
|
+
var IMAGE_MODEL_IDS = [...IMAGE_GENERATE_MODELS];
|
|
36
|
+
var VIDEO_MODEL_IDS = [...VIDEO_GENERATE_MODELS];
|
|
37
|
+
var IMAGE_SIZES = unionOfStringEnum("image_generate", IMAGE_GENERATE_MODELS, "image_size");
|
|
38
|
+
var IMAGE_QUALITIES = unionOfStringEnum("image_generate", IMAGE_GENERATE_MODELS, "quality");
|
|
39
|
+
var CLIP_RESOLUTIONS = unionOfStringEnum("video_generate", VIDEO_GENERATE_MODELS, "resolution");
|
|
40
|
+
var CLIP_DURATIONS = unionOfNumberEnum("video_generate", VIDEO_GENERATE_MODELS, "duration");
|
|
41
|
+
var CLIP_PERSON_GENERATION = unionOfStringEnum("video_generate", VIDEO_GENERATE_MODELS, "person_generation");
|
|
42
|
+
|
|
43
|
+
// src/commands/studio/references.ts
|
|
44
|
+
var LIBRARY_ID_RE = /^[a-z0-9]{16,}$/i;
|
|
45
|
+
var FILE_EXTENSION_RE = /\.[a-z0-9]{2,5}$/i;
|
|
46
|
+
var PATH_HINT_RE = /[/\\]/;
|
|
47
|
+
function classify(entry) {
|
|
48
|
+
if (isRemoteUrl(entry)) return { kind: "url", value: entry };
|
|
49
|
+
if (PATH_HINT_RE.test(entry) || FILE_EXTENSION_RE.test(entry)) return { kind: "path", value: entry };
|
|
50
|
+
if (LIBRARY_ID_RE.test(entry)) return { kind: "id", value: entry };
|
|
51
|
+
throw new ApiError(
|
|
52
|
+
"VALIDATION_ERROR",
|
|
53
|
+
`"${entry}" is not a library image id, a file path, or an image URL. Pass a comma-separated mix of those.`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
function parseImageRefs(spec) {
|
|
57
|
+
return spec.split(",").map((entry) => entry.trim()).filter(Boolean).map(classify);
|
|
58
|
+
}
|
|
59
|
+
var defaultDeps = {
|
|
60
|
+
ingest: (url) => apiPost("/api/images/ingest", { url, source: "uploaded" }),
|
|
61
|
+
upload: (path) => uploadLocalImage({ file: path, contentType: detectImageContentType(path), source: "uploaded" })
|
|
62
|
+
};
|
|
63
|
+
async function resolveLibraryImageIds(spec, limit, deps = defaultDeps) {
|
|
64
|
+
const refs = parseImageRefs(spec);
|
|
65
|
+
if (limit && refs.length > limit.max) {
|
|
66
|
+
throw new ApiError("VALIDATION_ERROR", limit.refuse(refs.length));
|
|
67
|
+
}
|
|
68
|
+
const imageIds = [];
|
|
69
|
+
const added = [];
|
|
70
|
+
for (const ref of refs) {
|
|
71
|
+
if (ref.kind === "id") {
|
|
72
|
+
imageIds.push(ref.value);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const { imageId } = ref.kind === "url" ? await deps.ingest(ref.value) : await deps.upload(ref.value).catch(uploadFailure(ref.value));
|
|
76
|
+
imageIds.push(imageId);
|
|
77
|
+
added.push(imageId);
|
|
78
|
+
}
|
|
79
|
+
return { imageIds, added };
|
|
80
|
+
}
|
|
81
|
+
function uploadFailure(path) {
|
|
82
|
+
return (error) => {
|
|
83
|
+
if (error instanceof ApiError) throw error;
|
|
84
|
+
throw new ApiError("VALIDATION_ERROR", `Could not read "${path}" as an image.`);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export {
|
|
89
|
+
IMAGE_MODEL_IDS,
|
|
90
|
+
VIDEO_MODEL_IDS,
|
|
91
|
+
IMAGE_SIZES,
|
|
92
|
+
IMAGE_QUALITIES,
|
|
93
|
+
CLIP_RESOLUTIONS,
|
|
94
|
+
CLIP_DURATIONS,
|
|
95
|
+
CLIP_PERSON_GENERATION,
|
|
96
|
+
resolveLibraryImageIds
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=chunk-HZUDRKGR.js.map
|