@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,175 @@
|
|
|
1
|
+
import {
|
|
2
|
+
handleConnectionError,
|
|
3
|
+
needsConnectionFix,
|
|
4
|
+
writeAdsJson
|
|
5
|
+
} from "./chunk-EIGXX6KI.js";
|
|
6
|
+
import {
|
|
7
|
+
LINKEDIN_SEARCH_STATUSES,
|
|
8
|
+
unsupportedLinkedinSearchStatuses
|
|
9
|
+
} from "./chunk-D46NOXRY.js";
|
|
10
|
+
import {
|
|
11
|
+
ApiError
|
|
12
|
+
} from "./chunk-CUL3VB4L.js";
|
|
13
|
+
import {
|
|
14
|
+
MissingChatIdError,
|
|
15
|
+
getEnv
|
|
16
|
+
} from "./chunk-I4FTS5EE.js";
|
|
17
|
+
|
|
18
|
+
// src/commands/ads/linkedin/shared.ts
|
|
19
|
+
var DAY_MS = 864e5;
|
|
20
|
+
function handleLinkedinError(err) {
|
|
21
|
+
if (err instanceof ApiError) {
|
|
22
|
+
if (needsConnectionFix(err.code, err.message)) {
|
|
23
|
+
handleConnectionError("linkedin_ads", err.message);
|
|
24
|
+
}
|
|
25
|
+
if (isNoAccountsSelectedError(err.code, err.message)) {
|
|
26
|
+
handleConnectionError("linkedin_ads", err.message);
|
|
27
|
+
}
|
|
28
|
+
const explanation = explainLinkedinError(err);
|
|
29
|
+
const envelope = {
|
|
30
|
+
ok: false,
|
|
31
|
+
error: {
|
|
32
|
+
code: err.code,
|
|
33
|
+
message: err.message,
|
|
34
|
+
fix: {
|
|
35
|
+
action: explanation.action,
|
|
36
|
+
explanation: explanation.message,
|
|
37
|
+
correctedCommand: explanation.correctedCommand
|
|
38
|
+
},
|
|
39
|
+
retryable: err.code === "RATE_LIMITED" || err.code === "UNAVAILABLE" || err.code === "INTERNAL_ERROR"
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
writeAdsJson(envelope);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
writeAdsJson(unexpectedErrorEnvelope(err));
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
function unexpectedErrorEnvelope(err) {
|
|
49
|
+
if (err instanceof MissingChatIdError) {
|
|
50
|
+
return {
|
|
51
|
+
ok: false,
|
|
52
|
+
error: {
|
|
53
|
+
code: err.code,
|
|
54
|
+
message: err.message,
|
|
55
|
+
fix: {
|
|
56
|
+
action: "reject",
|
|
57
|
+
explanation: "LinkedIn changes are staged in a chat and this run has none. Don't retry: carry on with the rest of the job and tell the user this change couldn't be staged from here."
|
|
58
|
+
},
|
|
59
|
+
retryable: false
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const message = err instanceof Error ? err.message : "Unexpected error";
|
|
64
|
+
return { ok: false, error: { code: "NETWORK_ERROR", message } };
|
|
65
|
+
}
|
|
66
|
+
function isNoAccountsSelectedError(code, message) {
|
|
67
|
+
return code === "VALIDATION_ERROR" && /no linkedin ad accounts selected/i.test(message);
|
|
68
|
+
}
|
|
69
|
+
function explainLinkedinError(err) {
|
|
70
|
+
const lower = err.message.toLowerCase();
|
|
71
|
+
if (err.code === "VALIDATION_ERROR" && lower.includes("granularity") && lower.includes("daily")) {
|
|
72
|
+
return {
|
|
73
|
+
action: "retry_with_flag",
|
|
74
|
+
message: "LinkedIn rejects DAILY granularity when pivoting on demographic dims (job-title, company, etc.). Re-run with --granularity ALL or MONTHLY.",
|
|
75
|
+
correctedCommand: void 0
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (err.code === "RATE_LIMITED") {
|
|
79
|
+
return {
|
|
80
|
+
action: "wait_and_retry",
|
|
81
|
+
message: "Hit a LinkedIn throttle. The CLI already backs off automatically \u2014 if you see this you've exhausted the retry budget. Wait ~60s and retry."
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if (err.code === "INTERNAL_ERROR" && lower.includes("deprecat")) {
|
|
85
|
+
return {
|
|
86
|
+
action: "reject",
|
|
87
|
+
message: "LinkedIn-Version header is deprecated. The backend constant LINKEDIN_API_VERSION needs to be bumped \u2014 file an issue or update the constant."
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return { action: "reject", message: err.message };
|
|
91
|
+
}
|
|
92
|
+
var LI_ACCOUNT_ID_RE = /^(urn:li:sponsoredAccount:)?\d+$/;
|
|
93
|
+
function resolveAccountIdArg(args) {
|
|
94
|
+
const fromArgs = args["account-id"] ?? args["account-urn"];
|
|
95
|
+
const id = fromArgs || getEnv().BAKER_LINKEDIN_AD_ACCOUNT_ID;
|
|
96
|
+
if (!id) {
|
|
97
|
+
writeAdsJson({
|
|
98
|
+
ok: false,
|
|
99
|
+
error: {
|
|
100
|
+
code: "MISSING_ACCOUNT_ID",
|
|
101
|
+
message: "Pass --account-id (numeric) or --account-urn (urn:li:sponsoredAccount:N), or set BAKER_LINKEDIN_AD_ACCOUNT_ID. Run `baker ads linkedin accounts` to find IDs."
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
if (!LI_ACCOUNT_ID_RE.test(id)) {
|
|
107
|
+
writeAdsJson({
|
|
108
|
+
ok: false,
|
|
109
|
+
error: {
|
|
110
|
+
code: "INVALID_ACCOUNT_ID",
|
|
111
|
+
message: `Invalid LinkedIn account ID "${id}". Expected numeric or urn:li:sponsoredAccount:N.`
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
return id.startsWith("urn:") ? id.split(":").pop() ?? id : id;
|
|
117
|
+
}
|
|
118
|
+
function todayIso() {
|
|
119
|
+
return (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
120
|
+
}
|
|
121
|
+
function daysAgoIso(days) {
|
|
122
|
+
return new Date(Date.now() - days * DAY_MS).toISOString().slice(0, 10);
|
|
123
|
+
}
|
|
124
|
+
function csvOrJson(args) {
|
|
125
|
+
return args.output ?? "json";
|
|
126
|
+
}
|
|
127
|
+
function statusesArgDescription(level) {
|
|
128
|
+
return `CSV of statuses (${LINKEDIN_SEARCH_STATUSES[level].join(",")})`;
|
|
129
|
+
}
|
|
130
|
+
function statusFilterError(level, statuses) {
|
|
131
|
+
const unsupported = unsupportedLinkedinSearchStatuses(level, statuses);
|
|
132
|
+
if (unsupported.length === 0) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
const accepted = LINKEDIN_SEARCH_STATUSES[level].join(",");
|
|
136
|
+
return {
|
|
137
|
+
ok: false,
|
|
138
|
+
error: {
|
|
139
|
+
code: "INVALID_STATUS",
|
|
140
|
+
message: `LinkedIn does not accept status ${unsupported.join(", ")} for this listing.`,
|
|
141
|
+
fix: {
|
|
142
|
+
action: "retry_with_flag",
|
|
143
|
+
explanation: `Re-run with --statuses from ${accepted}, or --all-statuses to drop the filter.`
|
|
144
|
+
},
|
|
145
|
+
retryable: false
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function resolveStatusFilter(args, level) {
|
|
150
|
+
if (args["all-statuses"]) {
|
|
151
|
+
return void 0;
|
|
152
|
+
}
|
|
153
|
+
const explicit = args.statuses;
|
|
154
|
+
if (!explicit) {
|
|
155
|
+
return ["ACTIVE"];
|
|
156
|
+
}
|
|
157
|
+
const statuses = explicit.split(",").map((s) => s.trim().toUpperCase()).filter(Boolean);
|
|
158
|
+
const error = statusFilterError(level, statuses);
|
|
159
|
+
if (error) {
|
|
160
|
+
writeAdsJson(error);
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
return statuses;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export {
|
|
167
|
+
handleLinkedinError,
|
|
168
|
+
resolveAccountIdArg,
|
|
169
|
+
todayIso,
|
|
170
|
+
daysAgoIso,
|
|
171
|
+
csvOrJson,
|
|
172
|
+
statusesArgDescription,
|
|
173
|
+
resolveStatusFilter
|
|
174
|
+
};
|
|
175
|
+
//# sourceMappingURL=chunk-7GNU3P7X.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/linkedin/shared.ts"],"sourcesContent":["import { LINKEDIN_SEARCH_STATUSES, type LinkedinSearchLevel, unsupportedLinkedinSearchStatuses } from \"@baker/api\";\nimport { ApiError } from \"../../../client.ts\";\nimport { getEnv, MissingChatIdError } from \"../../../env.ts\";\nimport { handleConnectionError, needsConnectionFix } from \"../../../error-handler.ts\";\nimport { writeAdsJson } from \"../output.ts\";\nimport type { AdsErrorEnvelope } from \"../types.ts\";\n\nconst DAY_MS = 86_400_000;\n\n/**\n * Map LinkedIn-flavored API errors into the shared CLI error envelope. The\n * backend already maps LinkedIn `serviceErrorCode` → tagged HTTP status, so by\n * the time we get here we just need to attach an actionable `fix` and exit.\n */\nexport function handleLinkedinError(err: unknown): never {\n if (err instanceof ApiError) {\n if (needsConnectionFix(err.code, err.message)) {\n handleConnectionError(\"linkedin_ads\", err.message);\n }\n if (isNoAccountsSelectedError(err.code, err.message)) {\n handleConnectionError(\"linkedin_ads\", err.message);\n }\n const explanation = explainLinkedinError(err);\n const envelope: AdsErrorEnvelope = {\n ok: false,\n error: {\n code: err.code,\n message: err.message,\n fix: {\n action: explanation.action,\n explanation: explanation.message,\n correctedCommand: explanation.correctedCommand,\n },\n retryable: err.code === \"RATE_LIMITED\" || err.code === \"UNAVAILABLE\" || err.code === \"INTERNAL_ERROR\",\n },\n };\n writeAdsJson(envelope);\n process.exit(1);\n }\n writeAdsJson(unexpectedErrorEnvelope(err));\n process.exit(1);\n}\n\n/**\n * Any failure that is not an API answer. A missing chat id gets its own code\n * and a fix — no retry can supply it — and anything else reads as the network.\n */\nexport function unexpectedErrorEnvelope(err: unknown): {\n ok: false;\n error: Pick<AdsErrorEnvelope[\"error\"], \"code\" | \"message\"> &\n Partial<Pick<AdsErrorEnvelope[\"error\"], \"fix\" | \"retryable\">>;\n} {\n if (err instanceof MissingChatIdError) {\n return {\n ok: false,\n error: {\n code: err.code,\n message: err.message,\n fix: {\n action: \"reject\",\n explanation:\n \"LinkedIn changes are staged in a chat and this run has none. Don't retry: carry on with the rest of the job and tell the user this change couldn't be staged from here.\",\n },\n retryable: false,\n },\n };\n }\n const message = err instanceof Error ? err.message : \"Unexpected error\";\n return { ok: false, error: { code: \"NETWORK_ERROR\", message } };\n}\n\n/**\n * \"No ad accounts selected\" comes back as a 400 (→ VALIDATION_ERROR), which\n * reads like a bad flag but is really an unfinished connection: the user has to\n * pick their accounts again. Route it to the connect flow, not flag advice.\n */\nexport function isNoAccountsSelectedError(code: string, message: string): boolean {\n return code === \"VALIDATION_ERROR\" && /no linkedin ad accounts selected/i.test(message);\n}\n\nfunction explainLinkedinError(err: ApiError): {\n action: AdsErrorEnvelope[\"error\"][\"fix\"][\"action\"];\n message: string;\n correctedCommand?: string;\n} {\n const lower = err.message.toLowerCase();\n if (err.code === \"VALIDATION_ERROR\" && lower.includes(\"granularity\") && lower.includes(\"daily\")) {\n return {\n action: \"retry_with_flag\",\n message:\n \"LinkedIn rejects DAILY granularity when pivoting on demographic dims (job-title, company, etc.). Re-run with --granularity ALL or MONTHLY.\",\n correctedCommand: undefined,\n };\n }\n if (err.code === \"RATE_LIMITED\") {\n return {\n action: \"wait_and_retry\",\n message:\n \"Hit a LinkedIn throttle. The CLI already backs off automatically — if you see this you've exhausted the retry budget. Wait ~60s and retry.\",\n };\n }\n if (err.code === \"INTERNAL_ERROR\" && lower.includes(\"deprecat\")) {\n return {\n action: \"reject\",\n message:\n \"LinkedIn-Version header is deprecated. The backend constant LINKEDIN_API_VERSION needs to be bumped — file an issue or update the constant.\",\n };\n }\n return { action: \"reject\", message: err.message };\n}\n\nconst LI_ACCOUNT_ID_RE = /^(urn:li:sponsoredAccount:)?\\d+$/;\n\n/** Pull the default LinkedIn ad account ID from `--account-id` arg or env. */\nexport function resolveAccountIdArg(args: Record<string, unknown>): string {\n const fromArgs = (args[\"account-id\"] as string | undefined) ?? (args[\"account-urn\"] as string | undefined);\n const id = fromArgs || getEnv().BAKER_LINKEDIN_AD_ACCOUNT_ID;\n if (!id) {\n writeAdsJson({\n ok: false,\n error: {\n code: \"MISSING_ACCOUNT_ID\",\n message:\n \"Pass --account-id (numeric) or --account-urn (urn:li:sponsoredAccount:N), or set BAKER_LINKEDIN_AD_ACCOUNT_ID. Run `baker ads linkedin accounts` to find IDs.\",\n },\n });\n process.exit(1);\n }\n if (!LI_ACCOUNT_ID_RE.test(id)) {\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_ACCOUNT_ID\",\n message: `Invalid LinkedIn account ID \"${id}\". Expected numeric or urn:li:sponsoredAccount:N.`,\n },\n });\n process.exit(1);\n }\n return id.startsWith(\"urn:\") ? (id.split(\":\").pop() ?? id) : id;\n}\n\nexport function todayIso(): string {\n return new Date().toISOString().slice(0, 10);\n}\n\nexport function daysAgoIso(days: number): string {\n return new Date(Date.now() - days * DAY_MS).toISOString().slice(0, 10);\n}\n\nexport function csvOrJson(args: Record<string, unknown>): string {\n return (args.output as string | undefined) ?? \"json\";\n}\n\n/** The `--statuses` help line, listing exactly what LinkedIn accepts at this level. */\nexport function statusesArgDescription(level: LinkedinSearchLevel): string {\n return `CSV of statuses (${LINKEDIN_SEARCH_STATUSES[level].join(\",\")})`;\n}\n\n/**\n * One status LinkedIn does not know fails the whole listing, so refuse it here\n * with the accepted values instead of forwarding LinkedIn's enum error.\n */\nexport function statusFilterError(level: LinkedinSearchLevel, statuses: readonly string[]): AdsErrorEnvelope | null {\n const unsupported = unsupportedLinkedinSearchStatuses(level, statuses);\n if (unsupported.length === 0) {\n return null;\n }\n const accepted = LINKEDIN_SEARCH_STATUSES[level].join(\",\");\n return {\n ok: false,\n error: {\n code: \"INVALID_STATUS\",\n message: `LinkedIn does not accept status ${unsupported.join(\", \")} for this listing.`,\n fix: {\n action: \"retry_with_flag\",\n explanation: `Re-run with --statuses from ${accepted}, or --all-statuses to drop the filter.`,\n },\n retryable: false,\n },\n };\n}\n\n/**\n * Default to ACTIVE-only on listings — almost always what an AI agent or human\n * glance wants. `--all-statuses` widens; `--statuses ACTIVE,PAUSED` overrides.\n */\nexport function resolveStatusFilter(args: Record<string, unknown>, level: LinkedinSearchLevel): string[] | undefined {\n if (args[\"all-statuses\"]) {\n return undefined;\n }\n const explicit = args.statuses as string | undefined;\n if (!explicit) {\n return [\"ACTIVE\"];\n }\n const statuses = explicit\n .split(\",\")\n .map((s) => s.trim().toUpperCase())\n .filter(Boolean);\n const error = statusFilterError(level, statuses);\n if (error) {\n writeAdsJson(error);\n process.exit(1);\n }\n return statuses;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ApiError
|
|
3
|
+
} from "./chunk-CUL3VB4L.js";
|
|
4
|
+
|
|
5
|
+
// src/commands/research/output.ts
|
|
6
|
+
var RESEARCH_DATA_NOTE = "Estimates based on third-party SERP data \u2014 not exact figures. Use for directional insights, not precise measurement.";
|
|
7
|
+
function writeResearchJson(envelope) {
|
|
8
|
+
process.stdout.write(`${JSON.stringify(envelope, null, 2)}
|
|
9
|
+
`);
|
|
10
|
+
}
|
|
11
|
+
function toCsvRow(values) {
|
|
12
|
+
return values.map((v) => {
|
|
13
|
+
if (v.includes(",") || v.includes('"') || v.includes("\n")) {
|
|
14
|
+
return `"${v.replace(/"/g, '""')}"`;
|
|
15
|
+
}
|
|
16
|
+
return v;
|
|
17
|
+
}).join(",");
|
|
18
|
+
}
|
|
19
|
+
function flattenRow(row) {
|
|
20
|
+
const flat = {};
|
|
21
|
+
for (const [key, val] of Object.entries(row)) {
|
|
22
|
+
flat[key] = typeof val === "object" && val !== null ? JSON.stringify(val) : String(val ?? "");
|
|
23
|
+
}
|
|
24
|
+
return flat;
|
|
25
|
+
}
|
|
26
|
+
function writeCsv(data, fields) {
|
|
27
|
+
if (data.length === 0) return;
|
|
28
|
+
const cols = fields ?? Object.keys(data[0] ?? {});
|
|
29
|
+
process.stdout.write(`${toCsvRow(cols)}
|
|
30
|
+
`);
|
|
31
|
+
for (const row of data) {
|
|
32
|
+
const flat = flattenRow(row);
|
|
33
|
+
process.stdout.write(`${toCsvRow(cols.map((f) => flat[f] ?? ""))}
|
|
34
|
+
`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function writeJsonl(data) {
|
|
38
|
+
for (const row of data) {
|
|
39
|
+
process.stdout.write(`${JSON.stringify(row)}
|
|
40
|
+
`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function writeMd(data, fields) {
|
|
44
|
+
if (data.length === 0) return;
|
|
45
|
+
const cols = fields ?? Object.keys(data[0] ?? {});
|
|
46
|
+
process.stdout.write(`| ${cols.join(" | ")} |
|
|
47
|
+
`);
|
|
48
|
+
process.stdout.write(`| ${cols.map(() => "---").join(" | ")} |
|
|
49
|
+
`);
|
|
50
|
+
for (const row of data) {
|
|
51
|
+
const flat = flattenRow(row);
|
|
52
|
+
process.stdout.write(`| ${cols.map((f) => markdownCell(flat[f] ?? "")).join(" | ")} |
|
|
53
|
+
`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function markdownCell(value) {
|
|
57
|
+
return value.replace(/\|/g, "\\|").replace(/\r?\n/g, " ");
|
|
58
|
+
}
|
|
59
|
+
function writeResearchOutput(data, format, fields) {
|
|
60
|
+
switch (format) {
|
|
61
|
+
case "csv":
|
|
62
|
+
writeCsv(data, fields);
|
|
63
|
+
break;
|
|
64
|
+
case "jsonl":
|
|
65
|
+
writeJsonl(data);
|
|
66
|
+
break;
|
|
67
|
+
case "md":
|
|
68
|
+
writeMd(data, fields);
|
|
69
|
+
break;
|
|
70
|
+
default:
|
|
71
|
+
writeResearchJson({ ok: true, data });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function writeResearchHints(hints, format) {
|
|
75
|
+
if (format === "json") {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
for (const hint of hints) {
|
|
79
|
+
process.stderr.write(`${hint}
|
|
80
|
+
`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function handleResearchError(err, fixFor) {
|
|
84
|
+
const code = err instanceof ApiError ? err.code : "NETWORK_ERROR";
|
|
85
|
+
const message = err instanceof ApiError ? err.message : err instanceof Error ? err.message : "Unexpected error";
|
|
86
|
+
const fix = fixFor?.(code);
|
|
87
|
+
writeResearchJson({ ok: false, error: { code, message, ...fix ? { fix } : {} } });
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export {
|
|
92
|
+
RESEARCH_DATA_NOTE,
|
|
93
|
+
writeResearchJson,
|
|
94
|
+
writeResearchOutput,
|
|
95
|
+
writeResearchHints,
|
|
96
|
+
handleResearchError
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=chunk-7OHWEF3I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/research/output.ts"],"sourcesContent":["import { ApiError } from \"../../client.ts\";\n\nexport const RESEARCH_DATA_NOTE =\n \"Estimates based on third-party SERP data — not exact figures. Use for directional insights, not precise measurement.\";\n\ninterface PaginationInfo {\n offset: number;\n limit: number;\n has_more: boolean;\n next_offset?: number;\n}\n\ninterface ResearchSuccessEnvelope<T> {\n ok: true;\n data: T;\n fields?: Record<string, string>;\n note?: string;\n hints?: string[];\n total_count?: number;\n pagination?: PaginationInfo;\n [key: string]: unknown;\n}\n\n/**\n * Structured remediation. A research call that fails is almost never worth\n * aborting the whole job over, so the fix says what to do *instead* of retrying\n * blindly — usually finish the rest and name the gap.\n */\nexport interface ResearchFix {\n action: \"retry_with_changes\" | \"continue_without\" | \"reject\";\n explanation: string;\n correctedCommand?: string;\n}\n\ninterface ResearchErrorEnvelope {\n ok: false;\n error: {\n code: string;\n message: string;\n fix?: ResearchFix;\n };\n}\n\ntype ResearchOutput = ResearchSuccessEnvelope<unknown> | ResearchErrorEnvelope;\n\nexport function writeResearchJson(envelope: ResearchOutput): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\nfunction toCsvRow(values: string[]): string {\n return values\n .map((v) => {\n if (v.includes(\",\") || v.includes('\"') || v.includes(\"\\n\")) {\n return `\"${v.replace(/\"/g, '\"\"')}\"`;\n }\n return v;\n })\n .join(\",\");\n}\n\nfunction flattenRow(row: Record<string, unknown>): Record<string, string> {\n const flat: Record<string, string> = {};\n for (const [key, val] of Object.entries(row)) {\n flat[key] = typeof val === \"object\" && val !== null ? JSON.stringify(val) : String(val ?? \"\");\n }\n return flat;\n}\n\nfunction writeCsv(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n process.stdout.write(`${toCsvRow(cols)}\\n`);\n for (const row of data) {\n const flat = flattenRow(row);\n process.stdout.write(`${toCsvRow(cols.map((f) => flat[f] ?? \"\"))}\\n`);\n }\n}\n\nfunction writeJsonl(data: Array<Record<string, unknown>>): void {\n for (const row of data) {\n process.stdout.write(`${JSON.stringify(row)}\\n`);\n }\n}\n\nfunction writeMd(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n process.stdout.write(`| ${cols.join(\" | \")} |\\n`);\n process.stdout.write(`| ${cols.map(() => \"---\").join(\" | \")} |\\n`);\n for (const row of data) {\n const flat = flattenRow(row);\n process.stdout.write(`| ${cols.map((f) => markdownCell(flat[f] ?? \"\")).join(\" | \")} |\\n`);\n }\n}\n\n/** A `|` or a line break inside a cell would end it, shifting every column after it. */\nfunction markdownCell(value: string): string {\n return value.replace(/\\|/g, \"\\\\|\").replace(/\\r?\\n/g, \" \");\n}\n\nexport function writeResearchOutput(data: Array<Record<string, unknown>>, format: string, fields?: string[]): void {\n switch (format) {\n case \"csv\":\n writeCsv(data, fields);\n break;\n case \"jsonl\":\n writeJsonl(data);\n break;\n case \"md\":\n writeMd(data, fields);\n break;\n default:\n writeResearchJson({ ok: true, data });\n }\n}\n\n/**\n * csv/md/jsonl render rows and nothing else, so a hint carried in the JSON\n * envelope disappears in exactly the case it matters most — an empty result,\n * where the output is a header line or nothing at all. Send it to stderr instead.\n */\nexport function writeResearchHints(hints: string[], format: string): void {\n if (format === \"json\") {\n return;\n }\n for (const hint of hints) {\n process.stderr.write(`${hint}\\n`);\n }\n}\n\nexport function handleResearchError(err: unknown, fixFor?: (code: string) => ResearchFix | undefined): never {\n const code = err instanceof ApiError ? err.code : \"NETWORK_ERROR\";\n const message = err instanceof ApiError ? err.message : err instanceof Error ? err.message : \"Unexpected error\";\n const fix = fixFor?.(code);\n writeResearchJson({ ok: false, error: { code, message, ...(fix ? { fix } : {}) } });\n process.exit(1);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formEventKey
|
|
3
|
+
} from "./chunk-QMLGJ5OW.js";
|
|
4
|
+
import {
|
|
5
|
+
flowNodeTriggers
|
|
6
|
+
} from "./chunk-D46NOXRY.js";
|
|
7
|
+
|
|
8
|
+
// ../api/src/analytics/flowEventKeys.ts
|
|
9
|
+
function flowNodes(node, acc = []) {
|
|
10
|
+
if (!node || typeof node !== "object") return acc;
|
|
11
|
+
const record = node;
|
|
12
|
+
acc.push(record);
|
|
13
|
+
if (Array.isArray(record.children)) for (const child of record.children) flowNodes(child, acc);
|
|
14
|
+
return acc;
|
|
15
|
+
}
|
|
16
|
+
function flowEventKeys(tree, slug) {
|
|
17
|
+
const primary = [];
|
|
18
|
+
const secondary = [];
|
|
19
|
+
const nodes = flowNodes(tree).filter((node) => typeof node.id === "string" && node.id !== "");
|
|
20
|
+
if (nodes.length === 0) return [];
|
|
21
|
+
for (const node of nodes) {
|
|
22
|
+
const id = node.id;
|
|
23
|
+
const triggers = flowNodeTriggers(node.nodeData);
|
|
24
|
+
for (const triggerId of triggers.available) {
|
|
25
|
+
const candidate = {
|
|
26
|
+
eventKey: formEventKey(slug, id, triggerId),
|
|
27
|
+
nodeId: id,
|
|
28
|
+
nodeName: typeof node.name === "string" ? node.name : id,
|
|
29
|
+
nodeType: triggers.type,
|
|
30
|
+
triggerId,
|
|
31
|
+
isCompletion: triggers.completion === triggerId
|
|
32
|
+
};
|
|
33
|
+
(candidate.isCompletion ? primary : secondary).push(candidate);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return [
|
|
37
|
+
...primary,
|
|
38
|
+
...secondary,
|
|
39
|
+
{
|
|
40
|
+
eventKey: `submit:${slug}`,
|
|
41
|
+
nodeId: null,
|
|
42
|
+
nodeName: "the Form ran out of steps",
|
|
43
|
+
nodeType: null,
|
|
44
|
+
triggerId: null,
|
|
45
|
+
// A Form reaching its last node is as primary as an outcome gets for a
|
|
46
|
+
// Form with no widget in it — but it never fires on one that ends in a
|
|
47
|
+
// booking widget or a redirect, so it does not lead the list.
|
|
48
|
+
isCompletion: false
|
|
49
|
+
}
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
flowNodes,
|
|
55
|
+
flowEventKeys
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=chunk-7TR3QVWM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../api/src/analytics/flowEventKeys.ts"],"sourcesContent":["/**\n * Every event a Form's own steps raise, built from the Form's tree.\n *\n * A Form published by Baker emits its events natively: every step raises the\n * triggers its node type has, and the Form raises `submit:<slug>` when it runs\n * out of steps. Nothing has to be registered for that to happen — no Source, no\n * conversion, no setting. But the lists a person or an agent PICKS an event\n * from are built from the event store, which knows an event only after somebody\n * has fired it. So a Form published five minutes ago offered nothing to pick,\n * and the only affordances left on the picker were \"type the name by hand\" and\n * \"add a Source\" — a door for a company's own systems, offered for an event a\n * Baker page already sends. Both of those are how a funnel step ends up wired\n * to a key that counts zero forever.\n *\n * This is the other half: the keys derived from the tree, offered at zero,\n * exactly as a Source is offered before its first send. Same builder\n * (`formEventKey`), same trigger table (`flowNodeTriggers`), so a key from here\n * and a key from the SQL are the same string.\n */\n\nimport { flowNodeTriggers } from \"../flowCatalog\";\nimport { formEventKey } from \"./eventKey\";\n\ntype AnyRecord = Record<string, unknown>;\n\nexport interface FlowEventKey {\n eventKey: string;\n /** `null` for the Form-level `submit:` key, which belongs to no step. */\n nodeId: string | null;\n nodeName: string;\n nodeType: string | null;\n triggerId: string | null;\n /** Whether this is the moment that step exists to produce. */\n isCompletion: boolean;\n}\n\n/** Every node of a Form tree, parents before children. */\nexport function flowNodes(node: unknown, acc: AnyRecord[] = []): AnyRecord[] {\n if (!node || typeof node !== \"object\") return acc;\n const record = node as AnyRecord;\n acc.push(record);\n if (Array.isArray(record.children)) for (const child of record.children) flowNodes(child, acc);\n return acc;\n}\n\n/**\n * Every event key this Form can produce, each step's completion first.\n *\n * Completion triggers lead because they are what a person means by \"reached\n * this step\"; the lifecycle triggers a widget also raises (\"the embedded form\n * finished loading\") follow rather than being hidden, since an embedded\n * checkout genuinely reports through one of them. The order says nothing about\n * which ending is the Form's outcome — that is the agent's call.\n */\nexport function flowEventKeys(tree: unknown, slug: string): FlowEventKey[] {\n const primary: FlowEventKey[] = [];\n const secondary: FlowEventKey[] = [];\n\n // A tree with no identified step raises nothing, and `submit:<slug>` for it\n // would be the very thing this file exists to prevent: a real-looking key\n // that counts zero for ever. It happens — a `_data.json` holding `null` or\n // `{}`, a folder a flow-builder loop created and has not finished writing.\n const nodes = flowNodes(tree).filter((node) => typeof node.id === \"string\" && node.id !== \"\");\n if (nodes.length === 0) return [];\n\n for (const node of nodes) {\n const id = node.id as string;\n const triggers = flowNodeTriggers(node.nodeData);\n for (const triggerId of triggers.available) {\n const candidate: FlowEventKey = {\n eventKey: formEventKey(slug, id, triggerId),\n nodeId: id,\n nodeName: typeof node.name === \"string\" ? node.name : id,\n nodeType: triggers.type,\n triggerId,\n isCompletion: triggers.completion === triggerId,\n };\n (candidate.isCompletion ? primary : secondary).push(candidate);\n }\n }\n\n return [\n ...primary,\n ...secondary,\n {\n eventKey: `submit:${slug}`,\n nodeId: null,\n nodeName: \"the Form ran out of steps\",\n nodeType: null,\n triggerId: null,\n // A Form reaching its last node is as primary as an outcome gets for a\n // Form with no widget in it — but it never fires on one that ends in a\n // booking widget or a redirect, so it does not lead the list.\n isCompletion: false,\n },\n ];\n}\n"],"mappings":";;;;;;;;AAqCO,SAAS,UAAU,MAAe,MAAmB,CAAC,GAAgB;AAC3E,MAAI,CAAC,QAAQ,OAAO,SAAS,SAAU,QAAO;AAC9C,QAAM,SAAS;AACf,MAAI,KAAK,MAAM;AACf,MAAI,MAAM,QAAQ,OAAO,QAAQ,EAAG,YAAW,SAAS,OAAO,SAAU,WAAU,OAAO,GAAG;AAC7F,SAAO;AACT;AAWO,SAAS,cAAc,MAAe,MAA8B;AACzE,QAAM,UAA0B,CAAC;AACjC,QAAM,YAA4B,CAAC;AAMnC,QAAM,QAAQ,UAAU,IAAI,EAAE,OAAO,CAAC,SAAS,OAAO,KAAK,OAAO,YAAY,KAAK,OAAO,EAAE;AAC5F,MAAI,MAAM,WAAW,EAAG,QAAO,CAAC;AAEhC,aAAW,QAAQ,OAAO;AACxB,UAAM,KAAK,KAAK;AAChB,UAAM,WAAW,iBAAiB,KAAK,QAAQ;AAC/C,eAAW,aAAa,SAAS,WAAW;AAC1C,YAAM,YAA0B;AAAA,QAC9B,UAAU,aAAa,MAAM,IAAI,SAAS;AAAA,QAC1C,QAAQ;AAAA,QACR,UAAU,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO;AAAA,QACtD,UAAU,SAAS;AAAA,QACnB;AAAA,QACA,cAAc,SAAS,eAAe;AAAA,MACxC;AACA,OAAC,UAAU,eAAe,UAAU,WAAW,KAAK,SAAS;AAAA,IAC/D;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,MACE,UAAU,UAAU,IAAI;AAAA,MACxB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW;AAAA;AAAA;AAAA;AAAA,MAIX,cAAc;AAAA,IAChB;AAAA,EACF;AACF;","names":[]}
|