@koda-sl/baker-cli 0.558.0 → 0.559.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{account-ICRVGRGT.js → account-DUGYQJEM.js} +4 -4
- package/dist/{account-users-ENRQBEV4.js → account-users-BXJQ4XZV.js} +4 -4
- package/dist/{accounts-MQXVRASU.js → accounts-DXQ3DHMB.js} +3 -3
- package/dist/{accounts-4ZSFTWKA.js → accounts-KXQY6WKR.js} +5 -5
- package/dist/{actions-B2GTON6O.js → actions-LI43PTFN.js} +18 -18
- package/dist/{activecampaign-DCED2LJF.js → activecampaign-5A6YHDJW.js} +3 -3
- package/dist/{add-CSRB6GVJ.js → add-TJHGYZYH.js} +7 -2
- package/dist/add-TJHGYZYH.js.map +1 -0
- package/dist/{add-JCNXNGDP.js → add-W4HEMTFL.js} +2 -2
- package/dist/{add-SAPHQL5P.js → add-ZSKEB3CI.js} +3 -3
- package/dist/{ads-VYMFRGAC.js → ads-XXSBCX4B.js} +4 -4
- package/dist/{advertisers-A3Q53R2S.js → advertisers-KPVUVXZZ.js} +3 -3
- package/dist/{analytics-5P5DSD5U.js → analytics-4WBRNSUC.js} +3 -3
- package/dist/{analytics-XQ3X4EAF.js → analytics-XT4ANMLP.js} +6 -6
- package/dist/{assign-7UGEPUCD.js → assign-SQK4UF3I.js} +3 -3
- package/dist/{audience-size-VMGWVYVR.js → audience-size-5Y5Q6UVA.js} +3 -3
- package/dist/{audit-XG6BYA2E.js → audit-GOZNIXNM.js} +3 -3
- package/dist/{autocomplete-OOLUPUIJ.js → autocomplete-36S76BGA.js} +3 -3
- package/dist/{avatars-3GVMDI7P.js → avatars-SDQ5LCNG.js} +4 -4
- package/dist/{bid-pricing-TRQUA2RV.js → bid-pricing-6DFGC6YC.js} +4 -4
- package/dist/{brand-E3SSWHCN.js → brand-OISTKMY4.js} +2 -2
- package/dist/{brief-WLOO3Q5L.js → brief-2UXKUTFC.js} +12 -12
- package/dist/{campaign-groups-3475EWTI.js → campaign-groups-32LDB42N.js} +9 -9
- package/dist/{campaign-writes-UIS7E2DP.js → campaign-writes-62V55CNW.js} +3 -3
- package/dist/{campaigns-OQ6IQKGX.js → campaigns-I5GSGZDJ.js} +5 -5
- package/dist/{campaigns-LKE7G3YG.js → campaigns-OGNE4XHM.js} +12 -12
- package/dist/{canvas-W3RF6NGC.js → canvas-HGU7FJ34.js} +13 -13
- package/dist/{capabilities-HNCOIM5X.js → capabilities-EDXVGZXC.js} +3 -3
- package/dist/{chats-X6C6DUDX.js → chats-HFKSZWZD.js} +3 -3
- package/dist/{check-4J2ROARK.js → check-GRVUI3LI.js} +5 -5
- package/dist/{chunk-WDJIGWL2.js → chunk-26UW2GMK.js} +5 -5
- package/dist/{chunk-ZGLRYMIR.js → chunk-2LGDWOD7.js} +2 -2
- package/dist/{chunk-NPBF3YJO.js → chunk-37QHT7J4.js} +2 -2
- package/dist/{chunk-GN623LEL.js → chunk-4ICSKDI7.js} +22 -6
- package/dist/chunk-4ICSKDI7.js.map +1 -0
- package/dist/{chunk-2UGMSILE.js → chunk-5NJQXV4K.js} +3 -3
- package/dist/{chunk-PYS733U7.js → chunk-724E32DM.js} +3 -3
- package/dist/{chunk-SMZRJYV7.js → chunk-72JEATZ5.js} +3 -3
- package/dist/{chunk-AX5BGR4R.js → chunk-72VH4FPY.js} +2 -2
- package/dist/{chunk-YUXVZGGB.js → chunk-AHZIGJXD.js} +2 -2
- package/dist/{chunk-7QRHJJR5.js → chunk-AQ6LJ7EI.js} +2 -2
- package/dist/{chunk-UGRL642V.js → chunk-BS4PRGEJ.js} +2 -2
- package/dist/{chunk-UGRL642V.js.map → chunk-BS4PRGEJ.js.map} +1 -1
- package/dist/{chunk-2NHWXWPB.js → chunk-CZTKRP6M.js} +2 -2
- package/dist/{chunk-LLBTSJGC.js → chunk-DYWKYP7Z.js} +2 -2
- package/dist/{chunk-QIMTC2IW.js → chunk-EDWW3THE.js} +2 -2
- package/dist/{chunk-DZJREPT2.js → chunk-G3ZUMNLG.js} +3 -3
- package/dist/{chunk-BKLWKZCX.js → chunk-GTYVWDCC.js} +2 -2
- package/dist/{chunk-2KFN5CS7.js → chunk-HHMBHLX6.js} +2 -2
- package/dist/chunk-I7OJZ7QE.js +10 -0
- package/dist/chunk-I7OJZ7QE.js.map +1 -0
- package/dist/{chunk-GQEU6IKZ.js → chunk-J6KCVW6N.js} +2 -2
- package/dist/{chunk-SDDEECV2.js → chunk-KDTSXLY7.js} +2 -2
- package/dist/{chunk-6G4CVXIL.js → chunk-KE5TI23P.js} +2 -2
- package/dist/{chunk-IAZKXDWV.js → chunk-KNA3OWJC.js} +16 -2
- package/dist/{chunk-IAZKXDWV.js.map → chunk-KNA3OWJC.js.map} +1 -1
- package/dist/{chunk-XNGJVOXZ.js → chunk-KV4E4KGE.js} +3 -3
- package/dist/{chunk-ST5PZM7I.js → chunk-KY6Q4WLC.js} +2 -2
- package/dist/{chunk-KAOUWSXH.js → chunk-LIBSSGE4.js} +2 -2
- package/dist/{chunk-DG34CPA6.js → chunk-LWN3ZNZU.js} +2 -2
- package/dist/{chunk-B5K6KXV2.js → chunk-N34A56X7.js} +2 -2
- package/dist/{chunk-PU5UKJ33.js → chunk-N472TRB4.js} +2 -2
- package/dist/{chunk-G4MXOYLJ.js → chunk-NPDZ4EO6.js} +3 -3
- package/dist/{chunk-OJMALBCI.js → chunk-OEH7ANJJ.js} +2 -2
- package/dist/{chunk-WP5YCX3O.js → chunk-PBKUESJD.js} +3 -3
- package/dist/{chunk-GQTSGD5D.js → chunk-PZSOJYER.js} +3 -3
- package/dist/{chunk-SL2BRBIJ.js → chunk-QBCZLD3A.js} +9 -9
- package/dist/{chunk-VRTRMQM2.js → chunk-QKHH7YNN.js} +2 -2
- package/dist/{chunk-ZEK6D6SS.js → chunk-SKVQRTDO.js} +2 -2
- package/dist/{chunk-MVTPNWRQ.js → chunk-TK7VRZKM.js} +4 -2
- package/dist/{chunk-MVTPNWRQ.js.map → chunk-TK7VRZKM.js.map} +1 -1
- package/dist/{chunk-CP2A4P2P.js → chunk-TXWKDDF6.js} +2 -2
- package/dist/{chunk-TS2F2FXW.js → chunk-UB34H4VD.js} +5 -5
- package/dist/{chunk-WWTTPOVW.js → chunk-UZEKIMLY.js} +3 -3
- package/dist/{chunk-KPNMSZOM.js → chunk-V6N6UBOT.js} +2 -2
- package/dist/{chunk-P7ZLJLQH.js → chunk-VKYDHIBT.js} +2 -2
- package/dist/{chunk-KSQXQMDS.js → chunk-WLD443MX.js} +2 -2
- package/dist/{chunk-RSLVIXW3.js → chunk-WQIHLJAO.js} +6 -6
- package/dist/{chunk-BBW7DZPO.js → chunk-X2OVFCRC.js} +2 -2
- package/dist/{chunk-V3RYJ4K2.js → chunk-XGN3BGSL.js} +4 -4
- package/dist/{chunk-MDC36LWD.js → chunk-YS7T735Q.js} +2 -2
- package/dist/{chunk-FHN4QXZN.js → chunk-YXUIVOUL.js} +2 -2
- package/dist/{claim-RRSGEH6S.js → claim-NUUED375.js} +3 -3
- package/dist/cli.js +32 -32
- package/dist/{companies-L2CN7FG6.js → companies-3EKQ6PBV.js} +3 -3
- package/dist/{company-JFVUTAVA.js → company-35ZI77NI.js} +3 -3
- package/dist/{complete-AHUP2SHE.js → complete-V2HNULPO.js} +3 -3
- package/dist/{connect-HJO52PQR.js → connect-77K3A6WK.js} +6 -6
- package/dist/{conversation-Q27J7M75.js → conversation-MWBPIT4W.js} +3 -3
- package/dist/{conversions-6N2OWE6G.js → conversions-RXNIACU5.js} +8 -8
- package/dist/{create-KQUMF4HV.js → create-AE52ZZMG.js} +3 -3
- package/dist/{create-H6U75562.js → create-K2EUYE54.js} +11 -3
- package/dist/{create-H6U75562.js.map → create-K2EUYE54.js.map} +1 -1
- package/dist/{create-FWH3WEUW.js → create-L53KW6GN.js} +3 -3
- package/dist/{create-NJS7I2JX.js → create-RJHGT2S4.js} +3 -3
- package/dist/{creatives-U4YGQLOG.js → creatives-2JP24JNL.js} +9 -9
- package/dist/{creatives-4ODU5S2G.js → creatives-UPZU7BLY.js} +12 -12
- package/dist/{credentials-EJE4L5WS.js → credentials-WRC7ERSS.js} +3 -3
- package/dist/{critique-6FULD2C7.js → critique-CYV7JQAY.js} +3 -3
- package/dist/{critique-EALNNGJ3.js → critique-VTNN6A5I.js} +8 -8
- package/dist/{crm-ONS4PUP5.js → crm-2MZLMSEV.js} +4 -4
- package/dist/{crm-MSVXNPKM.js → crm-VO6ZBW64.js} +4 -4
- package/dist/{customers-DXOLSUXV.js → customers-MHQ72YBY.js} +5 -5
- package/dist/{delete-XWD37C4T.js → delete-5NEAIDA4.js} +2 -2
- package/dist/{delete-U7B4N7UA.js → delete-6WKVGKRF.js} +3 -3
- package/dist/{delete-ELTUNRSD.js → delete-QFASUSVU.js} +3 -3
- package/dist/{delete-TN47CJK7.js → delete-ULI3MVAD.js} +2 -2
- package/dist/{demographics-NGWLHRNF.js → demographics-5SXTDRFU.js} +3 -3
- package/dist/{discard-SBYNAHJX.js → discard-P4PGGYYO.js} +3 -3
- package/dist/{domain-UGVD7HIA.js → domain-RINRCQ5G.js} +3 -3
- package/dist/{download-VQCUPJA2.js → download-HPYGPNHN.js} +2 -2
- package/dist/{draft-3TZYIB5J.js → draft-4WPWILSX.js} +3 -3
- package/dist/{draft-OA35VOHO.js → draft-FWCF4Y6P.js} +4 -4
- package/dist/{draft-6V73CF5P.js → draft-M7XINDQU.js} +3 -3
- package/dist/{experiments-32DRJBJB.js → experiments-NULZPBF2.js} +4 -4
- package/dist/{extract-WEEJ6FTG.js → extract-Y3OZG5DZ.js} +4 -3
- package/dist/{extract-WEEJ6FTG.js.map → extract-Y3OZG5DZ.js.map} +1 -1
- package/dist/{facets-462KAZH7.js → facets-HIADYZQQ.js} +3 -3
- package/dist/{feedback-AWWQN2MR.js → feedback-WEZEKTCH.js} +12 -12
- package/dist/{feedback-ME5HYWT5.js → feedback-Y4AXR354.js} +3 -3
- package/dist/{feedback-record-G6N3MFMC.js → feedback-record-YZNGRSNR.js} +13 -13
- package/dist/{fetch-HVBXROZY.js → fetch-T6WPGAWP.js} +3 -3
- package/dist/{find-UB4JSORZ.js → find-TTJH5NVJ.js} +3 -2
- package/dist/{find-UB4JSORZ.js.map → find-TTJH5NVJ.js.map} +1 -1
- package/dist/{fit-XNWSY3ZM.js → fit-MLDFA4ZK.js} +5 -5
- package/dist/{flows-AX4LSQYT.js → flows-XWU2XNYP.js} +10 -10
- package/dist/{fonts-AZCIRKB4.js → fonts-RV5KUGFE.js} +5 -5
- package/dist/{forecast-ALJGK6RQ.js → forecast-E5QXQFKQ.js} +4 -4
- package/dist/{funnel-HLYGJU64.js → funnel-NMC3JWTF.js} +4 -4
- package/dist/{get-KQ46JY6B.js → get-AKTMYS57.js} +3 -3
- package/dist/{get-ZLCZOCUH.js → get-JQE7XWKL.js} +3 -3
- package/dist/{get-4NDYA3G6.js → get-MK6M4DKF.js} +2 -2
- package/dist/{get-JX5JVWH7.js → get-QS2A6YVM.js} +2 -2
- package/dist/{get-KNP2EQRI.js → get-UFCNLDE2.js} +2 -2
- package/dist/{gif-6244RM75.js → gif-TBKH7VSP.js} +3 -2
- package/dist/{gif-6244RM75.js.map → gif-TBKH7VSP.js.map} +1 -1
- package/dist/{google-CLX7IUEE.js → google-YDGZ2Q3M.js} +4 -3
- package/dist/{google-CLX7IUEE.js.map → google-YDGZ2Q3M.js.map} +1 -1
- package/dist/{google-ads-DYGNJEIT.js → google-ads-AFJV5ZJO.js} +3 -3
- package/dist/{history-H2MGZGPB.js → history-6RCRBB4Q.js} +3 -3
- package/dist/{history-W25VPQ57.js → history-T6Y5IR4V.js} +3 -3
- package/dist/{hubspot-D3TFC24J.js → hubspot-SNLOCDPF.js} +7 -7
- package/dist/{icon-2237C4LP.js → icon-CYUIAFTE.js} +3 -2
- package/dist/{icon-2237C4LP.js.map → icon-CYUIAFTE.js.map} +1 -1
- package/dist/{ideas-5AEA2RPO.js → ideas-VTBVERCN.js} +4 -4
- package/dist/{images-WL3KB35N.js → images-36DGQZMH.js} +20 -20
- package/dist/{ingest-3O4C75SL.js → ingest-MLIOEHL3.js} +11 -3
- package/dist/{ingest-3O4C75SL.js.map → ingest-MLIOEHL3.js.map} +1 -1
- package/dist/{ingest-5EFT6PCW.js → ingest-OJV3CYYK.js} +5 -4
- package/dist/{inspect-4NWXVI4R.js → inspect-6P2WNFAC.js} +3 -3
- package/dist/{keyword-metrics-CXGNLERO.js → keyword-metrics-IDMR3ES2.js} +3 -3
- package/dist/{keywords-for-site-OYMDRMMX.js → keywords-for-site-V3SGYZDW.js} +3 -3
- package/dist/{landing-PECCKQSW.js → landing-7PZPYD3M.js} +2 -2
- package/dist/{leads-GUA2XYPF.js → leads-TWABHSJH.js} +3 -3
- package/dist/{learn-ZRVONGFT.js → learn-MXJSGDVI.js} +4 -4
- package/dist/{library-RZI7QHRV.js → library-F4GB5X6G.js} +3 -2
- package/dist/{library-RZI7QHRV.js.map → library-F4GB5X6G.js.map} +1 -1
- package/dist/{line-item-writes-4FGW42W4.js → line-item-writes-2R7VSOWO.js} +3 -3
- package/dist/{line-items-BX2D3T6S.js → line-items-MY6JP2W6.js} +5 -5
- package/dist/{link-JUNNBOUE.js → link-LR5LSFTA.js} +3 -3
- package/dist/{linkedin-6NRMXGBT.js → linkedin-UJEBBO7G.js} +30 -30
- package/dist/{linkedin-person-QJ7BREUI.js → linkedin-person-5LJEMW54.js} +3 -3
- package/dist/{list-DPQMPO2N.js → list-5O5NB56G.js} +3 -3
- package/dist/{list-4PB3SUMX.js → list-6AAKH6UV.js} +3 -3
- package/dist/{list-QPTOZWLH.js → list-UYQOLFPN.js} +2 -2
- package/dist/{log-O3ABCKXB.js → log-LPY5KYGP.js} +3 -3
- package/dist/{logo-R34AWI4C.js → logo-SBIDRBA2.js} +4 -3
- package/dist/{make-DS2JT5N4.js → make-UK2OYKCZ.js} +15 -15
- package/dist/{map-3RDR7QYX.js → map-XEJOI63E.js} +4 -4
- package/dist/{mcp-G52VGFAY.js → mcp-Y43SKNHV.js} +2 -2
- package/dist/{media-sources-GJHD737X.js → media-sources-POL5DMD4.js} +2 -2
- package/dist/{members-ICR3O2XP.js → members-5EJVXTE7.js} +3 -3
- package/dist/{meme-NH4DAORT.js → meme-VR3IHBRW.js} +9 -1
- package/dist/meme-VR3IHBRW.js.map +1 -0
- package/dist/{normalize-WLP2AYUD.js → normalize-IOW2V6E7.js} +3 -3
- package/dist/{options-G35EJLMF.js → options-YD6XFRZV.js} +6 -6
- package/dist/{organization-N5XUAYZQ.js → organization-KORFOK7Q.js} +3 -3
- package/dist/{performance-YT2MD4R6.js → performance-BXSNPNC3.js} +4 -4
- package/dist/{performance-KHP7T3X7.js → performance-Z353JXHB.js} +3 -3
- package/dist/{pinterest-KZ7RIHRS.js → pinterest-42NLOZW4.js} +3 -2
- package/dist/{pinterest-KZ7RIHRS.js.map → pinterest-42NLOZW4.js.map} +1 -1
- package/dist/{posts-F7NFSUHV.js → posts-K3QTBX2B.js} +2 -2
- package/dist/{preview-YXDLYCIA.js → preview-3UGPTK44.js} +3 -3
- package/dist/{promoted-tweet-writes-JTGHVR6D.js → promoted-tweet-writes-3D6GG6K4.js} +3 -3
- package/dist/{promoted-tweets-HFUAOQLB.js → promoted-tweets-BGQJDEQ2.js} +3 -3
- package/dist/{publish-PTVM5UFZ.js → publish-DBUBFV5R.js} +11 -5
- package/dist/{publish-PTVM5UFZ.js.map → publish-DBUBFV5R.js.map} +1 -1
- package/dist/{reddit-3KAMZIPT.js → reddit-GPSRX4TI.js} +4 -4
- package/dist/{refresh-7EH4WBYS.js → refresh-3X45Q6ZM.js} +2 -2
- package/dist/{release-JLKYLTRG.js → release-PE7KBFGK.js} +3 -3
- package/dist/{remove-UW5W5FOH.js → remove-2A3XDOKA.js} +2 -2
- package/dist/{reopen-JULIHAMN.js → reopen-LHMLXG6G.js} +3 -3
- package/dist/{rerun-5JXFPGQO.js → rerun-S4VWOIKE.js} +17 -16
- package/dist/{rerun-5JXFPGQO.js.map → rerun-S4VWOIKE.js.map} +1 -1
- package/dist/{research-IZSCSXTD.js → research-55XA4Z2O.js} +2 -2
- package/dist/{research-3BWJCS7N.js → research-JN3JGEEL.js} +13 -13
- package/dist/{reset-QHZ3OIS6.js → reset-C5SDRQTX.js} +2 -2
- package/dist/{reset-WAH4GQSV.js → reset-IY7GNRLF.js} +2 -2
- package/dist/{resolve-AOZWSUYD.js → resolve-PCN7BR7U.js} +3 -3
- package/dist/{retry-UQ4OOYEZ.js → retry-2KYMH2IV.js} +2 -2
- package/dist/{retry-XASANWPI.js → retry-KUWJ4GGA.js} +2 -2
- package/dist/{revenue-YGPP7K6U.js → revenue-CRZRJJ7H.js} +4 -4
- package/dist/{rules-V4I5BVKB.js → rules-EKOXAK2O.js} +5 -5
- package/dist/{rules-add-U2Z56SMZ.js → rules-add-IC3SXNYW.js} +5 -5
- package/dist/{run-YNVT5DYJ.js → run-WUD5U5GY.js} +17 -16
- package/dist/{run-M5FRUIAM.js → run-Y4SEFETX.js} +3 -3
- package/dist/{scaffold-ad-HGI3JCBY.js → scaffold-ad-OJ4WOJM6.js} +10 -10
- package/dist/{scaffold-static-ad-LHVGQ5PM.js → scaffold-static-ad-EXUKKYSD.js} +21 -20
- package/dist/{scaffold-static-ad-LHVGQ5PM.js.map → scaffold-static-ad-EXUKKYSD.js.map} +1 -1
- package/dist/{scaffold-video-WEHH3SO6.js → scaffold-video-7PDZZSKD.js} +9 -9
- package/dist/{schedule-7T2DKJZ3.js → schedule-VCL2OPIL.js} +2 -2
- package/dist/{scheduled-agents-MKKHCNI6.js → scheduled-agents-YAHYCFDA.js} +11 -11
- package/dist/{schema-ID4NETCM.js → schema-L6DGAUB5.js} +4 -4
- package/dist/{screenshot-YRYAOP5E.js → screenshot-RR6RA6CN.js} +3 -2
- package/dist/{screenshot-YRYAOP5E.js.map → screenshot-RR6RA6CN.js.map} +1 -1
- package/dist/{search-XYENZFAC.js → search-OUJUEORX.js} +2 -2
- package/dist/{select-7E6J2FDA.js → select-R3NT7OI4.js} +11 -11
- package/dist/{set-prompt-BNKY5NSE.js → set-prompt-F3SYRT22.js} +8 -8
- package/dist/{setup-links-QV3LBVGK.js → setup-links-AHWFGUAO.js} +3 -3
- package/dist/{shopify-C5I3XHPR.js → shopify-BPQCUFFX.js} +3 -3
- package/dist/{site-NUQ5DHOQ.js → site-KYB2EL72.js} +4 -4
- package/dist/{sources-KS44MMM7.js → sources-JYOOLCOU.js} +6 -6
- package/dist/{sources-IVSFKLP6.js → sources-X4URMRLY.js} +6 -6
- package/dist/{stale-E32VHTTJ.js → stale-KFVY7LSB.js} +10 -10
- package/dist/{status-PPTYL45B.js → status-YVRZBK56.js} +3 -3
- package/dist/{sticker-GXCI4WL5.js → sticker-HMHR7QM7.js} +3 -2
- package/dist/{sticker-GXCI4WL5.js.map → sticker-HMHR7QM7.js.map} +1 -1
- package/dist/{stock-3FZPID6C.js → stock-IAQBUPGQ.js} +4 -3
- package/dist/{stock-3FZPID6C.js.map → stock-IAQBUPGQ.js.map} +1 -1
- package/dist/{sync-G3LSQL6F.js → sync-KJEXXD3P.js} +2 -2
- package/dist/{sync-definition-DR6BUB5O.js → sync-definition-BQUVWLCC.js} +9 -9
- package/dist/{tags-O6LGADB6.js → tags-7CEVWFEZ.js} +3 -3
- package/dist/{tags-BYLXFP34.js → tags-BU4KLB37.js} +4 -4
- package/dist/{tags-FMX7R65M.js → tags-HKR2GWXV.js} +2 -2
- package/dist/{tags-PXAPGDQB.js → tags-SKGPECNG.js} +3 -3
- package/dist/{tags-DHQQ3IWD.js → tags-ZLPLHP2G.js} +3 -3
- package/dist/{targeting-criteria-KJMRWCLU.js → targeting-criteria-4C4M3XLJ.js} +3 -3
- package/dist/{targets-2H2YUI2I.js → targets-C5K2OH3B.js} +3 -3
- package/dist/{testimonials-G6Z327H6.js → testimonials-OJV7EFGS.js} +7 -7
- package/dist/{top-companies-QY6HO4NF.js → top-companies-IZQOKMBU.js} +3 -3
- package/dist/{transcript-LWREF7CB.js → transcript-K6W7VRA5.js} +3 -3
- package/dist/{translate-UUDDDYOQ.js → translate-M6W6KZZS.js} +13 -13
- package/dist/{triggers-RXUVP5CL.js → triggers-CQFQSODZ.js} +3 -3
- package/dist/{unlink-6JN54ATU.js → unlink-ITGOP2YH.js} +3 -3
- package/dist/{unstage-WPBGIMDW.js → unstage-EAUF74PI.js} +3 -3
- package/dist/{update-KKNDQ6FN.js → update-GX26VDM4.js} +3 -3
- package/dist/{update-DCXG3L3J.js → update-HOFM27UT.js} +2 -2
- package/dist/{update-OV6PIXJT.js → update-N5NA3JTW.js} +3 -3
- package/dist/{update-F6JNU2S2.js → update-PCVDM7HO.js} +3 -3
- package/dist/{upload-LSEV74SF.js → upload-3ZGL4WHA.js} +8 -3
- package/dist/{upload-LSEV74SF.js.map → upload-3ZGL4WHA.js.map} +1 -1
- package/dist/{upload-YY74XE3T.js → upload-SPCZNAUN.js} +13 -6
- package/dist/{upload-YY74XE3T.js.map → upload-SPCZNAUN.js.map} +1 -1
- package/dist/{url-params-PFZVEDAM.js → url-params-H4LQAYXG.js} +3 -3
- package/dist/{use-D3SKAKUU.js → use-HYK67YKZ.js} +2 -2
- package/dist/{validate-PL73C4PD.js → validate-XHQ4MIW5.js} +11 -11
- package/dist/{videos-DSHCIXAI.js → videos-GY6YCGFH.js} +7 -7
- package/dist/{viewer-check-2XOG5HZT.js → viewer-check-UCNIAY7X.js} +6 -6
- package/dist/{web-GA6S2AAG.js → web-E7XDCTVJ.js} +3 -3
- package/dist/{winning-ads-F6UPR6IO.js → winning-ads-L7FHCD75.js} +3 -3
- package/dist/{write-commands-GBMOJMMW.js → write-commands-JESAYUEQ.js} +4 -4
- package/dist/{x-QX4JZDM4.js → x-ROAUMBHA.js} +6 -6
- package/package.json +1 -1
- package/dist/add-CSRB6GVJ.js.map +0 -1
- package/dist/chunk-GN623LEL.js.map +0 -1
- package/dist/meme-NH4DAORT.js.map +0 -1
- /package/dist/{account-ICRVGRGT.js.map → account-DUGYQJEM.js.map} +0 -0
- /package/dist/{account-users-ENRQBEV4.js.map → account-users-BXJQ4XZV.js.map} +0 -0
- /package/dist/{accounts-MQXVRASU.js.map → accounts-DXQ3DHMB.js.map} +0 -0
- /package/dist/{accounts-4ZSFTWKA.js.map → accounts-KXQY6WKR.js.map} +0 -0
- /package/dist/{actions-B2GTON6O.js.map → actions-LI43PTFN.js.map} +0 -0
- /package/dist/{activecampaign-DCED2LJF.js.map → activecampaign-5A6YHDJW.js.map} +0 -0
- /package/dist/{add-JCNXNGDP.js.map → add-W4HEMTFL.js.map} +0 -0
- /package/dist/{add-SAPHQL5P.js.map → add-ZSKEB3CI.js.map} +0 -0
- /package/dist/{ads-VYMFRGAC.js.map → ads-XXSBCX4B.js.map} +0 -0
- /package/dist/{advertisers-A3Q53R2S.js.map → advertisers-KPVUVXZZ.js.map} +0 -0
- /package/dist/{analytics-5P5DSD5U.js.map → analytics-4WBRNSUC.js.map} +0 -0
- /package/dist/{analytics-XQ3X4EAF.js.map → analytics-XT4ANMLP.js.map} +0 -0
- /package/dist/{assign-7UGEPUCD.js.map → assign-SQK4UF3I.js.map} +0 -0
- /package/dist/{audience-size-VMGWVYVR.js.map → audience-size-5Y5Q6UVA.js.map} +0 -0
- /package/dist/{audit-XG6BYA2E.js.map → audit-GOZNIXNM.js.map} +0 -0
- /package/dist/{autocomplete-OOLUPUIJ.js.map → autocomplete-36S76BGA.js.map} +0 -0
- /package/dist/{avatars-3GVMDI7P.js.map → avatars-SDQ5LCNG.js.map} +0 -0
- /package/dist/{bid-pricing-TRQUA2RV.js.map → bid-pricing-6DFGC6YC.js.map} +0 -0
- /package/dist/{brand-E3SSWHCN.js.map → brand-OISTKMY4.js.map} +0 -0
- /package/dist/{brief-WLOO3Q5L.js.map → brief-2UXKUTFC.js.map} +0 -0
- /package/dist/{campaign-groups-3475EWTI.js.map → campaign-groups-32LDB42N.js.map} +0 -0
- /package/dist/{campaign-writes-UIS7E2DP.js.map → campaign-writes-62V55CNW.js.map} +0 -0
- /package/dist/{campaigns-OQ6IQKGX.js.map → campaigns-I5GSGZDJ.js.map} +0 -0
- /package/dist/{campaigns-LKE7G3YG.js.map → campaigns-OGNE4XHM.js.map} +0 -0
- /package/dist/{canvas-W3RF6NGC.js.map → canvas-HGU7FJ34.js.map} +0 -0
- /package/dist/{capabilities-HNCOIM5X.js.map → capabilities-EDXVGZXC.js.map} +0 -0
- /package/dist/{chats-X6C6DUDX.js.map → chats-HFKSZWZD.js.map} +0 -0
- /package/dist/{check-4J2ROARK.js.map → check-GRVUI3LI.js.map} +0 -0
- /package/dist/{chunk-WDJIGWL2.js.map → chunk-26UW2GMK.js.map} +0 -0
- /package/dist/{chunk-ZGLRYMIR.js.map → chunk-2LGDWOD7.js.map} +0 -0
- /package/dist/{chunk-NPBF3YJO.js.map → chunk-37QHT7J4.js.map} +0 -0
- /package/dist/{chunk-2UGMSILE.js.map → chunk-5NJQXV4K.js.map} +0 -0
- /package/dist/{chunk-PYS733U7.js.map → chunk-724E32DM.js.map} +0 -0
- /package/dist/{chunk-SMZRJYV7.js.map → chunk-72JEATZ5.js.map} +0 -0
- /package/dist/{chunk-AX5BGR4R.js.map → chunk-72VH4FPY.js.map} +0 -0
- /package/dist/{chunk-YUXVZGGB.js.map → chunk-AHZIGJXD.js.map} +0 -0
- /package/dist/{chunk-7QRHJJR5.js.map → chunk-AQ6LJ7EI.js.map} +0 -0
- /package/dist/{chunk-2NHWXWPB.js.map → chunk-CZTKRP6M.js.map} +0 -0
- /package/dist/{chunk-LLBTSJGC.js.map → chunk-DYWKYP7Z.js.map} +0 -0
- /package/dist/{chunk-QIMTC2IW.js.map → chunk-EDWW3THE.js.map} +0 -0
- /package/dist/{chunk-DZJREPT2.js.map → chunk-G3ZUMNLG.js.map} +0 -0
- /package/dist/{chunk-BKLWKZCX.js.map → chunk-GTYVWDCC.js.map} +0 -0
- /package/dist/{chunk-2KFN5CS7.js.map → chunk-HHMBHLX6.js.map} +0 -0
- /package/dist/{chunk-GQEU6IKZ.js.map → chunk-J6KCVW6N.js.map} +0 -0
- /package/dist/{chunk-SDDEECV2.js.map → chunk-KDTSXLY7.js.map} +0 -0
- /package/dist/{chunk-6G4CVXIL.js.map → chunk-KE5TI23P.js.map} +0 -0
- /package/dist/{chunk-XNGJVOXZ.js.map → chunk-KV4E4KGE.js.map} +0 -0
- /package/dist/{chunk-ST5PZM7I.js.map → chunk-KY6Q4WLC.js.map} +0 -0
- /package/dist/{chunk-KAOUWSXH.js.map → chunk-LIBSSGE4.js.map} +0 -0
- /package/dist/{chunk-DG34CPA6.js.map → chunk-LWN3ZNZU.js.map} +0 -0
- /package/dist/{chunk-B5K6KXV2.js.map → chunk-N34A56X7.js.map} +0 -0
- /package/dist/{chunk-PU5UKJ33.js.map → chunk-N472TRB4.js.map} +0 -0
- /package/dist/{chunk-G4MXOYLJ.js.map → chunk-NPDZ4EO6.js.map} +0 -0
- /package/dist/{chunk-OJMALBCI.js.map → chunk-OEH7ANJJ.js.map} +0 -0
- /package/dist/{chunk-WP5YCX3O.js.map → chunk-PBKUESJD.js.map} +0 -0
- /package/dist/{chunk-GQTSGD5D.js.map → chunk-PZSOJYER.js.map} +0 -0
- /package/dist/{chunk-SL2BRBIJ.js.map → chunk-QBCZLD3A.js.map} +0 -0
- /package/dist/{chunk-VRTRMQM2.js.map → chunk-QKHH7YNN.js.map} +0 -0
- /package/dist/{chunk-ZEK6D6SS.js.map → chunk-SKVQRTDO.js.map} +0 -0
- /package/dist/{chunk-CP2A4P2P.js.map → chunk-TXWKDDF6.js.map} +0 -0
- /package/dist/{chunk-TS2F2FXW.js.map → chunk-UB34H4VD.js.map} +0 -0
- /package/dist/{chunk-WWTTPOVW.js.map → chunk-UZEKIMLY.js.map} +0 -0
- /package/dist/{chunk-KPNMSZOM.js.map → chunk-V6N6UBOT.js.map} +0 -0
- /package/dist/{chunk-P7ZLJLQH.js.map → chunk-VKYDHIBT.js.map} +0 -0
- /package/dist/{chunk-KSQXQMDS.js.map → chunk-WLD443MX.js.map} +0 -0
- /package/dist/{chunk-RSLVIXW3.js.map → chunk-WQIHLJAO.js.map} +0 -0
- /package/dist/{chunk-BBW7DZPO.js.map → chunk-X2OVFCRC.js.map} +0 -0
- /package/dist/{chunk-V3RYJ4K2.js.map → chunk-XGN3BGSL.js.map} +0 -0
- /package/dist/{chunk-MDC36LWD.js.map → chunk-YS7T735Q.js.map} +0 -0
- /package/dist/{chunk-FHN4QXZN.js.map → chunk-YXUIVOUL.js.map} +0 -0
- /package/dist/{claim-RRSGEH6S.js.map → claim-NUUED375.js.map} +0 -0
- /package/dist/{companies-L2CN7FG6.js.map → companies-3EKQ6PBV.js.map} +0 -0
- /package/dist/{company-JFVUTAVA.js.map → company-35ZI77NI.js.map} +0 -0
- /package/dist/{complete-AHUP2SHE.js.map → complete-V2HNULPO.js.map} +0 -0
- /package/dist/{connect-HJO52PQR.js.map → connect-77K3A6WK.js.map} +0 -0
- /package/dist/{conversation-Q27J7M75.js.map → conversation-MWBPIT4W.js.map} +0 -0
- /package/dist/{conversions-6N2OWE6G.js.map → conversions-RXNIACU5.js.map} +0 -0
- /package/dist/{create-KQUMF4HV.js.map → create-AE52ZZMG.js.map} +0 -0
- /package/dist/{create-FWH3WEUW.js.map → create-L53KW6GN.js.map} +0 -0
- /package/dist/{create-NJS7I2JX.js.map → create-RJHGT2S4.js.map} +0 -0
- /package/dist/{creatives-U4YGQLOG.js.map → creatives-2JP24JNL.js.map} +0 -0
- /package/dist/{creatives-4ODU5S2G.js.map → creatives-UPZU7BLY.js.map} +0 -0
- /package/dist/{credentials-EJE4L5WS.js.map → credentials-WRC7ERSS.js.map} +0 -0
- /package/dist/{critique-6FULD2C7.js.map → critique-CYV7JQAY.js.map} +0 -0
- /package/dist/{critique-EALNNGJ3.js.map → critique-VTNN6A5I.js.map} +0 -0
- /package/dist/{crm-ONS4PUP5.js.map → crm-2MZLMSEV.js.map} +0 -0
- /package/dist/{crm-MSVXNPKM.js.map → crm-VO6ZBW64.js.map} +0 -0
- /package/dist/{customers-DXOLSUXV.js.map → customers-MHQ72YBY.js.map} +0 -0
- /package/dist/{delete-XWD37C4T.js.map → delete-5NEAIDA4.js.map} +0 -0
- /package/dist/{delete-U7B4N7UA.js.map → delete-6WKVGKRF.js.map} +0 -0
- /package/dist/{delete-ELTUNRSD.js.map → delete-QFASUSVU.js.map} +0 -0
- /package/dist/{delete-TN47CJK7.js.map → delete-ULI3MVAD.js.map} +0 -0
- /package/dist/{demographics-NGWLHRNF.js.map → demographics-5SXTDRFU.js.map} +0 -0
- /package/dist/{discard-SBYNAHJX.js.map → discard-P4PGGYYO.js.map} +0 -0
- /package/dist/{domain-UGVD7HIA.js.map → domain-RINRCQ5G.js.map} +0 -0
- /package/dist/{download-VQCUPJA2.js.map → download-HPYGPNHN.js.map} +0 -0
- /package/dist/{draft-3TZYIB5J.js.map → draft-4WPWILSX.js.map} +0 -0
- /package/dist/{draft-OA35VOHO.js.map → draft-FWCF4Y6P.js.map} +0 -0
- /package/dist/{draft-6V73CF5P.js.map → draft-M7XINDQU.js.map} +0 -0
- /package/dist/{experiments-32DRJBJB.js.map → experiments-NULZPBF2.js.map} +0 -0
- /package/dist/{facets-462KAZH7.js.map → facets-HIADYZQQ.js.map} +0 -0
- /package/dist/{feedback-AWWQN2MR.js.map → feedback-WEZEKTCH.js.map} +0 -0
- /package/dist/{feedback-ME5HYWT5.js.map → feedback-Y4AXR354.js.map} +0 -0
- /package/dist/{feedback-record-G6N3MFMC.js.map → feedback-record-YZNGRSNR.js.map} +0 -0
- /package/dist/{fetch-HVBXROZY.js.map → fetch-T6WPGAWP.js.map} +0 -0
- /package/dist/{fit-XNWSY3ZM.js.map → fit-MLDFA4ZK.js.map} +0 -0
- /package/dist/{flows-AX4LSQYT.js.map → flows-XWU2XNYP.js.map} +0 -0
- /package/dist/{fonts-AZCIRKB4.js.map → fonts-RV5KUGFE.js.map} +0 -0
- /package/dist/{forecast-ALJGK6RQ.js.map → forecast-E5QXQFKQ.js.map} +0 -0
- /package/dist/{funnel-HLYGJU64.js.map → funnel-NMC3JWTF.js.map} +0 -0
- /package/dist/{get-KQ46JY6B.js.map → get-AKTMYS57.js.map} +0 -0
- /package/dist/{get-ZLCZOCUH.js.map → get-JQE7XWKL.js.map} +0 -0
- /package/dist/{get-4NDYA3G6.js.map → get-MK6M4DKF.js.map} +0 -0
- /package/dist/{get-JX5JVWH7.js.map → get-QS2A6YVM.js.map} +0 -0
- /package/dist/{get-KNP2EQRI.js.map → get-UFCNLDE2.js.map} +0 -0
- /package/dist/{google-ads-DYGNJEIT.js.map → google-ads-AFJV5ZJO.js.map} +0 -0
- /package/dist/{history-H2MGZGPB.js.map → history-6RCRBB4Q.js.map} +0 -0
- /package/dist/{history-W25VPQ57.js.map → history-T6Y5IR4V.js.map} +0 -0
- /package/dist/{hubspot-D3TFC24J.js.map → hubspot-SNLOCDPF.js.map} +0 -0
- /package/dist/{ideas-5AEA2RPO.js.map → ideas-VTBVERCN.js.map} +0 -0
- /package/dist/{images-WL3KB35N.js.map → images-36DGQZMH.js.map} +0 -0
- /package/dist/{ingest-5EFT6PCW.js.map → ingest-OJV3CYYK.js.map} +0 -0
- /package/dist/{inspect-4NWXVI4R.js.map → inspect-6P2WNFAC.js.map} +0 -0
- /package/dist/{keyword-metrics-CXGNLERO.js.map → keyword-metrics-IDMR3ES2.js.map} +0 -0
- /package/dist/{keywords-for-site-OYMDRMMX.js.map → keywords-for-site-V3SGYZDW.js.map} +0 -0
- /package/dist/{landing-PECCKQSW.js.map → landing-7PZPYD3M.js.map} +0 -0
- /package/dist/{leads-GUA2XYPF.js.map → leads-TWABHSJH.js.map} +0 -0
- /package/dist/{learn-ZRVONGFT.js.map → learn-MXJSGDVI.js.map} +0 -0
- /package/dist/{line-item-writes-4FGW42W4.js.map → line-item-writes-2R7VSOWO.js.map} +0 -0
- /package/dist/{line-items-BX2D3T6S.js.map → line-items-MY6JP2W6.js.map} +0 -0
- /package/dist/{link-JUNNBOUE.js.map → link-LR5LSFTA.js.map} +0 -0
- /package/dist/{linkedin-6NRMXGBT.js.map → linkedin-UJEBBO7G.js.map} +0 -0
- /package/dist/{linkedin-person-QJ7BREUI.js.map → linkedin-person-5LJEMW54.js.map} +0 -0
- /package/dist/{list-DPQMPO2N.js.map → list-5O5NB56G.js.map} +0 -0
- /package/dist/{list-4PB3SUMX.js.map → list-6AAKH6UV.js.map} +0 -0
- /package/dist/{list-QPTOZWLH.js.map → list-UYQOLFPN.js.map} +0 -0
- /package/dist/{log-O3ABCKXB.js.map → log-LPY5KYGP.js.map} +0 -0
- /package/dist/{logo-R34AWI4C.js.map → logo-SBIDRBA2.js.map} +0 -0
- /package/dist/{make-DS2JT5N4.js.map → make-UK2OYKCZ.js.map} +0 -0
- /package/dist/{map-3RDR7QYX.js.map → map-XEJOI63E.js.map} +0 -0
- /package/dist/{mcp-G52VGFAY.js.map → mcp-Y43SKNHV.js.map} +0 -0
- /package/dist/{media-sources-GJHD737X.js.map → media-sources-POL5DMD4.js.map} +0 -0
- /package/dist/{members-ICR3O2XP.js.map → members-5EJVXTE7.js.map} +0 -0
- /package/dist/{normalize-WLP2AYUD.js.map → normalize-IOW2V6E7.js.map} +0 -0
- /package/dist/{options-G35EJLMF.js.map → options-YD6XFRZV.js.map} +0 -0
- /package/dist/{organization-N5XUAYZQ.js.map → organization-KORFOK7Q.js.map} +0 -0
- /package/dist/{performance-YT2MD4R6.js.map → performance-BXSNPNC3.js.map} +0 -0
- /package/dist/{performance-KHP7T3X7.js.map → performance-Z353JXHB.js.map} +0 -0
- /package/dist/{posts-F7NFSUHV.js.map → posts-K3QTBX2B.js.map} +0 -0
- /package/dist/{preview-YXDLYCIA.js.map → preview-3UGPTK44.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-JTGHVR6D.js.map → promoted-tweet-writes-3D6GG6K4.js.map} +0 -0
- /package/dist/{promoted-tweets-HFUAOQLB.js.map → promoted-tweets-BGQJDEQ2.js.map} +0 -0
- /package/dist/{reddit-3KAMZIPT.js.map → reddit-GPSRX4TI.js.map} +0 -0
- /package/dist/{refresh-7EH4WBYS.js.map → refresh-3X45Q6ZM.js.map} +0 -0
- /package/dist/{release-JLKYLTRG.js.map → release-PE7KBFGK.js.map} +0 -0
- /package/dist/{remove-UW5W5FOH.js.map → remove-2A3XDOKA.js.map} +0 -0
- /package/dist/{reopen-JULIHAMN.js.map → reopen-LHMLXG6G.js.map} +0 -0
- /package/dist/{research-IZSCSXTD.js.map → research-55XA4Z2O.js.map} +0 -0
- /package/dist/{research-3BWJCS7N.js.map → research-JN3JGEEL.js.map} +0 -0
- /package/dist/{reset-QHZ3OIS6.js.map → reset-C5SDRQTX.js.map} +0 -0
- /package/dist/{reset-WAH4GQSV.js.map → reset-IY7GNRLF.js.map} +0 -0
- /package/dist/{resolve-AOZWSUYD.js.map → resolve-PCN7BR7U.js.map} +0 -0
- /package/dist/{retry-UQ4OOYEZ.js.map → retry-2KYMH2IV.js.map} +0 -0
- /package/dist/{retry-XASANWPI.js.map → retry-KUWJ4GGA.js.map} +0 -0
- /package/dist/{revenue-YGPP7K6U.js.map → revenue-CRZRJJ7H.js.map} +0 -0
- /package/dist/{rules-V4I5BVKB.js.map → rules-EKOXAK2O.js.map} +0 -0
- /package/dist/{rules-add-U2Z56SMZ.js.map → rules-add-IC3SXNYW.js.map} +0 -0
- /package/dist/{run-YNVT5DYJ.js.map → run-WUD5U5GY.js.map} +0 -0
- /package/dist/{run-M5FRUIAM.js.map → run-Y4SEFETX.js.map} +0 -0
- /package/dist/{scaffold-ad-HGI3JCBY.js.map → scaffold-ad-OJ4WOJM6.js.map} +0 -0
- /package/dist/{scaffold-video-WEHH3SO6.js.map → scaffold-video-7PDZZSKD.js.map} +0 -0
- /package/dist/{schedule-7T2DKJZ3.js.map → schedule-VCL2OPIL.js.map} +0 -0
- /package/dist/{scheduled-agents-MKKHCNI6.js.map → scheduled-agents-YAHYCFDA.js.map} +0 -0
- /package/dist/{schema-ID4NETCM.js.map → schema-L6DGAUB5.js.map} +0 -0
- /package/dist/{search-XYENZFAC.js.map → search-OUJUEORX.js.map} +0 -0
- /package/dist/{select-7E6J2FDA.js.map → select-R3NT7OI4.js.map} +0 -0
- /package/dist/{set-prompt-BNKY5NSE.js.map → set-prompt-F3SYRT22.js.map} +0 -0
- /package/dist/{setup-links-QV3LBVGK.js.map → setup-links-AHWFGUAO.js.map} +0 -0
- /package/dist/{shopify-C5I3XHPR.js.map → shopify-BPQCUFFX.js.map} +0 -0
- /package/dist/{site-NUQ5DHOQ.js.map → site-KYB2EL72.js.map} +0 -0
- /package/dist/{sources-KS44MMM7.js.map → sources-JYOOLCOU.js.map} +0 -0
- /package/dist/{sources-IVSFKLP6.js.map → sources-X4URMRLY.js.map} +0 -0
- /package/dist/{stale-E32VHTTJ.js.map → stale-KFVY7LSB.js.map} +0 -0
- /package/dist/{status-PPTYL45B.js.map → status-YVRZBK56.js.map} +0 -0
- /package/dist/{sync-G3LSQL6F.js.map → sync-KJEXXD3P.js.map} +0 -0
- /package/dist/{sync-definition-DR6BUB5O.js.map → sync-definition-BQUVWLCC.js.map} +0 -0
- /package/dist/{tags-O6LGADB6.js.map → tags-7CEVWFEZ.js.map} +0 -0
- /package/dist/{tags-BYLXFP34.js.map → tags-BU4KLB37.js.map} +0 -0
- /package/dist/{tags-FMX7R65M.js.map → tags-HKR2GWXV.js.map} +0 -0
- /package/dist/{tags-PXAPGDQB.js.map → tags-SKGPECNG.js.map} +0 -0
- /package/dist/{tags-DHQQ3IWD.js.map → tags-ZLPLHP2G.js.map} +0 -0
- /package/dist/{targeting-criteria-KJMRWCLU.js.map → targeting-criteria-4C4M3XLJ.js.map} +0 -0
- /package/dist/{targets-2H2YUI2I.js.map → targets-C5K2OH3B.js.map} +0 -0
- /package/dist/{testimonials-G6Z327H6.js.map → testimonials-OJV7EFGS.js.map} +0 -0
- /package/dist/{top-companies-QY6HO4NF.js.map → top-companies-IZQOKMBU.js.map} +0 -0
- /package/dist/{transcript-LWREF7CB.js.map → transcript-K6W7VRA5.js.map} +0 -0
- /package/dist/{translate-UUDDDYOQ.js.map → translate-M6W6KZZS.js.map} +0 -0
- /package/dist/{triggers-RXUVP5CL.js.map → triggers-CQFQSODZ.js.map} +0 -0
- /package/dist/{unlink-6JN54ATU.js.map → unlink-ITGOP2YH.js.map} +0 -0
- /package/dist/{unstage-WPBGIMDW.js.map → unstage-EAUF74PI.js.map} +0 -0
- /package/dist/{update-KKNDQ6FN.js.map → update-GX26VDM4.js.map} +0 -0
- /package/dist/{update-DCXG3L3J.js.map → update-HOFM27UT.js.map} +0 -0
- /package/dist/{update-OV6PIXJT.js.map → update-N5NA3JTW.js.map} +0 -0
- /package/dist/{update-F6JNU2S2.js.map → update-PCVDM7HO.js.map} +0 -0
- /package/dist/{url-params-PFZVEDAM.js.map → url-params-H4LQAYXG.js.map} +0 -0
- /package/dist/{use-D3SKAKUU.js.map → use-HYK67YKZ.js.map} +0 -0
- /package/dist/{validate-PL73C4PD.js.map → validate-XHQ4MIW5.js.map} +0 -0
- /package/dist/{videos-DSHCIXAI.js.map → videos-GY6YCGFH.js.map} +0 -0
- /package/dist/{viewer-check-2XOG5HZT.js.map → viewer-check-UCNIAY7X.js.map} +0 -0
- /package/dist/{web-GA6S2AAG.js.map → web-E7XDCTVJ.js.map} +0 -0
- /package/dist/{winning-ads-F6UPR6IO.js.map → winning-ads-L7FHCD75.js.map} +0 -0
- /package/dist/{write-commands-GBMOJMMW.js.map → write-commands-JESAYUEQ.js.map} +0 -0
- /package/dist/{x-QX4JZDM4.js.map → x-ROAUMBHA.js.map} +0 -0
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
stageAccountId,
|
|
7
7
|
stageXOp,
|
|
8
8
|
stageXOps
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VKYDHIBT.js";
|
|
10
10
|
import "./chunk-FIN4ZXGJ.js";
|
|
11
11
|
import "./chunk-H6GTG665.js";
|
|
12
12
|
import "./chunk-QYH2UZAK.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-TK7VRZKM.js";
|
|
14
14
|
import "./chunk-QV6AST5T.js";
|
|
15
15
|
import "./chunk-WCU362Z6.js";
|
|
16
16
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -165,4 +165,4 @@ export {
|
|
|
165
165
|
campaignsResumeCommand,
|
|
166
166
|
campaignsUpdateCommand
|
|
167
167
|
};
|
|
168
|
-
//# sourceMappingURL=campaign-writes-
|
|
168
|
+
//# sourceMappingURL=campaign-writes-62V55CNW.js.map
|
|
@@ -95,10 +95,10 @@ Examples:
|
|
|
95
95
|
},
|
|
96
96
|
subCommands: {
|
|
97
97
|
list: campaignsListCommand,
|
|
98
|
-
create: () => import("./campaign-writes-
|
|
99
|
-
update: () => import("./campaign-writes-
|
|
100
|
-
pause: () => import("./campaign-writes-
|
|
101
|
-
resume: () => import("./campaign-writes-
|
|
98
|
+
create: () => import("./campaign-writes-62V55CNW.js").then((m) => m.campaignsCreateCommand),
|
|
99
|
+
update: () => import("./campaign-writes-62V55CNW.js").then((m) => m.campaignsUpdateCommand),
|
|
100
|
+
pause: () => import("./campaign-writes-62V55CNW.js").then((m) => m.campaignsPauseCommand),
|
|
101
|
+
resume: () => import("./campaign-writes-62V55CNW.js").then((m) => m.campaignsResumeCommand)
|
|
102
102
|
},
|
|
103
103
|
// A parent must never declare `run`: citty falls through to it AFTER the
|
|
104
104
|
// matched subcommand, so every write would also trigger a full live list.
|
|
@@ -108,4 +108,4 @@ Examples:
|
|
|
108
108
|
export {
|
|
109
109
|
campaignsCommand
|
|
110
110
|
};
|
|
111
|
-
//# sourceMappingURL=campaigns-
|
|
111
|
+
//# sourceMappingURL=campaigns-I5GSGZDJ.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
resolveAccountIdArg,
|
|
5
5
|
resolveStatusFilter,
|
|
6
6
|
statusesArgDescription
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-J6KCVW6N.js";
|
|
8
8
|
import {
|
|
9
9
|
writeAdsJson,
|
|
10
10
|
writeAdsOutput
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
NO_CACHE_ARG
|
|
14
14
|
} from "./chunk-GO6ISZUZ.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-TK7VRZKM.js";
|
|
16
16
|
import "./chunk-QV6AST5T.js";
|
|
17
17
|
import "./chunk-WCU362Z6.js";
|
|
18
18
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -91,15 +91,15 @@ Examples:
|
|
|
91
91
|
},
|
|
92
92
|
subCommands: {
|
|
93
93
|
list: campaignsListCommand,
|
|
94
|
-
create: () => import("./write-commands-
|
|
95
|
-
update: () => import("./write-commands-
|
|
96
|
-
pause: () => import("./write-commands-
|
|
97
|
-
resume: () => import("./write-commands-
|
|
98
|
-
archive: () => import("./write-commands-
|
|
99
|
-
duplicate: () => import("./write-commands-
|
|
100
|
-
delete: () => import("./write-commands-
|
|
101
|
-
"url-params": () => import("./write-commands-
|
|
102
|
-
"exclude-companies": () => import("./write-commands-
|
|
94
|
+
create: () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsCreateCommand),
|
|
95
|
+
update: () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsUpdateCommand),
|
|
96
|
+
pause: () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsPauseCommand),
|
|
97
|
+
resume: () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsResumeCommand),
|
|
98
|
+
archive: () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsArchiveCommand),
|
|
99
|
+
duplicate: () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsDuplicateCommand),
|
|
100
|
+
delete: () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsDeleteCommand),
|
|
101
|
+
"url-params": () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsUrlParamsCommand),
|
|
102
|
+
"exclude-companies": () => import("./write-commands-JESAYUEQ.js").then((m) => m.campaignsExcludeCompaniesCommand)
|
|
103
103
|
},
|
|
104
104
|
// A parent must never declare `run`: citty falls through to it *after* running
|
|
105
105
|
// the matched subcommand, so every write would also trigger a full live list.
|
|
@@ -110,4 +110,4 @@ Examples:
|
|
|
110
110
|
export {
|
|
111
111
|
campaignsCommand
|
|
112
112
|
};
|
|
113
|
-
//# sourceMappingURL=campaigns-
|
|
113
|
+
//# sourceMappingURL=campaigns-OGNE4XHM.js.map
|
|
@@ -25,22 +25,22 @@ Subcommands:
|
|
|
25
25
|
Full guide: __tooling__/docs/tools/baker/canvas.md`
|
|
26
26
|
},
|
|
27
27
|
subCommands: {
|
|
28
|
-
run: () => import("./run-
|
|
29
|
-
rerun: () => import("./rerun-
|
|
30
|
-
validate: () => import("./validate-
|
|
31
|
-
critique: () => import("./critique-
|
|
32
|
-
"viewer-check": () => import("./viewer-check-
|
|
28
|
+
run: () => import("./run-WUD5U5GY.js").then((m) => m.runCommand),
|
|
29
|
+
rerun: () => import("./rerun-S4VWOIKE.js").then((m) => m.rerunCommand),
|
|
30
|
+
validate: () => import("./validate-XHQ4MIW5.js").then((m) => m.validateCommand),
|
|
31
|
+
critique: () => import("./critique-VTNN6A5I.js").then((m) => m.critiqueCommand),
|
|
32
|
+
"viewer-check": () => import("./viewer-check-UCNIAY7X.js").then((m) => m.viewerCheckCommand),
|
|
33
33
|
catalog: () => import("./catalog-URTZYAPU.js").then((m) => m.catalogCommand),
|
|
34
|
-
inspect: () => import("./inspect-
|
|
35
|
-
"scaffold-ad": () => import("./scaffold-ad-
|
|
36
|
-
"scaffold-video": () => import("./scaffold-video-
|
|
37
|
-
"scaffold-static-ad": () => import("./scaffold-static-ad-
|
|
38
|
-
"set-prompt": () => import("./set-prompt-
|
|
39
|
-
"sync-definition": () => import("./sync-definition-
|
|
40
|
-
stale: () => import("./stale-
|
|
34
|
+
inspect: () => import("./inspect-6P2WNFAC.js").then((m) => m.inspectCommand),
|
|
35
|
+
"scaffold-ad": () => import("./scaffold-ad-OJ4WOJM6.js").then((m) => m.scaffoldAdCommand),
|
|
36
|
+
"scaffold-video": () => import("./scaffold-video-7PDZZSKD.js").then((m) => m.scaffoldVideoCommand),
|
|
37
|
+
"scaffold-static-ad": () => import("./scaffold-static-ad-EXUKKYSD.js").then((m) => m.scaffoldStaticAdCommand),
|
|
38
|
+
"set-prompt": () => import("./set-prompt-F3SYRT22.js").then((m) => m.setPromptCommand),
|
|
39
|
+
"sync-definition": () => import("./sync-definition-BQUVWLCC.js").then((m) => m.syncDefinitionCommand),
|
|
40
|
+
stale: () => import("./stale-KFVY7LSB.js").then((m) => m.staleCommand)
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
export {
|
|
44
44
|
canvasCommand
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=canvas-
|
|
46
|
+
//# sourceMappingURL=canvas-HGU7FJ34.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-DYWKYP7Z.js";
|
|
4
|
+
import "./chunk-TK7VRZKM.js";
|
|
5
5
|
import "./chunk-QV6AST5T.js";
|
|
6
6
|
import "./chunk-WCU362Z6.js";
|
|
7
7
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -144,4 +144,4 @@ export {
|
|
|
144
144
|
capabilitiesCommand,
|
|
145
145
|
capabilityHints
|
|
146
146
|
};
|
|
147
|
-
//# sourceMappingURL=capabilities-
|
|
147
|
+
//# sourceMappingURL=capabilities-EDXVGZXC.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DYWKYP7Z.js";
|
|
4
4
|
import {
|
|
5
5
|
CHAT_IMPORT_SURFACES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TK7VRZKM.js";
|
|
7
7
|
import "./chunk-QV6AST5T.js";
|
|
8
8
|
import "./chunk-WCU362Z6.js";
|
|
9
9
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -446,4 +446,4 @@ Full guide: __tooling__/docs/tools/baker/chats.md`
|
|
|
446
446
|
export {
|
|
447
447
|
chatsCommand
|
|
448
448
|
};
|
|
449
|
-
//# sourceMappingURL=chats-
|
|
449
|
+
//# sourceMappingURL=chats-HFKSZWZD.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readAdWords,
|
|
3
3
|
ruleRefusal
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-5NJQXV4K.js";
|
|
5
|
+
import "./chunk-YS7T735Q.js";
|
|
6
6
|
import "./chunk-PGAYESXE.js";
|
|
7
7
|
import {
|
|
8
8
|
readAllRules
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EDWW3THE.js";
|
|
10
10
|
import {
|
|
11
11
|
ruleTells
|
|
12
12
|
} from "./chunk-UKZKLXTE.js";
|
|
@@ -28,7 +28,7 @@ import "./chunk-E56V3RFO.js";
|
|
|
28
28
|
import "./chunk-EL3TDR5S.js";
|
|
29
29
|
import "./chunk-G6U45QD3.js";
|
|
30
30
|
import "./chunk-X6U3B6YK.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-TK7VRZKM.js";
|
|
32
32
|
import "./chunk-QV6AST5T.js";
|
|
33
33
|
import "./chunk-WCU362Z6.js";
|
|
34
34
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -104,4 +104,4 @@ export {
|
|
|
104
104
|
checkCommand,
|
|
105
105
|
checkCreatives
|
|
106
106
|
};
|
|
107
|
-
//# sourceMappingURL=check-
|
|
107
|
+
//# sourceMappingURL=check-GRVUI3LI.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
heldRules,
|
|
3
3
|
readAdWords,
|
|
4
4
|
ruleGate
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5NJQXV4K.js";
|
|
6
6
|
import {
|
|
7
7
|
storeProductReads
|
|
8
8
|
} from "./chunk-QFODAMYR.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
avatarRelation,
|
|
14
14
|
castCompany
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-YS7T735Q.js";
|
|
16
16
|
import {
|
|
17
17
|
readAvatars
|
|
18
18
|
} from "./chunk-PGAYESXE.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
GENERIC_FAMILIES,
|
|
26
26
|
resolveBrandFaces
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-72VH4FPY.js";
|
|
28
28
|
import {
|
|
29
29
|
LOGO_FILE,
|
|
30
30
|
readWorkspaceBrandDoc
|
|
@@ -200,7 +200,7 @@ import {
|
|
|
200
200
|
} from "./chunk-EL3TDR5S.js";
|
|
201
201
|
import {
|
|
202
202
|
brandTokensSchema
|
|
203
|
-
} from "./chunk-
|
|
203
|
+
} from "./chunk-TK7VRZKM.js";
|
|
204
204
|
import {
|
|
205
205
|
apiPost
|
|
206
206
|
} from "./chunk-GFWWHCBF.js";
|
|
@@ -8951,4 +8951,4 @@ export {
|
|
|
8951
8951
|
prepareCanvas,
|
|
8952
8952
|
exitOnPrepareError
|
|
8953
8953
|
};
|
|
8954
|
-
//# sourceMappingURL=chunk-
|
|
8954
|
+
//# sourceMappingURL=chunk-26UW2GMK.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from "./chunk-Q5DFEVLE.js";
|
|
14
14
|
import {
|
|
15
15
|
readAllRules
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-EDWW3THE.js";
|
|
17
17
|
import {
|
|
18
18
|
IDEA_ANGLES,
|
|
19
19
|
IDEA_FORMATS,
|
|
@@ -167,4 +167,4 @@ export {
|
|
|
167
167
|
ideasReport,
|
|
168
168
|
ideasCommand
|
|
169
169
|
};
|
|
170
|
-
//# sourceMappingURL=chunk-
|
|
170
|
+
//# sourceMappingURL=chunk-2LGDWOD7.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
parseDefinitionDelivery,
|
|
4
4
|
resolveDelivery,
|
|
5
5
|
resolveFormatList
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-26UW2GMK.js";
|
|
7
7
|
import {
|
|
8
8
|
AD_PLACEMENTS
|
|
9
9
|
} from "./chunk-MCJ5I5LR.js";
|
|
@@ -88,4 +88,4 @@ export {
|
|
|
88
88
|
deliveryDefinitionFields,
|
|
89
89
|
deliveryNote
|
|
90
90
|
};
|
|
91
|
-
//# sourceMappingURL=chunk-
|
|
91
|
+
//# sourceMappingURL=chunk-37QHT7J4.js.map
|
|
@@ -15,7 +15,10 @@ import {
|
|
|
15
15
|
eachTarget,
|
|
16
16
|
failWith,
|
|
17
17
|
positionalTargets
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-BS4PRGEJ.js";
|
|
19
|
+
import {
|
|
20
|
+
librarySaveHint
|
|
21
|
+
} from "./chunk-I7OJZ7QE.js";
|
|
19
22
|
import {
|
|
20
23
|
YtDlpError,
|
|
21
24
|
canonicalUrl,
|
|
@@ -28,7 +31,7 @@ import {
|
|
|
28
31
|
} from "./chunk-G6U45QD3.js";
|
|
29
32
|
import {
|
|
30
33
|
videosIngestRequestSchema
|
|
31
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-TK7VRZKM.js";
|
|
32
35
|
import {
|
|
33
36
|
ApiError,
|
|
34
37
|
apiPost
|
|
@@ -205,16 +208,29 @@ function planIngests(opts) {
|
|
|
205
208
|
}
|
|
206
209
|
return plans;
|
|
207
210
|
}
|
|
211
|
+
function savedVideoHints(outcomes) {
|
|
212
|
+
const saved = librarySaveHint(
|
|
213
|
+
"video library",
|
|
214
|
+
outcomes.flatMap((o) => o.ok && !o.data.deduped ? [o.data.videoId] : [])
|
|
215
|
+
);
|
|
216
|
+
return saved ? [saved] : [];
|
|
217
|
+
}
|
|
208
218
|
function writeIngestOutcomes(outcomes, fields) {
|
|
209
219
|
const [only] = outcomes;
|
|
220
|
+
const savedHints = savedVideoHints(outcomes);
|
|
210
221
|
if (outcomes.length === 1 && only) {
|
|
211
222
|
if (!only.ok) failWith(only.error);
|
|
212
223
|
if (!fields) {
|
|
213
|
-
|
|
224
|
+
const hints2 = [...ingestHints(only.data) ?? [], ...savedHints];
|
|
225
|
+
writeJson({ ok: true, data: only.data, ...hints2.length > 0 ? { hints: hints2 } : {} });
|
|
214
226
|
return;
|
|
215
227
|
}
|
|
216
228
|
const shown2 = narrowed(only.data, fields);
|
|
217
|
-
writeJson({
|
|
229
|
+
writeJson({
|
|
230
|
+
ok: true,
|
|
231
|
+
data: shown2.data,
|
|
232
|
+
hints: [...ingestHints(only.data) ?? [], ...shown2.hints, ...savedHints]
|
|
233
|
+
});
|
|
218
234
|
return;
|
|
219
235
|
}
|
|
220
236
|
const ingested = outcomes.flatMap((o) => o.ok ? [{ url: o.target, ...o.data }] : []);
|
|
@@ -237,7 +253,7 @@ function writeIngestOutcomes(outcomes, fields) {
|
|
|
237
253
|
);
|
|
238
254
|
}
|
|
239
255
|
const shown = fields ? narrowed(ingested, fields) : { data: ingested, hints: [] };
|
|
240
|
-
hints.push(...shown.hints);
|
|
256
|
+
hints.push(...shown.hints, ...savedHints);
|
|
241
257
|
writeJson({ ok: true, data: { ingested: shown.data, failed }, ...hints.length > 0 ? { hints } : {} });
|
|
242
258
|
}
|
|
243
259
|
function narrowed(data, fields) {
|
|
@@ -435,4 +451,4 @@ export {
|
|
|
435
451
|
runVideoIngest,
|
|
436
452
|
ingestHints
|
|
437
453
|
};
|
|
438
|
-
//# sourceMappingURL=chunk-
|
|
454
|
+
//# sourceMappingURL=chunk-4ICSKDI7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/videos/ingest.ts","../src/lib/streamUpload.ts"],"sourcesContent":["import { mkdtemp, rm, stat } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport path from \"node:path\";\nimport { type VideosIngestRequest, type VideosIngestResponse, videosIngestRequestSchema } from \"@baker/api\";\nimport { isProxyFailure } from \"@baker/proxy\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { captureVimeoCookie } from \"../../env.ts\";\nimport { maskEnvelope } from \"../../field-mask.ts\";\nimport {\n eachTarget,\n failWith,\n positionalTargets,\n type TargetError,\n type TargetOutcome,\n} from \"../../lib/batchTargets.ts\";\nimport { librarySaveHint } from \"../../lib/librarySaves.ts\";\nimport { hashFile, putFileStreamed } from \"../../lib/streamUpload.ts\";\nimport { isVimeoAuthFailure } from \"../../lib/vimeoCookie.ts\";\nimport {\n canonicalUrl,\n durationSeconds,\n isAudioOnly,\n probeYtDlp,\n runYtDlp,\n YtDlpError,\n type YtDlpInfo,\n} from \"../../lib/ytDlp.ts\";\nimport { ytDlpBlockSignal } from \"../../lib/ytDlpSignal.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport {\n directDedupeKey,\n downloadTimeoutMs,\n isDirectMediaUrl,\n isDrmProtected,\n isRegionBlocked,\n isToolingOrBlockFailure,\n MAX_VIDEO_INGEST_BYTES,\n MAX_VIDEO_INGEST_SECONDS,\n refuseByDuration,\n resolveIngestSource,\n worthDownloadingInstead,\n} from \"./ingestUrl.ts\";\n\nregisterSchema({\n command: \"videos.ingest\",\n description:\n \"Add videos to the library from URLs — direct files, or YouTube/TikTok/Vimeo pages. Several URLs run at once and return one row each.\",\n args: {\n url: {\n type: \"string\",\n description: \"Video URL (direct file or a watch/post page); pass several to add them at once\",\n required: true,\n },\n source: { type: \"string\", description: \"Provenance: url | youtube\", required: false },\n \"external-id\": { type: \"string\", description: \"Provider asset id (deduped on)\", required: false },\n \"external-url\": { type: \"string\", description: \"Canonical page URL\", required: false },\n download: {\n type: \"boolean\",\n description: \"Force the download path instead of letting Baker fetch the URL directly\",\n required: false,\n default: false,\n },\n country: {\n type: \"string\",\n description: \"Two-letter country to fetch from (e.g. US, DE, JP) — use when a video is blocked in your region\",\n required: false,\n },\n context: {\n type: \"string\",\n description:\n \"What you know that the video cannot show — the campaign, whether the person on camera is a real customer, what it is for. Highest-leverage flag here: it is what makes the clip findable later.\",\n required: false,\n },\n \"dry-run\": { type: \"boolean\", description: \"Preview the operation without executing\", required: false },\n fields: {\n type: \"string\",\n description: \"Comma-separated field names to keep on each added video; failed URLs are always listed whole\",\n required: false,\n },\n },\n});\n\nexport const ingestCommand = defineCommand({\n meta: {\n name: \"ingest\",\n description:\n 'Add videos to the library from URLs. A direct file URL is handed straight to Baker, which fetches it. A page URL (YouTube, TikTok, Vimeo, Instagram) is downloaded here first, then uploaded — and a direct URL that Baker cannot fetch falls back to that same path automatically. Several URLs are added at once, so a list takes about as long as its slowest clip: pass them all in one call rather than looping.\\n\\nExamples:\\n baker videos ingest https://www.youtube.com/watch?v=abc123\\n baker videos ingest https://youtu.be/a https://youtu.be/b https://cdn.example.com/c.mp4 --context \"Spring campaign testimonials\"',\n },\n args: {\n url: { type: \"positional\", description: \"Video URL; pass several to add them at once\", required: false },\n source: { type: \"string\", description: \"Provenance: url | youtube\", required: false },\n \"external-id\": { type: \"string\", description: \"Provider asset id (one URL only)\", required: false },\n \"external-url\": { type: \"string\", description: \"Canonical page URL (one URL only)\", required: false },\n download: { type: \"boolean\", description: \"Force the download path\", required: false, default: false },\n country: { type: \"string\", description: \"Two-letter country to fetch from, e.g. US\", required: false },\n context: {\n type: \"string\",\n description: \"Context for the analysis — campaign, who is on camera, intended use (applies to every URL)\",\n required: false,\n },\n \"dry-run\": { type: \"boolean\", description: \"Preview without executing\", required: false, default: false },\n fields: { type: \"string\", description: \"Comma-separated field names to keep on each added video\", required: false },\n },\n run: ({ args }) =>\n runVideoIngest({\n urls: positionalTargets(args),\n source: args.source as string | undefined,\n externalId: args[\"external-id\"] as string | undefined,\n externalUrl: args[\"external-url\"] as string | undefined,\n forceDownload: args.download === true,\n country: args.country as string | undefined,\n context: args.context as string | undefined,\n dryRun: args[\"dry-run\"] === true,\n fields: typeof args.fields === \"string\" && args.fields.length > 0 ? args.fields.split(\",\") : undefined,\n }),\n});\n\nexport type VideoIngestOptions = {\n urls: string[];\n source?: string;\n externalId?: string;\n externalUrl?: string;\n forceDownload?: boolean;\n country?: string;\n /** What the adder knew that the frames cannot show. Feeds the analysis. */\n context?: string;\n dryRun?: boolean;\n /** Keys kept on each added video. The failures are never narrowed: they say what to fix. */\n fields?: string[];\n};\n\n/**\n * The ingest flow itself, callable from `videos ingest` and from the URL branch\n * of `videos upload` — one implementation, so the two verbs cannot drift.\n */\nexport async function runVideoIngest(opts: VideoIngestOptions): Promise<void> {\n const { urls } = opts;\n if (urls.length === 0) {\n failWith({ code: \"VALIDATION_ERROR\", message: \"URL is required\" });\n }\n // One provider id or page names one video: given to several, the second\n // ingest would dedupe onto the first and quietly hand back the wrong clip.\n if (urls.length > 1 && (opts.externalId || opts.externalUrl)) {\n failWith({\n code: \"VALIDATION_ERROR\",\n message: \"--external-id and --external-url name a single video, so they cannot be used with several URLs.\",\n });\n }\n\n const country = opts.country?.trim() || undefined;\n const plans = planIngests(opts);\n\n if (opts.dryRun) {\n const params = plans.map(({ args, direct }) => dryRunParams(args, direct, country));\n writeJson({\n ok: true,\n dryRun: true,\n operation: \"videos.ingest\",\n params: params.length === 1 && params[0] ? params[0] : { items: params },\n });\n return;\n }\n\n const byUrl = new Map(plans.map((plan) => [plan.args.url, plan]));\n const outcomes = await eachTarget(\n urls,\n (url) => {\n const plan = byUrl.get(url) as (typeof plans)[number];\n return ingestByRoute(plan.args, plan.direct, country);\n },\n ingestFailure,\n );\n writeIngestOutcomes(outcomes, opts.fields);\n}\n\ntype IngestPlan = { args: IngestArgs; direct: boolean };\n\n/** What each URL will be sent as, every one checked before any is fetched. */\nfunction planIngests(opts: VideoIngestOptions): IngestPlan[] {\n const plans = opts.urls.map((url) => {\n const args: IngestArgs = {\n url,\n source: resolveIngestSource(opts.source, url),\n externalId: opts.externalId,\n // Deliberately NOT pre-filled with the pasted URL. Doing so shadowed the\n // canonical URL the probe resolves (`?? canonicalUrl(...)` below could never\n // run), so the same video filed under a different `externalUrl` depending on\n // whether the link was copied from a share sheet, a shorts page or the\n // address bar. `downloadThenIngest` falls back to `args.url` when the probe\n // resolves nothing, which is the value this used to hard-code.\n externalUrl: opts.externalUrl,\n descriptionContext: opts.context?.trim() || undefined,\n };\n return { args, direct: !opts.forceDownload && isDirectMediaUrl(url) };\n });\n\n // Checked here as well as at the route, because the download path ends by\n // posting this same body: a bad `--source` caught only server-side would\n // otherwise be discovered twice, the second time after downloading the video.\n // Every URL is checked before any is fetched.\n for (const { args } of plans) {\n const validation = videosIngestRequestSchema.safeParse(args);\n if (!validation.success) {\n const problem = validation.error.issues[0];\n const where = opts.urls.length > 1 ? `${args.url}: ` : \"\";\n failWith({\n code: \"VALIDATION_ERROR\",\n message: problem\n ? `${where}${problem.path.join(\".\") || \"request\"}: ${problem.message}`\n : `${where}Invalid request`,\n });\n }\n }\n return plans;\n}\n\n/** The clips this call added to the library (not the ones it found there), and that they stay with the chat. */\nfunction savedVideoHints(outcomes: TargetOutcome<IngestReport>[]): string[] {\n const saved = librarySaveHint(\n \"video library\",\n outcomes.flatMap((o) => (o.ok && !o.data.deduped ? [o.data.videoId] : [])),\n );\n return saved ? [saved] : [];\n}\n\n/**\n * One URL keeps the envelope it always had. Several report one row per URL —\n * what was added, with its resolution where the download knew it, and what was\n * not, each with its own reason — so nothing has to be looked up afterwards.\n */\nfunction writeIngestOutcomes(outcomes: TargetOutcome<IngestReport>[], fields?: string[]): void {\n const [only] = outcomes;\n const savedHints = savedVideoHints(outcomes);\n if (outcomes.length === 1 && only) {\n if (!only.ok) failWith(only.error);\n if (!fields) {\n const hints = [...(ingestHints(only.data) ?? []), ...savedHints];\n writeJson({ ok: true, data: only.data, ...(hints.length > 0 ? { hints } : {}) });\n return;\n }\n const shown = narrowed(only.data, fields);\n writeJson({\n ok: true,\n data: shown.data,\n hints: [...(ingestHints(only.data) ?? []), ...shown.hints, ...savedHints],\n });\n return;\n }\n\n const ingested = outcomes.flatMap((o) => (o.ok ? [{ url: o.target, ...o.data }] : []));\n const failed = outcomes.flatMap((o) => (o.ok ? [] : [{ url: o.target, error: o.error }]));\n const hints = ingested.flatMap((row) => (ingestHints(row) ?? []).map((hint) => `${row.url}: ${hint}`));\n if (ingested.length === 0) {\n writeJson({\n ok: false,\n error: {\n code: \"INGEST_FAILED\",\n message: `None of the ${outcomes.length} videos could be added: ${failed\n .map((f) => `${f.url} — ${f.error.message}`)\n .join(\"; \")}`,\n },\n hints: failed.flatMap((f) => (f.error.fix ? [`${f.url}: ${f.error.fix}`] : [])),\n });\n process.exit(1);\n }\n if (failed.length > 0) {\n hints.push(\n `${failed.length} of ${outcomes.length} could not be added — each one's reason and fix is in failed[]. The rest are in the library; carry on with them.`,\n );\n }\n // The two lists are narrowed apart: the CLI-wide mask reads a wrapper of\n // two lists as one record and would drop both.\n const shown = fields ? narrowed(ingested, fields) : { data: ingested, hints: [] };\n hints.push(...shown.hints, ...savedHints);\n writeJson({ ok: true, data: { ingested: shown.data, failed }, ...(hints.length > 0 ? { hints } : {}) });\n}\n\n/** `data` cut to the fields, and the hint naming any field nothing carried. */\nfunction narrowed(data: unknown, fields: string[]): { data: unknown; hints: string[] } {\n const masked = maskEnvelope({ ok: true, data }, fields);\n const hints = Array.isArray(masked.hints) ? masked.hints.filter((hint) => typeof hint === \"string\") : [];\n return { data: masked.data, hints };\n}\n\n/**\n * The successful ingest as the caller receives it.\n *\n * Named rather than left as a `Record<string, unknown>` so the fields that only\n * *sometimes* appear are still a checked contract. `reducedQuality` is the one\n * that needs it: nothing else reads it, `ingestHints` is the only thing that\n * acts on it, and an untyped bag would let either side be renamed with the\n * tests still green and the hint silently never firing again.\n */\nexport type IngestReport = VideosIngestResponse & {\n via: \"direct\" | \"download\";\n egress?: string;\n country?: string;\n reducedQuality?: true;\n fallbackFrom?: string;\n /** The downloaded file's size; absent on the direct route, where Baker fetches it. */\n width?: number;\n height?: number;\n};\n\n/**\n * What the caller has to be told about a download that already succeeded.\n *\n * The recovery itself is deliberately invisible — nobody asks for a retry, and\n * a video that arrives is a video that arrived. What must not be invisible is\n * the price the recovery paid, because it is the one thing looking at the\n * result cannot reveal: a 360p clip and a 1080p clip are the same successful\n * envelope. Written for whoever reads the JSON to repeat to a marketer, so it\n * says \"standard quality\", not which player answered.\n */\nexport function ingestHints(data: IngestReport): string[] | undefined {\n if (data.reducedQuality !== true) return undefined;\n return [\n \"Added, but at standard quality (360p): the site refused to release the full-quality file and this was the best it would hand over. Tell the user — the clip is in the library and usable, it is just not high-resolution. If they need the crisp version, ask them for the original file and use `baker videos upload <file>`.\",\n ];\n}\n\nfunction dryRunParams(args: IngestArgs, direct: boolean, country?: string): Record<string, unknown> {\n return {\n url: args.url,\n source: args.source,\n // Known up front on the direct route, because it is derived from the URL\n // alone. The download route's key comes from the probe, which a dry run\n // does not perform, so there it stays null rather than becoming a guess.\n externalId: args.externalId ?? (direct ? directDedupeKey(args.source, args.url) : null),\n // A page URL's canonical form is only known after the probe, which a dry\n // run does not perform — so this is null rather than a guess.\n externalUrl: args.externalUrl ?? null,\n direct,\n country: country ?? null,\n descriptionContext: args.descriptionContext ?? null,\n };\n}\n\n/**\n * A direct media URL is handed straight over: Baker asks Mux to pull it, so no\n * bytes cross this machine and there is no size ceiling to hit. Only when that\n * is refused do we pay to download and re-upload the file ourselves.\n */\nasync function ingestByRoute(args: IngestArgs, direct: boolean, country?: string): Promise<IngestReport> {\n if (!direct) {\n return { ...(await downloadThenIngest(args, country)), via: \"download\" };\n }\n try {\n // Defaulted here rather than on `args`, so that the fallback below still\n // derives its key from the probe: a URL that turns out to be a page carries\n // a real provider id, which dedupes better than the link it was pasted as.\n const externalId = args.externalId ?? directDedupeKey(args.source, args.url);\n return { ...(await ingestUrl({ ...args, externalId })), via: \"direct\" };\n } catch (err) {\n if (!(err instanceof ApiError) || !worthDownloadingInstead(err.code)) throw err;\n return { ...(await downloadThenIngest(args, country)), via: \"download\", fallbackFrom: err.message };\n }\n}\n\n/**\n * Turn a yt-dlp failure into the one sentence that names its actual cause.\n *\n * Split out from `ingestFailure` because the list of distinguishable\n * causes kept growing — proxy, DRM, Vimeo login, region, stale extractor — and\n * each one exists because the generic message sent the reader somewhere useless.\n * Order matters and is not alphabetical: DRM and region both also emit phrases\n * the stale-extractor branch would match, so the specific cases are asked first.\n */\nfunction ytDlpFailure(err: YtDlpError): TargetError {\n const detail = `${err.stderrTail} ${err.message}`;\n\n // Our own egress failing is not the site's fault and not the link's. Saying\n // otherwise sends whoever reads this to check a video that was never the\n // problem, while the real cause — a rotated proxy credential — stays hidden.\n if (isProxyFailure(ytDlpBlockSignal(detail))) {\n return failure(\n \"Couldn't download that video: our connection to the internet was refused.\",\n \"This is Baker's egress proxy, not the link — its credentials look wrong or expired. The link is probably fine. Report it; retrying won't help until the proxy is fixed.\",\n );\n }\n if (isDrmProtected(detail)) {\n return failure(\n \"That video is copy-protected, so it can't be added to the library.\",\n \"The publisher encrypted this one against downloading. Nothing will change that — not retrying, not a different region. Ask whoever owns the video for the original file and add it with `baker videos upload <file>`.\",\n );\n }\n if (isVimeoAuthFailure(detail)) {\n return failure(\n \"Vimeo wouldn't hand over that video — Baker isn't signed in to Vimeo.\",\n \"Vimeo now refuses anonymous downloads entirely, so this needs a signed-in session and the one Baker holds has either expired or was never set. Nothing is wrong with the link. Report it so the Vimeo cookie can be refreshed; meanwhile download the file and use `baker videos upload <file>`.\",\n );\n }\n if (isRegionBlocked(detail)) {\n return failure(\n `That video isn't available in the region we're fetching from. ${err.stderrTail || err.message}`,\n \"Re-run with `--country <two-letter code>` for a country where the video plays — e.g. `--country US`. Pick the one the video belongs to (the uploader's country is the usual answer); each attempt costs a paid connection, so choose rather than work through the list.\",\n );\n }\n return failure(\n `Couldn't download that video. ${err.stderrTail || err.message}`,\n isToolingOrBlockFailure(detail)\n ? \"The site wouldn't hand over the video — usually the downloader being out of date against a site that changed, or the request being blocked. Retrying won't help, and the link is probably fine. Report it so the tool can be updated; meanwhile download the file and use `baker videos upload <file>`.\"\n : \"Check the link is public and playable. Private or age-restricted videos can't be downloaded — download the file yourself and use `baker videos upload <file>`.\",\n );\n}\n\nfunction failure(message: string, fix: string, code = \"INGEST_FAILED\"): TargetError {\n return { code, message, fix };\n}\n\n/** The one ingest's failure, as its envelope's `error`. */\nfunction ingestFailure(err: unknown): TargetError {\n if (err instanceof ApiError) return { code: err.code, message: err.message };\n if (err instanceof YtDlpError) return ytDlpFailure(err);\n\n // Say what actually went wrong. \"Unexpected error\" was worse than unhelpful:\n // a download that outran its leash throws a plain `Error`, lands here, and had\n // its only diagnostic thrown away — so a predictable timeout on a long video\n // was indistinguishable from a genuine crash.\n const detail = err instanceof Error ? err.message : String(err);\n if (detail.includes(\"timed out after\")) {\n return failure(\n \"That video took too long to download and was stopped part-way.\",\n \"Long or slow-serving videos can outrun the download window. Try a shorter clip, or download this one yourself and use `baker videos upload <file>`.\",\n \"INTERNAL_ERROR\",\n );\n }\n return failure(\n `Couldn't add that video. ${detail}`,\n \"This is a fault on Baker's side, not a problem with the link. Report it.\",\n \"INTERNAL_ERROR\",\n );\n}\n\ntype IngestArgs = {\n url: string;\n source: string;\n externalId?: string;\n externalUrl?: string;\n descriptionContext?: string;\n};\n\n/**\n * A dedupe key that identifies this exact video and nothing else.\n *\n * yt-dlp's per-platform extractors return a real provider id, which is what we\n * want: the same YouTube clip pasted three ways dedupes to one row. Its\n * *generic* extractor does not — it returns the URL's basename, so two unrelated\n * files both named `demo.mp4` would produce `url:demo` and the second ingest\n * would \"succeed\" by handing back the first one's clip. A wrong hit is worse\n * than a missed one here: a duplicate costs a transcode, while a collision\n * silently returns the wrong video under a successful-looking response.\n *\n * So the generic case is keyed on the canonical URL, which is unique by\n * construction and still dedupes re-pastes of the same link exactly as intended.\n */\nfunction dedupeKey(args: IngestArgs, info: YtDlpInfo): string | undefined {\n const id = typeof info.id === \"string\" ? info.id : undefined;\n if (!id) return undefined;\n if (info.extractor === \"generic\") return `${args.source}:${canonicalUrl(info) ?? args.url}`;\n return `${args.source}:${id}`;\n}\n\nfunction ingestUrl(args: IngestArgs): Promise<VideosIngestResponse> {\n const body: VideosIngestRequest = {\n url: args.url,\n source: args.source as VideosIngestRequest[\"source\"],\n };\n if (args.externalId) body.externalId = args.externalId;\n if (args.externalUrl) body.externalUrl = args.externalUrl;\n if (args.descriptionContext) body.descriptionContext = args.descriptionContext;\n return apiPost<VideosIngestResponse>(\"/api/videos/ingest\", body);\n}\n\n/**\n * Download the media with yt-dlp, park it in R2, then ingest that URL.\n *\n * The extra hop is what makes a page URL work at all: Mux can only pull a media\n * file, and a watch page is not one. It is also the only route for a CDN that\n * serves us but refuses Mux — YouTube's file URLs, for instance, are bound to\n * the IP that requested them, so handing one to Mux would 403.\n */\nasync function downloadThenIngest(\n args: IngestArgs,\n country?: string,\n): Promise<\n VideosIngestResponse & { egress: string; country?: string; reducedQuality?: true; width?: number; height?: number }\n> {\n const vimeoCookie = captureVimeoCookie();\n // The work dir is created before the probe, not after, because the probe needs\n // somewhere to put the cookie jar — Vimeo refuses metadata anonymously too.\n const workDir = await mkdtemp(path.join(tmpdir(), \"videos-ingest-\"));\n\n try {\n // Metadata first, because both of the decisions it settles are decisions we\n // used to make only after paying for the download.\n const probe = await probeYtDlp({ url: args.url, country, vimeoCookie, cookieDir: workDir });\n\n if (isAudioOnly(probe.info)) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n \"That link is audio, not video, so it can't go in the video library. Music and podcast links have no picture to store.\",\n );\n }\n\n const tooLong = refuseByDuration(durationSeconds(probe.info), MAX_VIDEO_INGEST_SECONDS);\n if (tooLong) {\n throw new ApiError(\"VALIDATION_ERROR\", tooLong);\n }\n\n // Prefer yt-dlp's own id: re-pasting the same link then dedupes instead of\n // paying Mux to transcode and transcribe the same video twice. Read from the\n // probe rather than from the download's info.json only because the probe has\n // already run — the dedupe itself still happens at the route, after the file\n // has been fetched. Skipping the download on a known id needs a lookup the\n // API does not expose yet; `ingestFromUrlInternal` short-circuits on\n // `externalId` before calling Mux, so the hook for it exists.\n const externalId = args.externalId ?? dedupeKey(args, probe.info);\n\n const { filePath, info, tier, reducedQuality } = await runYtDlp({\n url: args.url,\n audioOnly: false,\n workDir,\n // Deliberately uncapped: take the best the site will release and let Mux\n // decide what to serve. The 1080p ceiling this replaces was reasoning\n // about the wrong cost — it saved download bytes by throwing away source\n // pixels *before* the one system that can make renditions from them ever\n // saw them, so a 4K master became a 1080p master permanently, for\n // everything the library is ever asked to do with that clip afterwards.\n // Downscaling is Mux's job and it is cheap; re-acquiring a master is not.\n country,\n vimeoCookie,\n // Budgeted from the probed length, so the duration we accept and the time\n // we allow to fetch it cannot drift apart.\n timeoutMs: downloadTimeoutMs(durationSeconds(probe.info)),\n });\n\n const stats = await stat(filePath);\n if (stats.size > MAX_VIDEO_INGEST_BYTES) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `That video is ${(stats.size / 1024 ** 3).toFixed(1)} GB, over the ${Math.round(MAX_VIDEO_INGEST_BYTES / 1024 ** 3)} GB limit for this route.`,\n );\n }\n\n const publicUrl = await uploadToAssetStore(filePath, stats.size);\n\n // `url` becomes the stored copy, so the original has to survive as\n // `externalUrl` — otherwise a direct link that fell back to this route\n // leaves the library with no record of where the clip came from.\n // `egress` names the rung that produced the bytes. A paid exit costing real\n // money must never be spent invisibly — without this the only difference\n // between a free download and a residential one is the wall clock.\n return {\n ...(await ingestUrl({\n ...args,\n url: publicUrl,\n externalId,\n externalUrl: args.externalUrl ?? canonicalUrl(probe.info) ?? args.url,\n })),\n egress: tier,\n // Named in the result for the same reason `egress` is: a geo-targeted exit\n // is a deliberate, billable choice and must not be invisible afterwards.\n ...(country ? { country } : {}),\n // Third member of the same family. The site refused the good formats and\n // the download quietly took the one it would release, which is the right\n // call — but a clip that is 360p because of that must say so here, or the\n // only way to find out is to watch it.\n ...(reducedQuality ? { reducedQuality: true } : {}),\n // What the site released, so a clip that came in small is visible in the\n // answer rather than after the marketer has already looked at it.\n ...downloadedResolution(info),\n };\n } finally {\n await rm(workDir, { recursive: true, force: true }).catch(() => {\n // best-effort cleanup — the sandbox is disposable\n });\n }\n}\n\n/** The downloaded format's size, when yt-dlp reported one. */\nfunction downloadedResolution(info: YtDlpInfo): { width?: number; height?: number } {\n const { width, height } = info;\n return typeof width === \"number\" && typeof height === \"number\" ? { width, height } : {};\n}\n\n/**\n * Park a downloaded file in R2 via the canvas asset presign route and return the\n * public URL.\n *\n * Streamed from disk in both passes — hashing and uploading — so a long video\n * costs one buffer rather than twice its own length in RAM. It reads the file\n * twice because the presign needs the sha before the PUT can start, which is a\n * cheap trade against holding gigabytes in memory to avoid the second read.\n */\nasync function uploadToAssetStore(filePath: string, sizeBytes: number): Promise<string> {\n const sha256 = await hashFile(filePath);\n const { putUrl, publicUrl } = await apiPost<{ putUrl: string; publicUrl: string }>(\"/api/canvas/assets/presign\", {\n sha256,\n mime: \"video/mp4\",\n purpose: \"source\",\n });\n\n const putRes = await putFileStreamed({ putUrl, filePath, contentType: \"video/mp4\", sizeBytes });\n if (!putRes.ok) {\n throw new ApiError(\"INTERNAL_ERROR\", `Storing the downloaded video failed: HTTP ${putRes.status}`);\n }\n return publicUrl;\n}\n","import { createHash } from \"node:crypto\";\nimport { createReadStream } from \"node:fs\";\nimport { Readable } from \"node:stream\";\nimport { pipeline } from \"node:stream/promises\";\n\n/**\n * Move a file to object storage without ever holding it in memory.\n *\n * The reason this exists rather than `readFile` + `fetch`: a video is the one\n * asset whose size is set by someone else. Reading it into a Buffer costs its\n * full length in RAM, and handing that Buffer to `new Uint8Array(...)` copies it\n * again — measured, not assumed: `new Uint8Array(buf)` does not alias, so peak\n * usage was twice the file. On an 8 GB Runtime that puts the real ceiling near\n * 3-4 GB of *video*, well under the size a 4K master or a long recording\n * reaches, and the failure mode is an OOM kill with no error to report.\n *\n * Streaming makes peak memory a fixed chunk regardless of length, which is what\n * lets the size limit be a policy decision instead of a memory one.\n */\n\n/** sha256 of a file's contents, read in chunks. */\nexport async function hashFile(filePath: string): Promise<string> {\n const hash = createHash(\"sha256\");\n await pipeline(createReadStream(filePath), hash);\n return hash.digest(\"hex\");\n}\n\n/**\n * PUT a file to a presigned URL, streaming from disk.\n *\n * `content-length` is mandatory and comes from the caller's `stat`: a stream\n * body would otherwise be sent chunked, which S3-compatible presigned PUTs\n * reject. `duplex: \"half\"` is required by undici whenever the body is a stream.\n */\nexport async function putFileStreamed(args: {\n putUrl: string;\n filePath: string;\n contentType: string;\n sizeBytes: number;\n}): Promise<Response> {\n // `toWeb` rather than handing `fetch` the Node stream directly: undici accepts\n // both, but only the web stream is a `BodyInit`, so this stays type-safe\n // instead of needing a cast that would hide a real mistake later.\n const body = Readable.toWeb(createReadStream(args.filePath)) as ReadableStream<Uint8Array>;\n\n return await fetch(args.putUrl, {\n method: \"PUT\",\n body,\n headers: {\n \"Content-Type\": args.contentType,\n \"Content-Length\": String(args.sizeBytes),\n },\n duplex: \"half\",\n } as RequestInit & { duplex: \"half\" });\n}\n"],"mappings":"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","names":["hints","shown"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
avatarsOf
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YS7T735Q.js";
|
|
4
4
|
import {
|
|
5
5
|
readAvatars
|
|
6
6
|
} from "./chunk-PGAYESXE.js";
|
|
7
7
|
import {
|
|
8
8
|
readCreativeContext,
|
|
9
9
|
workspaceOfCreative
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EDWW3THE.js";
|
|
11
11
|
import {
|
|
12
12
|
frontmatterOf,
|
|
13
13
|
ruleTells
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
heldRules,
|
|
140
140
|
ruleGate
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-5NJQXV4K.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
handleLinkedinError,
|
|
3
3
|
resolveAccountIdArg
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-J6KCVW6N.js";
|
|
5
5
|
import {
|
|
6
6
|
adCopyHints,
|
|
7
7
|
booleanWordPositionalError,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
LINKEDIN_DRAFT_BATCH_MAX,
|
|
18
18
|
linkedinDraftOpInputSchema,
|
|
19
19
|
listColumnField
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-TK7VRZKM.js";
|
|
21
21
|
import {
|
|
22
22
|
maskPersonValue
|
|
23
23
|
} from "./chunk-SOPVIIUW.js";
|
|
@@ -396,4 +396,4 @@ export {
|
|
|
396
396
|
requireTarget,
|
|
397
397
|
requireTargets
|
|
398
398
|
};
|
|
399
|
-
//# sourceMappingURL=chunk-
|
|
399
|
+
//# sourceMappingURL=chunk-724E32DM.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DYWKYP7Z.js";
|
|
4
4
|
import {
|
|
5
5
|
HUBSPOT_MISSING_GRANT_MARKER,
|
|
6
6
|
HUBSPOT_NOT_CONNECTED_MESSAGE
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TK7VRZKM.js";
|
|
8
8
|
import {
|
|
9
9
|
ApiError
|
|
10
10
|
} from "./chunk-GFWWHCBF.js";
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
hubspotRefusal,
|
|
49
49
|
failNotConnected
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-72JEATZ5.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseBrandTokens
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-N34A56X7.js";
|
|
4
4
|
|
|
5
5
|
// src/engine/brand/fonts.ts
|
|
6
6
|
import { posix } from "path";
|
|
@@ -452,4 +452,4 @@ export {
|
|
|
452
452
|
stripFontFaceBlocks,
|
|
453
453
|
upsertFontFaceCss
|
|
454
454
|
};
|
|
455
|
-
//# sourceMappingURL=chunk-
|
|
455
|
+
//# sourceMappingURL=chunk-72VH4FPY.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
OBJECTIVE_TYPES,
|
|
4
4
|
calendarDaySchema,
|
|
5
5
|
targetingCriteriaSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TK7VRZKM.js";
|
|
7
7
|
|
|
8
8
|
// ../api/src/ads-linkedin/planning.ts
|
|
9
9
|
import { z } from "zod";
|
|
@@ -58,4 +58,4 @@ export {
|
|
|
58
58
|
LINKEDIN_FORECAST_DEFAULT_DAYS,
|
|
59
59
|
linkedinForecastRequestSchema
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
61
|
+
//# sourceMappingURL=chunk-AHZIGJXD.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
creativesRunResponseSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TK7VRZKM.js";
|
|
4
4
|
import {
|
|
5
5
|
ApiError,
|
|
6
6
|
apiPost
|
|
@@ -20,4 +20,4 @@ async function fetchRunRecord(runId, post = apiPost) {
|
|
|
20
20
|
export {
|
|
21
21
|
fetchRunRecord
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
23
|
+
//# sourceMappingURL=chunk-AQ6LJ7EI.js.map
|
|
@@ -53,7 +53,7 @@ function writeTargetRows(outcomes, view) {
|
|
|
53
53
|
outcomes.length === 1 ? first.error : { code: first.error.code, message: failed.map((f) => `${f.target}: ${f.error.message}`).join("; ") }
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
|
-
const hints = failed.map((f) => `Not returned: ${f.target} \u2014 ${f.error.message}`);
|
|
56
|
+
const hints = [...failed.map((f) => `Not returned: ${f.target} \u2014 ${f.error.message}`), ...view.hints ?? []];
|
|
57
57
|
writeOutput(
|
|
58
58
|
{ ok: true, data: outcomes.length === 1 ? rows[0] : rows, ...hints.length > 0 ? { hints } : {} },
|
|
59
59
|
view.format,
|
|
@@ -70,4 +70,4 @@ export {
|
|
|
70
70
|
failWith,
|
|
71
71
|
writeTargetRows
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=chunk-
|
|
73
|
+
//# sourceMappingURL=chunk-BS4PRGEJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/batchTargets.ts"],"sourcesContent":["import { ApiError } from \"../client.ts\";\nimport { type OutputFormat, writeJson, writeOutput } from \"../output.ts\";\n\n/**\n * Commands that act on one id or URL at a time take several, so a list of N is\n * one call that waits about as long as its slowest item — not a shell loop that\n * waits for all of them in a row.\n */\n\nexport type TargetError = { code: string; message: string; fix?: string };\n\nexport type TargetOutcome<T> =\n | { target: string; ok: true; data: T }\n | { target: string; ok: false; error: TargetError };\n\n/** How many items run at once. Each is a network wait, not local work. */\nexport const TARGET_CONCURRENCY = 6;\n\n/**\n * Every positional, in order and without repeats. citty puts all of them in\n * `_` and only the first in the named positional. A command that reads them\n * here is listed in `READS_ITS_OWN_POSITIONALS` (`unknown-flags.ts`), so the\n * stray-word guard lets the list through. `fallback` is the `--image-id`-style flag,\n * used only when no positional was given.\n */\nexport function positionalTargets(args: { _?: unknown }, fallback?: unknown): string[] {\n const positionals = Array.isArray(args._) ? args._ : [];\n const all = positionals.length > 0 ? positionals : [fallback];\n const targets: string[] = [];\n for (const value of all) {\n if (typeof value !== \"string\") continue;\n const target = value.trim();\n if (target.length > 0 && !targets.includes(target)) targets.push(target);\n }\n return targets;\n}\n\n/** The envelope error for an API refusal, or an unexpected crash. */\nexport function apiFailure(err: unknown): TargetError {\n if (err instanceof ApiError) return { code: err.code, message: err.message };\n return { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" };\n}\n\n/**\n * Run `run` for every target, `TARGET_CONCURRENCY` at a time, keeping going\n * past a failure: one dead link must not cost the agent the other items.\n * Outcomes come back in the order the targets were given.\n */\nexport async function eachTarget<T>(\n targets: string[],\n run: (target: string) => Promise<T>,\n toError: (err: unknown) => TargetError = apiFailure,\n): Promise<TargetOutcome<T>[]> {\n const outcomes: TargetOutcome<T>[] = new Array(targets.length);\n let next = 0;\n const worker = async (): Promise<void> => {\n while (next < targets.length) {\n const index = next++;\n const target = targets[index] as string;\n try {\n outcomes[index] = { target, ok: true, data: await run(target) };\n } catch (err) {\n outcomes[index] = { target, ok: false, error: toError(err) };\n }\n }\n };\n await Promise.all(Array.from({ length: Math.min(TARGET_CONCURRENCY, targets.length) }, worker));\n return outcomes;\n}\n\n/** Print a lone failure as the command always has, and stop. */\nexport function failWith(error: TargetError): never {\n writeJson({ ok: false, error });\n process.exit(1);\n}\n\n/**\n * Print what a read of one or more records found. One target keeps its\n * single-record envelope; several print one row per record found, and a hint\n * for each target that was not, so `--output md` still says what is missing.\n */\nexport function writeTargetRows<T>(\n outcomes: TargetOutcome<T>[],\n view: {
|
|
1
|
+
{"version":3,"sources":["../src/lib/batchTargets.ts"],"sourcesContent":["import { ApiError } from \"../client.ts\";\nimport { type OutputFormat, writeJson, writeOutput } from \"../output.ts\";\n\n/**\n * Commands that act on one id or URL at a time take several, so a list of N is\n * one call that waits about as long as its slowest item — not a shell loop that\n * waits for all of them in a row.\n */\n\nexport type TargetError = { code: string; message: string; fix?: string };\n\nexport type TargetOutcome<T> =\n | { target: string; ok: true; data: T }\n | { target: string; ok: false; error: TargetError };\n\n/** How many items run at once. Each is a network wait, not local work. */\nexport const TARGET_CONCURRENCY = 6;\n\n/**\n * Every positional, in order and without repeats. citty puts all of them in\n * `_` and only the first in the named positional. A command that reads them\n * here is listed in `READS_ITS_OWN_POSITIONALS` (`unknown-flags.ts`), so the\n * stray-word guard lets the list through. `fallback` is the `--image-id`-style flag,\n * used only when no positional was given.\n */\nexport function positionalTargets(args: { _?: unknown }, fallback?: unknown): string[] {\n const positionals = Array.isArray(args._) ? args._ : [];\n const all = positionals.length > 0 ? positionals : [fallback];\n const targets: string[] = [];\n for (const value of all) {\n if (typeof value !== \"string\") continue;\n const target = value.trim();\n if (target.length > 0 && !targets.includes(target)) targets.push(target);\n }\n return targets;\n}\n\n/** The envelope error for an API refusal, or an unexpected crash. */\nexport function apiFailure(err: unknown): TargetError {\n if (err instanceof ApiError) return { code: err.code, message: err.message };\n return { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" };\n}\n\n/**\n * Run `run` for every target, `TARGET_CONCURRENCY` at a time, keeping going\n * past a failure: one dead link must not cost the agent the other items.\n * Outcomes come back in the order the targets were given.\n */\nexport async function eachTarget<T>(\n targets: string[],\n run: (target: string) => Promise<T>,\n toError: (err: unknown) => TargetError = apiFailure,\n): Promise<TargetOutcome<T>[]> {\n const outcomes: TargetOutcome<T>[] = new Array(targets.length);\n let next = 0;\n const worker = async (): Promise<void> => {\n while (next < targets.length) {\n const index = next++;\n const target = targets[index] as string;\n try {\n outcomes[index] = { target, ok: true, data: await run(target) };\n } catch (err) {\n outcomes[index] = { target, ok: false, error: toError(err) };\n }\n }\n };\n await Promise.all(Array.from({ length: Math.min(TARGET_CONCURRENCY, targets.length) }, worker));\n return outcomes;\n}\n\n/** Print a lone failure as the command always has, and stop. */\nexport function failWith(error: TargetError): never {\n writeJson({ ok: false, error });\n process.exit(1);\n}\n\n/**\n * Print what a read of one or more records found. One target keeps its\n * single-record envelope; several print one row per record found, and a hint\n * for each target that was not, so `--output md` still says what is missing.\n */\nexport function writeTargetRows<T>(\n outcomes: TargetOutcome<T>[],\n view: {\n format: OutputFormat;\n fields?: string[];\n full?: boolean;\n normalizer?: Parameters<typeof writeOutput>[4];\n /** What the caller adds after the per-target ones, such as what a save added. */\n hints?: string[];\n },\n): void {\n const rows = outcomes.flatMap((outcome) => (outcome.ok ? [outcome.data] : []));\n const failed = outcomes.flatMap((outcome) => (outcome.ok ? [] : [outcome]));\n const [first] = failed;\n if (rows.length === 0 && first) {\n failWith(\n outcomes.length === 1\n ? first.error\n : { code: first.error.code, message: failed.map((f) => `${f.target}: ${f.error.message}`).join(\"; \") },\n );\n }\n const hints = [...failed.map((f) => `Not returned: ${f.target} — ${f.error.message}`), ...(view.hints ?? [])];\n writeOutput(\n { ok: true, data: outcomes.length === 1 ? rows[0] : rows, ...(hints.length > 0 ? { hints } : {}) },\n view.format,\n view.fields,\n view.full,\n view.normalizer,\n );\n}\n"],"mappings":";;;;;;;;;AAgBO,IAAM,qBAAqB;AAS3B,SAAS,kBAAkB,MAAuB,UAA8B;AACrF,QAAM,cAAc,MAAM,QAAQ,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AACtD,QAAM,MAAM,YAAY,SAAS,IAAI,cAAc,CAAC,QAAQ;AAC5D,QAAM,UAAoB,CAAC;AAC3B,aAAW,SAAS,KAAK;AACvB,QAAI,OAAO,UAAU,SAAU;AAC/B,UAAM,SAAS,MAAM,KAAK;AAC1B,QAAI,OAAO,SAAS,KAAK,CAAC,QAAQ,SAAS,MAAM,EAAG,SAAQ,KAAK,MAAM;AAAA,EACzE;AACA,SAAO;AACT;AAGO,SAAS,WAAW,KAA2B;AACpD,MAAI,eAAe,SAAU,QAAO,EAAE,MAAM,IAAI,MAAM,SAAS,IAAI,QAAQ;AAC3E,SAAO,EAAE,MAAM,kBAAkB,SAAS,mBAAmB;AAC/D;AAOA,eAAsB,WACpB,SACA,KACA,UAAyC,YACZ;AAC7B,QAAM,WAA+B,IAAI,MAAM,QAAQ,MAAM;AAC7D,MAAI,OAAO;AACX,QAAM,SAAS,YAA2B;AACxC,WAAO,OAAO,QAAQ,QAAQ;AAC5B,YAAM,QAAQ;AACd,YAAM,SAAS,QAAQ,KAAK;AAC5B,UAAI;AACF,iBAAS,KAAK,IAAI,EAAE,QAAQ,IAAI,MAAM,MAAM,MAAM,IAAI,MAAM,EAAE;AAAA,MAChE,SAAS,KAAK;AACZ,iBAAS,KAAK,IAAI,EAAE,QAAQ,IAAI,OAAO,OAAO,QAAQ,GAAG,EAAE;AAAA,MAC7D;AAAA,IACF;AAAA,EACF;AACA,QAAM,QAAQ,IAAI,MAAM,KAAK,EAAE,QAAQ,KAAK,IAAI,oBAAoB,QAAQ,MAAM,EAAE,GAAG,MAAM,CAAC;AAC9F,SAAO;AACT;AAGO,SAAS,SAAS,OAA2B;AAClD,YAAU,EAAE,IAAI,OAAO,MAAM,CAAC;AAC9B,UAAQ,KAAK,CAAC;AAChB;AAOO,SAAS,gBACd,UACA,MAQM;AACN,QAAM,OAAO,SAAS,QAAQ,CAAC,YAAa,QAAQ,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAE;AAC7E,QAAM,SAAS,SAAS,QAAQ,CAAC,YAAa,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAE;AAC1E,QAAM,CAAC,KAAK,IAAI;AAChB,MAAI,KAAK,WAAW,KAAK,OAAO;AAC9B;AAAA,MACE,SAAS,WAAW,IAChB,MAAM,QACN,EAAE,MAAM,MAAM,MAAM,MAAM,SAAS,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,KAAK,EAAE,MAAM,OAAO,EAAE,EAAE,KAAK,IAAI,EAAE;AAAA,IACzG;AAAA,EACF;AACA,QAAM,QAAQ,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,iBAAiB,EAAE,MAAM,WAAM,EAAE,MAAM,OAAO,EAAE,GAAG,GAAI,KAAK,SAAS,CAAC,CAAE;AAC5G;AAAA,IACE,EAAE,IAAI,MAAM,MAAM,SAAS,WAAW,IAAI,KAAK,CAAC,IAAI,MAAM,GAAI,MAAM,SAAS,IAAI,EAAE,MAAM,IAAI,CAAC,EAAG;AAAA,IACjG,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AACF;","names":[]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
SITE_COLLECTION_MODES,
|
|
3
3
|
SITE_CONSENT_MODES,
|
|
4
4
|
SITE_HOME_MODES
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-TK7VRZKM.js";
|
|
6
6
|
import {
|
|
7
7
|
ApiError
|
|
8
8
|
} from "./chunk-GFWWHCBF.js";
|
|
@@ -100,4 +100,4 @@ export {
|
|
|
100
100
|
parseSetArgs,
|
|
101
101
|
failSite
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
103
|
+
//# sourceMappingURL=chunk-CZTKRP6M.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ACTION_TEMP_ID_PREFIX
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TK7VRZKM.js";
|
|
4
4
|
import {
|
|
5
5
|
ApiError
|
|
6
6
|
} from "./chunk-GFWWHCBF.js";
|
|
@@ -200,4 +200,4 @@ export {
|
|
|
200
200
|
buildListHints,
|
|
201
201
|
buildGetHints
|
|
202
202
|
};
|
|
203
|
-
//# sourceMappingURL=chunk-
|
|
203
|
+
//# sourceMappingURL=chunk-DYWKYP7Z.js.map
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "./chunk-DLM5OSHM.js";
|
|
19
19
|
import {
|
|
20
20
|
CREATIVE_FEEDBACK_REASON_LABELS
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-TK7VRZKM.js";
|
|
22
22
|
import {
|
|
23
23
|
apiPost
|
|
24
24
|
} from "./chunk-GFWWHCBF.js";
|
|
@@ -341,4 +341,4 @@ export {
|
|
|
341
341
|
workspaceOfCreative,
|
|
342
342
|
avoidOf
|
|
343
343
|
};
|
|
344
|
-
//# sourceMappingURL=chunk-
|
|
344
|
+
//# sourceMappingURL=chunk-EDWW3THE.js.map
|