@koda-sl/baker-cli 0.384.0-dev.4699b7308 → 0.384.0-dev.557795bef
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 +1098 -217
- 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-OINZG6UP.js +80 -0
- package/dist/account-OINZG6UP.js.map +1 -0
- package/dist/account-QMDCUUSG.js +79 -0
- package/dist/account-QMDCUUSG.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-AEBQFCNH.js +114 -0
- package/dist/accounts-AEBQFCNH.js.map +1 -0
- package/dist/accounts-EBGJ2YO7.js +611 -0
- package/dist/accounts-EBGJ2YO7.js.map +1 -0
- package/dist/accounts-HP4BLKK5.js +75 -0
- package/dist/accounts-HP4BLKK5.js.map +1 -0
- package/dist/accounts-YE2SQ3UQ.js +77 -0
- package/dist/accounts-YE2SQ3UQ.js.map +1 -0
- package/dist/accounts-Z4CLGQXJ.js +115 -0
- package/dist/accounts-Z4CLGQXJ.js.map +1 -0
- package/dist/actions-ADRIEQZX.js +55 -0
- package/dist/actions-ADRIEQZX.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-6OXOQNET.js +302 -0
- package/dist/add-6OXOQNET.js.map +1 -0
- package/dist/add-E66HBIZV.js +105 -0
- package/dist/add-E66HBIZV.js.map +1 -0
- package/dist/add-ROK3ETQC.js +104 -0
- package/dist/add-ROK3ETQC.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-TFZ5PXKS.js +77 -0
- package/dist/ads-TFZ5PXKS.js.map +1 -0
- package/dist/ads-XSVRH45E.js +40 -0
- package/dist/ads-XSVRH45E.js.map +1 -0
- package/dist/adsets-Y62JOOTV.js +176 -0
- package/dist/adsets-Y62JOOTV.js.map +1 -0
- package/dist/advertisers-AIC4QPEK.js +120 -0
- package/dist/advertisers-AIC4QPEK.js.map +1 -0
- package/dist/advertisers-LJ2HKJ4W.js +125 -0
- package/dist/advertisers-LJ2HKJ4W.js.map +1 -0
- package/dist/analytics-N4PGXXEQ.js +1976 -0
- package/dist/analytics-N4PGXXEQ.js.map +1 -0
- package/dist/analytics-X3DR3UVG.js +433 -0
- package/dist/analytics-X3DR3UVG.js.map +1 -0
- package/dist/animate-E3SKQ6SI.js +480 -0
- package/dist/animate-E3SKQ6SI.js.map +1 -0
- package/dist/assign-Y7HGSQVJ.js +77 -0
- package/dist/assign-Y7HGSQVJ.js.map +1 -0
- package/dist/audience-size-SWX5YJQF.js +94 -0
- package/dist/audience-size-SWX5YJQF.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-2KVLWSAI.js +151 -0
- package/dist/audit-2KVLWSAI.js.map +1 -0
- package/dist/audit-HWK24VXI.js +88 -0
- package/dist/audit-HWK24VXI.js.map +1 -0
- package/dist/autocomplete-JJSGC5WU.js +111 -0
- package/dist/autocomplete-JJSGC5WU.js.map +1 -0
- package/dist/avatars-XIEKQ77J.js +38 -0
- package/dist/avatars-XIEKQ77J.js.map +1 -0
- package/dist/bid-pricing-D2HGRWZL.js +99 -0
- package/dist/bid-pricing-D2HGRWZL.js.map +1 -0
- package/dist/brand-AYYWRGIE.js +22 -0
- package/dist/brand-AYYWRGIE.js.map +1 -0
- package/dist/brief-3HUIDK5F.js +490 -0
- package/dist/brief-3HUIDK5F.js.map +1 -0
- package/dist/businesses-65EWTK5E.js +53 -0
- package/dist/businesses-65EWTK5E.js.map +1 -0
- package/dist/campaign-groups-6HCYR2JX.js +95 -0
- package/dist/campaign-groups-6HCYR2JX.js.map +1 -0
- package/dist/campaign-writes-M6JLF5AC.js +170 -0
- package/dist/campaign-writes-M6JLF5AC.js.map +1 -0
- package/dist/campaign-writes-Y6QPRQ4E.js +165 -0
- package/dist/campaign-writes-Y6QPRQ4E.js.map +1 -0
- package/dist/campaigns-6SM2ZSIH.js +76 -0
- package/dist/campaigns-6SM2ZSIH.js.map +1 -0
- package/dist/campaigns-7RKJZRY2.js +107 -0
- package/dist/campaigns-7RKJZRY2.js.map +1 -0
- package/dist/campaigns-KRI25JDZ.js +109 -0
- package/dist/campaigns-KRI25JDZ.js.map +1 -0
- package/dist/campaigns-TD7ZB5DG.js +110 -0
- package/dist/campaigns-TD7ZB5DG.js.map +1 -0
- package/dist/canvas-DMYY2DWI.js +46 -0
- package/dist/canvas-DMYY2DWI.js.map +1 -0
- package/dist/capabilities-3WJTXS2O.js +144 -0
- package/dist/capabilities-3WJTXS2O.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-WRVSQQB2.js +262 -0
- package/dist/chats-WRVSQQB2.js.map +1 -0
- package/dist/chunk-2FGKJY63.js +455 -0
- package/dist/chunk-2FGKJY63.js.map +1 -0
- package/dist/chunk-2GVXNKAE.js +42 -0
- package/dist/chunk-2GVXNKAE.js.map +1 -0
- package/dist/chunk-2J3PTIQB.js +479 -0
- package/dist/chunk-2J3PTIQB.js.map +1 -0
- package/dist/chunk-2J7XC2NO.js +346 -0
- package/dist/chunk-2J7XC2NO.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-3ACMDRSE.js +39 -0
- package/dist/chunk-3ACMDRSE.js.map +1 -0
- package/dist/chunk-3EWF7VII.js +1079 -0
- package/dist/chunk-3EWF7VII.js.map +1 -0
- package/dist/chunk-3LYMIKKN.js +625 -0
- package/dist/chunk-3LYMIKKN.js.map +1 -0
- package/dist/chunk-3M6RNCDD.js +26 -0
- package/dist/chunk-3M6RNCDD.js.map +1 -0
- package/dist/chunk-3MDO4RR2.js +310 -0
- package/dist/chunk-3MDO4RR2.js.map +1 -0
- package/dist/chunk-3NPOIHSX.js +6667 -0
- package/dist/chunk-3NPOIHSX.js.map +1 -0
- package/dist/chunk-3SK7TWGP.js +103 -0
- package/dist/chunk-3SK7TWGP.js.map +1 -0
- package/dist/chunk-3VXQYDJN.js +1743 -0
- package/dist/chunk-3VXQYDJN.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-553XSIFW.js +304 -0
- package/dist/chunk-553XSIFW.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-5MBPIONY.js +29 -0
- package/dist/chunk-5MBPIONY.js.map +1 -0
- package/dist/chunk-5UCP4EEQ.js +111 -0
- package/dist/chunk-5UCP4EEQ.js.map +1 -0
- package/dist/chunk-5VPJNNJL.js +494 -0
- package/dist/chunk-5VPJNNJL.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-7OHWEF3I.js +98 -0
- package/dist/chunk-7OHWEF3I.js.map +1 -0
- package/dist/chunk-A636XRD7.js +159 -0
- package/dist/chunk-A636XRD7.js.map +1 -0
- package/dist/chunk-A76FRBSF.js +297 -0
- package/dist/chunk-A76FRBSF.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-AMCY5YCB.js +206 -0
- package/dist/chunk-AMCY5YCB.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-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-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-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-EI5QN4UO.js +363 -0
- package/dist/chunk-EI5QN4UO.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-EVDRF4CI.js +509 -0
- package/dist/chunk-EVDRF4CI.js.map +1 -0
- package/dist/chunk-F4IEILTR.js +382 -0
- package/dist/chunk-F4IEILTR.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-FUVCY63N.js +169 -0
- package/dist/chunk-FUVCY63N.js.map +1 -0
- package/dist/chunk-GBNJQNDS.js +19 -0
- package/dist/chunk-GBNJQNDS.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-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-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-IREMSVKW.js +175 -0
- package/dist/chunk-IREMSVKW.js.map +1 -0
- package/dist/chunk-IVIJJXXT.js +62 -0
- package/dist/chunk-IVIJJXXT.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-JUY47NZ2.js +183 -0
- package/dist/chunk-JUY47NZ2.js.map +1 -0
- package/dist/chunk-JXMZEOHV.js +333 -0
- package/dist/chunk-JXMZEOHV.js.map +1 -0
- package/dist/chunk-K37K447U.js +51 -0
- package/dist/chunk-K37K447U.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-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-MIJAGBEP.js +23992 -0
- package/dist/chunk-MIJAGBEP.js.map +1 -0
- package/dist/chunk-MP4EXZ45.js +3151 -0
- package/dist/chunk-MP4EXZ45.js.map +1 -0
- package/dist/chunk-MYTDK3AL.js +2102 -0
- package/dist/chunk-MYTDK3AL.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-NOK7MSVJ.js +533 -0
- package/dist/chunk-NOK7MSVJ.js.map +1 -0
- package/dist/chunk-NR5RZDAW.js +592 -0
- package/dist/chunk-NR5RZDAW.js.map +1 -0
- package/dist/chunk-O2EVJALZ.js +133 -0
- package/dist/chunk-O2EVJALZ.js.map +1 -0
- package/dist/chunk-O6UM5WWH.js +275 -0
- package/dist/chunk-O6UM5WWH.js.map +1 -0
- package/dist/chunk-O6XZIQXZ.js +6212 -0
- package/dist/chunk-O6XZIQXZ.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-PZNOJ76W.js +541 -0
- package/dist/chunk-PZNOJ76W.js.map +1 -0
- package/dist/chunk-Q6ULQMWG.js +41 -0
- package/dist/chunk-Q6ULQMWG.js.map +1 -0
- package/dist/chunk-QKFD6PPX.js +57 -0
- package/dist/chunk-QKFD6PPX.js.map +1 -0
- package/dist/chunk-QMLGJ5OW.js +2891 -0
- package/dist/chunk-QMLGJ5OW.js.map +1 -0
- package/dist/chunk-R4TPDVBD.js +207 -0
- package/dist/chunk-R4TPDVBD.js.map +1 -0
- package/dist/chunk-R7QV5N2S.js +846 -0
- package/dist/chunk-R7QV5N2S.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-U7ZVXFS3.js +23 -0
- package/dist/chunk-U7ZVXFS3.js.map +1 -0
- package/dist/chunk-UI6BKYQD.js +225 -0
- package/dist/chunk-UI6BKYQD.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-V7BW2CIQ.js +92 -0
- package/dist/chunk-V7BW2CIQ.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-WHWNXLTD.js +166 -0
- package/dist/chunk-WHWNXLTD.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-YFPLNMPZ.js +337 -0
- package/dist/chunk-YFPLNMPZ.js.map +1 -0
- package/dist/chunk-YMBB4JBD.js +1830 -0
- package/dist/chunk-YMBB4JBD.js.map +1 -0
- package/dist/chunk-YQFM2P5W.js +197 -0
- package/dist/chunk-YQFM2P5W.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/claim-ROWH6JVB.js +197 -0
- package/dist/claim-ROWH6JVB.js.map +1 -0
- package/dist/cli.js +104 -69986
- 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-MD2MZKU6.js +195 -0
- package/dist/companies-MD2MZKU6.js.map +1 -0
- package/dist/complete-FCAJM6Z4.js +81 -0
- package/dist/complete-FCAJM6Z4.js.map +1 -0
- package/dist/config-OZOHIAOJ.js +88 -0
- package/dist/config-OZOHIAOJ.js.map +1 -0
- package/dist/connect-4YXFMXYX.js +42 -0
- package/dist/content-PCGSX2QU.js +85 -0
- package/dist/content-PCGSX2QU.js.map +1 -0
- package/dist/conversation-UX5NZ3IO.js +93 -0
- package/dist/conversation-UX5NZ3IO.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-IYIWW4O7.js +76 -0
- package/dist/conversions-IYIWW4O7.js.map +1 -0
- package/dist/conversions-RLIJAE7E.js +135 -0
- package/dist/conversions-RLIJAE7E.js.map +1 -0
- package/dist/countries-5OBUVLLD.js +82 -0
- package/dist/countries-5OBUVLLD.js.map +1 -0
- package/dist/create-CUJLJUAQ.js +138 -0
- package/dist/create-CUJLJUAQ.js.map +1 -0
- package/dist/create-FENOT6DX.js +236 -0
- package/dist/create-FENOT6DX.js.map +1 -0
- package/dist/create-OFZQMOWO.js +59 -0
- package/dist/create-OFZQMOWO.js.map +1 -0
- package/dist/create-Z5SS2AWB.js +207 -0
- package/dist/create-Z5SS2AWB.js.map +1 -0
- package/dist/creatives-UJW2QBLH.js +182 -0
- package/dist/creatives-UJW2QBLH.js.map +1 -0
- package/dist/creatives-XI2DGQUZ.js +87 -0
- package/dist/creatives-XI2DGQUZ.js.map +1 -0
- package/dist/creatives-YLXQSROD.js +51 -0
- package/dist/creatives-YLXQSROD.js.map +1 -0
- package/dist/credentials-CH73QMD2.js +287 -0
- package/dist/credentials-CH73QMD2.js.map +1 -0
- package/dist/critique-C4WRQ4AJ.js +1449 -0
- package/dist/critique-C4WRQ4AJ.js.map +1 -0
- package/dist/critique-ZBNJ6MQ3.js +213 -0
- package/dist/critique-ZBNJ6MQ3.js.map +1 -0
- package/dist/crm-MJTT6GOJ.js +224 -0
- package/dist/crm-MJTT6GOJ.js.map +1 -0
- package/dist/crm-ZXHSEFYI.js +318 -0
- package/dist/crm-ZXHSEFYI.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-7E4HBSEY.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-DQY4ZSFN.js +54 -0
- package/dist/delete-DQY4ZSFN.js.map +1 -0
- package/dist/delete-EZ7HHOOD.js +69 -0
- package/dist/delete-EZ7HHOOD.js.map +1 -0
- package/dist/delete-JV4KAA6Y.js +66 -0
- package/dist/delete-JV4KAA6Y.js.map +1 -0
- package/dist/delete-YONJW4UZ.js +63 -0
- package/dist/delete-YONJW4UZ.js.map +1 -0
- package/dist/delete-YSYVFL6W.js +71 -0
- package/dist/delete-YSYVFL6W.js.map +1 -0
- package/dist/demographics-6N3TTYWC.js +138 -0
- package/dist/demographics-6N3TTYWC.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-S3NGGUSK.js +66 -0
- package/dist/discard-S3NGGUSK.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-AMAR76PB.js +98 -0
- package/dist/domain-AMAR76PB.js.map +1 -0
- package/dist/download-LV3GPOWV.js +299 -0
- package/dist/download-LV3GPOWV.js.map +1 -0
- package/dist/draft-6QZ7WMWM.js +217 -0
- package/dist/draft-6QZ7WMWM.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-KXL62WFS.js +328 -0
- package/dist/draft-KXL62WFS.js.map +1 -0
- package/dist/draft-N4LFPKTA.js +100 -0
- package/dist/draft-N4LFPKTA.js.map +1 -0
- package/dist/draft-POSLJCWG.js +306 -0
- package/dist/draft-POSLJCWG.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-223V5P47.js +114 -0
- package/dist/facets-223V5P47.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-MIW23MI2.js +66 -0
- package/dist/feedback-MIW23MI2.js.map +1 -0
- package/dist/feedback-record-RGKRKPGZ.js +175 -0
- package/dist/feedback-record-RGKRKPGZ.js.map +1 -0
- package/dist/fetch-O6UHNXWB.js +139 -0
- package/dist/fetch-O6UHNXWB.js.map +1 -0
- package/dist/fetch-TZ4UCMJK.js +176 -0
- package/dist/fetch-TZ4UCMJK.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-HVWBFZ7T.js +247 -0
- package/dist/flows-HVWBFZ7T.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-NBIQAVQN.js +34 -0
- package/dist/fonts-NBIQAVQN.js.map +1 -0
- package/dist/forecast-2GJKBNBM.js +168 -0
- package/dist/forecast-2GJKBNBM.js.map +1 -0
- package/dist/forecast-76MUJBPO.js +104 -0
- package/dist/forecast-76MUJBPO.js.map +1 -0
- package/dist/funding-HTFVZLLG.js +85 -0
- package/dist/funding-HTFVZLLG.js.map +1 -0
- package/dist/funnel-FE2HIRVQ.js +394 -0
- package/dist/funnel-FE2HIRVQ.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-6JNOVI27.js +56 -0
- package/dist/get-6JNOVI27.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-KVAOPAQW.js +78 -0
- package/dist/get-KVAOPAQW.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-JEQMNNMN.js +195 -0
- package/dist/google-ads-JEQMNNMN.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-EHUQG4CE.js +133 -0
- package/dist/history-EHUQG4CE.js.map +1 -0
- package/dist/hubspot-JABE4USC.js +779 -0
- package/dist/hubspot-JABE4USC.js.map +1 -0
- package/dist/icon-OYTTSNSL.js +137 -0
- package/dist/icon-OYTTSNSL.js.map +1 -0
- package/dist/ideas-OD76WOQ3.js +32 -0
- package/dist/ideas-OD76WOQ3.js.map +1 -0
- package/dist/images-LY7AWWBK.js +90 -0
- package/dist/images-LY7AWWBK.js.map +1 -0
- package/dist/improve-W6GZNT2A.js +86 -0
- package/dist/improve-W6GZNT2A.js.map +1 -0
- package/dist/ingest-47WON6HT.js +23 -0
- package/dist/ingest-47WON6HT.js.map +1 -0
- package/dist/ingest-HDGGHBSJ.js +107 -0
- package/dist/ingest-HDGGHBSJ.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-AJLG2HGL.js +189 -0
- package/dist/inspect-AJLG2HGL.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-XSFLMBZX.js +197 -0
- package/dist/keyword-metrics-XSFLMBZX.js.map +1 -0
- package/dist/keywords-for-site-U4JLYXVE.js +128 -0
- package/dist/keywords-for-site-U4JLYXVE.js.map +1 -0
- package/dist/landing-AO72EGJ6.js +28 -0
- package/dist/landing-AO72EGJ6.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-JHUM6FYR.js +293 -0
- package/dist/leads-JHUM6FYR.js.map +1 -0
- package/dist/leads-UYZM2XQX.js +90 -0
- package/dist/leads-UYZM2XQX.js.map +1 -0
- package/dist/learn-D2KBGJHZ.js +203 -0
- package/dist/learn-D2KBGJHZ.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-R5GO6GTL.js +208 -0
- package/dist/line-item-writes-R5GO6GTL.js.map +1 -0
- package/dist/line-items-RBMH6YBZ.js +103 -0
- package/dist/line-items-RBMH6YBZ.js.map +1 -0
- package/dist/link-WS2RMCOP.js +64 -0
- package/dist/link-WS2RMCOP.js.map +1 -0
- package/dist/linkedin-FSIALZTS.js +1008 -0
- package/dist/linkedin-FSIALZTS.js.map +1 -0
- package/dist/list-2AE2Q4ZD.js +151 -0
- package/dist/list-2AE2Q4ZD.js.map +1 -0
- package/dist/list-E635Y6M4.js +303 -0
- package/dist/list-E635Y6M4.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-KT6NXVLV.js +63 -0
- package/dist/list-KT6NXVLV.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-3HX5BIO6.js +92 -0
- package/dist/log-3HX5BIO6.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-QH77XOWM.js +633 -0
- package/dist/make-QH77XOWM.js.map +1 -0
- package/dist/map-QABBPYZM.js +404 -0
- package/dist/map-QABBPYZM.js.map +1 -0
- package/dist/mcp-HSD3W3OB.js +463 -0
- package/dist/mcp-HSD3W3OB.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-HO4DXRX5.js +32 -0
- package/dist/media-sources-HO4DXRX5.js.map +1 -0
- package/dist/members-YEYYJGY6.js +44 -0
- package/dist/members-YEYYJGY6.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-GSQWN77S.js +141 -0
- package/dist/normalize-GSQWN77S.js.map +1 -0
- package/dist/options-F5XZMQLK.js +121 -0
- package/dist/options-F5XZMQLK.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-G67JQE5J.js +24 -0
- package/dist/performance-G67JQE5J.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-VCK2ADVJ.js +180 -0
- package/dist/promoted-tweet-writes-VCK2ADVJ.js.map +1 -0
- package/dist/promoted-tweets-4ACBP2RV.js +119 -0
- package/dist/promoted-tweets-4ACBP2RV.js.map +1 -0
- package/dist/properties-MKVF7MUK.js +101 -0
- package/dist/properties-MKVF7MUK.js.map +1 -0
- package/dist/publish-6XVA35T6.js +322 -0
- package/dist/publish-6XVA35T6.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-SCEB2JQL.js +26 -0
- package/dist/reddit-SCEB2JQL.js.map +1 -0
- package/dist/refresh-TIH5Y3NP.js +94 -0
- package/dist/refresh-TIH5Y3NP.js.map +1 -0
- package/dist/release-LKMUKVXM.js +60 -0
- package/dist/release-LKMUKVXM.js.map +1 -0
- package/dist/relevant-pages-CRI2NLWG.js +99 -0
- package/dist/relevant-pages-CRI2NLWG.js.map +1 -0
- package/dist/remove-6ABOB7TZ.js +50 -0
- package/dist/remove-6ABOB7TZ.js.map +1 -0
- package/dist/remove-JKSCGKQG.js +48 -0
- package/dist/remove-JKSCGKQG.js.map +1 -0
- package/dist/reopen-27TDNXFP.js +63 -0
- package/dist/reopen-27TDNXFP.js.map +1 -0
- package/dist/rerun-XHECBJD5.js +84 -0
- package/dist/rerun-XHECBJD5.js.map +1 -0
- package/dist/research-4MOXIMDX.js +62 -0
- package/dist/research-4MOXIMDX.js.map +1 -0
- package/dist/research-XYXP7D4R.js +262 -0
- package/dist/research-XYXP7D4R.js.map +1 -0
- package/dist/reset-NLYEBPLX.js +54 -0
- package/dist/reset-NLYEBPLX.js.map +1 -0
- package/dist/reset-RDQOYBXX.js +54 -0
- package/dist/reset-RDQOYBXX.js.map +1 -0
- package/dist/resolve-VHKWC5KW.js +121 -0
- package/dist/resolve-VHKWC5KW.js.map +1 -0
- package/dist/retry-MTQSHXKH.js +60 -0
- package/dist/retry-MTQSHXKH.js.map +1 -0
- package/dist/retry-ZI5ECSFD.js +62 -0
- package/dist/retry-ZI5ECSFD.js.map +1 -0
- package/dist/retry-failed-2OYMCB55.js +45 -0
- package/dist/retry-failed-2OYMCB55.js.map +1 -0
- package/dist/run-BMJJRJL2.js +65 -0
- package/dist/run-BMJJRJL2.js.map +1 -0
- package/dist/run-IHXS6F5V.js +59 -0
- package/dist/run-IHXS6F5V.js.map +1 -0
- package/dist/scaffold-ad-QEADKYPL.js +1548 -0
- package/dist/scaffold-ad-QEADKYPL.js.map +1 -0
- package/dist/scaffold-static-ad-PTJ73ZNF.js +971 -0
- package/dist/scaffold-static-ad-PTJ73ZNF.js.map +1 -0
- package/dist/scaffold-video-ZQEZRVD6.js +872 -0
- package/dist/scaffold-video-ZQEZRVD6.js.map +1 -0
- package/dist/schedule-JD2EQJCT.js +61 -0
- package/dist/schedule-JD2EQJCT.js.map +1 -0
- package/dist/schedule-TLYT5UXM.js +66 -0
- package/dist/schedule-TLYT5UXM.js.map +1 -0
- package/dist/scheduled-agents-GIVKWTXX.js +49 -0
- package/dist/scheduled-agents-GIVKWTXX.js.map +1 -0
- package/dist/schema-MZTVCNP4.js +63 -0
- package/dist/schema-MZTVCNP4.js.map +1 -0
- package/dist/schema-RYTVKPLZ.js +132 -0
- package/dist/schema-RYTVKPLZ.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-AOFAN5NB.js +174 -0
- package/dist/search-AOFAN5NB.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-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-HJMOAWAU.js +94 -0
- package/dist/select-HJMOAWAU.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-TSS33JQZ.js +185 -0
- package/dist/set-prompt-TSS33JQZ.js.map +1 -0
- package/dist/setup-links-IW4BUANK.js +141 -0
- package/dist/setup-links-IW4BUANK.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-RQKO5TMR.js +3819 -0
- package/dist/shopify-RQKO5TMR.js.map +1 -0
- package/dist/site-3NU2BDAR.js +177 -0
- package/dist/site-3NU2BDAR.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-SEODRUIC.js +30 -0
- package/dist/sources-SEODRUIC.js.map +1 -0
- package/dist/sources-Z6BGTBGO.js +421 -0
- package/dist/sources-Z6BGTBGO.js.map +1 -0
- package/dist/stale-SWPDWXG7.js +63 -0
- package/dist/stale-SWPDWXG7.js.map +1 -0
- package/dist/stats-ZWZ7BAHV.js +34 -0
- package/dist/stats-ZWZ7BAHV.js.map +1 -0
- package/dist/status-7Y7UNSO6.js +62 -0
- package/dist/status-7Y7UNSO6.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-FH773IFH.js +54 -0
- package/dist/sync-FH773IFH.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-77KLGPMA.js +52 -0
- package/dist/sync-definition-77KLGPMA.js.map +1 -0
- package/dist/tag-manager-NK3ZHSJB.js +43 -0
- package/dist/tag-manager-NK3ZHSJB.js.map +1 -0
- package/dist/tags-ANGHHLAC.js +20 -0
- package/dist/tags-ANGHHLAC.js.map +1 -0
- package/dist/tags-DKPUSQTJ.js +20 -0
- package/dist/tags-DKPUSQTJ.js.map +1 -0
- package/dist/tags-HSCV4ZAQ.js +20 -0
- package/dist/tags-HSCV4ZAQ.js.map +1 -0
- package/dist/tags-J3RMQEQM.js +26 -0
- package/dist/tags-J3RMQEQM.js.map +1 -0
- package/dist/tags-VZGTR3VJ.js +224 -0
- package/dist/tags-VZGTR3VJ.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-BSG3CLHU.js +113 -0
- package/dist/targeting-criteria-BSG3CLHU.js.map +1 -0
- package/dist/targets-DVOAFYZQ.js +102 -0
- package/dist/targets-DVOAFYZQ.js.map +1 -0
- package/dist/templates-KJ5O44FF.js +178 -0
- package/dist/templates-KJ5O44FF.js.map +1 -0
- package/dist/testimonials-NB7V3DUO.js +32 -0
- package/dist/testimonials-NB7V3DUO.js.map +1 -0
- package/dist/themes-3RV3HNNE.js +94 -0
- package/dist/themes-3RV3HNNE.js.map +1 -0
- package/dist/top-companies-KRB3OZOT.js +108 -0
- package/dist/top-companies-KRB3OZOT.js.map +1 -0
- package/dist/translate-5FP32BIA.js +598 -0
- package/dist/translate-5FP32BIA.js.map +1 -0
- package/dist/triggers-EURHTCYC.js +141 -0
- package/dist/triggers-EURHTCYC.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-HVVTZ3MB.js +67 -0
- package/dist/unlink-HVVTZ3MB.js.map +1 -0
- package/dist/unstage-BJJ5M7MK.js +95 -0
- package/dist/unstage-BJJ5M7MK.js.map +1 -0
- package/dist/unstage-Y7ZE3NUJ.js +84 -0
- package/dist/unstage-Y7ZE3NUJ.js.map +1 -0
- package/dist/update-3IP7FB6Y.js +98 -0
- package/dist/update-3IP7FB6Y.js.map +1 -0
- package/dist/update-CSDSK5NO.js +63 -0
- package/dist/update-CSDSK5NO.js.map +1 -0
- package/dist/update-FGJXVDB7.js +142 -0
- package/dist/update-FGJXVDB7.js.map +1 -0
- package/dist/update-MF7LY2OT.js +155 -0
- package/dist/update-MF7LY2OT.js.map +1 -0
- package/dist/upload-DDPI7KJV.js +126 -0
- package/dist/upload-DDPI7KJV.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-SN4APXCK.js +98 -0
- package/dist/url-params-SN4APXCK.js.map +1 -0
- package/dist/use-E2TA2K6J.js +95 -0
- package/dist/use-E2TA2K6J.js.map +1 -0
- package/dist/validate-W52JOEXI.js +88 -0
- package/dist/validate-W52JOEXI.js.map +1 -0
- package/dist/variant-ETHB6XUM.js +338 -0
- package/dist/variant-ETHB6XUM.js.map +1 -0
- package/dist/videos-653WAFPG.js +39 -0
- package/dist/videos-653WAFPG.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-JWIGFGIU.js +140 -0
- package/dist/web-JWIGFGIU.js.map +1 -0
- package/dist/winners-MJDKCGEZ.js +113 -0
- package/dist/winners-MJDKCGEZ.js.map +1 -0
- package/dist/winning-ads-O3IMUGGO.js +84 -0
- package/dist/winning-ads-O3IMUGGO.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-EMN2WENA.js +1015 -0
- package/dist/write-commands-EMN2WENA.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-BT3SNCTU.js +47 -0
- package/dist/x-BT3SNCTU.js.map +1 -0
- package/package.json +9 -2
- package/dist/chunk-CHJOTJTZ.js +0 -9989
- package/dist/chunk-CHJOTJTZ.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-4YXFMXYX.js.map} +0 -0
- /package/dist/{shared-J7DQZ2ED.js.map → customers-7E4HBSEY.js.map} +0 -0
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
import {
|
|
2
|
+
csvOrJson,
|
|
3
|
+
daysAgoIso,
|
|
4
|
+
handleLinkedinError,
|
|
5
|
+
resolveAccountIdArg,
|
|
6
|
+
todayIso
|
|
7
|
+
} from "./chunk-IREMSVKW.js";
|
|
8
|
+
import {
|
|
9
|
+
writeAdsJson,
|
|
10
|
+
writeAdsOutput
|
|
11
|
+
} from "./chunk-EIGXX6KI.js";
|
|
12
|
+
import {
|
|
13
|
+
NO_CACHE_ARG
|
|
14
|
+
} from "./chunk-ZNQRDLSS.js";
|
|
15
|
+
import "./chunk-O6XZIQXZ.js";
|
|
16
|
+
import "./chunk-GXDLWBOY.js";
|
|
17
|
+
import "./chunk-GIWHHCD6.js";
|
|
18
|
+
import "./chunk-UI6BKYQD.js";
|
|
19
|
+
import "./chunk-I2DNBEV6.js";
|
|
20
|
+
import {
|
|
21
|
+
apiPost
|
|
22
|
+
} from "./chunk-CUL3VB4L.js";
|
|
23
|
+
import "./chunk-6YYSUISH.js";
|
|
24
|
+
import "./chunk-I4FTS5EE.js";
|
|
25
|
+
import "./chunk-MYTDK3AL.js";
|
|
26
|
+
import "./chunk-YQSBHWOI.js";
|
|
27
|
+
|
|
28
|
+
// src/commands/ads/linkedin/analytics.ts
|
|
29
|
+
import { defineCommand } from "citty";
|
|
30
|
+
|
|
31
|
+
// src/commands/ads/linkedin/presets.ts
|
|
32
|
+
var INTENTS = {
|
|
33
|
+
baseline: {
|
|
34
|
+
name: "baseline",
|
|
35
|
+
description: "Spend, impressions, clicks. The default 'how is delivery?' question. Derives CTR, CPC, CPM.",
|
|
36
|
+
metrics: ["impressions", "clicks", "costInUsd", "costInLocalCurrency", "approximateUniqueImpressions"],
|
|
37
|
+
derived: ["ctr", "cpc", "cpm", "frequency"]
|
|
38
|
+
},
|
|
39
|
+
revenue: {
|
|
40
|
+
name: "revenue",
|
|
41
|
+
description: "Spend, conversions, conversion value. 'How much money are we making?'",
|
|
42
|
+
metrics: [
|
|
43
|
+
"costInUsd",
|
|
44
|
+
"externalWebsiteConversions",
|
|
45
|
+
"externalWebsitePostClickConversions",
|
|
46
|
+
"externalWebsitePostViewConversions",
|
|
47
|
+
"conversionValueInLocalCurrency",
|
|
48
|
+
"oneClickLeads"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
funnel: {
|
|
52
|
+
name: "funnel",
|
|
53
|
+
description: "Impression \u2192 click \u2192 landing \u2192 form open \u2192 lead \u2192 conversion. 'Where do users drop off?'",
|
|
54
|
+
metrics: [
|
|
55
|
+
"impressions",
|
|
56
|
+
"clicks",
|
|
57
|
+
"landingPageClicks",
|
|
58
|
+
"oneClickLeadFormOpens",
|
|
59
|
+
"oneClickLeads",
|
|
60
|
+
"externalWebsiteConversions",
|
|
61
|
+
"costInUsd"
|
|
62
|
+
],
|
|
63
|
+
derived: ["ctr", "leadCompletionRate"]
|
|
64
|
+
},
|
|
65
|
+
engagement: {
|
|
66
|
+
name: "engagement",
|
|
67
|
+
description: "Likes, comments, shares, follows + viral spillover. TLA-aware \u2014 measures organic reach effect.",
|
|
68
|
+
metrics: [
|
|
69
|
+
"impressions",
|
|
70
|
+
"likes",
|
|
71
|
+
"comments",
|
|
72
|
+
"shares",
|
|
73
|
+
"reactions",
|
|
74
|
+
"follows",
|
|
75
|
+
"totalEngagements",
|
|
76
|
+
"viralImpressions",
|
|
77
|
+
"viralLikes",
|
|
78
|
+
"viralShares",
|
|
79
|
+
"viralOneClickLeads",
|
|
80
|
+
"costInUsd"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
video: {
|
|
84
|
+
name: "video",
|
|
85
|
+
description: "Video watch quartiles + cost. 'How are video creatives holding attention?'",
|
|
86
|
+
metrics: [
|
|
87
|
+
"videoStarts",
|
|
88
|
+
"videoFirstQuartileCompletions",
|
|
89
|
+
"videoMidpointCompletions",
|
|
90
|
+
"videoThirdQuartileCompletions",
|
|
91
|
+
"videoCompletions",
|
|
92
|
+
"videoViews",
|
|
93
|
+
"fullScreenPlays",
|
|
94
|
+
"costInUsd",
|
|
95
|
+
"impressions"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"lead-gen": {
|
|
99
|
+
name: "lead-gen",
|
|
100
|
+
description: "Lead Gen Form opens + completions. CLI derives form-completion-rate.",
|
|
101
|
+
metrics: [
|
|
102
|
+
"oneClickLeadFormOpens",
|
|
103
|
+
"oneClickLeads",
|
|
104
|
+
"viralOneClickLeads",
|
|
105
|
+
"viralOneClickLeadFormOpens",
|
|
106
|
+
"costInUsd"
|
|
107
|
+
],
|
|
108
|
+
derived: ["leadCompletionRate"]
|
|
109
|
+
},
|
|
110
|
+
inmail: {
|
|
111
|
+
name: "inmail",
|
|
112
|
+
description: "Sponsored Message / Conversation Ads \u2014 sends, opens, clicks, lead-gen taps.",
|
|
113
|
+
metrics: [
|
|
114
|
+
"sends",
|
|
115
|
+
"opens",
|
|
116
|
+
"clicks",
|
|
117
|
+
"costInUsd",
|
|
118
|
+
"leadGenerationMailContactInfoShares",
|
|
119
|
+
"leadGenerationMailInterestedClicks"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
document: {
|
|
123
|
+
name: "document",
|
|
124
|
+
description: "Document Ads \u2014 quartile read-through, completion, downloads.",
|
|
125
|
+
metrics: [
|
|
126
|
+
"documentFirstQuartileCompletions",
|
|
127
|
+
"documentMidpointCompletions",
|
|
128
|
+
"documentThirdQuartileCompletions",
|
|
129
|
+
"documentCompletions",
|
|
130
|
+
"downloadClicks",
|
|
131
|
+
"costInUsd",
|
|
132
|
+
"impressions"
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
ranking: {
|
|
136
|
+
name: "ranking",
|
|
137
|
+
description: "Frequency + reach metrics for fatigue detection. CLI derives frequency = impressions/uniqueImpressions.",
|
|
138
|
+
metrics: ["impressions", "clicks", "costInUsd", "approximateUniqueImpressions"],
|
|
139
|
+
derived: ["frequency", "ctr"]
|
|
140
|
+
},
|
|
141
|
+
identity: {
|
|
142
|
+
name: "identity",
|
|
143
|
+
description: "Just spend + impressions. Cheap roll-up.",
|
|
144
|
+
metrics: ["costInUsd", "impressions"]
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
var MEMBER_PIVOTS = /* @__PURE__ */ new Set([
|
|
148
|
+
"company",
|
|
149
|
+
"job-title",
|
|
150
|
+
"job-function",
|
|
151
|
+
"seniority",
|
|
152
|
+
"industry",
|
|
153
|
+
"company-size",
|
|
154
|
+
"country",
|
|
155
|
+
"region",
|
|
156
|
+
"dma"
|
|
157
|
+
]);
|
|
158
|
+
var ALL_PIVOTS = [
|
|
159
|
+
"none",
|
|
160
|
+
"campaign",
|
|
161
|
+
"campaign-group",
|
|
162
|
+
"creative",
|
|
163
|
+
"company",
|
|
164
|
+
"account",
|
|
165
|
+
"conversion",
|
|
166
|
+
"job-title",
|
|
167
|
+
"job-function",
|
|
168
|
+
"seniority",
|
|
169
|
+
"industry",
|
|
170
|
+
"company-size",
|
|
171
|
+
"country",
|
|
172
|
+
"region",
|
|
173
|
+
"dma",
|
|
174
|
+
"device",
|
|
175
|
+
"placement",
|
|
176
|
+
"serving-location",
|
|
177
|
+
"card-index",
|
|
178
|
+
"objective",
|
|
179
|
+
"conversation-node",
|
|
180
|
+
"conversation-node-button"
|
|
181
|
+
];
|
|
182
|
+
var ALL_LEVELS = ["account", "campaign-group", "campaign", "creative"];
|
|
183
|
+
function listIntents() {
|
|
184
|
+
return Object.values(INTENTS);
|
|
185
|
+
}
|
|
186
|
+
function isPivot(slug) {
|
|
187
|
+
return ALL_PIVOTS.includes(slug);
|
|
188
|
+
}
|
|
189
|
+
function isLevel(slug) {
|
|
190
|
+
return ALL_LEVELS.includes(slug);
|
|
191
|
+
}
|
|
192
|
+
function composeFields(intent, _level, metricsOverride) {
|
|
193
|
+
const base = metricsOverride && metricsOverride.length > 0 ? metricsOverride : INTENTS[intent].metrics;
|
|
194
|
+
const seen = /* @__PURE__ */ new Set();
|
|
195
|
+
const out = [];
|
|
196
|
+
for (const f of ["pivotValues", "dateRange", ...base]) {
|
|
197
|
+
if (!seen.has(f)) {
|
|
198
|
+
seen.add(f);
|
|
199
|
+
out.push(f);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return out;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// src/commands/ads/linkedin/analytics.ts
|
|
206
|
+
function commaSplit(input) {
|
|
207
|
+
if (!input) return void 0;
|
|
208
|
+
return input.split(",").map((s) => s.trim()).filter(Boolean);
|
|
209
|
+
}
|
|
210
|
+
function parseGranularity(raw) {
|
|
211
|
+
const v = (raw ?? "DAILY").toUpperCase();
|
|
212
|
+
if (v === "DAILY" || v === "MONTHLY" || v === "YEARLY" || v === "ALL") {
|
|
213
|
+
return v;
|
|
214
|
+
}
|
|
215
|
+
handleLinkedinError(new Error(`Invalid --granularity "${raw}". Use DAILY | MONTHLY | YEARLY | ALL.`));
|
|
216
|
+
}
|
|
217
|
+
function parseLevel(raw) {
|
|
218
|
+
const v = raw ?? "account";
|
|
219
|
+
if (!isLevel(v)) {
|
|
220
|
+
handleLinkedinError(new Error(`Invalid --level "${raw}". Use one of: ${ALL_LEVELS.join(", ")}.`));
|
|
221
|
+
}
|
|
222
|
+
return v;
|
|
223
|
+
}
|
|
224
|
+
function parsePivot(raw) {
|
|
225
|
+
const v = raw ?? "none";
|
|
226
|
+
if (!isPivot(v)) {
|
|
227
|
+
handleLinkedinError(new Error(`Invalid --pivot "${raw}". Use one of: ${ALL_PIVOTS.join(", ")}.`));
|
|
228
|
+
}
|
|
229
|
+
return v;
|
|
230
|
+
}
|
|
231
|
+
function parseIntent(raw) {
|
|
232
|
+
const v = raw ?? "baseline";
|
|
233
|
+
const known = [
|
|
234
|
+
"baseline",
|
|
235
|
+
"revenue",
|
|
236
|
+
"funnel",
|
|
237
|
+
"engagement",
|
|
238
|
+
"video",
|
|
239
|
+
"lead-gen",
|
|
240
|
+
"inmail",
|
|
241
|
+
"document",
|
|
242
|
+
"ranking",
|
|
243
|
+
"identity"
|
|
244
|
+
];
|
|
245
|
+
if (!known.includes(v)) {
|
|
246
|
+
handleLinkedinError(new Error(`Invalid --intent "${raw}". Run --list-intents to see options.`));
|
|
247
|
+
}
|
|
248
|
+
return v;
|
|
249
|
+
}
|
|
250
|
+
function resolveDateRange(args) {
|
|
251
|
+
const start = args.start;
|
|
252
|
+
const end = args.end;
|
|
253
|
+
if (start) {
|
|
254
|
+
return { start, end };
|
|
255
|
+
}
|
|
256
|
+
const lastDaysRaw = args["last-days"];
|
|
257
|
+
const days = lastDaysRaw ? Number(lastDaysRaw) : 7;
|
|
258
|
+
if (!Number.isFinite(days) || days < 1 || days > 730) {
|
|
259
|
+
handleLinkedinError(new Error(`Invalid --last-days "${lastDaysRaw}". Use a positive number \u2264 730.`));
|
|
260
|
+
}
|
|
261
|
+
return { start: daysAgoIso(days), end: todayIso() };
|
|
262
|
+
}
|
|
263
|
+
function resolveScopeIds(args, level) {
|
|
264
|
+
if (level === "account") {
|
|
265
|
+
const id = resolveAccountIdArg(args);
|
|
266
|
+
return [id];
|
|
267
|
+
}
|
|
268
|
+
if (level === "campaign-group") {
|
|
269
|
+
const raw2 = args["campaign-group-id"] ?? args.ids;
|
|
270
|
+
if (!raw2) {
|
|
271
|
+
handleLinkedinError(new Error("Pass --campaign-group-id (CSV for multi) when --level campaign-group."));
|
|
272
|
+
}
|
|
273
|
+
return commaSplit(raw2) ?? [];
|
|
274
|
+
}
|
|
275
|
+
if (level === "campaign") {
|
|
276
|
+
const raw2 = args["campaign-id"] ?? args.ids;
|
|
277
|
+
if (!raw2) {
|
|
278
|
+
handleLinkedinError(new Error("Pass --campaign-id (CSV for multi) when --level campaign."));
|
|
279
|
+
}
|
|
280
|
+
return commaSplit(raw2) ?? [];
|
|
281
|
+
}
|
|
282
|
+
const raw = args["creative-id"] ?? args.ids;
|
|
283
|
+
if (!raw) {
|
|
284
|
+
handleLinkedinError(new Error("Pass --creative-id (CSV for multi) when --level creative."));
|
|
285
|
+
}
|
|
286
|
+
return commaSplit(raw) ?? [];
|
|
287
|
+
}
|
|
288
|
+
function sortRows(rows) {
|
|
289
|
+
return [...rows].sort((a, b) => {
|
|
290
|
+
const cs = numberOf(b.costInUsd) - numberOf(a.costInUsd);
|
|
291
|
+
if (cs !== 0) return cs;
|
|
292
|
+
return numberOf(b.impressions) - numberOf(a.impressions);
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
function numberOf(v) {
|
|
296
|
+
if (typeof v === "number") return Number.isFinite(v) ? v : 0;
|
|
297
|
+
if (typeof v === "string") {
|
|
298
|
+
const n = Number(v);
|
|
299
|
+
return Number.isFinite(n) ? n : 0;
|
|
300
|
+
}
|
|
301
|
+
return 0;
|
|
302
|
+
}
|
|
303
|
+
var analyticsCommand = defineCommand({
|
|
304
|
+
meta: {
|
|
305
|
+
name: "analytics",
|
|
306
|
+
description: `Performance reporting \u2014 the workhorse for AI agents.
|
|
307
|
+
|
|
308
|
+
Three-axis design (LinkedIn's superpower over Meta/Google):
|
|
309
|
+
--level account | campaign-group | campaign | creative
|
|
310
|
+
--intent baseline | revenue | funnel | engagement | video | lead-gen | inmail | document | ranking | identity
|
|
311
|
+
--pivot none | job-title | company | industry | seniority | function | company-size | country | region | dma
|
|
312
|
+
| device | placement | serving-location | card-index | objective
|
|
313
|
+
| conversation-node | conversation-node-button
|
|
314
|
+
|
|
315
|
+
Smart defaults:
|
|
316
|
+
--level account, --intent baseline, --pivot none, --granularity DAILY, last 7 days
|
|
317
|
+
Pivot on a MEMBER_* dim \u2192 granularity auto-forced to ALL (LinkedIn rejects DAILY+demographic)
|
|
318
|
+
Demographic data delayed 12-24h with \u22653-event privacy floor \u2014 the CLI flags this in warnings.
|
|
319
|
+
--pivot dma \u2192 US Nielsen DMA\xAE regions, names resolved. Any report built from it must write "DMA\xAE"
|
|
320
|
+
and carry Nielsen's notice (returned as the DMA_ATTRIBUTION_REQUIRED warning).
|
|
321
|
+
Derived metrics injected client-side: ctr, cpc, cpm, frequency, leadCompletionRate
|
|
322
|
+
|
|
323
|
+
Examples \u2014 common AI questions:
|
|
324
|
+
# "How is this account doing this week?"
|
|
325
|
+
baker ads linkedin analytics
|
|
326
|
+
|
|
327
|
+
# "Who are we reaching, by job title?" (the LinkedIn killer)
|
|
328
|
+
baker ads linkedin analytics --level campaign --campaign-id 1234 --pivot job-title --intent baseline --last-days 30
|
|
329
|
+
|
|
330
|
+
# "Top companies seeing my ads" (ABM feedback loop)
|
|
331
|
+
baker ads linkedin analytics --level campaign --campaign-id 1234 --pivot company --last-days 30
|
|
332
|
+
|
|
333
|
+
# "Revenue by campaign over Q1"
|
|
334
|
+
baker ads linkedin analytics --level campaign --campaign-id 1,2,3 --intent revenue --start 2026-01-01 --end 2026-03-31 --granularity MONTHLY
|
|
335
|
+
|
|
336
|
+
# "How is the lead form converting?"
|
|
337
|
+
baker ads linkedin analytics --level campaign --campaign-id 1234 --intent lead-gen
|
|
338
|
+
|
|
339
|
+
# Custom field set (escape hatch)
|
|
340
|
+
baker ads linkedin analytics --metrics impressions,clicks,oneClickLeads --intent identity`
|
|
341
|
+
},
|
|
342
|
+
args: {
|
|
343
|
+
level: { type: "string", description: "Object scope (default: account)" },
|
|
344
|
+
"account-id": { type: "string", description: "Account ID \u2014 numeric or urn:li:sponsoredAccount:N (level=account)" },
|
|
345
|
+
"account-urn": { type: "string", description: "Alias for --account-id (URN form)" },
|
|
346
|
+
"campaign-group-id": { type: "string", description: "Comma-separated IDs (level=campaign-group)" },
|
|
347
|
+
"campaign-id": { type: "string", description: "Comma-separated IDs (level=campaign)" },
|
|
348
|
+
"creative-id": { type: "string", description: "Comma-separated IDs (level=creative)" },
|
|
349
|
+
ids: { type: "string", description: "Generic CSV of IDs at the chosen level (alternative to per-level flags)" },
|
|
350
|
+
intent: {
|
|
351
|
+
type: "string",
|
|
352
|
+
description: "baseline|revenue|funnel|engagement|video|lead-gen|inmail|document|ranking|identity"
|
|
353
|
+
},
|
|
354
|
+
pivot: { type: "string", description: "Pivot dim. Default: none. See `--list-pivots`." },
|
|
355
|
+
metrics: { type: "string", description: "CSV metric override \u2014 bypass --intent's bundle" },
|
|
356
|
+
"list-intents": { type: "boolean", description: "Print intent definitions and exit" },
|
|
357
|
+
"list-pivots": { type: "boolean", description: "Print pivot slugs and exit" },
|
|
358
|
+
start: { type: "string", description: "Start date YYYY-MM-DD (overrides --last-days)" },
|
|
359
|
+
end: { type: "string", description: "End date YYYY-MM-DD" },
|
|
360
|
+
"last-days": { type: "string", description: "Window relative to today (default: 7)" },
|
|
361
|
+
granularity: { type: "string", description: "DAILY|MONTHLY|YEARLY|ALL (default: DAILY)" },
|
|
362
|
+
limit: { type: "string", description: "Max rows (default: 1000)" },
|
|
363
|
+
"no-sort": { type: "boolean", description: "Skip default sort by costInUsd desc" },
|
|
364
|
+
"no-cache": NO_CACHE_ARG,
|
|
365
|
+
output: { type: "string", description: "Output format json|csv|jsonl|md", default: "json" }
|
|
366
|
+
},
|
|
367
|
+
run: async ({ args }) => {
|
|
368
|
+
if (args["list-intents"]) {
|
|
369
|
+
writeAdsJson({ ok: true, data: listIntents() });
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
if (args["list-pivots"]) {
|
|
373
|
+
writeAdsJson({ ok: true, data: ALL_PIVOTS });
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
const level = parseLevel(args.level);
|
|
377
|
+
const intent = parseIntent(args.intent);
|
|
378
|
+
const pivot = parsePivot(args.pivot);
|
|
379
|
+
let granularity = parseGranularity(args.granularity);
|
|
380
|
+
if (MEMBER_PIVOTS.has(pivot) && granularity === "DAILY") {
|
|
381
|
+
process.stderr.write(`note: pivot=${pivot} forces --granularity ALL (LinkedIn rejects DAILY + demographic).
|
|
382
|
+
`);
|
|
383
|
+
granularity = "ALL";
|
|
384
|
+
}
|
|
385
|
+
const ids = resolveScopeIds(args, level);
|
|
386
|
+
if (ids.length === 0) {
|
|
387
|
+
handleLinkedinError(new Error(`No IDs resolved for --level ${level}`));
|
|
388
|
+
}
|
|
389
|
+
const range = resolveDateRange(args);
|
|
390
|
+
const metrics = commaSplit(args.metrics);
|
|
391
|
+
const limit = args.limit ? Number(args.limit) : 1e3;
|
|
392
|
+
const request = {
|
|
393
|
+
level,
|
|
394
|
+
ids,
|
|
395
|
+
intent,
|
|
396
|
+
pivot,
|
|
397
|
+
metrics,
|
|
398
|
+
start: range.start,
|
|
399
|
+
end: range.end,
|
|
400
|
+
granularity,
|
|
401
|
+
limit
|
|
402
|
+
};
|
|
403
|
+
try {
|
|
404
|
+
const data = await apiPost("/api/ads/linkedin/analytics", {
|
|
405
|
+
request,
|
|
406
|
+
skipCache: Boolean(args["no-cache"])
|
|
407
|
+
});
|
|
408
|
+
const rows = args["no-sort"] ? data.rows : sortRows(data.rows);
|
|
409
|
+
const fmt = csvOrJson(args);
|
|
410
|
+
if (fmt !== "json") {
|
|
411
|
+
writeAdsOutput(rows, fmt, data.fields);
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
writeAdsJson({
|
|
415
|
+
ok: true,
|
|
416
|
+
data: {
|
|
417
|
+
rows,
|
|
418
|
+
fields: data.fields,
|
|
419
|
+
warnings: data.warnings,
|
|
420
|
+
query: data.query,
|
|
421
|
+
// Echo composed fields so an offline agent can pre-flight w/o this network call.
|
|
422
|
+
composedFields: composeFields(intent, level, metrics)
|
|
423
|
+
}
|
|
424
|
+
});
|
|
425
|
+
} catch (err) {
|
|
426
|
+
handleLinkedinError(err);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
export {
|
|
431
|
+
analyticsCommand
|
|
432
|
+
};
|
|
433
|
+
//# sourceMappingURL=analytics-X3DR3UVG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/linkedin/analytics.ts","../src/commands/ads/linkedin/presets.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput } from \"../output.ts\";\nimport {\n ALL_LEVELS,\n ALL_PIVOTS,\n composeFields,\n type IntentName,\n isLevel,\n isPivot,\n type LevelName,\n listIntents,\n MEMBER_PIVOTS,\n type PivotSlug,\n} from \"./presets.ts\";\nimport { csvOrJson, daysAgoIso, handleLinkedinError, resolveAccountIdArg, todayIso } from \"./shared.ts\";\n\ntype Granularity = \"DAILY\" | \"MONTHLY\" | \"YEARLY\" | \"ALL\";\n\ninterface AnalyticsRequest {\n level: LevelName;\n ids: string[];\n intent: IntentName;\n pivot: PivotSlug;\n metrics?: string[];\n start: string;\n end?: string;\n granularity: Granularity;\n limit?: number;\n}\n\ninterface AnalyticsResponse {\n rows: Array<Record<string, unknown>>;\n fields: string[];\n warnings: Array<{ code: string; message: string }>;\n query: AnalyticsRequest & { metrics: string[] };\n}\n\nfunction commaSplit(input: string | undefined): string[] | undefined {\n if (!input) return undefined;\n return input\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n}\n\nfunction parseGranularity(raw: string | undefined): Granularity {\n const v = (raw ?? \"DAILY\").toUpperCase();\n if (v === \"DAILY\" || v === \"MONTHLY\" || v === \"YEARLY\" || v === \"ALL\") {\n return v;\n }\n handleLinkedinError(new Error(`Invalid --granularity \"${raw}\". Use DAILY | MONTHLY | YEARLY | ALL.`));\n}\n\nfunction parseLevel(raw: string | undefined): LevelName {\n const v = raw ?? \"account\";\n if (!isLevel(v)) {\n handleLinkedinError(new Error(`Invalid --level \"${raw}\". Use one of: ${ALL_LEVELS.join(\", \")}.`));\n }\n return v;\n}\n\nfunction parsePivot(raw: string | undefined): PivotSlug {\n const v = raw ?? \"none\";\n if (!isPivot(v)) {\n handleLinkedinError(new Error(`Invalid --pivot \"${raw}\". Use one of: ${ALL_PIVOTS.join(\", \")}.`));\n }\n return v;\n}\n\nfunction parseIntent(raw: string | undefined): IntentName {\n const v = (raw ?? \"baseline\") as IntentName;\n const known: IntentName[] = [\n \"baseline\",\n \"revenue\",\n \"funnel\",\n \"engagement\",\n \"video\",\n \"lead-gen\",\n \"inmail\",\n \"document\",\n \"ranking\",\n \"identity\",\n ];\n if (!known.includes(v)) {\n handleLinkedinError(new Error(`Invalid --intent \"${raw}\". Run --list-intents to see options.`));\n }\n return v;\n}\n\n/**\n * Resolve start/end dates. Precedence:\n * 1. --start + --end (explicit window)\n * 2. --last-days N → end=today, start=today-N\n * 3. default: last 7 days\n */\nfunction resolveDateRange(args: Record<string, unknown>): { start: string; end?: string } {\n const start = args.start as string | undefined;\n const end = args.end as string | undefined;\n if (start) {\n return { start, end };\n }\n const lastDaysRaw = args[\"last-days\"] as string | undefined;\n const days = lastDaysRaw ? Number(lastDaysRaw) : 7;\n if (!Number.isFinite(days) || days < 1 || days > 730) {\n handleLinkedinError(new Error(`Invalid --last-days \"${lastDaysRaw}\". Use a positive number ≤ 730.`));\n }\n return { start: daysAgoIso(days), end: todayIso() };\n}\n\n/**\n * Resolve scope IDs. Each level expects a different flag — but we accept\n * --account-id at every level when level=account, and --campaign-id /\n * --campaign-group-id / --creative-id otherwise. CSV-encoded for multi-id.\n */\nfunction resolveScopeIds(args: Record<string, unknown>, level: LevelName): string[] {\n if (level === \"account\") {\n const id = resolveAccountIdArg(args);\n return [id];\n }\n if (level === \"campaign-group\") {\n const raw = (args[\"campaign-group-id\"] as string | undefined) ?? (args.ids as string | undefined);\n if (!raw) {\n handleLinkedinError(new Error(\"Pass --campaign-group-id (CSV for multi) when --level campaign-group.\"));\n }\n return commaSplit(raw) ?? [];\n }\n if (level === \"campaign\") {\n const raw = (args[\"campaign-id\"] as string | undefined) ?? (args.ids as string | undefined);\n if (!raw) {\n handleLinkedinError(new Error(\"Pass --campaign-id (CSV for multi) when --level campaign.\"));\n }\n return commaSplit(raw) ?? [];\n }\n // creative\n const raw = (args[\"creative-id\"] as string | undefined) ?? (args.ids as string | undefined);\n if (!raw) {\n handleLinkedinError(new Error(\"Pass --creative-id (CSV for multi) when --level creative.\"));\n }\n return commaSplit(raw) ?? [];\n}\n\n/** Sort rows by spend desc when present, otherwise by impressions desc. */\nfunction sortRows(rows: Array<Record<string, unknown>>): Array<Record<string, unknown>> {\n return [...rows].sort((a, b) => {\n const cs = numberOf(b.costInUsd) - numberOf(a.costInUsd);\n if (cs !== 0) return cs;\n return numberOf(b.impressions) - numberOf(a.impressions);\n });\n}\n\nfunction numberOf(v: unknown): number {\n if (typeof v === \"number\") return Number.isFinite(v) ? v : 0;\n if (typeof v === \"string\") {\n const n = Number(v);\n return Number.isFinite(n) ? n : 0;\n }\n return 0;\n}\n\nexport const analyticsCommand = defineCommand({\n meta: {\n name: \"analytics\",\n description: `Performance reporting — the workhorse for AI agents.\n\nThree-axis design (LinkedIn's superpower over Meta/Google):\n --level account | campaign-group | campaign | creative\n --intent baseline | revenue | funnel | engagement | video | lead-gen | inmail | document | ranking | identity\n --pivot none | job-title | company | industry | seniority | function | company-size | country | region | dma\n | device | placement | serving-location | card-index | objective\n | conversation-node | conversation-node-button\n\nSmart defaults:\n --level account, --intent baseline, --pivot none, --granularity DAILY, last 7 days\n Pivot on a MEMBER_* dim → granularity auto-forced to ALL (LinkedIn rejects DAILY+demographic)\n Demographic data delayed 12-24h with ≥3-event privacy floor — the CLI flags this in warnings.\n --pivot dma → US Nielsen DMA® regions, names resolved. Any report built from it must write \"DMA®\"\n and carry Nielsen's notice (returned as the DMA_ATTRIBUTION_REQUIRED warning).\n Derived metrics injected client-side: ctr, cpc, cpm, frequency, leadCompletionRate\n\nExamples — common AI questions:\n # \"How is this account doing this week?\"\n baker ads linkedin analytics\n\n # \"Who are we reaching, by job title?\" (the LinkedIn killer)\n baker ads linkedin analytics --level campaign --campaign-id 1234 --pivot job-title --intent baseline --last-days 30\n\n # \"Top companies seeing my ads\" (ABM feedback loop)\n baker ads linkedin analytics --level campaign --campaign-id 1234 --pivot company --last-days 30\n\n # \"Revenue by campaign over Q1\"\n baker ads linkedin analytics --level campaign --campaign-id 1,2,3 --intent revenue --start 2026-01-01 --end 2026-03-31 --granularity MONTHLY\n\n # \"How is the lead form converting?\"\n baker ads linkedin analytics --level campaign --campaign-id 1234 --intent lead-gen\n\n # Custom field set (escape hatch)\n baker ads linkedin analytics --metrics impressions,clicks,oneClickLeads --intent identity`,\n },\n args: {\n level: { type: \"string\", description: \"Object scope (default: account)\" },\n \"account-id\": { type: \"string\", description: \"Account ID — numeric or urn:li:sponsoredAccount:N (level=account)\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id (URN form)\" },\n \"campaign-group-id\": { type: \"string\", description: \"Comma-separated IDs (level=campaign-group)\" },\n \"campaign-id\": { type: \"string\", description: \"Comma-separated IDs (level=campaign)\" },\n \"creative-id\": { type: \"string\", description: \"Comma-separated IDs (level=creative)\" },\n ids: { type: \"string\", description: \"Generic CSV of IDs at the chosen level (alternative to per-level flags)\" },\n intent: {\n type: \"string\",\n description: \"baseline|revenue|funnel|engagement|video|lead-gen|inmail|document|ranking|identity\",\n },\n pivot: { type: \"string\", description: \"Pivot dim. Default: none. See `--list-pivots`.\" },\n metrics: { type: \"string\", description: \"CSV metric override — bypass --intent's bundle\" },\n \"list-intents\": { type: \"boolean\", description: \"Print intent definitions and exit\" },\n \"list-pivots\": { type: \"boolean\", description: \"Print pivot slugs and exit\" },\n start: { type: \"string\", description: \"Start date YYYY-MM-DD (overrides --last-days)\" },\n end: { type: \"string\", description: \"End date YYYY-MM-DD\" },\n \"last-days\": { type: \"string\", description: \"Window relative to today (default: 7)\" },\n granularity: { type: \"string\", description: \"DAILY|MONTHLY|YEARLY|ALL (default: DAILY)\" },\n limit: { type: \"string\", description: \"Max rows (default: 1000)\" },\n \"no-sort\": { type: \"boolean\", description: \"Skip default sort by costInUsd desc\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"Output format json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n if (args[\"list-intents\"]) {\n writeAdsJson({ ok: true, data: listIntents() });\n return;\n }\n if (args[\"list-pivots\"]) {\n writeAdsJson({ ok: true, data: ALL_PIVOTS });\n return;\n }\n\n const level = parseLevel(args.level as string | undefined);\n const intent = parseIntent(args.intent as string | undefined);\n const pivot = parsePivot(args.pivot as string | undefined);\n let granularity = parseGranularity(args.granularity as string | undefined);\n\n // CLI-side mirror of the backend's pivot/granularity guard. Backend will\n // also enforce — this lets us echo the auto-correction in stderr early.\n if (MEMBER_PIVOTS.has(pivot) && granularity === \"DAILY\") {\n process.stderr.write(`note: pivot=${pivot} forces --granularity ALL (LinkedIn rejects DAILY + demographic).\\n`);\n granularity = \"ALL\";\n }\n\n const ids = resolveScopeIds(args, level);\n if (ids.length === 0) {\n handleLinkedinError(new Error(`No IDs resolved for --level ${level}`));\n }\n\n const range = resolveDateRange(args);\n const metrics = commaSplit(args.metrics as string | undefined);\n const limit = args.limit ? Number(args.limit) : 1000;\n\n const request: AnalyticsRequest = {\n level,\n ids,\n intent,\n pivot,\n metrics,\n start: range.start,\n end: range.end,\n granularity,\n limit,\n };\n\n try {\n const data = await apiPost<AnalyticsResponse>(\"/api/ads/linkedin/analytics\", {\n request,\n skipCache: Boolean(args[\"no-cache\"]),\n });\n const rows = args[\"no-sort\"] ? data.rows : sortRows(data.rows);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(rows, fmt, data.fields);\n return;\n }\n writeAdsJson({\n ok: true,\n data: {\n rows,\n fields: data.fields,\n warnings: data.warnings,\n query: data.query,\n // Echo composed fields so an offline agent can pre-flight w/o this network call.\n composedFields: composeFields(intent, level, metrics),\n },\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n","/**\n * LinkedIn analytics field bundles. Three-axis design:\n * --intent → metric bundle (baseline | revenue | funnel | engagement | video |\n * lead-gen | inmail | document | ranking | identity)\n * --level → object scope (account | campaign-group | campaign | creative)\n * --pivot → demographic / firmographic breakdown\n * (none | job-title | company | industry | seniority | function |\n * company-size | country | region | dma | device | placement | …)\n *\n * Backend recomputes the field list itself (single source of truth in\n * `packages/backend/convex/ads/linkedin/constants.ts`). The CLI keeps a\n * mirror copy so `--list-intents` / `--list-pivots` work offline.\n */\n\nexport type IntentName =\n | \"baseline\"\n | \"revenue\"\n | \"funnel\"\n | \"engagement\"\n | \"video\"\n | \"lead-gen\"\n | \"inmail\"\n | \"document\"\n | \"ranking\"\n | \"identity\";\n\nexport type LevelName = \"account\" | \"campaign-group\" | \"campaign\" | \"creative\";\n\nexport type PivotSlug =\n | \"none\"\n | \"campaign\"\n | \"campaign-group\"\n | \"creative\"\n | \"company\"\n | \"account\"\n | \"conversion\"\n | \"job-title\"\n | \"job-function\"\n | \"seniority\"\n | \"industry\"\n | \"company-size\"\n | \"country\"\n | \"region\"\n | \"dma\"\n | \"device\"\n | \"placement\"\n | \"serving-location\"\n | \"card-index\"\n | \"objective\"\n | \"conversation-node\"\n | \"conversation-node-button\";\n\ninterface IntentDefinition {\n name: IntentName;\n description: string;\n metrics: string[];\n /** Derived (CLI-side) metrics this bundle materializes. Documentation only. */\n derived?: string[];\n}\n\nexport const INTENTS: Record<IntentName, IntentDefinition> = {\n baseline: {\n name: \"baseline\",\n description: \"Spend, impressions, clicks. The default 'how is delivery?' question. Derives CTR, CPC, CPM.\",\n metrics: [\"impressions\", \"clicks\", \"costInUsd\", \"costInLocalCurrency\", \"approximateUniqueImpressions\"],\n derived: [\"ctr\", \"cpc\", \"cpm\", \"frequency\"],\n },\n revenue: {\n name: \"revenue\",\n description: \"Spend, conversions, conversion value. 'How much money are we making?'\",\n metrics: [\n \"costInUsd\",\n \"externalWebsiteConversions\",\n \"externalWebsitePostClickConversions\",\n \"externalWebsitePostViewConversions\",\n \"conversionValueInLocalCurrency\",\n \"oneClickLeads\",\n ],\n },\n funnel: {\n name: \"funnel\",\n description: \"Impression → click → landing → form open → lead → conversion. 'Where do users drop off?'\",\n metrics: [\n \"impressions\",\n \"clicks\",\n \"landingPageClicks\",\n \"oneClickLeadFormOpens\",\n \"oneClickLeads\",\n \"externalWebsiteConversions\",\n \"costInUsd\",\n ],\n derived: [\"ctr\", \"leadCompletionRate\"],\n },\n engagement: {\n name: \"engagement\",\n description: \"Likes, comments, shares, follows + viral spillover. TLA-aware — measures organic reach effect.\",\n metrics: [\n \"impressions\",\n \"likes\",\n \"comments\",\n \"shares\",\n \"reactions\",\n \"follows\",\n \"totalEngagements\",\n \"viralImpressions\",\n \"viralLikes\",\n \"viralShares\",\n \"viralOneClickLeads\",\n \"costInUsd\",\n ],\n },\n video: {\n name: \"video\",\n description: \"Video watch quartiles + cost. 'How are video creatives holding attention?'\",\n metrics: [\n \"videoStarts\",\n \"videoFirstQuartileCompletions\",\n \"videoMidpointCompletions\",\n \"videoThirdQuartileCompletions\",\n \"videoCompletions\",\n \"videoViews\",\n \"fullScreenPlays\",\n \"costInUsd\",\n \"impressions\",\n ],\n },\n \"lead-gen\": {\n name: \"lead-gen\",\n description: \"Lead Gen Form opens + completions. CLI derives form-completion-rate.\",\n metrics: [\n \"oneClickLeadFormOpens\",\n \"oneClickLeads\",\n \"viralOneClickLeads\",\n \"viralOneClickLeadFormOpens\",\n \"costInUsd\",\n ],\n derived: [\"leadCompletionRate\"],\n },\n inmail: {\n name: \"inmail\",\n description: \"Sponsored Message / Conversation Ads — sends, opens, clicks, lead-gen taps.\",\n metrics: [\n \"sends\",\n \"opens\",\n \"clicks\",\n \"costInUsd\",\n \"leadGenerationMailContactInfoShares\",\n \"leadGenerationMailInterestedClicks\",\n ],\n },\n document: {\n name: \"document\",\n description: \"Document Ads — quartile read-through, completion, downloads.\",\n metrics: [\n \"documentFirstQuartileCompletions\",\n \"documentMidpointCompletions\",\n \"documentThirdQuartileCompletions\",\n \"documentCompletions\",\n \"downloadClicks\",\n \"costInUsd\",\n \"impressions\",\n ],\n },\n ranking: {\n name: \"ranking\",\n description:\n \"Frequency + reach metrics for fatigue detection. CLI derives frequency = impressions/uniqueImpressions.\",\n metrics: [\"impressions\", \"clicks\", \"costInUsd\", \"approximateUniqueImpressions\"],\n derived: [\"frequency\", \"ctr\"],\n },\n identity: {\n name: \"identity\",\n description: \"Just spend + impressions. Cheap roll-up.\",\n metrics: [\"costInUsd\", \"impressions\"],\n },\n};\n\n/** Pivots that LinkedIn rejects with DAILY granularity — CLI auto-forces ALL. */\nexport const MEMBER_PIVOTS = new Set<PivotSlug>([\n \"company\",\n \"job-title\",\n \"job-function\",\n \"seniority\",\n \"industry\",\n \"company-size\",\n \"country\",\n \"region\",\n \"dma\",\n]);\n\nexport const ALL_PIVOTS: PivotSlug[] = [\n \"none\",\n \"campaign\",\n \"campaign-group\",\n \"creative\",\n \"company\",\n \"account\",\n \"conversion\",\n \"job-title\",\n \"job-function\",\n \"seniority\",\n \"industry\",\n \"company-size\",\n \"country\",\n \"region\",\n \"dma\",\n \"device\",\n \"placement\",\n \"serving-location\",\n \"card-index\",\n \"objective\",\n \"conversation-node\",\n \"conversation-node-button\",\n];\n\nexport const ALL_LEVELS: LevelName[] = [\"account\", \"campaign-group\", \"campaign\", \"creative\"];\n\nexport function getIntent(name: string): IntentDefinition | undefined {\n return INTENTS[name as IntentName];\n}\n\nexport function listIntents(): IntentDefinition[] {\n return Object.values(INTENTS);\n}\n\nexport function isPivot(slug: string): slug is PivotSlug {\n return (ALL_PIVOTS as string[]).includes(slug);\n}\n\nexport function isLevel(slug: string): slug is LevelName {\n return (ALL_LEVELS as string[]).includes(slug);\n}\n\n/**\n * Compose final field list — intent bundle + identity columns + pivotValues +\n * dateRange. Backend re-validates and recomposes; this is just for offline\n * preview (`baker ads linkedin analytics --list-intents`).\n */\nexport function composeFields(intent: IntentName, _level: LevelName, metricsOverride?: string[]): string[] {\n const base = metricsOverride && metricsOverride.length > 0 ? metricsOverride : INTENTS[intent].metrics;\n const seen = new Set<string>();\n const out: string[] = [];\n for (const f of [\"pivotValues\", \"dateRange\", ...base]) {\n if (!seen.has(f)) {\n seen.add(f);\n out.push(f);\n }\n }\n return out;\n}\n"],"mappings":"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","names":["raw"]}
|