@koda-sl/baker-cli 0.384.0 → 0.385.0-dev.f7ef4c7e1
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 +1102 -218
- package/canvas/tiktok-captions-composition/index.html +5 -6
- package/canvas/tiktok-captions-composition/meta.json +5 -0
- package/dist/account-4UEZAY5T.js +49 -0
- package/dist/account-4UEZAY5T.js.map +1 -0
- package/dist/account-G6QK2VXQ.js +79 -0
- package/dist/account-G6QK2VXQ.js.map +1 -0
- package/dist/account-OINZG6UP.js +80 -0
- package/dist/account-OINZG6UP.js.map +1 -0
- package/dist/account-reads-ZKKDYHK5.js +218 -0
- package/dist/account-reads-ZKKDYHK5.js.map +1 -0
- package/dist/account-writes-N4JDIDRB.js +66 -0
- package/dist/account-writes-N4JDIDRB.js.map +1 -0
- package/dist/accounts-7KRRRVLB.js +611 -0
- package/dist/accounts-7KRRRVLB.js.map +1 -0
- package/dist/accounts-AEBQFCNH.js +114 -0
- package/dist/accounts-AEBQFCNH.js.map +1 -0
- package/dist/accounts-CNTOHRQ2.js +77 -0
- package/dist/accounts-CNTOHRQ2.js.map +1 -0
- package/dist/accounts-HP4BLKK5.js +75 -0
- package/dist/accounts-HP4BLKK5.js.map +1 -0
- package/dist/accounts-Z4CLGQXJ.js +115 -0
- package/dist/accounts-Z4CLGQXJ.js.map +1 -0
- package/dist/actions-QO7VQ6UV.js +55 -0
- package/dist/actions-QO7VQ6UV.js.map +1 -0
- package/dist/active-entities-YB46ADQN.js +103 -0
- package/dist/active-entities-YB46ADQN.js.map +1 -0
- package/dist/activities-DUAIQJLN.js +74 -0
- package/dist/activities-DUAIQJLN.js.map +1 -0
- package/dist/ad-group-writes-HL3EZ3BT.js +170 -0
- package/dist/ad-group-writes-HL3EZ3BT.js.map +1 -0
- package/dist/ad-groups-FGS5JJGN.js +68 -0
- package/dist/ad-groups-FGS5JJGN.js.map +1 -0
- package/dist/ad-writes-LX4ACUHB.js +174 -0
- package/dist/ad-writes-LX4ACUHB.js.map +1 -0
- package/dist/add-5CUXNOUM.js +97 -0
- package/dist/add-5CUXNOUM.js.map +1 -0
- package/dist/add-5JBMJHNW.js +302 -0
- package/dist/add-5JBMJHNW.js.map +1 -0
- package/dist/add-E66HBIZV.js +105 -0
- package/dist/add-E66HBIZV.js.map +1 -0
- package/dist/add-O76R2SPE.js +104 -0
- package/dist/add-O76R2SPE.js.map +1 -0
- package/dist/add-accounts-YME5SCXD.js +91 -0
- package/dist/add-accounts-YME5SCXD.js.map +1 -0
- package/dist/ads-65R3WMDU.js +128 -0
- package/dist/ads-65R3WMDU.js.map +1 -0
- package/dist/ads-O63J7BDF.js +113 -0
- package/dist/ads-O63J7BDF.js.map +1 -0
- package/dist/ads-T5JWNFSA.js +40 -0
- package/dist/ads-T5JWNFSA.js.map +1 -0
- package/dist/ads-TFZ5PXKS.js +77 -0
- package/dist/ads-TFZ5PXKS.js.map +1 -0
- package/dist/adsets-Y62JOOTV.js +176 -0
- package/dist/adsets-Y62JOOTV.js.map +1 -0
- package/dist/advertisers-LJ2HKJ4W.js +125 -0
- package/dist/advertisers-LJ2HKJ4W.js.map +1 -0
- package/dist/advertisers-WJW5DK3Q.js +120 -0
- package/dist/advertisers-WJW5DK3Q.js.map +1 -0
- package/dist/analytics-HIOC3TUK.js +1976 -0
- package/dist/analytics-HIOC3TUK.js.map +1 -0
- package/dist/analytics-U2NLDV2V.js +433 -0
- package/dist/analytics-U2NLDV2V.js.map +1 -0
- package/dist/animate-E3SKQ6SI.js +480 -0
- package/dist/animate-E3SKQ6SI.js.map +1 -0
- package/dist/assign-V7EAR7VD.js +77 -0
- package/dist/assign-V7EAR7VD.js.map +1 -0
- package/dist/audience-size-GS7EDBDP.js +94 -0
- package/dist/audience-size-GS7EDBDP.js.map +1 -0
- package/dist/audiences-5A6BCWSA.js +268 -0
- package/dist/audiences-5A6BCWSA.js.map +1 -0
- package/dist/audiences-6QOCASVV.js +78 -0
- package/dist/audiences-6QOCASVV.js.map +1 -0
- package/dist/audiences-O67NGIP5.js +85 -0
- package/dist/audiences-O67NGIP5.js.map +1 -0
- package/dist/audit-HWK24VXI.js +88 -0
- package/dist/audit-HWK24VXI.js.map +1 -0
- package/dist/audit-WMZERUAA.js +151 -0
- package/dist/audit-WMZERUAA.js.map +1 -0
- package/dist/autocomplete-KQSTLQFS.js +111 -0
- package/dist/autocomplete-KQSTLQFS.js.map +1 -0
- package/dist/avatars-HAFQZD63.js +38 -0
- package/dist/avatars-HAFQZD63.js.map +1 -0
- package/dist/bid-pricing-5SORFAPE.js +99 -0
- package/dist/bid-pricing-5SORFAPE.js.map +1 -0
- package/dist/brand-EBG436YV.js +22 -0
- package/dist/brand-EBG436YV.js.map +1 -0
- package/dist/brief-AYXXPTHC.js +490 -0
- package/dist/brief-AYXXPTHC.js.map +1 -0
- package/dist/businesses-65EWTK5E.js +53 -0
- package/dist/businesses-65EWTK5E.js.map +1 -0
- package/dist/campaign-groups-U7723BBE.js +95 -0
- package/dist/campaign-groups-U7723BBE.js.map +1 -0
- package/dist/campaign-writes-CXS4KYB5.js +165 -0
- package/dist/campaign-writes-CXS4KYB5.js.map +1 -0
- package/dist/campaign-writes-M6JLF5AC.js +170 -0
- package/dist/campaign-writes-M6JLF5AC.js.map +1 -0
- package/dist/campaigns-6SM2ZSIH.js +76 -0
- package/dist/campaigns-6SM2ZSIH.js.map +1 -0
- package/dist/campaigns-7DWD2A5U.js +109 -0
- package/dist/campaigns-7DWD2A5U.js.map +1 -0
- package/dist/campaigns-F66OYA6N.js +107 -0
- package/dist/campaigns-F66OYA6N.js.map +1 -0
- package/dist/campaigns-TD7ZB5DG.js +110 -0
- package/dist/campaigns-TD7ZB5DG.js.map +1 -0
- package/dist/canvas-3NYM5Y7G.js +46 -0
- package/dist/canvas-3NYM5Y7G.js.map +1 -0
- package/dist/capabilities-JNFYSGRD.js +144 -0
- package/dist/capabilities-JNFYSGRD.js.map +1 -0
- package/dist/cards-7HRC4UQQ.js +85 -0
- package/dist/cards-7HRC4UQQ.js.map +1 -0
- package/dist/catalog-N6MDMIVL.js +64 -0
- package/dist/catalog-N6MDMIVL.js.map +1 -0
- package/dist/catalogs-PB46L7FH.js +128 -0
- package/dist/catalogs-PB46L7FH.js.map +1 -0
- package/dist/changes-SASUQK62.js +135 -0
- package/dist/changes-SASUQK62.js.map +1 -0
- package/dist/chatgpt-JKBSAG25.js +47 -0
- package/dist/chatgpt-JKBSAG25.js.map +1 -0
- package/dist/chats-TUZANLQH.js +262 -0
- package/dist/chats-TUZANLQH.js.map +1 -0
- package/dist/chunk-25E6SC3F.js +363 -0
- package/dist/chunk-25E6SC3F.js.map +1 -0
- package/dist/chunk-2GVXNKAE.js +42 -0
- package/dist/chunk-2GVXNKAE.js.map +1 -0
- package/dist/{chunk-VLUGGVJL.js → chunk-2UFRHW3T.js} +12 -4
- package/dist/chunk-2UFRHW3T.js.map +1 -0
- package/dist/chunk-2Y5V23PU.js +29 -0
- package/dist/chunk-2Y5V23PU.js.map +1 -0
- package/dist/chunk-35NYNRRB.js +111 -0
- package/dist/chunk-35NYNRRB.js.map +1 -0
- package/dist/chunk-3ACMDRSE.js +39 -0
- package/dist/chunk-3ACMDRSE.js.map +1 -0
- package/dist/chunk-3M6RNCDD.js +26 -0
- package/dist/chunk-3M6RNCDD.js.map +1 -0
- package/dist/chunk-3VXQYDJN.js +1743 -0
- package/dist/chunk-3VXQYDJN.js.map +1 -0
- package/dist/chunk-42DF5DF3.js +304 -0
- package/dist/chunk-42DF5DF3.js.map +1 -0
- package/dist/chunk-44VXKO65.js +106 -0
- package/dist/chunk-44VXKO65.js.map +1 -0
- package/dist/chunk-4NZ47VXO.js +137 -0
- package/dist/chunk-4NZ47VXO.js.map +1 -0
- package/dist/chunk-4X3UR372.js +225 -0
- package/dist/chunk-4X3UR372.js.map +1 -0
- package/dist/chunk-5FEBUCJU.js +25 -0
- package/dist/chunk-5FEBUCJU.js.map +1 -0
- package/dist/chunk-5HYSKH77.js +315 -0
- package/dist/chunk-5HYSKH77.js.map +1 -0
- package/dist/chunk-5LBGFQWF.js +310 -0
- package/dist/chunk-5LBGFQWF.js.map +1 -0
- package/dist/chunk-5MBPIONY.js +29 -0
- package/dist/chunk-5MBPIONY.js.map +1 -0
- package/dist/chunk-6YMHGIHP.js +346 -0
- package/dist/chunk-6YMHGIHP.js.map +1 -0
- package/dist/{chunk-VZEDAFAR.js → chunk-6YYSUISH.js} +47 -8
- package/dist/chunk-6YYSUISH.js.map +1 -0
- package/dist/chunk-7GNU3P7X.js +175 -0
- package/dist/chunk-7GNU3P7X.js.map +1 -0
- package/dist/chunk-7OHWEF3I.js +98 -0
- package/dist/chunk-7OHWEF3I.js.map +1 -0
- package/dist/chunk-7TR3QVWM.js +57 -0
- package/dist/chunk-7TR3QVWM.js.map +1 -0
- package/dist/chunk-AADVCEL4.js +817 -0
- package/dist/chunk-AADVCEL4.js.map +1 -0
- package/dist/chunk-AG62YO7C.js +96 -0
- package/dist/chunk-AG62YO7C.js.map +1 -0
- package/dist/chunk-AIRIT4GF.js +75 -0
- package/dist/chunk-AIRIT4GF.js.map +1 -0
- package/dist/chunk-AP3TP6VG.js +139 -0
- package/dist/chunk-AP3TP6VG.js.map +1 -0
- package/dist/chunk-APP475IQ.js +474 -0
- package/dist/chunk-APP475IQ.js.map +1 -0
- package/dist/chunk-AR7PU7BB.js +76 -0
- package/dist/chunk-AR7PU7BB.js.map +1 -0
- package/dist/chunk-B4S72KSS.js +172 -0
- package/dist/chunk-B4S72KSS.js.map +1 -0
- package/dist/chunk-BIPIL4QA.js +486 -0
- package/dist/chunk-BIPIL4QA.js.map +1 -0
- package/dist/chunk-BPUSL5Y2.js +58 -0
- package/dist/chunk-BPUSL5Y2.js.map +1 -0
- package/dist/chunk-BR32GHYD.js +65 -0
- package/dist/chunk-BR32GHYD.js.map +1 -0
- package/dist/chunk-CAMX6OHF.js +3182 -0
- package/dist/chunk-CAMX6OHF.js.map +1 -0
- package/dist/chunk-CE7RTOX6.js +494 -0
- package/dist/chunk-CE7RTOX6.js.map +1 -0
- package/dist/{chunk-MF7YA62W.js → chunk-CUL3VB4L.js} +10 -5
- package/dist/chunk-CUL3VB4L.js.map +1 -0
- package/dist/chunk-CVEY353K.js +66 -0
- package/dist/chunk-CVEY353K.js.map +1 -0
- package/dist/chunk-CWXADUKL.js +1599 -0
- package/dist/chunk-CWXADUKL.js.map +1 -0
- package/dist/chunk-D46NOXRY.js +6212 -0
- package/dist/chunk-D46NOXRY.js.map +1 -0
- package/dist/chunk-D5FY4FAK.js +24 -0
- package/dist/chunk-D5FY4FAK.js.map +1 -0
- package/dist/chunk-DGCUPJZD.js +39 -0
- package/dist/chunk-DGCUPJZD.js.map +1 -0
- package/dist/chunk-DNCLWSHO.js +41 -0
- package/dist/chunk-DNCLWSHO.js.map +1 -0
- package/dist/chunk-DUPURL26.js +97 -0
- package/dist/chunk-DUPURL26.js.map +1 -0
- package/dist/chunk-DXJYQ5P2.js +625 -0
- package/dist/chunk-DXJYQ5P2.js.map +1 -0
- package/dist/chunk-E2ZOSNF5.js +96 -0
- package/dist/chunk-E2ZOSNF5.js.map +1 -0
- package/dist/chunk-E3HYHT7C.js +274 -0
- package/dist/chunk-E3HYHT7C.js.map +1 -0
- package/dist/chunk-EDLZGTGN.js +216 -0
- package/dist/chunk-EDLZGTGN.js.map +1 -0
- package/dist/{chunk-XHC4LMK4.js → chunk-EIGXX6KI.js} +16 -8
- package/dist/chunk-EIGXX6KI.js.map +1 -0
- package/dist/chunk-EPDE7ZRU.js +174 -0
- package/dist/chunk-EPDE7ZRU.js.map +1 -0
- package/dist/chunk-ERSX3MKH.js +34 -0
- package/dist/chunk-ERSX3MKH.js.map +1 -0
- package/dist/chunk-F7HRLPR5.js +67 -0
- package/dist/chunk-F7HRLPR5.js.map +1 -0
- package/dist/chunk-FEG6MN4H.js +84 -0
- package/dist/chunk-FEG6MN4H.js.map +1 -0
- package/dist/chunk-FKOECEVC.js +126 -0
- package/dist/chunk-FKOECEVC.js.map +1 -0
- package/dist/chunk-FMGW2NZI.js +106 -0
- package/dist/chunk-FMGW2NZI.js.map +1 -0
- package/dist/chunk-FPZKKNDK.js +98 -0
- package/dist/chunk-FPZKKNDK.js.map +1 -0
- package/dist/chunk-G3ZDLPNZ.js +206 -0
- package/dist/chunk-G3ZDLPNZ.js.map +1 -0
- package/dist/chunk-GIWHHCD6.js +145 -0
- package/dist/chunk-GIWHHCD6.js.map +1 -0
- package/dist/chunk-GOJXKIFQ.js +1605 -0
- package/dist/chunk-GOJXKIFQ.js.map +1 -0
- package/dist/chunk-GRQ2AXDX.js +9 -0
- package/dist/chunk-GRQ2AXDX.js.map +1 -0
- package/dist/chunk-GXDLWBOY.js +73 -0
- package/dist/chunk-GXDLWBOY.js.map +1 -0
- package/dist/chunk-HAE4WWFQ.js +455 -0
- package/dist/chunk-HAE4WWFQ.js.map +1 -0
- package/dist/chunk-HEEAC2YG.js +541 -0
- package/dist/chunk-HEEAC2YG.js.map +1 -0
- package/dist/chunk-I2DNBEV6.js +4227 -0
- package/dist/chunk-I2DNBEV6.js.map +1 -0
- package/dist/chunk-I4FTS5EE.js +455 -0
- package/dist/chunk-I4FTS5EE.js.map +1 -0
- package/dist/chunk-IA4KJU7O.js +3151 -0
- package/dist/chunk-IA4KJU7O.js.map +1 -0
- package/dist/chunk-IELPT4K2.js +74 -0
- package/dist/chunk-IELPT4K2.js.map +1 -0
- package/dist/chunk-IJMWEO4P.js +57 -0
- package/dist/chunk-IJMWEO4P.js.map +1 -0
- package/dist/chunk-IVIJJXXT.js +62 -0
- package/dist/chunk-IVIJJXXT.js.map +1 -0
- package/dist/chunk-JAU6OAFK.js +455 -0
- package/dist/chunk-JAU6OAFK.js.map +1 -0
- package/dist/chunk-JD3W3ON7.js +188 -0
- package/dist/chunk-JD3W3ON7.js.map +1 -0
- package/dist/chunk-JLWBK3VC.js +5187 -0
- package/dist/chunk-JLWBK3VC.js.map +1 -0
- package/dist/chunk-JPK34QPS.js +134 -0
- package/dist/chunk-JPK34QPS.js.map +1 -0
- package/dist/chunk-JXJD6RC5.js +169 -0
- package/dist/chunk-JXJD6RC5.js.map +1 -0
- package/dist/chunk-JXMZEOHV.js +333 -0
- package/dist/chunk-JXMZEOHV.js.map +1 -0
- package/dist/chunk-K6TDB2KV.js +1442 -0
- package/dist/chunk-K6TDB2KV.js.map +1 -0
- package/dist/chunk-KIGGMKAE.js +66 -0
- package/dist/chunk-KIGGMKAE.js.map +1 -0
- package/dist/chunk-KKJ4KJCW.js +29 -0
- package/dist/chunk-KKJ4KJCW.js.map +1 -0
- package/dist/chunk-KONA5PSR.js +55 -0
- package/dist/chunk-KONA5PSR.js.map +1 -0
- package/dist/chunk-KVHRW7KO.js +60 -0
- package/dist/chunk-KVHRW7KO.js.map +1 -0
- package/dist/chunk-LA6PPSNA.js +65 -0
- package/dist/chunk-LA6PPSNA.js.map +1 -0
- package/dist/chunk-LKPJADL2.js +74 -0
- package/dist/chunk-LKPJADL2.js.map +1 -0
- package/dist/chunk-LM7N7IQR.js +297 -0
- package/dist/chunk-LM7N7IQR.js.map +1 -0
- package/dist/chunk-LWAEHLKV.js +74 -0
- package/dist/chunk-LWAEHLKV.js.map +1 -0
- package/dist/chunk-M6UNISGO.js +66 -0
- package/dist/chunk-M6UNISGO.js.map +1 -0
- package/dist/chunk-MFSIACRB.js +207 -0
- package/dist/chunk-MFSIACRB.js.map +1 -0
- package/dist/chunk-MIJAGBEP.js +23992 -0
- package/dist/chunk-MIJAGBEP.js.map +1 -0
- package/dist/chunk-MYTDK3AL.js +2102 -0
- package/dist/chunk-MYTDK3AL.js.map +1 -0
- package/dist/chunk-MYURCD23.js +6667 -0
- package/dist/chunk-MYURCD23.js.map +1 -0
- package/dist/chunk-MZQ5DX6S.js +125 -0
- package/dist/chunk-MZQ5DX6S.js.map +1 -0
- package/dist/chunk-NFSLRRIE.js +77 -0
- package/dist/chunk-NFSLRRIE.js.map +1 -0
- package/dist/chunk-NMDP7FZP.js +479 -0
- package/dist/chunk-NMDP7FZP.js.map +1 -0
- package/dist/chunk-NMGELUIA.js +183 -0
- package/dist/chunk-NMGELUIA.js.map +1 -0
- package/dist/chunk-NOK7MSVJ.js +533 -0
- package/dist/chunk-NOK7MSVJ.js.map +1 -0
- package/dist/chunk-O2EVJALZ.js +133 -0
- package/dist/chunk-O2EVJALZ.js.map +1 -0
- package/dist/chunk-OIL6PU5W.js +35 -0
- package/dist/chunk-OIL6PU5W.js.map +1 -0
- package/dist/chunk-P4NSJS54.js +20 -0
- package/dist/chunk-P4NSJS54.js.map +1 -0
- package/dist/chunk-P5T7OZKV.js +26 -0
- package/dist/chunk-P5T7OZKV.js.map +1 -0
- package/dist/chunk-PFBQERWX.js +10 -0
- package/dist/chunk-PFBQERWX.js.map +1 -0
- package/dist/chunk-PSWVSLJU.js +56 -0
- package/dist/chunk-PSWVSLJU.js.map +1 -0
- package/dist/chunk-PY2NJ6XZ.js +191 -0
- package/dist/chunk-PY2NJ6XZ.js.map +1 -0
- package/dist/chunk-PZ4OM2LK.js +45 -0
- package/dist/chunk-PZ4OM2LK.js.map +1 -0
- package/dist/chunk-Q2EKN7NI.js +1079 -0
- package/dist/chunk-Q2EKN7NI.js.map +1 -0
- package/dist/chunk-Q6ULQMWG.js +41 -0
- package/dist/chunk-Q6ULQMWG.js.map +1 -0
- package/dist/chunk-QMLGJ5OW.js +2891 -0
- package/dist/chunk-QMLGJ5OW.js.map +1 -0
- package/dist/chunk-R7QV5N2S.js +846 -0
- package/dist/chunk-R7QV5N2S.js.map +1 -0
- package/dist/chunk-RCS4JKUD.js +23 -0
- package/dist/chunk-RCS4JKUD.js.map +1 -0
- package/dist/chunk-RR3KT2E7.js +665 -0
- package/dist/chunk-RR3KT2E7.js.map +1 -0
- package/dist/chunk-SEPPFM5S.js +228 -0
- package/dist/chunk-SEPPFM5S.js.map +1 -0
- package/dist/chunk-SQ7DRYCC.js +150 -0
- package/dist/chunk-SQ7DRYCC.js.map +1 -0
- package/dist/chunk-SYULM665.js +610 -0
- package/dist/chunk-SYULM665.js.map +1 -0
- package/dist/chunk-TKT3OHZ6.js +170 -0
- package/dist/chunk-TKT3OHZ6.js.map +1 -0
- package/dist/chunk-TNOSX3PJ.js +136 -0
- package/dist/chunk-TNOSX3PJ.js.map +1 -0
- package/dist/chunk-TTVKI54A.js +160 -0
- package/dist/chunk-TTVKI54A.js.map +1 -0
- package/dist/chunk-U55UZRIB.js +592 -0
- package/dist/chunk-U55UZRIB.js.map +1 -0
- package/dist/chunk-UI6BKYQD.js +225 -0
- package/dist/chunk-UI6BKYQD.js.map +1 -0
- package/dist/chunk-UKE4IZSA.js +337 -0
- package/dist/chunk-UKE4IZSA.js.map +1 -0
- package/dist/chunk-UKLDW4UW.js +46 -0
- package/dist/chunk-UKLDW4UW.js.map +1 -0
- package/dist/chunk-V6XXXEXZ.js +76 -0
- package/dist/chunk-V6XXXEXZ.js.map +1 -0
- package/dist/chunk-VCZSZCXY.js +197 -0
- package/dist/chunk-VCZSZCXY.js.map +1 -0
- package/dist/chunk-VJQWUF66.js +92 -0
- package/dist/chunk-VJQWUF66.js.map +1 -0
- package/dist/chunk-VSU5R34H.js +76 -0
- package/dist/chunk-VSU5R34H.js.map +1 -0
- package/dist/chunk-W4SA4CMR.js +296 -0
- package/dist/chunk-W4SA4CMR.js.map +1 -0
- package/dist/chunk-WFUMNDCE.js +111 -0
- package/dist/chunk-WFUMNDCE.js.map +1 -0
- package/dist/chunk-WGCGKU3M.js +51 -0
- package/dist/chunk-WGCGKU3M.js.map +1 -0
- package/dist/chunk-WHWNXLTD.js +166 -0
- package/dist/chunk-WHWNXLTD.js.map +1 -0
- package/dist/chunk-WN42X2OE.js +509 -0
- package/dist/chunk-WN42X2OE.js.map +1 -0
- package/dist/chunk-WN4KX7GE.js +25 -0
- package/dist/chunk-WN4KX7GE.js.map +1 -0
- package/dist/chunk-XIY7P54H.js +84 -0
- package/dist/chunk-XIY7P54H.js.map +1 -0
- package/dist/chunk-XPLTWUMN.js +103 -0
- package/dist/chunk-XPLTWUMN.js.map +1 -0
- package/dist/chunk-Y6T5ZKBK.js +19 -0
- package/dist/chunk-Y6T5ZKBK.js.map +1 -0
- package/dist/chunk-YGGRQXDP.js +382 -0
- package/dist/chunk-YGGRQXDP.js.map +1 -0
- package/dist/chunk-YMBB4JBD.js +1830 -0
- package/dist/chunk-YMBB4JBD.js.map +1 -0
- package/dist/chunk-YNWM426O.js +159 -0
- package/dist/chunk-YNWM426O.js.map +1 -0
- package/dist/chunk-YQSBHWOI.js +41 -0
- package/dist/chunk-YTF3IVMF.js +149 -0
- package/dist/chunk-YTF3IVMF.js.map +1 -0
- package/dist/chunk-Z3ENMCFE.js +94 -0
- package/dist/chunk-Z3ENMCFE.js.map +1 -0
- package/dist/chunk-Z7MWSXLG.js +94 -0
- package/dist/chunk-Z7MWSXLG.js.map +1 -0
- package/dist/chunk-ZIXHS6AM.js +42 -0
- package/dist/chunk-ZIXHS6AM.js.map +1 -0
- package/dist/chunk-ZJ7TQUCU.js +4410 -0
- package/dist/chunk-ZJ7TQUCU.js.map +1 -0
- package/dist/chunk-ZNQRDLSS.js +52 -0
- package/dist/chunk-ZNQRDLSS.js.map +1 -0
- package/dist/chunk-ZPGGSXU3.js +275 -0
- package/dist/chunk-ZPGGSXU3.js.map +1 -0
- package/dist/claim-NXYQZEMC.js +197 -0
- package/dist/claim-NXYQZEMC.js.map +1 -0
- package/dist/cli.js +104 -69952
- package/dist/cli.js.map +1 -1
- package/dist/client-EURRWXPW.js +19 -0
- package/dist/code-FKQW7V7N.js +76 -0
- package/dist/code-FKQW7V7N.js.map +1 -0
- package/dist/companies-5ZH47E4H.js +195 -0
- package/dist/companies-5ZH47E4H.js.map +1 -0
- package/dist/complete-62OQPRHW.js +81 -0
- package/dist/complete-62OQPRHW.js.map +1 -0
- package/dist/config-OZOHIAOJ.js +88 -0
- package/dist/config-OZOHIAOJ.js.map +1 -0
- package/dist/connect-6DQFYKGN.js +42 -0
- package/dist/content-PCGSX2QU.js +85 -0
- package/dist/content-PCGSX2QU.js.map +1 -0
- package/dist/conversation-NS7JHTPK.js +93 -0
- package/dist/conversation-NS7JHTPK.js.map +1 -0
- package/dist/conversion-report-7QSWB2FY.js +125 -0
- package/dist/conversion-report-7QSWB2FY.js.map +1 -0
- package/dist/conversion-upload-command-XESIAQPU.js +438 -0
- package/dist/conversion-upload-command-XESIAQPU.js.map +1 -0
- package/dist/conversion-writes-BGOVLBS5.js +120 -0
- package/dist/conversion-writes-BGOVLBS5.js.map +1 -0
- package/dist/conversions-46MI57VC.js +135 -0
- package/dist/conversions-46MI57VC.js.map +1 -0
- package/dist/conversions-IYIWW4O7.js +76 -0
- package/dist/conversions-IYIWW4O7.js.map +1 -0
- package/dist/countries-5OBUVLLD.js +82 -0
- package/dist/countries-5OBUVLLD.js.map +1 -0
- package/dist/create-BEDPXUB7.js +236 -0
- package/dist/create-BEDPXUB7.js.map +1 -0
- package/dist/create-LLTMBBGV.js +207 -0
- package/dist/create-LLTMBBGV.js.map +1 -0
- package/dist/create-VNJ2VH3A.js +59 -0
- package/dist/create-VNJ2VH3A.js.map +1 -0
- package/dist/create-ZYKG2XOP.js +138 -0
- package/dist/create-ZYKG2XOP.js.map +1 -0
- package/dist/creatives-2LL66X4E.js +51 -0
- package/dist/creatives-2LL66X4E.js.map +1 -0
- package/dist/creatives-3MEMSUKJ.js +182 -0
- package/dist/creatives-3MEMSUKJ.js.map +1 -0
- package/dist/creatives-XI2DGQUZ.js +87 -0
- package/dist/creatives-XI2DGQUZ.js.map +1 -0
- package/dist/credentials-63PRTM3K.js +287 -0
- package/dist/credentials-63PRTM3K.js.map +1 -0
- package/dist/critique-IQI7CCTT.js +213 -0
- package/dist/critique-IQI7CCTT.js.map +1 -0
- package/dist/critique-UV7FPG45.js +1449 -0
- package/dist/critique-UV7FPG45.js.map +1 -0
- package/dist/crm-OERYUOBS.js +224 -0
- package/dist/crm-OERYUOBS.js.map +1 -0
- package/dist/crm-VNO3QTQG.js +318 -0
- package/dist/crm-VNO3QTQG.js.map +1 -0
- package/dist/crop-B52KIQ4O.js +113 -0
- package/dist/crop-B52KIQ4O.js.map +1 -0
- package/dist/currency-GGWF5DMU.js +88 -0
- package/dist/currency-GGWF5DMU.js.map +1 -0
- package/dist/custom-conversions-7WDBTC4X.js +125 -0
- package/dist/custom-conversions-7WDBTC4X.js.map +1 -0
- package/dist/customers-FOPXEGCB.js +56 -0
- package/dist/decide-PK7WNSQ2.js +199 -0
- package/dist/decide-PK7WNSQ2.js.map +1 -0
- package/dist/delete-56LKNEGA.js +71 -0
- package/dist/delete-56LKNEGA.js.map +1 -0
- package/dist/delete-EZ7HHOOD.js +69 -0
- package/dist/delete-EZ7HHOOD.js.map +1 -0
- package/dist/delete-JSYM7QKN.js +54 -0
- package/dist/delete-JSYM7QKN.js.map +1 -0
- package/dist/delete-NOUWBNZM.js +66 -0
- package/dist/delete-NOUWBNZM.js.map +1 -0
- package/dist/delete-T33AWV63.js +63 -0
- package/dist/delete-T33AWV63.js.map +1 -0
- package/dist/delete-YSYVFL6W.js +71 -0
- package/dist/delete-YSYVFL6W.js.map +1 -0
- package/dist/demographics-LQGFUS4F.js +138 -0
- package/dist/demographics-LQGFUS4F.js.map +1 -0
- package/dist/describe-AAVYIFE3.js +97 -0
- package/dist/describe-AAVYIFE3.js.map +1 -0
- package/dist/describe-UQFLWVFR.js +97 -0
- package/dist/describe-UQFLWVFR.js.map +1 -0
- package/dist/dimensions-QDXBG2XC.js +101 -0
- package/dist/dimensions-QDXBG2XC.js.map +1 -0
- package/dist/discard-V4LQ7ZGA.js +66 -0
- package/dist/discard-V4LQ7ZGA.js.map +1 -0
- package/dist/discover-6TEBPVNC.js +93 -0
- package/dist/discover-6TEBPVNC.js.map +1 -0
- package/dist/discover-SBZPB7T2.js +172 -0
- package/dist/discover-SBZPB7T2.js.map +1 -0
- package/dist/domain-65J2DEDB.js +98 -0
- package/dist/domain-65J2DEDB.js.map +1 -0
- package/dist/download-LV3GPOWV.js +299 -0
- package/dist/download-LV3GPOWV.js.map +1 -0
- package/dist/draft-DDFFTZ43.js +233 -0
- package/dist/draft-DDFFTZ43.js.map +1 -0
- package/dist/draft-FIKJXNIQ.js +281 -0
- package/dist/draft-FIKJXNIQ.js.map +1 -0
- package/dist/draft-GYGWTMBU.js +307 -0
- package/dist/draft-GYGWTMBU.js.map +1 -0
- package/dist/draft-KNXVZAZV.js +217 -0
- package/dist/draft-KNXVZAZV.js.map +1 -0
- package/dist/draft-N4LFPKTA.js +100 -0
- package/dist/draft-N4LFPKTA.js.map +1 -0
- package/dist/draft-NG2DPL2X.js +306 -0
- package/dist/draft-NG2DPL2X.js.map +1 -0
- package/dist/draft-QILZ7M7N.js +328 -0
- package/dist/draft-QILZ7M7N.js.map +1 -0
- package/dist/draft-XPO5RWST.js +103 -0
- package/dist/draft-XPO5RWST.js.map +1 -0
- package/dist/engine/index.d.ts +213 -127
- package/dist/engine/index.js +18 -4
- package/dist/{env-4P5HOGNA.js → env-TQ2XS2KY.js} +12 -2
- package/dist/env-TQ2XS2KY.js.map +1 -0
- package/dist/experiment-FQNKMORZ.js +1397 -0
- package/dist/experiment-FQNKMORZ.js.map +1 -0
- package/dist/export-4IZQZAPF.js +168 -0
- package/dist/export-4IZQZAPF.js.map +1 -0
- package/dist/extract-DZMGVQ7D.js +113 -0
- package/dist/extract-DZMGVQ7D.js.map +1 -0
- package/dist/facets-FAAOFHBF.js +114 -0
- package/dist/facets-FAAOFHBF.js.map +1 -0
- package/dist/favorites-DD2LNSTG.js +178 -0
- package/dist/favorites-DD2LNSTG.js.map +1 -0
- package/dist/feed-TUVFNX2U.js +177 -0
- package/dist/feed-TUVFNX2U.js.map +1 -0
- package/dist/feedback-NWOOZOFW.js +66 -0
- package/dist/feedback-NWOOZOFW.js.map +1 -0
- package/dist/feedback-record-CFPUKLMY.js +175 -0
- package/dist/feedback-record-CFPUKLMY.js.map +1 -0
- package/dist/fetch-LEY77E7V.js +176 -0
- package/dist/fetch-LEY77E7V.js.map +1 -0
- package/dist/fetch-O6UHNXWB.js +139 -0
- package/dist/fetch-O6UHNXWB.js.map +1 -0
- package/dist/find-4XKIBF4D.js +134 -0
- package/dist/find-4XKIBF4D.js.map +1 -0
- package/dist/fit-ODVVXV2Q.js +45 -0
- package/dist/fit-ODVVXV2Q.js.map +1 -0
- package/dist/flows-QKPC63AF.js +247 -0
- package/dist/flows-QKPC63AF.js.map +1 -0
- package/dist/follow-RCOXTZGY.js +94 -0
- package/dist/follow-RCOXTZGY.js.map +1 -0
- package/dist/follow-competitors-SQ5XBFTK.js +112 -0
- package/dist/follow-competitors-SQ5XBFTK.js.map +1 -0
- package/dist/following-VDU3BHC4.js +113 -0
- package/dist/following-VDU3BHC4.js.map +1 -0
- package/dist/fonts-WM2MJDVJ.js +34 -0
- package/dist/fonts-WM2MJDVJ.js.map +1 -0
- package/dist/forecast-2GJKBNBM.js +168 -0
- package/dist/forecast-2GJKBNBM.js.map +1 -0
- package/dist/forecast-7K3TAHDL.js +104 -0
- package/dist/forecast-7K3TAHDL.js.map +1 -0
- package/dist/funding-HTFVZLLG.js +85 -0
- package/dist/funding-HTFVZLLG.js.map +1 -0
- package/dist/funnel-CSPK5SPZ.js +394 -0
- package/dist/funnel-CSPK5SPZ.js.map +1 -0
- package/dist/ga4-2RC4EH7V.js +55 -0
- package/dist/ga4-2RC4EH7V.js.map +1 -0
- package/dist/generate-TPDOBCKQ.js +262 -0
- package/dist/generate-TPDOBCKQ.js.map +1 -0
- package/dist/get-4YZ4PI3B.js +56 -0
- package/dist/get-4YZ4PI3B.js.map +1 -0
- package/dist/get-FH2LIEYL.js +63 -0
- package/dist/get-FH2LIEYL.js.map +1 -0
- package/dist/get-GZLCDXXW.js +61 -0
- package/dist/get-GZLCDXXW.js.map +1 -0
- package/dist/get-HFU6ZJPX.js +78 -0
- package/dist/get-HFU6ZJPX.js.map +1 -0
- package/dist/get-TSPQYEKC.js +59 -0
- package/dist/get-TSPQYEKC.js.map +1 -0
- package/dist/get-TY3RXYNZ.js +63 -0
- package/dist/get-TY3RXYNZ.js.map +1 -0
- package/dist/get-VPW33XTN.js +92 -0
- package/dist/get-VPW33XTN.js.map +1 -0
- package/dist/gif-JFEYPFFI.js +94 -0
- package/dist/gif-JFEYPFFI.js.map +1 -0
- package/dist/google-R6RD4L6Z.js +136 -0
- package/dist/google-R6RD4L6Z.js.map +1 -0
- package/dist/google-VPQNRVIB.js +3190 -0
- package/dist/google-VPQNRVIB.js.map +1 -0
- package/dist/google-ads-WWM5KIRS.js +195 -0
- package/dist/google-ads-WWM5KIRS.js.map +1 -0
- package/dist/group-7AV6UL26.js +43 -0
- package/dist/group-7AV6UL26.js.map +1 -0
- package/dist/group-BVQZEZIC.js +43 -0
- package/dist/group-BVQZEZIC.js.map +1 -0
- package/dist/gsc-SQ42WAQE.js +30 -0
- package/dist/gsc-SQ42WAQE.js.map +1 -0
- package/dist/history-BNNHFURR.js +67 -0
- package/dist/history-BNNHFURR.js.map +1 -0
- package/dist/history-KBK5TP65.js +133 -0
- package/dist/history-KBK5TP65.js.map +1 -0
- package/dist/hubspot-GAAWWVLL.js +779 -0
- package/dist/hubspot-GAAWWVLL.js.map +1 -0
- package/dist/icon-OYTTSNSL.js +137 -0
- package/dist/icon-OYTTSNSL.js.map +1 -0
- package/dist/ideas-CELMD3BL.js +32 -0
- package/dist/ideas-CELMD3BL.js.map +1 -0
- package/dist/images-QHV4ECAP.js +90 -0
- package/dist/images-QHV4ECAP.js.map +1 -0
- package/dist/improve-W6GZNT2A.js +86 -0
- package/dist/improve-W6GZNT2A.js.map +1 -0
- package/dist/ingest-SH35YX6X.js +23 -0
- package/dist/ingest-SH35YX6X.js.map +1 -0
- package/dist/ingest-UWCGJZXV.js +107 -0
- package/dist/ingest-UWCGJZXV.js.map +1 -0
- package/dist/insights-IW7LGAWU.js +423 -0
- package/dist/insights-IW7LGAWU.js.map +1 -0
- package/dist/insights-QH54F56A.js +122 -0
- package/dist/insights-QH54F56A.js.map +1 -0
- package/dist/inspect-6Z6HEMBI.js +189 -0
- package/dist/inspect-6Z6HEMBI.js.map +1 -0
- package/dist/inspiration-RDQ3Y3N3.js +53 -0
- package/dist/inspiration-RDQ3Y3N3.js.map +1 -0
- package/dist/intent-5GSSCFZ2.js +95 -0
- package/dist/intent-5GSSCFZ2.js.map +1 -0
- package/dist/job-URVXJP75.js +202 -0
- package/dist/job-URVXJP75.js.map +1 -0
- package/dist/job-create-S4SECUVF.js +109 -0
- package/dist/job-create-S4SECUVF.js.map +1 -0
- package/dist/job-status-253SUCTJ.js +74 -0
- package/dist/job-status-253SUCTJ.js.map +1 -0
- package/dist/keep-GPSYDIGJ.js +78 -0
- package/dist/keep-GPSYDIGJ.js.map +1 -0
- package/dist/keyword-gap-NTFDX43B.js +130 -0
- package/dist/keyword-gap-NTFDX43B.js.map +1 -0
- package/dist/keyword-metrics-NKZRCF4L.js +197 -0
- package/dist/keyword-metrics-NKZRCF4L.js.map +1 -0
- package/dist/keywords-for-site-NQUPJNUR.js +128 -0
- package/dist/keywords-for-site-NQUPJNUR.js.map +1 -0
- package/dist/landing-AHNZSZHY.js +28 -0
- package/dist/landing-AHNZSZHY.js.map +1 -0
- package/dist/landings-NEF4PQL2.js +151 -0
- package/dist/landings-NEF4PQL2.js.map +1 -0
- package/dist/languages-3RDPPPTE.js +55 -0
- package/dist/languages-3RDPPPTE.js.map +1 -0
- package/dist/languages-CQX3YOIT.js +40 -0
- package/dist/languages-CQX3YOIT.js.map +1 -0
- package/dist/launches-GBHLJH5S.js +19 -0
- package/dist/launches-GBHLJH5S.js.map +1 -0
- package/dist/layerize-Q56C6LFG.js +190 -0
- package/dist/layerize-Q56C6LFG.js.map +1 -0
- package/dist/leads-5MUVPXA2.js +90 -0
- package/dist/leads-5MUVPXA2.js.map +1 -0
- package/dist/leads-JHUM6FYR.js +293 -0
- package/dist/leads-JHUM6FYR.js.map +1 -0
- package/dist/learn-EMV7RWTB.js +203 -0
- package/dist/learn-EMV7RWTB.js.map +1 -0
- package/dist/library-6VUFHTEK.js +109 -0
- package/dist/library-6VUFHTEK.js.map +1 -0
- package/dist/lighthouse-57U2GMPV.js +75 -0
- package/dist/lighthouse-57U2GMPV.js.map +1 -0
- package/dist/line-item-writes-GMIZYHLB.js +208 -0
- package/dist/line-item-writes-GMIZYHLB.js.map +1 -0
- package/dist/line-items-B5HAC47U.js +103 -0
- package/dist/line-items-B5HAC47U.js.map +1 -0
- package/dist/link-B6ZJFGFE.js +64 -0
- package/dist/link-B6ZJFGFE.js.map +1 -0
- package/dist/linkedin-FJ3OUYT2.js +1008 -0
- package/dist/linkedin-FJ3OUYT2.js.map +1 -0
- package/dist/list-2MBSU4ZX.js +63 -0
- package/dist/list-2MBSU4ZX.js.map +1 -0
- package/dist/list-EFUPHLG3.js +303 -0
- package/dist/list-EFUPHLG3.js.map +1 -0
- package/dist/list-G57ZO4PG.js +50 -0
- package/dist/list-G57ZO4PG.js.map +1 -0
- package/dist/list-JCSWZWDI.js +57 -0
- package/dist/list-JCSWZWDI.js.map +1 -0
- package/dist/list-QOSPRCH4.js +151 -0
- package/dist/list-QOSPRCH4.js.map +1 -0
- package/dist/list-RINCJOAC.js +76 -0
- package/dist/list-RINCJOAC.js.map +1 -0
- package/dist/list-SRNXHS6L.js +51 -0
- package/dist/list-SRNXHS6L.js.map +1 -0
- package/dist/list-YJSO4M5Q.js +65 -0
- package/dist/list-YJSO4M5Q.js.map +1 -0
- package/dist/locations-HW2Y5OJO.js +67 -0
- package/dist/locations-HW2Y5OJO.js.map +1 -0
- package/dist/locations-XOHI3VWI.js +40 -0
- package/dist/locations-XOHI3VWI.js.map +1 -0
- package/dist/log-SZDYUMM3.js +92 -0
- package/dist/log-SZDYUMM3.js.map +1 -0
- package/dist/logo-KXTGIYBI.js +18 -0
- package/dist/logo-KXTGIYBI.js.map +1 -0
- package/dist/lookup-X6O5UNJH.js +22 -0
- package/dist/lookup-X6O5UNJH.js.map +1 -0
- package/dist/make-SGCBJTRR.js +633 -0
- package/dist/make-SGCBJTRR.js.map +1 -0
- package/dist/map-ZK46VVL3.js +404 -0
- package/dist/map-ZK46VVL3.js.map +1 -0
- package/dist/mcp-NCM5TQUG.js +463 -0
- package/dist/mcp-NCM5TQUG.js.map +1 -0
- package/dist/media-MI4EE7L4.js +89 -0
- package/dist/media-MI4EE7L4.js.map +1 -0
- package/dist/media-QUTQOBA7.js +15 -0
- package/dist/media-QUTQOBA7.js.map +1 -0
- package/dist/media-sources-MS3RMQ6A.js +32 -0
- package/dist/media-sources-MS3RMQ6A.js.map +1 -0
- package/dist/members-IGHLTQKW.js +44 -0
- package/dist/members-IGHLTQKW.js.map +1 -0
- package/dist/meta-E3JOUOSS.js +69 -0
- package/dist/meta-E3JOUOSS.js.map +1 -0
- package/dist/metrics-HQ7XJAYQ.js +152 -0
- package/dist/metrics-HQ7XJAYQ.js.map +1 -0
- package/dist/models-PGX3FBHU.js +155 -0
- package/dist/models-PGX3FBHU.js.map +1 -0
- package/dist/normalize-FPJ6GSOY.js +806 -0
- package/dist/normalize-FPJ6GSOY.js.map +1 -0
- package/dist/normalize-LHD5LVFK.js +141 -0
- package/dist/normalize-LHD5LVFK.js.map +1 -0
- package/dist/options-CPHN3RMO.js +121 -0
- package/dist/options-CPHN3RMO.js.map +1 -0
- package/dist/output-GQFJ2T5B.js +24 -0
- package/dist/output-GQFJ2T5B.js.map +1 -0
- package/dist/page-VTTSBC6Y.js +105 -0
- package/dist/page-VTTSBC6Y.js.map +1 -0
- package/dist/pages-PMZVNVQM.js +66 -0
- package/dist/pages-PMZVNVQM.js.map +1 -0
- package/dist/performance-ECIJJEFV.js +24 -0
- package/dist/performance-ECIJJEFV.js.map +1 -0
- package/dist/pinterest-UDNGOWDM.js +96 -0
- package/dist/pinterest-UDNGOWDM.js.map +1 -0
- package/dist/pixels-OYZDGCH3.js +108 -0
- package/dist/pixels-OYZDGCH3.js.map +1 -0
- package/dist/pixels-XKGNTCFX.js +60 -0
- package/dist/pixels-XKGNTCFX.js.map +1 -0
- package/dist/plan-DZS3TVIJ.js +207 -0
- package/dist/plan-DZS3TVIJ.js.map +1 -0
- package/dist/preview-DR6MXOGI.js +169 -0
- package/dist/preview-DR6MXOGI.js.map +1 -0
- package/dist/profile-VOVZG44G.js +159 -0
- package/dist/profile-VOVZG44G.js.map +1 -0
- package/dist/promoted-tweet-writes-UJJI5SQL.js +180 -0
- package/dist/promoted-tweet-writes-UJJI5SQL.js.map +1 -0
- package/dist/promoted-tweets-O5RCETPX.js +119 -0
- package/dist/promoted-tweets-O5RCETPX.js.map +1 -0
- package/dist/properties-MKVF7MUK.js +101 -0
- package/dist/properties-MKVF7MUK.js.map +1 -0
- package/dist/publish-RRYU3NNX.js +322 -0
- package/dist/publish-RRYU3NNX.js.map +1 -0
- package/dist/query-CNWQ6STR.js +61 -0
- package/dist/query-CNWQ6STR.js.map +1 -0
- package/dist/query-DBSBZ73C.js +247 -0
- package/dist/query-DBSBZ73C.js.map +1 -0
- package/dist/query-QK4U4TEL.js +236 -0
- package/dist/query-QK4U4TEL.js.map +1 -0
- package/dist/questionnaire-OVJWNUVV.js +93 -0
- package/dist/questionnaire-OVJWNUVV.js.map +1 -0
- package/dist/read-L2QIVJTL.js +141 -0
- package/dist/read-L2QIVJTL.js.map +1 -0
- package/dist/reddit-K6CKJZRF.js +26 -0
- package/dist/reddit-K6CKJZRF.js.map +1 -0
- package/dist/refresh-IF4P57JJ.js +94 -0
- package/dist/refresh-IF4P57JJ.js.map +1 -0
- package/dist/release-H4EL3J6R.js +60 -0
- package/dist/release-H4EL3J6R.js.map +1 -0
- package/dist/relevant-pages-CRI2NLWG.js +99 -0
- package/dist/relevant-pages-CRI2NLWG.js.map +1 -0
- package/dist/remove-DKSHQRNS.js +50 -0
- package/dist/remove-DKSHQRNS.js.map +1 -0
- package/dist/remove-JKSCGKQG.js +48 -0
- package/dist/remove-JKSCGKQG.js.map +1 -0
- package/dist/reopen-B26V2GEJ.js +63 -0
- package/dist/reopen-B26V2GEJ.js.map +1 -0
- package/dist/rerun-6WKE4MPY.js +84 -0
- package/dist/rerun-6WKE4MPY.js.map +1 -0
- package/dist/research-O3IVF3MM.js +62 -0
- package/dist/research-O3IVF3MM.js.map +1 -0
- package/dist/research-SC7S6IPV.js +262 -0
- package/dist/research-SC7S6IPV.js.map +1 -0
- package/dist/reset-7HMOB2KE.js +54 -0
- package/dist/reset-7HMOB2KE.js.map +1 -0
- package/dist/reset-THPEXZDK.js +54 -0
- package/dist/reset-THPEXZDK.js.map +1 -0
- package/dist/resolve-HX5R52A3.js +121 -0
- package/dist/resolve-HX5R52A3.js.map +1 -0
- package/dist/retry-4ENRUJOJ.js +62 -0
- package/dist/retry-4ENRUJOJ.js.map +1 -0
- package/dist/retry-ELIMI7U5.js +60 -0
- package/dist/retry-ELIMI7U5.js.map +1 -0
- package/dist/retry-failed-2OYMCB55.js +45 -0
- package/dist/retry-failed-2OYMCB55.js.map +1 -0
- package/dist/run-CY4BAIQI.js +65 -0
- package/dist/run-CY4BAIQI.js.map +1 -0
- package/dist/run-GXPPPDGI.js +59 -0
- package/dist/run-GXPPPDGI.js.map +1 -0
- package/dist/scaffold-ad-X6VPBVTB.js +1548 -0
- package/dist/scaffold-ad-X6VPBVTB.js.map +1 -0
- package/dist/scaffold-static-ad-LKOOZSDP.js +971 -0
- package/dist/scaffold-static-ad-LKOOZSDP.js.map +1 -0
- package/dist/scaffold-video-NAOIFIM4.js +872 -0
- package/dist/scaffold-video-NAOIFIM4.js.map +1 -0
- package/dist/schedule-TLYT5UXM.js +66 -0
- package/dist/schedule-TLYT5UXM.js.map +1 -0
- package/dist/schedule-V654LLZ2.js +61 -0
- package/dist/schedule-V654LLZ2.js.map +1 -0
- package/dist/scheduled-agents-MJNUZYEK.js +49 -0
- package/dist/scheduled-agents-MJNUZYEK.js.map +1 -0
- package/dist/schema-DN4WKWUM.js +132 -0
- package/dist/schema-DN4WKWUM.js.map +1 -0
- package/dist/schema-MZTVCNP4.js +63 -0
- package/dist/schema-MZTVCNP4.js.map +1 -0
- package/dist/scrape-T3DA7ER7.js +2241 -0
- package/dist/scrape-T3DA7ER7.js.map +1 -0
- package/dist/screenshot-EIGC6SZB.js +102 -0
- package/dist/screenshot-EIGC6SZB.js.map +1 -0
- package/dist/search-2SVUDZIX.js +224 -0
- package/dist/search-2SVUDZIX.js.map +1 -0
- package/dist/search-34NFJ5F6.js +26 -0
- package/dist/search-34NFJ5F6.js.map +1 -0
- package/dist/search-BWE3OPOY.js +91 -0
- package/dist/search-BWE3OPOY.js.map +1 -0
- package/dist/search-EYYAOZND.js +92 -0
- package/dist/search-EYYAOZND.js.map +1 -0
- package/dist/search-EZZMYU4Y.js +174 -0
- package/dist/search-EZZMYU4Y.js.map +1 -0
- package/dist/search-copy-VKQ2OOBM.js +168 -0
- package/dist/search-copy-VKQ2OOBM.js.map +1 -0
- package/dist/seeds-HQYSVFIX.js +101 -0
- package/dist/seeds-HQYSVFIX.js.map +1 -0
- package/dist/select-3SIBANY6.js +94 -0
- package/dist/select-3SIBANY6.js.map +1 -0
- package/dist/sends-I7VQFE4S.js +309 -0
- package/dist/sends-I7VQFE4S.js.map +1 -0
- package/dist/sequences-JHSEJJGN.js +146 -0
- package/dist/sequences-JHSEJJGN.js.map +1 -0
- package/dist/set-prompt-RAG7RJOD.js +185 -0
- package/dist/set-prompt-RAG7RJOD.js.map +1 -0
- package/dist/setup-links-TNRBFS5Z.js +141 -0
- package/dist/setup-links-TNRBFS5Z.js.map +1 -0
- package/dist/{shared-J7DQZ2ED.js → shared-AT3FXPAG.js} +8 -6
- package/dist/shared-AT3FXPAG.js.map +1 -0
- package/dist/shopify-LUETQ5NT.js +3819 -0
- package/dist/shopify-LUETQ5NT.js.map +1 -0
- package/dist/site-SDL6LF6D.js +177 -0
- package/dist/site-SDL6LF6D.js.map +1 -0
- package/dist/sitemaps-FG37N5EB.js +87 -0
- package/dist/sitemaps-FG37N5EB.js.map +1 -0
- package/dist/sites-FIXK4Y3O.js +101 -0
- package/dist/sites-FIXK4Y3O.js.map +1 -0
- package/dist/skills-OKVCVQVD.js +47 -0
- package/dist/skills-OKVCVQVD.js.map +1 -0
- package/dist/sources-ISAUZFRN.js +30 -0
- package/dist/sources-ISAUZFRN.js.map +1 -0
- package/dist/sources-LQTJXAJG.js +421 -0
- package/dist/sources-LQTJXAJG.js.map +1 -0
- package/dist/stale-2L7NTLC6.js +63 -0
- package/dist/stale-2L7NTLC6.js.map +1 -0
- package/dist/stats-ZWZ7BAHV.js +34 -0
- package/dist/stats-ZWZ7BAHV.js.map +1 -0
- package/dist/status-4QBSIHO7.js +62 -0
- package/dist/status-4QBSIHO7.js.map +1 -0
- package/dist/sticker-FLRZM3BI.js +94 -0
- package/dist/sticker-FLRZM3BI.js.map +1 -0
- package/dist/stock-2CSMWRWV.js +179 -0
- package/dist/stock-2CSMWRWV.js.map +1 -0
- package/dist/studio-TTTR6N7D.js +49 -0
- package/dist/studio-TTTR6N7D.js.map +1 -0
- package/dist/sync-DH7FTPGG.js +54 -0
- package/dist/sync-DH7FTPGG.js.map +1 -0
- package/dist/sync-G5CS2RYV.js +54 -0
- package/dist/sync-G5CS2RYV.js.map +1 -0
- package/dist/sync-UADA6M33.js +265 -0
- package/dist/sync-UADA6M33.js.map +1 -0
- package/dist/sync-definition-ATMMOJ37.js +52 -0
- package/dist/sync-definition-ATMMOJ37.js.map +1 -0
- package/dist/tag-manager-NK3ZHSJB.js +43 -0
- package/dist/tag-manager-NK3ZHSJB.js.map +1 -0
- package/dist/tags-4RBZWDHS.js +20 -0
- package/dist/tags-4RBZWDHS.js.map +1 -0
- package/dist/tags-M7ATU2R7.js +26 -0
- package/dist/tags-M7ATU2R7.js.map +1 -0
- package/dist/tags-MXJKIBL4.js +20 -0
- package/dist/tags-MXJKIBL4.js.map +1 -0
- package/dist/tags-YG5EGPBW.js +20 -0
- package/dist/tags-YG5EGPBW.js.map +1 -0
- package/dist/tags-ZP4O3I2F.js +224 -0
- package/dist/tags-ZP4O3I2F.js.map +1 -0
- package/dist/targeting-constants-ZGBX3VWU.js +118 -0
- package/dist/targeting-constants-ZGBX3VWU.js.map +1 -0
- package/dist/targeting-criteria-BTB2RVI4.js +113 -0
- package/dist/targeting-criteria-BTB2RVI4.js.map +1 -0
- package/dist/targets-DEGJD2N6.js +102 -0
- package/dist/targets-DEGJD2N6.js.map +1 -0
- package/dist/templates-FZDWQSTV.js +178 -0
- package/dist/templates-FZDWQSTV.js.map +1 -0
- package/dist/testimonials-TI5EDABS.js +32 -0
- package/dist/testimonials-TI5EDABS.js.map +1 -0
- package/dist/themes-3RV3HNNE.js +94 -0
- package/dist/themes-3RV3HNNE.js.map +1 -0
- package/dist/top-companies-OKH7UNKX.js +108 -0
- package/dist/top-companies-OKH7UNKX.js.map +1 -0
- package/dist/translate-IUQBBVE6.js +598 -0
- package/dist/translate-IUQBBVE6.js.map +1 -0
- package/dist/triggers-2NWMXQ5P.js +141 -0
- package/dist/triggers-2NWMXQ5P.js.map +1 -0
- package/dist/tweets-X64YDEAA.js +123 -0
- package/dist/tweets-X64YDEAA.js.map +1 -0
- package/dist/unfollow-PIONCSBL.js +46 -0
- package/dist/unfollow-PIONCSBL.js.map +1 -0
- package/dist/unlink-UAPLQMK6.js +67 -0
- package/dist/unlink-UAPLQMK6.js.map +1 -0
- package/dist/unstage-BJJ5M7MK.js +95 -0
- package/dist/unstage-BJJ5M7MK.js.map +1 -0
- package/dist/unstage-X2BYGH2S.js +84 -0
- package/dist/unstage-X2BYGH2S.js.map +1 -0
- package/dist/update-7YK3VSOK.js +142 -0
- package/dist/update-7YK3VSOK.js.map +1 -0
- package/dist/update-BHG7BTK3.js +155 -0
- package/dist/update-BHG7BTK3.js.map +1 -0
- package/dist/update-CDJXKEVA.js +63 -0
- package/dist/update-CDJXKEVA.js.map +1 -0
- package/dist/update-RZXDAMAG.js +98 -0
- package/dist/update-RZXDAMAG.js.map +1 -0
- package/dist/upload-DSZEXNHH.js +126 -0
- package/dist/upload-DSZEXNHH.js.map +1 -0
- package/dist/upload-IWFYKD7A.js +150 -0
- package/dist/upload-IWFYKD7A.js.map +1 -0
- package/dist/upscale-EYCEYRWE.js +109 -0
- package/dist/upscale-EYCEYRWE.js.map +1 -0
- package/dist/url-options-RA3XISLN.js +130 -0
- package/dist/url-options-RA3XISLN.js.map +1 -0
- package/dist/url-params-OGZXF6MT.js +98 -0
- package/dist/url-params-OGZXF6MT.js.map +1 -0
- package/dist/use-E2TA2K6J.js +95 -0
- package/dist/use-E2TA2K6J.js.map +1 -0
- package/dist/validate-C6HWDI6K.js +88 -0
- package/dist/validate-C6HWDI6K.js.map +1 -0
- package/dist/variant-ETHB6XUM.js +338 -0
- package/dist/variant-ETHB6XUM.js.map +1 -0
- package/dist/videos-A2X5AARB.js +39 -0
- package/dist/videos-A2X5AARB.js.map +1 -0
- package/dist/view-BVEZRRV2.js +121 -0
- package/dist/view-BVEZRRV2.js.map +1 -0
- package/dist/viewer-check-W4ICSBHO.js +68 -0
- package/dist/viewer-check-W4ICSBHO.js.map +1 -0
- package/dist/web-GJSFDBBE.js +140 -0
- package/dist/web-GJSFDBBE.js.map +1 -0
- package/dist/winners-MJDKCGEZ.js +113 -0
- package/dist/winners-MJDKCGEZ.js.map +1 -0
- package/dist/winning-ads-NNU5MM75.js +84 -0
- package/dist/winning-ads-NNU5MM75.js.map +1 -0
- package/dist/write-commands-5I5KY6ZS.js +1015 -0
- package/dist/write-commands-5I5KY6ZS.js.map +1 -0
- package/dist/write-commands-DA6FIFAO.js +737 -0
- package/dist/write-commands-DA6FIFAO.js.map +1 -0
- package/dist/write-commands-KTPISQRE.js +206 -0
- package/dist/write-commands-KTPISQRE.js.map +1 -0
- package/dist/write-commands-QBGIWU27.js +713 -0
- package/dist/write-commands-QBGIWU27.js.map +1 -0
- package/dist/x-VCL5VRXC.js +47 -0
- package/dist/x-VCL5VRXC.js.map +1 -0
- package/package.json +9 -2
- package/dist/chunk-FGHMWBUD.js +0 -9989
- package/dist/chunk-FGHMWBUD.js.map +0 -1
- package/dist/chunk-HJEMOSPH.js +0 -1292
- package/dist/chunk-HJEMOSPH.js.map +0 -1
- package/dist/chunk-MF7YA62W.js.map +0 -1
- package/dist/chunk-VLUGGVJL.js.map +0 -1
- package/dist/chunk-VZEDAFAR.js.map +0 -1
- package/dist/chunk-XHC4LMK4.js.map +0 -1
- package/dist/client-GR6YL3YX.js +0 -17
- package/dist/output-NMQXZF3Z.js +0 -18
- /package/dist/{client-GR6YL3YX.js.map → chunk-YQSBHWOI.js.map} +0 -0
- /package/dist/{env-4P5HOGNA.js.map → client-EURRWXPW.js.map} +0 -0
- /package/dist/{output-NMQXZF3Z.js.map → connect-6DQFYKGN.js.map} +0 -0
- /package/dist/{shared-J7DQZ2ED.js.map → customers-FOPXEGCB.js.map} +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import {
|
|
2
|
+
mediaTagsCreateRequestSchema,
|
|
3
|
+
mediaTagsDeleteRequestSchema,
|
|
4
|
+
mediaTagsUpdateRequestSchema
|
|
5
|
+
} from "./chunk-D46NOXRY.js";
|
|
6
|
+
import {
|
|
7
|
+
ApiError,
|
|
8
|
+
apiGet,
|
|
9
|
+
apiPost
|
|
10
|
+
} from "./chunk-CUL3VB4L.js";
|
|
11
|
+
import {
|
|
12
|
+
registerSchema,
|
|
13
|
+
writeJson
|
|
14
|
+
} from "./chunk-MYTDK3AL.js";
|
|
15
|
+
|
|
16
|
+
// src/lib/tags-command.ts
|
|
17
|
+
import { defineCommand } from "citty";
|
|
18
|
+
var OUTPUT_ARG = {
|
|
19
|
+
output: { type: "string", description: "Output format: md|json", required: false, default: "md" }
|
|
20
|
+
};
|
|
21
|
+
var SHARED_POOL_HINT = "Custom tags are one pool shared by images, videos and testimonials \u2014 this change shows up in all three. Already applied: publishing or discarding this chat does not undo it.";
|
|
22
|
+
function fail(err) {
|
|
23
|
+
const code = err instanceof ApiError ? err.code : "INTERNAL_ERROR";
|
|
24
|
+
const message = err instanceof ApiError ? err.message : "Unexpected error";
|
|
25
|
+
writeJson({ ok: false, error: { code, message } });
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
function failInvalid(issue) {
|
|
29
|
+
writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: issue?.message ?? "Invalid request" } });
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
function makeTagsCommand(command, label, endpoint) {
|
|
33
|
+
registerSchema({
|
|
34
|
+
command: `${command}.tags.list`,
|
|
35
|
+
description: `List the available ${label} tag taxonomy (built-in defaults + this company's custom tags).`,
|
|
36
|
+
args: OUTPUT_ARG
|
|
37
|
+
});
|
|
38
|
+
const listCommand = defineCommand({
|
|
39
|
+
meta: {
|
|
40
|
+
name: "list",
|
|
41
|
+
description: `List the available ${label} tag names (defaults + company custom tags). Use before filtering with --tags. Example: baker ${command} tags`
|
|
42
|
+
},
|
|
43
|
+
args: OUTPUT_ARG,
|
|
44
|
+
run: async ({ args }) => {
|
|
45
|
+
try {
|
|
46
|
+
const { markdown } = await apiGet(endpoint);
|
|
47
|
+
if (args.output === "json") {
|
|
48
|
+
writeJson({ ok: true, data: { markdown } });
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
process.stdout.write(`${markdown.trimEnd()}
|
|
52
|
+
`);
|
|
53
|
+
} catch (err) {
|
|
54
|
+
const code = err instanceof ApiError ? err.code : "INTERNAL_ERROR";
|
|
55
|
+
const message = err instanceof ApiError ? err.message : "Unexpected error";
|
|
56
|
+
if (args.output === "json") {
|
|
57
|
+
writeJson({ ok: false, error: { code, message } });
|
|
58
|
+
} else {
|
|
59
|
+
process.stderr.write(`Error: ${message}
|
|
60
|
+
`);
|
|
61
|
+
}
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const createArgs = {
|
|
67
|
+
name: { type: "positional", description: "Tag name (stored lowercased, spaces \u2192 hyphens)", required: true },
|
|
68
|
+
description: {
|
|
69
|
+
type: "string",
|
|
70
|
+
description: "What the tag means, so it gets applied consistently",
|
|
71
|
+
required: false
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
registerSchema({
|
|
75
|
+
command: `${command}.tags.create`,
|
|
76
|
+
description: "Create a custom media tag in the company's shared pool (images, videos and testimonials). Applies immediately. Use when no built-in or custom tag fits.",
|
|
77
|
+
args: {
|
|
78
|
+
name: { type: "string", description: "Tag name (stored lowercased, spaces \u2192 hyphens)", required: true },
|
|
79
|
+
description: createArgs.description
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
const createCommand = defineCommand({
|
|
83
|
+
meta: {
|
|
84
|
+
name: "create",
|
|
85
|
+
description: `Create a custom tag (shared by images, videos and testimonials). Applies immediately.
|
|
86
|
+
|
|
87
|
+
Example: baker ${command} tags create "summer sale" --description "Assets for the summer sale campaign"`
|
|
88
|
+
},
|
|
89
|
+
args: createArgs,
|
|
90
|
+
run: async ({ args }) => {
|
|
91
|
+
const parsed = mediaTagsCreateRequestSchema.safeParse({
|
|
92
|
+
name: String(args.name ?? ""),
|
|
93
|
+
...args.description ? { description: String(args.description) } : {}
|
|
94
|
+
});
|
|
95
|
+
if (!parsed.success) failInvalid(parsed.error.issues[0]);
|
|
96
|
+
try {
|
|
97
|
+
const data = await apiPost("/api/media-tags/create", parsed.data);
|
|
98
|
+
writeJson({
|
|
99
|
+
ok: true,
|
|
100
|
+
data,
|
|
101
|
+
hints: [
|
|
102
|
+
SHARED_POOL_HINT,
|
|
103
|
+
`Use it as \`--tags ${data.name}\`.`,
|
|
104
|
+
...data.description ? [] : ["MISSING --description: add one with `tags update` so the tag is applied consistently."]
|
|
105
|
+
]
|
|
106
|
+
});
|
|
107
|
+
} catch (err) {
|
|
108
|
+
fail(err);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
registerSchema({
|
|
113
|
+
command: `${command}.tags.update`,
|
|
114
|
+
description: "Change what a custom tag means (its description). Built-in tags cannot be changed. Applies immediately.",
|
|
115
|
+
args: {
|
|
116
|
+
slug: { type: "string", description: "Custom tag name, as `tags` lists it", required: true },
|
|
117
|
+
description: { type: "string", description: "New description", required: true }
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const updateCommand = defineCommand({
|
|
121
|
+
meta: {
|
|
122
|
+
name: "update",
|
|
123
|
+
description: `Change a custom tag's description. Built-in tags cannot be changed. Applies immediately.
|
|
124
|
+
|
|
125
|
+
Example: baker ${command} tags update summer-sale --description "Assets for the 2026 summer sale"`
|
|
126
|
+
},
|
|
127
|
+
args: {
|
|
128
|
+
slug: { type: "positional", description: "Custom tag name, as `tags` lists it", required: true },
|
|
129
|
+
description: { type: "string", description: "New description", required: true }
|
|
130
|
+
},
|
|
131
|
+
run: async ({ args }) => {
|
|
132
|
+
const parsed = mediaTagsUpdateRequestSchema.safeParse({
|
|
133
|
+
slug: String(args.slug ?? ""),
|
|
134
|
+
description: String(args.description ?? "")
|
|
135
|
+
});
|
|
136
|
+
if (!parsed.success) failInvalid(parsed.error.issues[0]);
|
|
137
|
+
try {
|
|
138
|
+
const data = await apiPost("/api/media-tags/update", parsed.data);
|
|
139
|
+
writeJson({ ok: true, data, hints: [SHARED_POOL_HINT] });
|
|
140
|
+
} catch (err) {
|
|
141
|
+
fail(err);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
registerSchema({
|
|
146
|
+
command: `${command}.tags.delete`,
|
|
147
|
+
description: "Delete a custom tag from the company's shared pool. Built-in tags cannot be deleted. Applies immediately. Confirm with the user first.",
|
|
148
|
+
args: { slug: { type: "string", description: "Custom tag name, as `tags` lists it", required: true } }
|
|
149
|
+
});
|
|
150
|
+
const deleteCommand = defineCommand({
|
|
151
|
+
meta: {
|
|
152
|
+
name: "delete",
|
|
153
|
+
description: `Delete a custom tag (shared by images, videos and testimonials). Built-in tags cannot be deleted. Applies immediately \u2014 confirm with the user first.
|
|
154
|
+
|
|
155
|
+
Example: baker ${command} tags delete summer-sale`
|
|
156
|
+
},
|
|
157
|
+
args: { slug: { type: "positional", description: "Custom tag name, as `tags` lists it", required: true } },
|
|
158
|
+
run: async ({ args }) => {
|
|
159
|
+
const parsed = mediaTagsDeleteRequestSchema.safeParse({ slug: String(args.slug ?? "") });
|
|
160
|
+
if (!parsed.success) failInvalid(parsed.error.issues[0]);
|
|
161
|
+
try {
|
|
162
|
+
const data = await apiPost("/api/media-tags/delete", parsed.data);
|
|
163
|
+
writeJson({ ok: true, data, hints: [SHARED_POOL_HINT] });
|
|
164
|
+
} catch (err) {
|
|
165
|
+
fail(err);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
return defineCommand({
|
|
170
|
+
meta: {
|
|
171
|
+
name: "tags",
|
|
172
|
+
description: `The ${label} tag taxonomy: built-in defaults plus the company's custom tags (one pool shared by images, videos and testimonials). Subcommands: list (default), create, update, delete.
|
|
173
|
+
|
|
174
|
+
Examples:
|
|
175
|
+
baker ${command} tags # list available tags
|
|
176
|
+
baker ${command} tags create "summer sale" --description "\u2026"
|
|
177
|
+
baker ${command} tags update summer-sale --description "\u2026"
|
|
178
|
+
baker ${command} tags delete summer-sale`
|
|
179
|
+
},
|
|
180
|
+
// Declared on the parent too: `default: "list"` dispatches the bare `tags --output json`
|
|
181
|
+
// form, and citty reads an undeclared flag's value as a subcommand name.
|
|
182
|
+
args: OUTPUT_ARG,
|
|
183
|
+
subCommands: {
|
|
184
|
+
list: listCommand,
|
|
185
|
+
create: createCommand,
|
|
186
|
+
update: updateCommand,
|
|
187
|
+
delete: deleteCommand
|
|
188
|
+
},
|
|
189
|
+
// `default`, never `run`: citty falls through to the parent's `run` after a subcommand.
|
|
190
|
+
default: "list"
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export {
|
|
195
|
+
makeTagsCommand
|
|
196
|
+
};
|
|
197
|
+
//# sourceMappingURL=chunk-VCZSZCXY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/tags-command.ts"],"sourcesContent":["import type { MediaTagsCreateResponse, MediaTagsDeleteResponse, MediaTagsUpdateResponse } from \"@baker/api\";\nimport { mediaTagsCreateRequestSchema, mediaTagsDeleteRequestSchema, mediaTagsUpdateRequestSchema } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiGet, apiPost } from \"../client.ts\";\nimport { writeJson } from \"../output.ts\";\nimport { registerSchema } from \"../schemas.ts\";\n\nconst OUTPUT_ARG = {\n output: { type: \"string\", description: \"Output format: md|json\", required: false, default: \"md\" },\n} as const;\n\n/** The custom tags are one pool for the whole company, whichever family the agent reached them from. */\nconst SHARED_POOL_HINT =\n \"Custom tags are one pool shared by images, videos and testimonials — this change shows up in all three. Already applied: publishing or discarding this chat does not undo it.\";\n\nfunction fail(err: unknown): never {\n const code = err instanceof ApiError ? err.code : \"INTERNAL_ERROR\";\n const message = err instanceof ApiError ? err.message : \"Unexpected error\";\n writeJson({ ok: false, error: { code, message } });\n process.exit(1);\n}\n\nfunction failInvalid(issue: { message: string } | undefined): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: issue?.message ?? \"Invalid request\" } });\n process.exit(1);\n}\n\n/**\n * Builds `baker <command> tags` for one media type: `list` (the default, so the\n * bare `baker images tags` keeps printing the taxonomy) plus `create`, `update`\n * and `delete` for the company's custom tags.\n *\n * `command` is the plural CLI noun used for the schema id and example\n * (`images` → `images.tags.list`); `label` is the singular noun used in prose.\n *\n * Errors from `list` in the default markdown mode are written to STDERR, not\n * stdout. It is inlined into the library skills via `!`baker images tags``, so\n * a JSON error blob on stdout would be silently injected into the agent's skill\n * context as if it were the tag list. `--output json` keeps the machine-readable\n * envelope on stdout for programmatic callers.\n */\nexport function makeTagsCommand(command: string, label: string, endpoint: string) {\n registerSchema({\n command: `${command}.tags.list`,\n description: `List the available ${label} tag taxonomy (built-in defaults + this company's custom tags).`,\n args: OUTPUT_ARG,\n });\n\n const listCommand = defineCommand({\n meta: {\n name: \"list\",\n description: `List the available ${label} tag names (defaults + company custom tags). Use before filtering with --tags. Example: baker ${command} tags`,\n },\n args: OUTPUT_ARG,\n run: async ({ args }) => {\n try {\n const { markdown } = await apiGet<{ markdown: string }>(endpoint);\n if (args.output === \"json\") {\n writeJson({ ok: true, data: { markdown } });\n return;\n }\n process.stdout.write(`${markdown.trimEnd()}\\n`);\n } catch (err) {\n const code = err instanceof ApiError ? err.code : \"INTERNAL_ERROR\";\n const message = err instanceof ApiError ? err.message : \"Unexpected error\";\n if (args.output === \"json\") {\n writeJson({ ok: false, error: { code, message } });\n } else {\n process.stderr.write(`Error: ${message}\\n`);\n }\n process.exit(1);\n }\n },\n });\n\n const createArgs = {\n name: { type: \"positional\", description: \"Tag name (stored lowercased, spaces → hyphens)\", required: true },\n description: {\n type: \"string\",\n description: \"What the tag means, so it gets applied consistently\",\n required: false,\n },\n } as const;\n\n registerSchema({\n command: `${command}.tags.create`,\n description:\n \"Create a custom media tag in the company's shared pool (images, videos and testimonials). Applies immediately. Use when no built-in or custom tag fits.\",\n args: {\n name: { type: \"string\", description: \"Tag name (stored lowercased, spaces → hyphens)\", required: true },\n description: createArgs.description,\n },\n });\n\n const createCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Create a custom tag (shared by images, videos and testimonials). Applies immediately.\\n\\nExample: baker ${command} tags create \"summer sale\" --description \"Assets for the summer sale campaign\"`,\n },\n args: createArgs,\n run: async ({ args }) => {\n const parsed = mediaTagsCreateRequestSchema.safeParse({\n name: String(args.name ?? \"\"),\n ...(args.description ? { description: String(args.description) } : {}),\n });\n if (!parsed.success) failInvalid(parsed.error.issues[0]);\n try {\n const data = await apiPost<MediaTagsCreateResponse>(\"/api/media-tags/create\", parsed.data);\n writeJson({\n ok: true,\n data,\n hints: [\n SHARED_POOL_HINT,\n `Use it as \\`--tags ${data.name}\\`.`,\n ...(data.description\n ? []\n : [\"MISSING --description: add one with `tags update` so the tag is applied consistently.\"]),\n ],\n });\n } catch (err) {\n fail(err);\n }\n },\n });\n\n registerSchema({\n command: `${command}.tags.update`,\n description:\n \"Change what a custom tag means (its description). Built-in tags cannot be changed. Applies immediately.\",\n args: {\n slug: { type: \"string\", description: \"Custom tag name, as `tags` lists it\", required: true },\n description: { type: \"string\", description: \"New description\", required: true },\n },\n });\n\n const updateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Change a custom tag's description. Built-in tags cannot be changed. Applies immediately.\\n\\nExample: baker ${command} tags update summer-sale --description \"Assets for the 2026 summer sale\"`,\n },\n args: {\n slug: { type: \"positional\", description: \"Custom tag name, as `tags` lists it\", required: true },\n description: { type: \"string\", description: \"New description\", required: true },\n },\n run: async ({ args }) => {\n const parsed = mediaTagsUpdateRequestSchema.safeParse({\n slug: String(args.slug ?? \"\"),\n description: String(args.description ?? \"\"),\n });\n if (!parsed.success) failInvalid(parsed.error.issues[0]);\n try {\n const data = await apiPost<MediaTagsUpdateResponse>(\"/api/media-tags/update\", parsed.data);\n writeJson({ ok: true, data, hints: [SHARED_POOL_HINT] });\n } catch (err) {\n fail(err);\n }\n },\n });\n\n registerSchema({\n command: `${command}.tags.delete`,\n description:\n \"Delete a custom tag from the company's shared pool. Built-in tags cannot be deleted. Applies immediately. Confirm with the user first.\",\n args: { slug: { type: \"string\", description: \"Custom tag name, as `tags` lists it\", required: true } },\n });\n\n const deleteCommand = defineCommand({\n meta: {\n name: \"delete\",\n description: `Delete a custom tag (shared by images, videos and testimonials). Built-in tags cannot be deleted. Applies immediately — confirm with the user first.\\n\\nExample: baker ${command} tags delete summer-sale`,\n },\n args: { slug: { type: \"positional\", description: \"Custom tag name, as `tags` lists it\", required: true } },\n run: async ({ args }) => {\n const parsed = mediaTagsDeleteRequestSchema.safeParse({ slug: String(args.slug ?? \"\") });\n if (!parsed.success) failInvalid(parsed.error.issues[0]);\n try {\n const data = await apiPost<MediaTagsDeleteResponse>(\"/api/media-tags/delete\", parsed.data);\n writeJson({ ok: true, data, hints: [SHARED_POOL_HINT] });\n } catch (err) {\n fail(err);\n }\n },\n });\n\n return defineCommand({\n meta: {\n name: \"tags\",\n description: `The ${label} tag taxonomy: built-in defaults plus the company's custom tags (one pool shared by images, videos and testimonials). Subcommands: list (default), create, update, delete.\n\nExamples:\n baker ${command} tags # list available tags\n baker ${command} tags create \"summer sale\" --description \"…\"\n baker ${command} tags update summer-sale --description \"…\"\n baker ${command} tags delete summer-sale`,\n },\n // Declared on the parent too: `default: \"list\"` dispatches the bare `tags --output json`\n // form, and citty reads an undeclared flag's value as a subcommand name.\n args: OUTPUT_ARG,\n subCommands: {\n list: listCommand,\n create: createCommand,\n update: updateCommand,\n delete: deleteCommand,\n },\n // `default`, never `run`: citty falls through to the parent's `run` after a subcommand.\n default: \"list\",\n });\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import {
|
|
2
|
+
leadVersion,
|
|
3
|
+
writeSeriesMemberCanvas
|
|
4
|
+
} from "./chunk-WN42X2OE.js";
|
|
5
|
+
import {
|
|
6
|
+
claimNewCreativeInWorkspace,
|
|
7
|
+
creativeLimitRefusal
|
|
8
|
+
} from "./chunk-CVEY353K.js";
|
|
9
|
+
import {
|
|
10
|
+
definitionFieldsOf,
|
|
11
|
+
setDefinitionFields,
|
|
12
|
+
setSpecMessage
|
|
13
|
+
} from "./chunk-TTVKI54A.js";
|
|
14
|
+
import {
|
|
15
|
+
IDEAS_DIR
|
|
16
|
+
} from "./chunk-BIPIL4QA.js";
|
|
17
|
+
|
|
18
|
+
// src/commands/creatives/make-series.ts
|
|
19
|
+
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
20
|
+
import path from "path";
|
|
21
|
+
import { parseDocument } from "yaml";
|
|
22
|
+
var LEAD_ONLY = ["idea", "message", "evidence", "angle", "persona", "awareness", "hypothesis", "series", "title"];
|
|
23
|
+
function withoutFields(raw, keys) {
|
|
24
|
+
const match = raw.match(/^---\r?\n([\s\S]*?\r?\n)?---/);
|
|
25
|
+
if (!match) return raw;
|
|
26
|
+
const doc = parseDocument(match[1] ?? "");
|
|
27
|
+
if (doc.errors.length > 0) return raw;
|
|
28
|
+
for (const key of keys) doc.delete(key);
|
|
29
|
+
return `---
|
|
30
|
+
${doc.toString()}---${raw.slice(match[0].length)}`;
|
|
31
|
+
}
|
|
32
|
+
async function makeSeriesAd(root, idea, slug, lead, evidence, deps) {
|
|
33
|
+
if (slug === lead) {
|
|
34
|
+
return {
|
|
35
|
+
code: "series_of_itself",
|
|
36
|
+
message: `"${slug}" is the lead itself.`,
|
|
37
|
+
fix: "Give the new ad its own --slug."
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const version = await leadVersion(root, lead);
|
|
41
|
+
if ("refused" in version) return version.refused;
|
|
42
|
+
const dir = path.join(root, "src", "creatives", slug);
|
|
43
|
+
const definitionPath = path.join(dir, "_definition.md");
|
|
44
|
+
const claim = await claimNewCreativeInWorkspace(path.join(root, "canvas"), slug, deps.chatId, definitionPath);
|
|
45
|
+
if (!claim.allowed) return creativeLimitRefusal(slug).error;
|
|
46
|
+
await mkdir(dir, { recursive: true });
|
|
47
|
+
await writeFile(path.join(dir, "prompt.json"), setSpecMessage(JSON.stringify(version.spec), idea.message), "utf8");
|
|
48
|
+
const leadDefinition = await readFile(path.join(root, "src", "creatives", lead, "_definition.md"), "utf8").catch(
|
|
49
|
+
() => "---\nkind: static\n---\n"
|
|
50
|
+
);
|
|
51
|
+
const definition = setDefinitionFields(withoutFields(leadDefinition, LEAD_ONLY), {
|
|
52
|
+
title: idea.message.slice(0, 120),
|
|
53
|
+
series: lead,
|
|
54
|
+
status: "draft",
|
|
55
|
+
...definitionFieldsOf(idea, evidence)
|
|
56
|
+
});
|
|
57
|
+
await writeFile(definitionPath, definition, "utf8");
|
|
58
|
+
const made = await writeSeriesMemberCanvas(root, slug, { leadWords: true });
|
|
59
|
+
if (made === null || "refused" in made) {
|
|
60
|
+
return made?.refused ?? { code: "series_not_made", message: `"${slug}" could not be made in the series of "${lead}".` };
|
|
61
|
+
}
|
|
62
|
+
if (idea.status === "idea") {
|
|
63
|
+
const ideaPath = path.join(root, IDEAS_DIR, `${idea.id}.md`);
|
|
64
|
+
const raw = await readFile(ideaPath, "utf8").catch(() => null);
|
|
65
|
+
if (raw !== null) await writeFile(ideaPath, setDefinitionFields(raw, { status: "built" }), "utf8");
|
|
66
|
+
}
|
|
67
|
+
await deps.sync(dir);
|
|
68
|
+
return { slug, lead, leadRunId: version.lead.runId, canvasPath: made.canvasPath };
|
|
69
|
+
}
|
|
70
|
+
function seriesMadeEnvelope(made, idea) {
|
|
71
|
+
return {
|
|
72
|
+
ok: true,
|
|
73
|
+
data: {
|
|
74
|
+
creative: made.slug,
|
|
75
|
+
idea: idea.id,
|
|
76
|
+
message: idea.message,
|
|
77
|
+
series: made.lead,
|
|
78
|
+
canvas_path: made.canvasPath
|
|
79
|
+
},
|
|
80
|
+
hints: [
|
|
81
|
+
`Write this ad's words in src/creatives/${made.slug}/prompt.json \`copy\`: one line for each of the lead's, in the same roles and about as long, saying this idea's message. Change nothing else: the picture, layout and colours are the lead's (${made.lead}), and every word you write replaces the lead's line in its place.`,
|
|
82
|
+
`When every ad of the series has its words: baker canvas run --series ${made.lead} (renders them all at once, each reviewed and corrected on its own).`
|
|
83
|
+
]
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export {
|
|
88
|
+
withoutFields,
|
|
89
|
+
makeSeriesAd,
|
|
90
|
+
seriesMadeEnvelope
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=chunk-VJQWUF66.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/creatives/make-series.ts"],"sourcesContent":["/**\n * `baker creatives make <idea> --series <lead>`: another message in the lead ad's style. Nothing is\n * searched, described or rendered: the ad starts as the lead's ready version with the idea's\n * message, and its words are the agent's to write. Its picture is the lead's with those words\n * (`series-member.ts`), so a series of ten messages is one design ten times.\n */\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { parseDocument } from \"yaml\";\nimport { claimNewCreativeInWorkspace, creativeLimitRefusal } from \"../canvas/creative-limit.ts\";\nimport { leadVersion, writeSeriesMemberCanvas } from \"../canvas/series-member.ts\";\nimport type { EvidenceLevel, Idea } from \"./ideas-model.ts\";\nimport { IDEAS_DIR } from \"./ideas-workspace.ts\";\nimport { definitionFieldsOf, setDefinitionFields, setSpecMessage } from \"./make-model.ts\";\n\ntype Failure = { code: string; message: string; fix?: string };\n\n/** The lead's own reasons, which are not this ad's: its idea, evidence and the like are replaced or dropped. */\nconst LEAD_ONLY = [\"idea\", \"message\", \"evidence\", \"angle\", \"persona\", \"awareness\", \"hypothesis\", \"series\", \"title\"];\n\n/** `raw` with `keys` dropped from its frontmatter, every other field and the body kept. */\nexport function withoutFields(raw: string, keys: readonly string[]): string {\n const match = raw.match(/^---\\r?\\n([\\s\\S]*?\\r?\\n)?---/);\n if (!match) return raw;\n const doc = parseDocument(match[1] ?? \"\");\n if (doc.errors.length > 0) return raw;\n for (const key of keys) doc.delete(key);\n return `---\\n${doc.toString()}---${raw.slice(match[0].length)}`;\n}\n\n/** Make `slug`, an ad of the series led by `lead`, from `idea`. The made ad, or why not. */\nexport async function makeSeriesAd(\n root: string,\n idea: Idea,\n slug: string,\n lead: string,\n evidence: EvidenceLevel | \"explore\",\n deps: { sync: (dir: string) => Promise<unknown>; chatId: string | null },\n): Promise<{ slug: string; lead: string; leadRunId: string; canvasPath: string } | Failure> {\n if (slug === lead) {\n return {\n code: \"series_of_itself\",\n message: `\"${slug}\" is the lead itself.`,\n fix: \"Give the new ad its own --slug.\",\n };\n }\n const version = await leadVersion(root, lead);\n if (\"refused\" in version) return version.refused;\n const dir = path.join(root, \"src\", \"creatives\", slug);\n const definitionPath = path.join(dir, \"_definition.md\");\n const claim = await claimNewCreativeInWorkspace(path.join(root, \"canvas\"), slug, deps.chatId, definitionPath);\n if (!claim.allowed) return creativeLimitRefusal(slug).error;\n await mkdir(dir, { recursive: true });\n await writeFile(path.join(dir, \"prompt.json\"), setSpecMessage(JSON.stringify(version.spec), idea.message), \"utf8\");\n const leadDefinition = await readFile(path.join(root, \"src\", \"creatives\", lead, \"_definition.md\"), \"utf8\").catch(\n () => \"---\\nkind: static\\n---\\n\",\n );\n const definition = setDefinitionFields(withoutFields(leadDefinition, LEAD_ONLY), {\n title: idea.message.slice(0, 120),\n series: lead,\n status: \"draft\",\n ...definitionFieldsOf(idea, evidence),\n });\n await writeFile(definitionPath, definition, \"utf8\");\n const made = await writeSeriesMemberCanvas(root, slug, { leadWords: true });\n if (made === null || \"refused\" in made) {\n return (\n made?.refused ?? { code: \"series_not_made\", message: `\"${slug}\" could not be made in the series of \"${lead}\".` }\n );\n }\n if (idea.status === \"idea\") {\n const ideaPath = path.join(root, IDEAS_DIR, `${idea.id}.md`);\n const raw = await readFile(ideaPath, \"utf8\").catch(() => null);\n if (raw !== null) await writeFile(ideaPath, setDefinitionFields(raw, { status: \"built\" }), \"utf8\");\n }\n // The dashboard learns the ad and its series now, not at Publish.\n await deps.sync(dir);\n return { slug, lead, leadRunId: version.lead.runId, canvasPath: made.canvasPath };\n}\n\n/** What `make --series` prints: the ad, its lead, and the one step left (its words), then the series run. Pure. */\nexport function seriesMadeEnvelope(\n made: { slug: string; lead: string; leadRunId: string; canvasPath: string },\n idea: Pick<Idea, \"id\" | \"message\">,\n) {\n return {\n ok: true as const,\n data: {\n creative: made.slug,\n idea: idea.id,\n message: idea.message,\n series: made.lead,\n canvas_path: made.canvasPath,\n },\n hints: [\n `Write this ad's words in src/creatives/${made.slug}/prompt.json \\`copy\\`: one line for each of the lead's, in the same roles and about as long, saying this idea's message. Change nothing else: the picture, layout and colours are the lead's (${made.lead}), and every word you write replaces the lead's line in its place.`,\n `When every ad of the series has its words: baker canvas run --series ${made.lead} (renders them all at once, each reviewed and corrected on its own).`,\n ],\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MAX_REMOTE_IMAGE_BYTES,
|
|
3
|
+
fetchExternalBytes
|
|
4
|
+
} from "./chunk-JXMZEOHV.js";
|
|
5
|
+
|
|
6
|
+
// src/lib/image/io.ts
|
|
7
|
+
import { randomBytes } from "crypto";
|
|
8
|
+
import { glob as fsGlob, readFile, rename, stat, writeFile } from "fs/promises";
|
|
9
|
+
import { dirname, extname, join, resolve } from "path";
|
|
10
|
+
var REMOTE_RE = /^https?:\/\//i;
|
|
11
|
+
var GLOB_RE = /[*?[\]{}]/;
|
|
12
|
+
function isRemoteUrl(value) {
|
|
13
|
+
return REMOTE_RE.test(value);
|
|
14
|
+
}
|
|
15
|
+
function looksLikeGlob(value) {
|
|
16
|
+
return GLOB_RE.test(value);
|
|
17
|
+
}
|
|
18
|
+
async function expandInputs(spec) {
|
|
19
|
+
const parts = spec.split(",").map((p) => p.trim()).filter(Boolean);
|
|
20
|
+
const out = [];
|
|
21
|
+
for (const part of parts) {
|
|
22
|
+
if (isRemoteUrl(part)) {
|
|
23
|
+
out.push(part);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (looksLikeGlob(part)) {
|
|
27
|
+
for await (const match of fsGlob(part)) {
|
|
28
|
+
if (typeof match === "string") out.push(match);
|
|
29
|
+
}
|
|
30
|
+
} else {
|
|
31
|
+
out.push(part);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
async function readImageBuffer(pathOrUrl) {
|
|
37
|
+
if (isRemoteUrl(pathOrUrl)) {
|
|
38
|
+
const { buffer } = await fetchExternalBytes(pathOrUrl, { maxBytes: MAX_REMOTE_IMAGE_BYTES });
|
|
39
|
+
return buffer;
|
|
40
|
+
}
|
|
41
|
+
return readFile(pathOrUrl);
|
|
42
|
+
}
|
|
43
|
+
async function isDirectory(path) {
|
|
44
|
+
try {
|
|
45
|
+
const s = await stat(path);
|
|
46
|
+
return s.isDirectory();
|
|
47
|
+
} catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async function resolveOutputPath(inputPath, outputArg, options) {
|
|
52
|
+
const base = options.newExtension ? inputPath.slice(0, -extname(inputPath).length) + options.newExtension : inputPath;
|
|
53
|
+
if (!outputArg) return base;
|
|
54
|
+
if (options.multipleInputs || await isDirectory(outputArg)) {
|
|
55
|
+
const filename = base.split("/").pop() ?? "out.png";
|
|
56
|
+
return join(outputArg, filename);
|
|
57
|
+
}
|
|
58
|
+
return outputArg;
|
|
59
|
+
}
|
|
60
|
+
async function atomicWrite(targetPath, data) {
|
|
61
|
+
const absolute = resolve(targetPath);
|
|
62
|
+
const dir = dirname(absolute);
|
|
63
|
+
const tmp = join(dir, `.baker-image-${randomBytes(8).toString("hex")}.tmp`);
|
|
64
|
+
await writeFile(tmp, data);
|
|
65
|
+
await rename(tmp, absolute);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export {
|
|
69
|
+
isRemoteUrl,
|
|
70
|
+
expandInputs,
|
|
71
|
+
readImageBuffer,
|
|
72
|
+
isDirectory,
|
|
73
|
+
resolveOutputPath,
|
|
74
|
+
atomicWrite
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=chunk-VSU5R34H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/image/io.ts"],"sourcesContent":["import { randomBytes } from \"node:crypto\";\nimport { glob as fsGlob, readFile, rename, stat, writeFile } from \"node:fs/promises\";\nimport { dirname, extname, join, resolve } from \"node:path\";\nimport { fetchExternalBytes, MAX_REMOTE_IMAGE_BYTES } from \"../externalFetch.ts\";\n\nconst REMOTE_RE = /^https?:\\/\\//i;\nconst GLOB_RE = /[*?[\\]{}]/;\n\nexport function isRemoteUrl(value: string): boolean {\n return REMOTE_RE.test(value);\n}\n\nfunction looksLikeGlob(value: string): boolean {\n return GLOB_RE.test(value);\n}\n\n/**\n * Expand a user-supplied input spec into a list of local file paths.\n * Accepts: single path, glob pattern, or comma-separated list. Inputs that look\n * like remote URLs are returned unchanged so callers can decide whether to\n * fetch them.\n */\nexport async function expandInputs(spec: string): Promise<string[]> {\n const parts = spec\n .split(\",\")\n .map((p) => p.trim())\n .filter(Boolean);\n const out: string[] = [];\n for (const part of parts) {\n if (isRemoteUrl(part)) {\n out.push(part);\n continue;\n }\n if (looksLikeGlob(part)) {\n for await (const match of fsGlob(part)) {\n if (typeof match === \"string\") out.push(match);\n }\n } else {\n out.push(part);\n }\n }\n return out;\n}\n\nexport async function readImageBuffer(pathOrUrl: string): Promise<Buffer> {\n if (isRemoteUrl(pathOrUrl)) {\n // Everything reaching here is decoded by sharp — `crop`, `normalize`,\n // `dimensions`. An image ceiling, not the canvas asset one.\n const { buffer } = await fetchExternalBytes(pathOrUrl, { maxBytes: MAX_REMOTE_IMAGE_BYTES });\n return buffer;\n }\n return readFile(pathOrUrl);\n}\n\nexport async function isDirectory(path: string): Promise<boolean> {\n try {\n const s = await stat(path);\n return s.isDirectory();\n } catch {\n return false;\n }\n}\n\n/**\n * Resolve the output path for a processed file.\n * - One input + --output=<file> → that file path\n * - One input + --output=<dir> → dir/basename\n * - One input, no --output → input path (in-place)\n * - N inputs + --output=<dir> → dir/basename\n * - N inputs, no --output → each input path (in-place)\n * - N inputs + --output=<file> → validation error before reaching here\n */\nexport async function resolveOutputPath(\n inputPath: string,\n outputArg: string | undefined,\n options: { multipleInputs: boolean; newExtension?: string },\n): Promise<string> {\n const base = options.newExtension ? inputPath.slice(0, -extname(inputPath).length) + options.newExtension : inputPath;\n\n if (!outputArg) return base;\n\n if (options.multipleInputs || (await isDirectory(outputArg))) {\n const filename = base.split(\"/\").pop() ?? \"out.png\";\n return join(outputArg, filename);\n }\n return outputArg;\n}\n\n/**\n * Write a file atomically: write to a tempfile in the same directory, then\n * rename. Prevents partial writes if the process is killed mid-write.\n */\nexport async function atomicWrite(targetPath: string, data: Buffer): Promise<void> {\n const absolute = resolve(targetPath);\n const dir = dirname(absolute);\n const tmp = join(dir, `.baker-image-${randomBytes(8).toString(\"hex\")}.tmp`);\n await writeFile(tmp, data);\n await rename(tmp, absolute);\n}\n"],"mappings":";;;;;;AAAA,SAAS,mBAAmB;AAC5B,SAAS,QAAQ,QAAQ,UAAU,QAAQ,MAAM,iBAAiB;AAClE,SAAS,SAAS,SAAS,MAAM,eAAe;AAGhD,IAAM,YAAY;AAClB,IAAM,UAAU;AAET,SAAS,YAAY,OAAwB;AAClD,SAAO,UAAU,KAAK,KAAK;AAC7B;AAEA,SAAS,cAAc,OAAwB;AAC7C,SAAO,QAAQ,KAAK,KAAK;AAC3B;AAQA,eAAsB,aAAa,MAAiC;AAClE,QAAM,QAAQ,KACX,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACnB,OAAO,OAAO;AACjB,QAAM,MAAgB,CAAC;AACvB,aAAW,QAAQ,OAAO;AACxB,QAAI,YAAY,IAAI,GAAG;AACrB,UAAI,KAAK,IAAI;AACb;AAAA,IACF;AACA,QAAI,cAAc,IAAI,GAAG;AACvB,uBAAiB,SAAS,OAAO,IAAI,GAAG;AACtC,YAAI,OAAO,UAAU,SAAU,KAAI,KAAK,KAAK;AAAA,MAC/C;AAAA,IACF,OAAO;AACL,UAAI,KAAK,IAAI;AAAA,IACf;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,gBAAgB,WAAoC;AACxE,MAAI,YAAY,SAAS,GAAG;AAG1B,UAAM,EAAE,OAAO,IAAI,MAAM,mBAAmB,WAAW,EAAE,UAAU,uBAAuB,CAAC;AAC3F,WAAO;AAAA,EACT;AACA,SAAO,SAAS,SAAS;AAC3B;AAEA,eAAsB,YAAY,MAAgC;AAChE,MAAI;AACF,UAAM,IAAI,MAAM,KAAK,IAAI;AACzB,WAAO,EAAE,YAAY;AAAA,EACvB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAWA,eAAsB,kBACpB,WACA,WACA,SACiB;AACjB,QAAM,OAAO,QAAQ,eAAe,UAAU,MAAM,GAAG,CAAC,QAAQ,SAAS,EAAE,MAAM,IAAI,QAAQ,eAAe;AAE5G,MAAI,CAAC,UAAW,QAAO;AAEvB,MAAI,QAAQ,kBAAmB,MAAM,YAAY,SAAS,GAAI;AAC5D,UAAM,WAAW,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK;AAC1C,WAAO,KAAK,WAAW,QAAQ;AAAA,EACjC;AACA,SAAO;AACT;AAMA,eAAsB,YAAY,YAAoB,MAA6B;AACjF,QAAM,WAAW,QAAQ,UAAU;AACnC,QAAM,MAAM,QAAQ,QAAQ;AAC5B,QAAM,MAAM,KAAK,KAAK,gBAAgB,YAAY,CAAC,EAAE,SAAS,KAAK,CAAC,MAAM;AAC1E,QAAM,UAAU,KAAK,IAAI;AACzB,QAAM,OAAO,KAAK,QAAQ;AAC5B;","names":[]}
|