@koda-sl/baker-cli 0.513.0 → 0.515.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/account-BA3IO3AN.js +139 -0
- package/dist/account-LVJFHDA3.js +82 -0
- package/dist/account-LVJFHDA3.js.map +1 -0
- package/dist/account-PTJ6OK6Z.js +82 -0
- package/dist/account-PTJ6OK6Z.js.map +1 -0
- package/dist/account-assets-T3VVNBUG.js +290 -0
- package/dist/account-level-MPFWRPEK.js +611 -0
- package/dist/account-level-MPFWRPEK.js.map +1 -0
- package/dist/account-reads-5CXFLJ5Q.js +219 -0
- package/dist/account-users-B7DCJEFD.js +64 -0
- package/dist/account-users-B7DCJEFD.js.map +1 -0
- package/dist/account-writes-W5EOTS7P.js +68 -0
- package/dist/account-writes-W5EOTS7P.js.map +1 -0
- package/dist/accounts-4R3MBNJG.js +76 -0
- package/dist/accounts-5WF7VE7J.js +115 -0
- package/dist/accounts-IQTEH4BX.js +701 -0
- package/dist/accounts-IQTEH4BX.js.map +1 -0
- package/dist/accounts-SV7JZUCC.js +80 -0
- package/dist/accounts-SV7JZUCC.js.map +1 -0
- package/dist/accounts-VPWCLF6X.js +114 -0
- package/dist/actions-D7OWCP36.js +55 -0
- package/dist/active-entities-WDPW7652.js +103 -0
- package/dist/activecampaign-LBS4M4C4.js +938 -0
- package/dist/activecampaign-LBS4M4C4.js.map +1 -0
- package/dist/activities-WGPHYSFU.js +75 -0
- package/dist/ad-group-writes-JL56DPC4.js +172 -0
- package/dist/ad-group-writes-JL56DPC4.js.map +1 -0
- package/dist/ad-groups-62JPLIK3.js +70 -0
- package/dist/ad-groups-62JPLIK3.js.map +1 -0
- package/dist/ad-writes-WSKLRGB7.js +176 -0
- package/dist/ad-writes-WSKLRGB7.js.map +1 -0
- package/dist/add-HFQB2NTU.js +107 -0
- package/dist/add-HFQB2NTU.js.map +1 -0
- package/dist/add-IUYE5H6A.js +305 -0
- package/dist/add-IUYE5H6A.js.map +1 -0
- package/dist/ads-F7AUJWK7.js +115 -0
- package/dist/ads-JFI56MZL.js +79 -0
- package/dist/ads-JFI56MZL.js.map +1 -0
- package/dist/ads-OV3SMLKA.js +48 -0
- package/dist/adsets-XH2ULWPM.js +182 -0
- package/dist/advertisers-XXM6POO5.js +123 -0
- package/dist/advertisers-XXM6POO5.js.map +1 -0
- package/dist/analytics-MJT6DS3L.js +447 -0
- package/dist/analytics-MJT6DS3L.js.map +1 -0
- package/dist/analytics-W7EUOI2Q.js +2437 -0
- package/dist/analytics-W7EUOI2Q.js.map +1 -0
- package/dist/asset-writes-4X3AJQ4Q.js +50 -0
- package/dist/assign-2GQVQKKO.js +80 -0
- package/dist/assign-2GQVQKKO.js.map +1 -0
- package/dist/audience-size-VHXBNNIB.js +76 -0
- package/dist/audience-size-VHXBNNIB.js.map +1 -0
- package/dist/audience-writes-TXWPDJ2F.js +327 -0
- package/dist/audience-writes-TXWPDJ2F.js.map +1 -0
- package/dist/audiences-B2LFKWIS.js +280 -0
- package/dist/audiences-B2LFKWIS.js.map +1 -0
- package/dist/audiences-MBBXWEOI.js +86 -0
- package/dist/audiences-YUG5JLL4.js +85 -0
- package/dist/audit-VT2WSZWM.js +154 -0
- package/dist/audit-VT2WSZWM.js.map +1 -0
- package/dist/audit-WFXS5ELM.js +88 -0
- package/dist/autocomplete-ZYMHHV7E.js +114 -0
- package/dist/autocomplete-ZYMHHV7E.js.map +1 -0
- package/dist/avatars-WZ2JDMHH.js +38 -0
- package/dist/bid-pricing-5F3GBSAI.js +103 -0
- package/dist/bid-pricing-5F3GBSAI.js.map +1 -0
- package/dist/brand-IZTTBZII.js +22 -0
- package/dist/brief-OPQ7ICOY.js +543 -0
- package/dist/brief-OPQ7ICOY.js.map +1 -0
- package/dist/businesses-24JNY46Z.js +54 -0
- package/dist/campaign-groups-BDCDTMBF.js +99 -0
- package/dist/campaign-groups-BDCDTMBF.js.map +1 -0
- package/dist/campaign-writes-73H7G3JM.js +168 -0
- package/dist/campaign-writes-73H7G3JM.js.map +1 -0
- package/dist/campaign-writes-FNVOHONL.js +176 -0
- package/dist/campaign-writes-FNVOHONL.js.map +1 -0
- package/dist/campaigns-FUDZUVHN.js +78 -0
- package/dist/campaigns-FUDZUVHN.js.map +1 -0
- package/dist/campaigns-J65Q4WAZ.js +113 -0
- package/dist/campaigns-J65Q4WAZ.js.map +1 -0
- package/dist/campaigns-KXYGSH27.js +130 -0
- package/dist/campaigns-U5FQ2VWL.js +111 -0
- package/dist/canvas-IQ753Q2O.js +46 -0
- package/dist/capabilities-ZITW4RF7.js +147 -0
- package/dist/capabilities-ZITW4RF7.js.map +1 -0
- package/dist/cards-NSNAFTEB.js +85 -0
- package/dist/catalogs-OWQGGCIO.js +130 -0
- package/dist/catalogs-OWQGGCIO.js.map +1 -0
- package/dist/catalogs-VZYAATUR.js +781 -0
- package/dist/catalogs-VZYAATUR.js.map +1 -0
- package/dist/changes-RDWMNSTK.js +135 -0
- package/dist/chatgpt-27NEJVGF.js +47 -0
- package/dist/chats-AL2SYBJO.js +279 -0
- package/dist/chats-AL2SYBJO.js.map +1 -0
- package/dist/check-U2YLRD6H.js +107 -0
- package/dist/check-U2YLRD6H.js.map +1 -0
- package/dist/chunk-2F4DELSV.js +200 -0
- package/dist/chunk-2GYCWRF3.js +170 -0
- package/dist/chunk-2L7F7KR4.js +61 -0
- package/dist/chunk-44ZRCSR7.js +228 -0
- package/dist/chunk-46YLDIQG.js +4254 -0
- package/dist/chunk-4EDWXZ3I.js +363 -0
- package/dist/chunk-4FFBGR5L.js +66 -0
- package/dist/chunk-4UZUUSVL.js +592 -0
- package/dist/chunk-4XHCEYHI.js +831 -0
- package/dist/chunk-4Z6PVR3M.js +479 -0
- package/dist/chunk-5Y5FZV2W.js +122 -0
- package/dist/chunk-6DPSWLGY.js +324 -0
- package/dist/chunk-6DPSWLGY.js.map +1 -0
- package/dist/chunk-6HJXLGDV.js +392 -0
- package/dist/chunk-6S5CWGDA.js +429 -0
- package/dist/chunk-6VYROVWO.js +494 -0
- package/dist/chunk-AQRXXC6E.js +319 -0
- package/dist/chunk-ARBXT73X.js +387 -0
- package/dist/chunk-BEZHQIEI.js +97 -0
- package/dist/chunk-BFURWHVR.js +547 -0
- package/dist/chunk-EZSPVWLQ.js +169 -0
- package/dist/chunk-FCHZ5TNG.js +26 -0
- package/dist/chunk-FLWDFPXE.js +23 -0
- package/dist/chunk-FQMEX3GX.js +846 -0
- package/dist/chunk-G4FG5EQO.js +110 -0
- package/dist/chunk-G4FG5EQO.js.map +1 -0
- package/dist/chunk-GE3VT3CA.js +51 -0
- package/dist/chunk-GGK2CX6B.js +24026 -0
- package/dist/chunk-GGK2CX6B.js.map +1 -0
- package/dist/chunk-GHZ6HP2X.js +358 -0
- package/dist/chunk-GHZ6HP2X.js.map +1 -0
- package/dist/chunk-HCQJYI6X.js +74 -0
- package/dist/chunk-HGBJQGO5.js +142 -0
- package/dist/chunk-HHVWV5BJ.js +191 -0
- package/dist/chunk-I3WGTSDY.js +76 -0
- package/dist/chunk-I7AYMJZA.js +783 -0
- package/dist/chunk-IDSDJHRS.js +106 -0
- package/dist/chunk-ILPHIYAL.js +207 -0
- package/dist/chunk-IWKD56AY.js +156 -0
- package/dist/chunk-JLAQWMVF.js +3868 -0
- package/dist/chunk-JOE42ZW6.js +2984 -0
- package/dist/chunk-JOE42ZW6.js.map +1 -0
- package/dist/chunk-K6NULQN7.js +57 -0
- package/dist/chunk-L2BRAC2J.js +19 -0
- package/dist/chunk-LGMI4LSY.js +455 -0
- package/dist/chunk-LNODLR7W.js +149 -0
- package/dist/chunk-LQ2BRGMX.js +274 -0
- package/dist/chunk-M7QZSEHF.js +175 -0
- package/dist/chunk-NB2FU6EZ.js +179 -0
- package/dist/chunk-NFII3MTG.js +207 -0
- package/dist/chunk-NKQWDEB7.js +115 -0
- package/dist/chunk-NKQWDEB7.js.map +1 -0
- package/dist/chunk-OG47L5GG.js +275 -0
- package/dist/chunk-PC3FJEZH.js +7211 -0
- package/dist/chunk-PC3FJEZH.js.map +1 -0
- package/dist/chunk-Q3GSVLE5.js +4274 -0
- package/dist/chunk-Q3GSVLE5.js.map +1 -0
- package/dist/chunk-QIOFOD4K.js +344 -0
- package/dist/chunk-R2SYF5FC.js +249 -0
- package/dist/chunk-RTH2I55B.js +942 -0
- package/dist/chunk-S6VFDNSQ.js +63 -0
- package/dist/chunk-SG2TDQEE.js +150 -0
- package/dist/chunk-SOPVIIUW.js +68 -0
- package/dist/chunk-SOPVIIUW.js.map +1 -0
- package/dist/chunk-T3P6O2VU.js +89 -0
- package/dist/chunk-TU5LQUJM.js +74 -0
- package/dist/chunk-TU7DWSTW.js +69 -0
- package/dist/chunk-TXDE2QJ3.js +604 -0
- package/dist/chunk-TYXZ2SRW.js +287 -0
- package/dist/chunk-UDIEKCIR.js +203 -0
- package/dist/chunk-UQHHGT67.js +676 -0
- package/dist/chunk-USCADMM3.js +163 -0
- package/dist/chunk-UUGISMNE.js +910 -0
- package/dist/chunk-VDPOCAQ2.js +197 -0
- package/dist/chunk-VEJ3QX6M.js +103 -0
- package/dist/chunk-VFJB7OG6.js +91 -0
- package/dist/chunk-VPABGAN4.js +188 -0
- package/dist/chunk-VRIPVLE7.js +8954 -0
- package/dist/chunk-WLESMH4J.js +45 -0
- package/dist/chunk-XOQNM7I4.js +396 -0
- package/dist/chunk-XOQNM7I4.js.map +1 -0
- package/dist/chunk-YILZR3XI.js +224 -0
- package/dist/chunk-YJFLXOH4.js +191 -0
- package/dist/chunk-YWHZYR6S.js +297 -0
- package/dist/chunk-Z35KUMBW.js +219 -0
- package/dist/chunk-Z7I2ZFXS.js +1646 -0
- package/dist/claim-GOLUTAJ3.js +200 -0
- package/dist/claim-GOLUTAJ3.js.map +1 -0
- package/dist/cli.js +34 -34
- package/dist/companies-CSN7DPYW.js +198 -0
- package/dist/companies-CSN7DPYW.js.map +1 -0
- package/dist/company-MOSPLRZJ.js +308 -0
- package/dist/company-MOSPLRZJ.js.map +1 -0
- package/dist/complete-777BDV45.js +84 -0
- package/dist/complete-777BDV45.js.map +1 -0
- package/dist/config-55WGRLY3.js +88 -0
- package/dist/connect-3YY7MF3I.js +45 -0
- package/dist/conversation-6K2TNYBQ.js +96 -0
- package/dist/conversation-6K2TNYBQ.js.map +1 -0
- package/dist/conversion-report-WYYB3BK2.js +127 -0
- package/dist/conversion-report-WYYB3BK2.js.map +1 -0
- package/dist/conversion-upload-command-VM2P57K6.js +439 -0
- package/dist/conversion-writes-DHOPMA7X.js +122 -0
- package/dist/conversion-writes-DHOPMA7X.js.map +1 -0
- package/dist/conversions-KWY7BNDN.js +78 -0
- package/dist/conversions-KWY7BNDN.js.map +1 -0
- package/dist/conversions-MLRK35ZV.js +140 -0
- package/dist/conversions-MLRK35ZV.js.map +1 -0
- package/dist/copy-writes-E3V5TUVU.js +170 -0
- package/dist/copy-writes-E3V5TUVU.js.map +1 -0
- package/dist/create-3WOZO2XT.js +239 -0
- package/dist/create-3WOZO2XT.js.map +1 -0
- package/dist/create-7IFYLX7P.js +210 -0
- package/dist/create-7IFYLX7P.js.map +1 -0
- package/dist/create-FOHIQC3E.js +62 -0
- package/dist/create-FOHIQC3E.js.map +1 -0
- package/dist/create-UWQSQTK6.js +135 -0
- package/dist/create-UWQSQTK6.js.map +1 -0
- package/dist/creatives-2DR3QHJW.js +58 -0
- package/dist/creatives-DUR5Z5AN.js +89 -0
- package/dist/creatives-KN3MT533.js +223 -0
- package/dist/creatives-KN3MT533.js.map +1 -0
- package/dist/credentials-IP4L37XP.js +290 -0
- package/dist/credentials-IP4L37XP.js.map +1 -0
- package/dist/critique-LGDNMLBL.js +232 -0
- package/dist/critique-LGDNMLBL.js.map +1 -0
- package/dist/critique-LJMFAURK.js +1451 -0
- package/dist/critique-LJMFAURK.js.map +1 -0
- package/dist/crm-BNYW7PF7.js +323 -0
- package/dist/crm-BNYW7PF7.js.map +1 -0
- package/dist/crm-DMADHALO.js +227 -0
- package/dist/crm-DMADHALO.js.map +1 -0
- package/dist/currency-X4KEACEP.js +88 -0
- package/dist/custom-conversions-OIA5Y2GX.js +128 -0
- package/dist/customers-663K2OCP.js +59 -0
- package/dist/delete-5W3YVA4L.js +67 -0
- package/dist/delete-5W3YVA4L.js.map +1 -0
- package/dist/delete-6U7E6YUW.js +57 -0
- package/dist/delete-6U7E6YUW.js.map +1 -0
- package/dist/delete-G4NY6ZG6.js +69 -0
- package/dist/delete-G4NY6ZG6.js.map +1 -0
- package/dist/demographics-UZ7BCQ7K.js +141 -0
- package/dist/demographics-UZ7BCQ7K.js.map +1 -0
- package/dist/discard-RKCZNKMN.js +69 -0
- package/dist/discard-RKCZNKMN.js.map +1 -0
- package/dist/discover-2W42JB56.js +172 -0
- package/dist/domain-PLA2O4FW.js +101 -0
- package/dist/domain-PLA2O4FW.js.map +1 -0
- package/dist/download-4EFLVSA4.js +172 -0
- package/dist/download-4EFLVSA4.js.map +1 -0
- package/dist/draft-2ZX73IRO.js +238 -0
- package/dist/draft-6XMZYSMR.js +283 -0
- package/dist/draft-6XMZYSMR.js.map +1 -0
- package/dist/draft-CKLIIWXZ.js +308 -0
- package/dist/draft-IUEULQDT.js +310 -0
- package/dist/draft-IUEULQDT.js.map +1 -0
- package/dist/draft-JMNAGW7C.js +220 -0
- package/dist/draft-JMNAGW7C.js.map +1 -0
- package/dist/draft-L5Q6KEER.js +100 -0
- package/dist/draft-MJRMZGMP.js +103 -0
- package/dist/draft-WPMVLRME.js +335 -0
- package/dist/draft-WPMVLRME.js.map +1 -0
- package/dist/experiment-3VRHCQN5.js +1397 -0
- package/dist/experiments-S4TSXCK6.js +236 -0
- package/dist/experiments-S4TSXCK6.js.map +1 -0
- package/dist/facets-D3JG7OSO.js +117 -0
- package/dist/facets-D3JG7OSO.js.map +1 -0
- package/dist/feedback-IRSRPXV6.js +111 -0
- package/dist/feedback-IRSRPXV6.js.map +1 -0
- package/dist/feedback-record-DT3R4NA3.js +265 -0
- package/dist/feedback-record-DT3R4NA3.js.map +1 -0
- package/dist/fetch-YLQP5VQL.js +179 -0
- package/dist/fetch-YLQP5VQL.js.map +1 -0
- package/dist/fit-BEFCY2B4.js +65 -0
- package/dist/flows-FDMF3F3P.js +250 -0
- package/dist/flows-FDMF3F3P.js.map +1 -0
- package/dist/fonts-C6XN5667.js +39 -0
- package/dist/forecast-4YHMKO54.js +121 -0
- package/dist/forecast-4YHMKO54.js.map +1 -0
- package/dist/forecast-LYN6ZGQC.js +169 -0
- package/dist/funding-TCEPQXRQ.js +85 -0
- package/dist/funnel-CQIT3F23.js +397 -0
- package/dist/funnel-CQIT3F23.js.map +1 -0
- package/dist/ga4-JE3HS36B.js +55 -0
- package/dist/get-KBSKPTAV.js +59 -0
- package/dist/get-KBSKPTAV.js.map +1 -0
- package/dist/get-OSVQVMP6.js +82 -0
- package/dist/get-OSVQVMP6.js.map +1 -0
- package/dist/google-24FDG4C4.js +3267 -0
- package/dist/google-ads-XCJVAXWF.js +198 -0
- package/dist/google-ads-XCJVAXWF.js.map +1 -0
- package/dist/gsc-RMVOYIM3.js +30 -0
- package/dist/history-4TN2A6BL.js +136 -0
- package/dist/history-4TN2A6BL.js.map +1 -0
- package/dist/history-5IWW2X33.js +102 -0
- package/dist/history-5IWW2X33.js.map +1 -0
- package/dist/history-GIXIG276.js +69 -0
- package/dist/history-GIXIG276.js.map +1 -0
- package/dist/hubspot-5WB7TQBG.js +782 -0
- package/dist/hubspot-5WB7TQBG.js.map +1 -0
- package/dist/ideas-M66FU45H.js +45 -0
- package/dist/images-MM5OPUKV.js +92 -0
- package/dist/ingest-GU3WEBN3.js +110 -0
- package/dist/ingest-GU3WEBN3.js.map +1 -0
- package/dist/ingest-KMLYCFF4.js +26 -0
- package/dist/insights-HATH3IC6.js +439 -0
- package/dist/insights-HATH3IC6.js.map +1 -0
- package/dist/insights-VKPIVJMK.js +132 -0
- package/dist/insights-VKPIVJMK.js.map +1 -0
- package/dist/inspect-4JO2J3D6.js +192 -0
- package/dist/inspect-4JO2J3D6.js.map +1 -0
- package/dist/instant-experiences-A2SIQNB5.js +260 -0
- package/dist/instant-experiences-A2SIQNB5.js.map +1 -0
- package/dist/intent-YCQCUCV3.js +95 -0
- package/dist/job-SM2OQ2LO.js +202 -0
- package/dist/job-create-ECZHPVKH.js +109 -0
- package/dist/job-status-QSYDKIIV.js +74 -0
- package/dist/keyword-gap-PUSF7EKY.js +130 -0
- package/dist/keyword-metrics-JXBM22ZD.js +200 -0
- package/dist/keyword-metrics-JXBM22ZD.js.map +1 -0
- package/dist/keywords-for-site-OAYA7KP7.js +131 -0
- package/dist/keywords-for-site-OAYA7KP7.js.map +1 -0
- package/dist/landing-OZU5RRFV.js +28 -0
- package/dist/languages-Q5SKO4AM.js +40 -0
- package/dist/leads-QAYS7AJO.js +540 -0
- package/dist/leads-QAYS7AJO.js.map +1 -0
- package/dist/leads-VOSFVNUK.js +115 -0
- package/dist/leads-VOSFVNUK.js.map +1 -0
- package/dist/learn-NBBJRMVZ.js +207 -0
- package/dist/learn-NBBJRMVZ.js.map +1 -0
- package/dist/line-item-writes-VBBB3TRS.js +211 -0
- package/dist/line-item-writes-VBBB3TRS.js.map +1 -0
- package/dist/line-items-2V5FY33R.js +107 -0
- package/dist/link-WZSNUQQ2.js +67 -0
- package/dist/link-WZSNUQQ2.js.map +1 -0
- package/dist/linkedin-CDFCOHKI.js +1316 -0
- package/dist/linkedin-CDFCOHKI.js.map +1 -0
- package/dist/linkedin-person-MVRI7LLC.js +139 -0
- package/dist/linkedin-person-MVRI7LLC.js.map +1 -0
- package/dist/list-6S54IAUX.js +67 -0
- package/dist/list-6S54IAUX.js.map +1 -0
- package/dist/list-QRJ4E3SC.js +154 -0
- package/dist/list-QRJ4E3SC.js.map +1 -0
- package/dist/list-RZUDFLJN.js +306 -0
- package/dist/list-RZUDFLJN.js.map +1 -0
- package/dist/locations-RFTE42OS.js +69 -0
- package/dist/locations-RFTE42OS.js.map +1 -0
- package/dist/locations-VQYREHYI.js +40 -0
- package/dist/log-53SAPZZ3.js +95 -0
- package/dist/log-53SAPZZ3.js.map +1 -0
- package/dist/lookup-MELV3RUL.js +23 -0
- package/dist/make-ZF3YIMKW.js +1370 -0
- package/dist/make-ZF3YIMKW.js.map +1 -0
- package/dist/map-J37QFJSV.js +436 -0
- package/dist/map-J37QFJSV.js.map +1 -0
- package/dist/mcp-B7WSZQFD.js +729 -0
- package/dist/mcp-B7WSZQFD.js.map +1 -0
- package/dist/media-BPI2VE6A.js +89 -0
- package/dist/media-EEWZZU3P.js +18 -0
- package/dist/media-sources-EQI3U4TC.js +35 -0
- package/dist/members-GYVMSCKL.js +47 -0
- package/dist/members-GYVMSCKL.js.map +1 -0
- package/dist/meta-SMJUQP37.js +122 -0
- package/dist/metrics-EMAP7ESR.js +152 -0
- package/dist/normalize-MFN3WCH5.js +144 -0
- package/dist/normalize-MFN3WCH5.js.map +1 -0
- package/dist/options-DLHDHO7H.js +125 -0
- package/dist/options-DLHDHO7H.js.map +1 -0
- package/dist/organization-C2VOA2SD.js +949 -0
- package/dist/organization-C2VOA2SD.js.map +1 -0
- package/dist/output-4QBQEM4C.js +24 -0
- package/dist/page-photos-HRKPDQBM.js +118 -0
- package/dist/page-photos-HRKPDQBM.js.map +1 -0
- package/dist/pages-DTQWQUKP.js +67 -0
- package/dist/performance-NIF3CESZ.js +27 -0
- package/dist/performance-T6TBVHVU.js +5541 -0
- package/dist/performance-T6TBVHVU.js.map +1 -0
- package/dist/pixels-2BKADWE6.js +109 -0
- package/dist/pixels-F6BZNTDD.js +62 -0
- package/dist/pixels-F6BZNTDD.js.map +1 -0
- package/dist/plan-A6VC3ZO7.js +208 -0
- package/dist/plan-A6VC3ZO7.js.map +1 -0
- package/dist/preview-GGIGXPJW.js +218 -0
- package/dist/preview-GGIGXPJW.js.map +1 -0
- package/dist/promoted-tweet-writes-WU2SKKZF.js +183 -0
- package/dist/promoted-tweet-writes-WU2SKKZF.js.map +1 -0
- package/dist/promoted-tweets-653Q5AC6.js +119 -0
- package/dist/properties-VWKO3AAK.js +101 -0
- package/dist/publish-IOTMJCCY.js +344 -0
- package/dist/publish-IOTMJCCY.js.map +1 -0
- package/dist/query-CXIOL7WI.js +62 -0
- package/dist/query-OOP63DJF.js +236 -0
- package/dist/query-RBZFAIDK.js +247 -0
- package/dist/questionnaire-7SHYRTMJ.js +94 -0
- package/dist/questionnaire-7SHYRTMJ.js.map +1 -0
- package/dist/read-GOULD7YL.js +141 -0
- package/dist/reddit-JIHMAKAQ.js +29 -0
- package/dist/refresh-OQZ263CS.js +97 -0
- package/dist/refresh-OQZ263CS.js.map +1 -0
- package/dist/release-4CHFURO3.js +63 -0
- package/dist/release-4CHFURO3.js.map +1 -0
- package/dist/relevant-pages-FS7GBVXK.js +99 -0
- package/dist/remove-IJQPHPDI.js +53 -0
- package/dist/remove-IJQPHPDI.js.map +1 -0
- package/dist/reopen-YTLPVKUR.js +66 -0
- package/dist/reopen-YTLPVKUR.js.map +1 -0
- package/dist/rerun-C7NB7B35.js +95 -0
- package/dist/rerun-C7NB7B35.js.map +1 -0
- package/dist/research-PNBACCCP.js +72 -0
- package/dist/research-TLHNPK3O.js +265 -0
- package/dist/research-TLHNPK3O.js.map +1 -0
- package/dist/reset-JVLW7HA2.js +57 -0
- package/dist/reset-JVLW7HA2.js.map +1 -0
- package/dist/reset-Y6FXLAQE.js +57 -0
- package/dist/reset-Y6FXLAQE.js.map +1 -0
- package/dist/resolve-RCFAYPWR.js +124 -0
- package/dist/resolve-RCFAYPWR.js.map +1 -0
- package/dist/retry-3V3IGDRR.js +65 -0
- package/dist/retry-3V3IGDRR.js.map +1 -0
- package/dist/retry-AEKQLQMP.js +63 -0
- package/dist/retry-AEKQLQMP.js.map +1 -0
- package/dist/revenue-3R6JLYCQ.js +91 -0
- package/dist/revenue-3R6JLYCQ.js.map +1 -0
- package/dist/rule-writes-K4P3XBJW.js +525 -0
- package/dist/rule-writes-K4P3XBJW.js.map +1 -0
- package/dist/rules-34BQAWU3.js +99 -0
- package/dist/rules-34BQAWU3.js.map +1 -0
- package/dist/rules-HY7S2YTD.js +217 -0
- package/dist/rules-add-CM5XUYNS.js +465 -0
- package/dist/rules-add-CM5XUYNS.js.map +1 -0
- package/dist/run-MD64RDHZ.js +69 -0
- package/dist/run-MD64RDHZ.js.map +1 -0
- package/dist/run-QCNRR3CA.js +70 -0
- package/dist/scaffold-ad-NADPY3CB.js +1516 -0
- package/dist/scaffold-ad-NADPY3CB.js.map +1 -0
- package/dist/scaffold-static-ad-5YEYYVYH.js +1015 -0
- package/dist/scaffold-static-ad-5YEYYVYH.js.map +1 -0
- package/dist/scaffold-video-W7DF2CBJ.js +888 -0
- package/dist/scaffold-video-W7DF2CBJ.js.map +1 -0
- package/dist/schedule-CTRRF6TS.js +64 -0
- package/dist/schedule-CTRRF6TS.js.map +1 -0
- package/dist/scheduled-agents-OXYAVSIE.js +55 -0
- package/dist/schema-BEUYOGSW.js +135 -0
- package/dist/schema-BEUYOGSW.js.map +1 -0
- package/dist/search-GFJKWPKN.js +177 -0
- package/dist/search-GFJKWPKN.js.map +1 -0
- package/dist/select-S72CCL57.js +106 -0
- package/dist/select-S72CCL57.js.map +1 -0
- package/dist/sends-WBYTALR7.js +349 -0
- package/dist/sends-WBYTALR7.js.map +1 -0
- package/dist/set-prompt-YYFDRXRI.js +198 -0
- package/dist/set-prompt-YYFDRXRI.js.map +1 -0
- package/dist/setup-links-D4JJLESN.js +144 -0
- package/dist/setup-links-D4JJLESN.js.map +1 -0
- package/dist/shared-CGEJI2RB.js +32 -0
- package/dist/shopify-DQWEYPDX.js +3958 -0
- package/dist/shopify-DQWEYPDX.js.map +1 -0
- package/dist/site-BBZAUZA3.js +180 -0
- package/dist/site-BBZAUZA3.js.map +1 -0
- package/dist/sitemaps-5SP7PVQ6.js +87 -0
- package/dist/sites-YZDPHBST.js +101 -0
- package/dist/sources-7FIBHL6A.js +457 -0
- package/dist/sources-7FIBHL6A.js.map +1 -0
- package/dist/sources-FLUGHSVP.js +30 -0
- package/dist/stale-HP54JS5X.js +76 -0
- package/dist/stale-HP54JS5X.js.map +1 -0
- package/dist/stats-EGGNFTKI.js +34 -0
- package/dist/status-CLSWQFCQ.js +65 -0
- package/dist/status-CLSWQFCQ.js.map +1 -0
- package/dist/studies-6VUUOMZD.js +250 -0
- package/dist/study-writes-IR7RSSTK.js +470 -0
- package/dist/study-writes-IR7RSSTK.js.map +1 -0
- package/dist/sync-4YTVVEVC.js +57 -0
- package/dist/sync-4YTVVEVC.js.map +1 -0
- package/dist/sync-SCM6JGJP.js +279 -0
- package/dist/sync-definition-OGQ5XTQE.js +69 -0
- package/dist/tag-manager-REKD4WGU.js +43 -0
- package/dist/tags-CZTRQNXV.js +26 -0
- package/dist/tags-FDQXWTCQ.js +23 -0
- package/dist/tags-FDQXWTCQ.js.map +1 -0
- package/dist/tags-R67DKRZ6.js +23 -0
- package/dist/tags-R67DKRZ6.js.map +1 -0
- package/dist/tags-SA2LU6AW.js +227 -0
- package/dist/tags-SA2LU6AW.js.map +1 -0
- package/dist/tags-ZOXX6VRE.js +23 -0
- package/dist/tags-ZOXX6VRE.js.map +1 -0
- package/dist/targeting-BQUD54MF.js +762 -0
- package/dist/targeting-BQUD54MF.js.map +1 -0
- package/dist/targeting-constants-MRQB4N5I.js +118 -0
- package/dist/targeting-criteria-HSAESZIR.js +113 -0
- package/dist/targets-UUVCEG3F.js +106 -0
- package/dist/targets-UUVCEG3F.js.map +1 -0
- package/dist/terms-D2KAFHKJ.js +102 -0
- package/dist/testimonials-G3OCNPBY.js +32 -0
- package/dist/themes-X56KIX3Z.js +95 -0
- package/dist/top-companies-2RLNCSVS.js +111 -0
- package/dist/top-companies-2RLNCSVS.js.map +1 -0
- package/dist/transcript-U46AEOEI.js +165 -0
- package/dist/transcript-U46AEOEI.js.map +1 -0
- package/dist/translate-AS7JVKYM.js +609 -0
- package/dist/translate-AS7JVKYM.js.map +1 -0
- package/dist/triggers-ECRBPYYF.js +144 -0
- package/dist/triggers-ECRBPYYF.js.map +1 -0
- package/dist/tweets-JN6ARKF6.js +123 -0
- package/dist/unlink-VDNCSRJV.js +70 -0
- package/dist/unlink-VDNCSRJV.js.map +1 -0
- package/dist/unstage-5C27F2LZ.js +96 -0
- package/dist/unstage-5C27F2LZ.js.map +1 -0
- package/dist/unstage-ATDXUYP2.js +88 -0
- package/dist/unstage-ATDXUYP2.js.map +1 -0
- package/dist/update-FJ6TBV3E.js +101 -0
- package/dist/update-FJ6TBV3E.js.map +1 -0
- package/dist/update-HDBJCSTI.js +66 -0
- package/dist/update-HDBJCSTI.js.map +1 -0
- package/dist/update-U43DJRGV.js +155 -0
- package/dist/update-U43DJRGV.js.map +1 -0
- package/dist/update-Z7TIUBMJ.js +192 -0
- package/dist/update-Z7TIUBMJ.js.map +1 -0
- package/dist/upload-LXCFSRIU.js +129 -0
- package/dist/upload-LXCFSRIU.js.map +1 -0
- package/dist/url-options-C543MY7L.js +131 -0
- package/dist/url-options-C543MY7L.js.map +1 -0
- package/dist/url-params-TEFCXQ5N.js +101 -0
- package/dist/url-params-TEFCXQ5N.js.map +1 -0
- package/dist/validate-VR3HEOMJ.js +122 -0
- package/dist/validate-VR3HEOMJ.js.map +1 -0
- package/dist/videos-36AXDUGZ.js +41 -0
- package/dist/viewer-check-6HL4OUQY.js +83 -0
- package/dist/web-7BRJRQX7.js +143 -0
- package/dist/web-7BRJRQX7.js.map +1 -0
- package/dist/winning-ads-GMM5W2O4.js +86 -0
- package/dist/write-commands-B25W4FP5.js +713 -0
- package/dist/write-commands-DO2YUOMG.js +1502 -0
- package/dist/write-commands-DO2YUOMG.js.map +1 -0
- package/dist/write-commands-GNNEUVDW.js +206 -0
- package/dist/write-commands-NXJQQ62W.js +1172 -0
- package/dist/write-commands-NXJQQ62W.js.map +1 -0
- package/dist/x-JNR5SO6F.js +47 -0
- package/package.json +1 -1
- package/dist/account-UUAEQWO3.js +0 -80
- package/dist/account-UUAEQWO3.js.map +0 -1
- package/dist/account-WLQBAQMD.js +0 -80
- package/dist/account-WLQBAQMD.js.map +0 -1
- package/dist/account-ZY655BIU.js +0 -139
- package/dist/account-assets-O7IA37RE.js +0 -290
- package/dist/account-level-EU7BWCO7.js +0 -609
- package/dist/account-level-EU7BWCO7.js.map +0 -1
- package/dist/account-reads-SNOWDHHF.js +0 -219
- package/dist/account-users-NV37Z2XJ.js +0 -62
- package/dist/account-users-NV37Z2XJ.js.map +0 -1
- package/dist/account-writes-TU3WJRSI.js +0 -66
- package/dist/account-writes-TU3WJRSI.js.map +0 -1
- package/dist/accounts-FT2SRKMD.js +0 -76
- package/dist/accounts-K5XLEO6W.js +0 -114
- package/dist/accounts-MZ6SETJJ.js +0 -78
- package/dist/accounts-MZ6SETJJ.js.map +0 -1
- package/dist/accounts-SNB65ZEW.js +0 -115
- package/dist/accounts-U7ZBEAY6.js +0 -699
- package/dist/accounts-U7ZBEAY6.js.map +0 -1
- package/dist/actions-4JYHXRFH.js +0 -55
- package/dist/active-entities-3BAPHE4P.js +0 -103
- package/dist/activecampaign-IDBV26HH.js +0 -936
- package/dist/activecampaign-IDBV26HH.js.map +0 -1
- package/dist/activities-LKLPORDI.js +0 -75
- package/dist/ad-group-writes-HLBWN4E4.js +0 -170
- package/dist/ad-group-writes-HLBWN4E4.js.map +0 -1
- package/dist/ad-groups-33NZD6J3.js +0 -68
- package/dist/ad-groups-33NZD6J3.js.map +0 -1
- package/dist/ad-writes-7ZDNDZ2E.js +0 -174
- package/dist/ad-writes-7ZDNDZ2E.js.map +0 -1
- package/dist/add-AF42LQQQ.js +0 -105
- package/dist/add-AF42LQQQ.js.map +0 -1
- package/dist/add-LJRZYJ7I.js +0 -303
- package/dist/add-LJRZYJ7I.js.map +0 -1
- package/dist/ads-KBE5JXCH.js +0 -115
- package/dist/ads-LXWXOQHX.js +0 -48
- package/dist/ads-X3AM6M7L.js +0 -77
- package/dist/ads-X3AM6M7L.js.map +0 -1
- package/dist/adsets-YWBJFPAZ.js +0 -182
- package/dist/advertisers-6FOCN2W3.js +0 -121
- package/dist/advertisers-6FOCN2W3.js.map +0 -1
- package/dist/analytics-64HBRJJE.js +0 -2435
- package/dist/analytics-64HBRJJE.js.map +0 -1
- package/dist/analytics-VY5NL2GL.js +0 -445
- package/dist/analytics-VY5NL2GL.js.map +0 -1
- package/dist/asset-writes-72DEVXGO.js +0 -48
- package/dist/assign-N2I2BM67.js +0 -78
- package/dist/assign-N2I2BM67.js.map +0 -1
- package/dist/audience-size-H5DEZXJN.js +0 -74
- package/dist/audience-size-H5DEZXJN.js.map +0 -1
- package/dist/audience-writes-KCHLNFSI.js +0 -325
- package/dist/audience-writes-KCHLNFSI.js.map +0 -1
- package/dist/audiences-34IQKOGS.js +0 -85
- package/dist/audiences-QAH42HIM.js +0 -86
- package/dist/audiences-WCDWN64L.js +0 -268
- package/dist/audiences-WCDWN64L.js.map +0 -1
- package/dist/audit-2AAF6AOX.js +0 -152
- package/dist/audit-2AAF6AOX.js.map +0 -1
- package/dist/audit-7ED6CUTQ.js +0 -88
- package/dist/autocomplete-3GSKRNCZ.js +0 -112
- package/dist/autocomplete-3GSKRNCZ.js.map +0 -1
- package/dist/avatars-N6W6HUPP.js +0 -38
- package/dist/bid-pricing-IMITXHXN.js +0 -101
- package/dist/bid-pricing-IMITXHXN.js.map +0 -1
- package/dist/brand-ITWQVZD2.js +0 -22
- package/dist/brief-JJNEYPYB.js +0 -541
- package/dist/brief-JJNEYPYB.js.map +0 -1
- package/dist/businesses-MGP2YCEU.js +0 -54
- package/dist/campaign-groups-TTQLP32Q.js +0 -97
- package/dist/campaign-groups-TTQLP32Q.js.map +0 -1
- package/dist/campaign-writes-MAKPHQ3V.js +0 -166
- package/dist/campaign-writes-MAKPHQ3V.js.map +0 -1
- package/dist/campaign-writes-XO74BALZ.js +0 -174
- package/dist/campaign-writes-XO74BALZ.js.map +0 -1
- package/dist/campaigns-5BIDXYSR.js +0 -111
- package/dist/campaigns-LS65QM6W.js +0 -76
- package/dist/campaigns-LS65QM6W.js.map +0 -1
- package/dist/campaigns-XZOQ2VTK.js +0 -130
- package/dist/campaigns-XZPXCS7I.js +0 -111
- package/dist/campaigns-XZPXCS7I.js.map +0 -1
- package/dist/canvas-SL3RMOY5.js +0 -46
- package/dist/capabilities-LSR5GCE6.js +0 -145
- package/dist/capabilities-LSR5GCE6.js.map +0 -1
- package/dist/cards-A7GQVC7B.js +0 -85
- package/dist/catalogs-JLCSFZYC.js +0 -779
- package/dist/catalogs-JLCSFZYC.js.map +0 -1
- package/dist/catalogs-T23RKYFC.js +0 -128
- package/dist/catalogs-T23RKYFC.js.map +0 -1
- package/dist/changes-36C754R4.js +0 -135
- package/dist/chatgpt-3WFOPURY.js +0 -47
- package/dist/chats-GGYTXNJS.js +0 -277
- package/dist/chats-GGYTXNJS.js.map +0 -1
- package/dist/check-P7UPBBG7.js +0 -105
- package/dist/check-P7UPBBG7.js.map +0 -1
- package/dist/chunk-2TOIY2WN.js +0 -4254
- package/dist/chunk-3GAR4AZK.js +0 -149
- package/dist/chunk-4D46PS6J.js +0 -344
- package/dist/chunk-4GAEB6NK.js +0 -228
- package/dist/chunk-5XTGG4PV.js +0 -274
- package/dist/chunk-6JCX3YLM.js +0 -249
- package/dist/chunk-7J3NZBPV.js +0 -2982
- package/dist/chunk-7J3NZBPV.js.map +0 -1
- package/dist/chunk-7NF73SCB.js +0 -106
- package/dist/chunk-ALMYGH5U.js +0 -479
- package/dist/chunk-AQKRSEBQ.js +0 -103
- package/dist/chunk-B2POVFR2.js +0 -175
- package/dist/chunk-BL6RTOK3.js +0 -297
- package/dist/chunk-C6CBBZBO.js +0 -203
- package/dist/chunk-CCEDZTP7.js +0 -391
- package/dist/chunk-CCEDZTP7.js.map +0 -1
- package/dist/chunk-CKQTJ2LV.js +0 -89
- package/dist/chunk-D3KLDIPQ.js +0 -45
- package/dist/chunk-DL2UJNJ7.js +0 -8954
- package/dist/chunk-DM3Q6F5F.js +0 -26
- package/dist/chunk-DQ54POZN.js +0 -363
- package/dist/chunk-EDLZGTGN.js +0 -216
- package/dist/chunk-EDLZGTGN.js.map +0 -1
- package/dist/chunk-EXSHBYNQ.js +0 -349
- package/dist/chunk-EXSHBYNQ.js.map +0 -1
- package/dist/chunk-FFFJBNHA.js +0 -63
- package/dist/chunk-FKQK22IX.js +0 -51
- package/dist/chunk-FLK6QHOY.js +0 -142
- package/dist/chunk-GACSA5A6.js +0 -1646
- package/dist/chunk-GU5MXV2Y.js +0 -191
- package/dist/chunk-HGUYC5K6.js +0 -76
- package/dist/chunk-HJKYTNAZ.js +0 -61
- package/dist/chunk-HMIROUFV.js +0 -74
- package/dist/chunk-INUU3752.js +0 -392
- package/dist/chunk-IQHO2ABF.js +0 -197
- package/dist/chunk-J3UWMBOP.js +0 -547
- package/dist/chunk-JDR3HUEL.js +0 -191
- package/dist/chunk-JI77AKT6.js +0 -19
- package/dist/chunk-JNURZHZJ.js +0 -942
- package/dist/chunk-JSNMKTFM.js +0 -592
- package/dist/chunk-K4FLWDEX.js +0 -122
- package/dist/chunk-KBRJSPIM.js +0 -676
- package/dist/chunk-KUY26RCF.js +0 -200
- package/dist/chunk-LAC6YHHX.js +0 -97
- package/dist/chunk-M7HD42M6.js +0 -24017
- package/dist/chunk-M7HD42M6.js.map +0 -1
- package/dist/chunk-MGYC2IRC.js +0 -783
- package/dist/chunk-MI4HXE7M.js +0 -23
- package/dist/chunk-MJ7RNDD4.js +0 -910
- package/dist/chunk-OBJCNGZL.js +0 -207
- package/dist/chunk-OJGYYH6K.js +0 -179
- package/dist/chunk-OLBLXJNI.js +0 -224
- package/dist/chunk-PFTYKINE.js +0 -207
- package/dist/chunk-PLBITHV6.js +0 -846
- package/dist/chunk-Q6JMMBSQ.js +0 -831
- package/dist/chunk-RAQHUMKS.js +0 -169
- package/dist/chunk-RCJKABOS.js +0 -74
- package/dist/chunk-SA22KXWT.js +0 -163
- package/dist/chunk-SIXU5PDF.js +0 -66
- package/dist/chunk-SXMK5AEJ.js +0 -494
- package/dist/chunk-TLQOMWLQ.js +0 -69
- package/dist/chunk-TTLD66NI.js +0 -319
- package/dist/chunk-TVAIOC77.js +0 -287
- package/dist/chunk-TVTSA4EN.js +0 -188
- package/dist/chunk-V5NHJU3M.js +0 -604
- package/dist/chunk-VIPKDXGU.js +0 -4229
- package/dist/chunk-VIPKDXGU.js.map +0 -1
- package/dist/chunk-W4D7C74B.js +0 -387
- package/dist/chunk-WF25CCLD.js +0 -170
- package/dist/chunk-WQPUX3BA.js +0 -275
- package/dist/chunk-WR3FR3K3.js +0 -156
- package/dist/chunk-XDNJC62G.js +0 -91
- package/dist/chunk-XE6N4SZI.js +0 -429
- package/dist/chunk-XGPU2VDU.js +0 -219
- package/dist/chunk-XUJZO7MZ.js +0 -57
- package/dist/chunk-Y67LUJBE.js +0 -455
- package/dist/chunk-Y7XSDJEA.js +0 -3868
- package/dist/chunk-ZNNQK366.js +0 -7198
- package/dist/chunk-ZNNQK366.js.map +0 -1
- package/dist/chunk-ZNRGH4NS.js +0 -150
- package/dist/chunk-ZRP7Y2DM.js +0 -320
- package/dist/chunk-ZRP7Y2DM.js.map +0 -1
- package/dist/claim-4KUETSW3.js +0 -198
- package/dist/claim-4KUETSW3.js.map +0 -1
- package/dist/companies-XFO6WPVT.js +0 -196
- package/dist/companies-XFO6WPVT.js.map +0 -1
- package/dist/company-OJGISG7K.js +0 -306
- package/dist/company-OJGISG7K.js.map +0 -1
- package/dist/complete-CXOST5J3.js +0 -82
- package/dist/complete-CXOST5J3.js.map +0 -1
- package/dist/config-SMVIY6RW.js +0 -88
- package/dist/connect-HPQ32KGV.js +0 -43
- package/dist/conversation-D5HKCTDA.js +0 -94
- package/dist/conversation-D5HKCTDA.js.map +0 -1
- package/dist/conversion-report-DKXFHLLX.js +0 -125
- package/dist/conversion-report-DKXFHLLX.js.map +0 -1
- package/dist/conversion-upload-command-KTYAY7IG.js +0 -439
- package/dist/conversion-writes-7ODJDAUP.js +0 -120
- package/dist/conversion-writes-7ODJDAUP.js.map +0 -1
- package/dist/conversions-BKVGNNC6.js +0 -76
- package/dist/conversions-BKVGNNC6.js.map +0 -1
- package/dist/conversions-SYNDEB6D.js +0 -138
- package/dist/conversions-SYNDEB6D.js.map +0 -1
- package/dist/copy-writes-P4WK6OPM.js +0 -168
- package/dist/copy-writes-P4WK6OPM.js.map +0 -1
- package/dist/create-7D4VD4TC.js +0 -208
- package/dist/create-7D4VD4TC.js.map +0 -1
- package/dist/create-7QDEAWZS.js +0 -133
- package/dist/create-7QDEAWZS.js.map +0 -1
- package/dist/create-IQSYEC4M.js +0 -60
- package/dist/create-IQSYEC4M.js.map +0 -1
- package/dist/create-TQSCM7MG.js +0 -237
- package/dist/create-TQSCM7MG.js.map +0 -1
- package/dist/creatives-JPKA2RHU.js +0 -89
- package/dist/creatives-RNOL4F4E.js +0 -58
- package/dist/creatives-RXI27T2D.js +0 -221
- package/dist/creatives-RXI27T2D.js.map +0 -1
- package/dist/credentials-PYW55B52.js +0 -288
- package/dist/credentials-PYW55B52.js.map +0 -1
- package/dist/critique-2SYHNAW5.js +0 -1449
- package/dist/critique-2SYHNAW5.js.map +0 -1
- package/dist/critique-72GFZSHA.js +0 -230
- package/dist/critique-72GFZSHA.js.map +0 -1
- package/dist/crm-EATDSXXB.js +0 -225
- package/dist/crm-EATDSXXB.js.map +0 -1
- package/dist/crm-XXP3VBYD.js +0 -321
- package/dist/crm-XXP3VBYD.js.map +0 -1
- package/dist/currency-R4ORE2U3.js +0 -88
- package/dist/custom-conversions-5HJBB5XL.js +0 -128
- package/dist/customers-OFZTEXST.js +0 -57
- package/dist/delete-FGVZIK4R.js +0 -55
- package/dist/delete-FGVZIK4R.js.map +0 -1
- package/dist/delete-HBZZL4UA.js +0 -67
- package/dist/delete-HBZZL4UA.js.map +0 -1
- package/dist/delete-JOUXMRIX.js +0 -65
- package/dist/delete-JOUXMRIX.js.map +0 -1
- package/dist/demographics-SB7NBYOI.js +0 -139
- package/dist/demographics-SB7NBYOI.js.map +0 -1
- package/dist/discard-YYGIRDII.js +0 -67
- package/dist/discard-YYGIRDII.js.map +0 -1
- package/dist/discover-GSJRZUOC.js +0 -172
- package/dist/domain-3KRAJAUH.js +0 -99
- package/dist/domain-3KRAJAUH.js.map +0 -1
- package/dist/download-QCBKJ6OR.js +0 -170
- package/dist/download-QCBKJ6OR.js.map +0 -1
- package/dist/draft-7CGFFZTH.js +0 -333
- package/dist/draft-7CGFFZTH.js.map +0 -1
- package/dist/draft-BI4NW6AU.js +0 -308
- package/dist/draft-BI4NW6AU.js.map +0 -1
- package/dist/draft-DJIYEMZU.js +0 -103
- package/dist/draft-LPVK6YHI.js +0 -281
- package/dist/draft-LPVK6YHI.js.map +0 -1
- package/dist/draft-QF5JEUTH.js +0 -218
- package/dist/draft-QF5JEUTH.js.map +0 -1
- package/dist/draft-RIR2V6A2.js +0 -238
- package/dist/draft-WYDMLNYA.js +0 -308
- package/dist/draft-ZCL7FVBH.js +0 -100
- package/dist/experiment-I5CRLOVN.js +0 -1397
- package/dist/experiments-ZCEYRP3H.js +0 -234
- package/dist/experiments-ZCEYRP3H.js.map +0 -1
- package/dist/facets-G7ZDPI5Q.js +0 -115
- package/dist/facets-G7ZDPI5Q.js.map +0 -1
- package/dist/feedback-3U3CL2VB.js +0 -109
- package/dist/feedback-3U3CL2VB.js.map +0 -1
- package/dist/feedback-record-4ZHPENIP.js +0 -263
- package/dist/feedback-record-4ZHPENIP.js.map +0 -1
- package/dist/fetch-PNVNNWTP.js +0 -177
- package/dist/fetch-PNVNNWTP.js.map +0 -1
- package/dist/fit-53DGYRFD.js +0 -63
- package/dist/flows-JXLQBP5Q.js +0 -248
- package/dist/flows-JXLQBP5Q.js.map +0 -1
- package/dist/fonts-LFMBUT4R.js +0 -37
- package/dist/forecast-4AG5F7YC.js +0 -169
- package/dist/forecast-VZAXI74O.js +0 -119
- package/dist/forecast-VZAXI74O.js.map +0 -1
- package/dist/funding-5W4LX6DU.js +0 -85
- package/dist/funnel-EACC35UD.js +0 -395
- package/dist/funnel-EACC35UD.js.map +0 -1
- package/dist/ga4-BWVCDVIR.js +0 -55
- package/dist/get-AXBVYGAC.js +0 -57
- package/dist/get-AXBVYGAC.js.map +0 -1
- package/dist/get-D6A27Q4E.js +0 -80
- package/dist/get-D6A27Q4E.js.map +0 -1
- package/dist/google-NAA4BASO.js +0 -3267
- package/dist/google-ads-OIYUNDXQ.js +0 -196
- package/dist/google-ads-OIYUNDXQ.js.map +0 -1
- package/dist/gsc-2MPE4N32.js +0 -30
- package/dist/history-5MRLNTCI.js +0 -67
- package/dist/history-5MRLNTCI.js.map +0 -1
- package/dist/history-IDYNIB6R.js +0 -134
- package/dist/history-IDYNIB6R.js.map +0 -1
- package/dist/history-IOUKN3WD.js +0 -100
- package/dist/history-IOUKN3WD.js.map +0 -1
- package/dist/hubspot-HL6WGC4G.js +0 -780
- package/dist/hubspot-HL6WGC4G.js.map +0 -1
- package/dist/ideas-NK3KQHAK.js +0 -43
- package/dist/images-2XS3JT7E.js +0 -92
- package/dist/ingest-DHXWZZX4.js +0 -24
- package/dist/ingest-FGTJRCWK.js +0 -108
- package/dist/ingest-FGTJRCWK.js.map +0 -1
- package/dist/insights-M3CYB22P.js +0 -437
- package/dist/insights-M3CYB22P.js.map +0 -1
- package/dist/insights-XCT3ONC7.js +0 -130
- package/dist/insights-XCT3ONC7.js.map +0 -1
- package/dist/inspect-53GGYRC4.js +0 -190
- package/dist/inspect-53GGYRC4.js.map +0 -1
- package/dist/instant-experiences-HT3HB4QZ.js +0 -258
- package/dist/instant-experiences-HT3HB4QZ.js.map +0 -1
- package/dist/intent-NSHW7EJT.js +0 -95
- package/dist/job-DRFCQ27M.js +0 -202
- package/dist/job-create-2EC25Y3J.js +0 -109
- package/dist/job-status-UNVZRPIA.js +0 -74
- package/dist/keyword-gap-ITTWKBWZ.js +0 -130
- package/dist/keyword-metrics-LWPE3HHW.js +0 -198
- package/dist/keyword-metrics-LWPE3HHW.js.map +0 -1
- package/dist/keywords-for-site-5K25VJ35.js +0 -129
- package/dist/keywords-for-site-5K25VJ35.js.map +0 -1
- package/dist/landing-QONUUP3C.js +0 -28
- package/dist/languages-MEFQQBJ2.js +0 -40
- package/dist/leads-FSSISJGL.js +0 -113
- package/dist/leads-FSSISJGL.js.map +0 -1
- package/dist/leads-SZOGCQFK.js +0 -538
- package/dist/leads-SZOGCQFK.js.map +0 -1
- package/dist/learn-FWWJWBDN.js +0 -205
- package/dist/learn-FWWJWBDN.js.map +0 -1
- package/dist/line-item-writes-A3UQ44NG.js +0 -209
- package/dist/line-item-writes-A3UQ44NG.js.map +0 -1
- package/dist/line-items-OH426JGT.js +0 -107
- package/dist/link-67E4NVEX.js +0 -65
- package/dist/link-67E4NVEX.js.map +0 -1
- package/dist/linkedin-CT2OSQ2I.js +0 -1314
- package/dist/linkedin-CT2OSQ2I.js.map +0 -1
- package/dist/linkedin-person-OSNLPLJJ.js +0 -137
- package/dist/linkedin-person-OSNLPLJJ.js.map +0 -1
- package/dist/list-J4OUXAKN.js +0 -65
- package/dist/list-J4OUXAKN.js.map +0 -1
- package/dist/list-L2OQK4W3.js +0 -304
- package/dist/list-L2OQK4W3.js.map +0 -1
- package/dist/list-LHMDAA2D.js +0 -152
- package/dist/list-LHMDAA2D.js.map +0 -1
- package/dist/locations-RLWAS6AC.js +0 -40
- package/dist/locations-UKBOT6SB.js +0 -67
- package/dist/locations-UKBOT6SB.js.map +0 -1
- package/dist/log-4EIV54V4.js +0 -93
- package/dist/log-4EIV54V4.js.map +0 -1
- package/dist/lookup-ZJIP2M4X.js +0 -22
- package/dist/make-MFU3CSN7.js +0 -1368
- package/dist/make-MFU3CSN7.js.map +0 -1
- package/dist/map-VWWWMQLK.js +0 -434
- package/dist/map-VWWWMQLK.js.map +0 -1
- package/dist/mcp-EKLO2VD7.js +0 -715
- package/dist/mcp-EKLO2VD7.js.map +0 -1
- package/dist/media-XCTZJIW4.js +0 -89
- package/dist/media-ZWN7E777.js +0 -18
- package/dist/media-sources-7L622UTF.js +0 -35
- package/dist/members-QK5M5NCJ.js +0 -45
- package/dist/members-QK5M5NCJ.js.map +0 -1
- package/dist/meta-EHKXH257.js +0 -122
- package/dist/metrics-K6FDCMK7.js +0 -152
- package/dist/normalize-WI4OGKH5.js +0 -142
- package/dist/normalize-WI4OGKH5.js.map +0 -1
- package/dist/options-FKJ2QXI6.js +0 -123
- package/dist/options-FKJ2QXI6.js.map +0 -1
- package/dist/organization-7A7MPUDG.js +0 -947
- package/dist/organization-7A7MPUDG.js.map +0 -1
- package/dist/output-WTEPRUPE.js +0 -24
- package/dist/page-photos-HWKQOSCU.js +0 -116
- package/dist/page-photos-HWKQOSCU.js.map +0 -1
- package/dist/pages-J6AF5NDU.js +0 -67
- package/dist/performance-K4VB6L6Z.js +0 -25
- package/dist/performance-LHAL53YO.js +0 -5539
- package/dist/performance-LHAL53YO.js.map +0 -1
- package/dist/pixels-Z7ZGXAGB.js +0 -60
- package/dist/pixels-Z7ZGXAGB.js.map +0 -1
- package/dist/pixels-ZZTB6NWF.js +0 -109
- package/dist/plan-TVQSEKYL.js +0 -207
- package/dist/plan-TVQSEKYL.js.map +0 -1
- package/dist/preview-CWRGDFCP.js +0 -216
- package/dist/preview-CWRGDFCP.js.map +0 -1
- package/dist/promoted-tweet-writes-V4ZVJOJU.js +0 -181
- package/dist/promoted-tweet-writes-V4ZVJOJU.js.map +0 -1
- package/dist/promoted-tweets-KPG4IUVD.js +0 -119
- package/dist/properties-RBLJCVSG.js +0 -101
- package/dist/publish-Y465CVUD.js +0 -342
- package/dist/publish-Y465CVUD.js.map +0 -1
- package/dist/query-BJJYUGQZ.js +0 -247
- package/dist/query-KQ675KJZ.js +0 -236
- package/dist/query-QM7MBQD7.js +0 -62
- package/dist/questionnaire-LEZJLMAV.js +0 -93
- package/dist/questionnaire-LEZJLMAV.js.map +0 -1
- package/dist/read-QME7JYVF.js +0 -141
- package/dist/reddit-Z7DOVIGR.js +0 -27
- package/dist/refresh-A6TW2Z2F.js +0 -95
- package/dist/refresh-A6TW2Z2F.js.map +0 -1
- package/dist/release-UFESJ4TM.js +0 -61
- package/dist/release-UFESJ4TM.js.map +0 -1
- package/dist/relevant-pages-VOICMQ7U.js +0 -99
- package/dist/remove-YONNYA4G.js +0 -51
- package/dist/remove-YONNYA4G.js.map +0 -1
- package/dist/reopen-FYJU2IPO.js +0 -64
- package/dist/reopen-FYJU2IPO.js.map +0 -1
- package/dist/rerun-B5SBG6ZE.js +0 -93
- package/dist/rerun-B5SBG6ZE.js.map +0 -1
- package/dist/research-HW4EVOZU.js +0 -72
- package/dist/research-OV53DIBX.js +0 -263
- package/dist/research-OV53DIBX.js.map +0 -1
- package/dist/reset-R4SIQXFH.js +0 -55
- package/dist/reset-R4SIQXFH.js.map +0 -1
- package/dist/reset-X6ODAKYH.js +0 -55
- package/dist/reset-X6ODAKYH.js.map +0 -1
- package/dist/resolve-DNRJCLCR.js +0 -122
- package/dist/resolve-DNRJCLCR.js.map +0 -1
- package/dist/retry-D5MKBHUB.js +0 -63
- package/dist/retry-D5MKBHUB.js.map +0 -1
- package/dist/retry-DVFLE7JY.js +0 -61
- package/dist/retry-DVFLE7JY.js.map +0 -1
- package/dist/revenue-QGI6XWSK.js +0 -89
- package/dist/revenue-QGI6XWSK.js.map +0 -1
- package/dist/rule-writes-S3RN47OG.js +0 -523
- package/dist/rule-writes-S3RN47OG.js.map +0 -1
- package/dist/rules-KTJ2ZZ62.js +0 -217
- package/dist/rules-TR6BAC23.js +0 -97
- package/dist/rules-TR6BAC23.js.map +0 -1
- package/dist/rules-add-T5ZO5RLR.js +0 -463
- package/dist/rules-add-T5ZO5RLR.js.map +0 -1
- package/dist/run-WZ5IXWA4.js +0 -67
- package/dist/run-WZ5IXWA4.js.map +0 -1
- package/dist/run-YRR3KOUU.js +0 -68
- package/dist/scaffold-ad-DNUCGCIH.js +0 -1514
- package/dist/scaffold-ad-DNUCGCIH.js.map +0 -1
- package/dist/scaffold-static-ad-VR65EZAG.js +0 -1013
- package/dist/scaffold-static-ad-VR65EZAG.js.map +0 -1
- package/dist/scaffold-video-JLMKCCWE.js +0 -886
- package/dist/scaffold-video-JLMKCCWE.js.map +0 -1
- package/dist/schedule-VRHCVBZA.js +0 -62
- package/dist/schedule-VRHCVBZA.js.map +0 -1
- package/dist/scheduled-agents-DG7FTCUZ.js +0 -55
- package/dist/schema-WZKDWF5N.js +0 -133
- package/dist/schema-WZKDWF5N.js.map +0 -1
- package/dist/search-MN66QIKJ.js +0 -175
- package/dist/search-MN66QIKJ.js.map +0 -1
- package/dist/select-IPSM2BF2.js +0 -104
- package/dist/select-IPSM2BF2.js.map +0 -1
- package/dist/sends-6FI7WELX.js +0 -348
- package/dist/sends-6FI7WELX.js.map +0 -1
- package/dist/set-prompt-N6BD3DME.js +0 -196
- package/dist/set-prompt-N6BD3DME.js.map +0 -1
- package/dist/setup-links-GTA2AROS.js +0 -142
- package/dist/setup-links-GTA2AROS.js.map +0 -1
- package/dist/shared-ZFULUOPQ.js +0 -32
- package/dist/shopify-S4TG6WJH.js +0 -3956
- package/dist/shopify-S4TG6WJH.js.map +0 -1
- package/dist/site-NY622E3H.js +0 -178
- package/dist/site-NY622E3H.js.map +0 -1
- package/dist/sitemaps-F3HYH5ZP.js +0 -87
- package/dist/sites-JSMF72BY.js +0 -101
- package/dist/sources-4F2XO7Z6.js +0 -455
- package/dist/sources-4F2XO7Z6.js.map +0 -1
- package/dist/sources-562ITR77.js +0 -30
- package/dist/stale-JKM6MXJF.js +0 -74
- package/dist/stale-JKM6MXJF.js.map +0 -1
- package/dist/stats-QP4LFQZJ.js +0 -34
- package/dist/status-AUWMUDA4.js +0 -63
- package/dist/status-AUWMUDA4.js.map +0 -1
- package/dist/studies-ZOEUY6YP.js +0 -250
- package/dist/study-writes-DTGMCNFP.js +0 -468
- package/dist/study-writes-DTGMCNFP.js.map +0 -1
- package/dist/sync-76MCGHX4.js +0 -55
- package/dist/sync-76MCGHX4.js.map +0 -1
- package/dist/sync-PHH65JFS.js +0 -279
- package/dist/sync-definition-NJPT6ABG.js +0 -67
- package/dist/tag-manager-F7PVTDBB.js +0 -43
- package/dist/tags-5KBOJJ5R.js +0 -26
- package/dist/tags-CSMLTHTU.js +0 -21
- package/dist/tags-CSMLTHTU.js.map +0 -1
- package/dist/tags-IFRZYM3G.js +0 -21
- package/dist/tags-IFRZYM3G.js.map +0 -1
- package/dist/tags-S44ADJ75.js +0 -21
- package/dist/tags-S44ADJ75.js.map +0 -1
- package/dist/tags-WR7IY3OT.js +0 -225
- package/dist/tags-WR7IY3OT.js.map +0 -1
- package/dist/targeting-VBQY3HUN.js +0 -760
- package/dist/targeting-VBQY3HUN.js.map +0 -1
- package/dist/targeting-constants-236ES5HE.js +0 -118
- package/dist/targeting-criteria-FJWNK53T.js +0 -113
- package/dist/targets-2EHMMXD4.js +0 -104
- package/dist/targets-2EHMMXD4.js.map +0 -1
- package/dist/terms-O6ODXEOK.js +0 -102
- package/dist/testimonials-WAPFIGFJ.js +0 -32
- package/dist/themes-B4LCQUXB.js +0 -95
- package/dist/top-companies-DJ2XQKMW.js +0 -109
- package/dist/top-companies-DJ2XQKMW.js.map +0 -1
- package/dist/transcript-J3LGOHCM.js +0 -163
- package/dist/transcript-J3LGOHCM.js.map +0 -1
- package/dist/translate-6RXO4C6Z.js +0 -607
- package/dist/translate-6RXO4C6Z.js.map +0 -1
- package/dist/triggers-CYXPNHQB.js +0 -142
- package/dist/triggers-CYXPNHQB.js.map +0 -1
- package/dist/tweets-IUINLOXF.js +0 -123
- package/dist/unlink-5FJI7XZB.js +0 -68
- package/dist/unlink-5FJI7XZB.js.map +0 -1
- package/dist/unstage-54ZE2SZK.js +0 -86
- package/dist/unstage-54ZE2SZK.js.map +0 -1
- package/dist/unstage-MDSSPUKV.js +0 -95
- package/dist/unstage-MDSSPUKV.js.map +0 -1
- package/dist/update-BVBFNFMO.js +0 -99
- package/dist/update-BVBFNFMO.js.map +0 -1
- package/dist/update-GV3T7ZRC.js +0 -190
- package/dist/update-GV3T7ZRC.js.map +0 -1
- package/dist/update-PUQWUGPJ.js +0 -64
- package/dist/update-PUQWUGPJ.js.map +0 -1
- package/dist/update-YQBK6C3L.js +0 -153
- package/dist/update-YQBK6C3L.js.map +0 -1
- package/dist/upload-PXT5JAEV.js +0 -127
- package/dist/upload-PXT5JAEV.js.map +0 -1
- package/dist/url-options-IHL4OU4C.js +0 -130
- package/dist/url-options-IHL4OU4C.js.map +0 -1
- package/dist/url-params-IYUI6SFJ.js +0 -99
- package/dist/url-params-IYUI6SFJ.js.map +0 -1
- package/dist/validate-AD7F7LQ5.js +0 -120
- package/dist/validate-AD7F7LQ5.js.map +0 -1
- package/dist/videos-ZJCTODEB.js +0 -41
- package/dist/viewer-check-GWZNGWCO.js +0 -81
- package/dist/web-76CWAZNW.js +0 -141
- package/dist/web-76CWAZNW.js.map +0 -1
- package/dist/winning-ads-W7GTXTX7.js +0 -86
- package/dist/write-commands-5J47ZNO4.js +0 -206
- package/dist/write-commands-K6M3RTVK.js +0 -1170
- package/dist/write-commands-K6M3RTVK.js.map +0 -1
- package/dist/write-commands-OTWH6BKZ.js +0 -713
- package/dist/write-commands-VPU53DLB.js +0 -1498
- package/dist/write-commands-VPU53DLB.js.map +0 -1
- package/dist/x-V4NNNWRU.js +0 -47
- /package/dist/{account-ZY655BIU.js.map → account-BA3IO3AN.js.map} +0 -0
- /package/dist/{account-assets-O7IA37RE.js.map → account-assets-T3VVNBUG.js.map} +0 -0
- /package/dist/{account-reads-SNOWDHHF.js.map → account-reads-5CXFLJ5Q.js.map} +0 -0
- /package/dist/{accounts-FT2SRKMD.js.map → accounts-4R3MBNJG.js.map} +0 -0
- /package/dist/{accounts-SNB65ZEW.js.map → accounts-5WF7VE7J.js.map} +0 -0
- /package/dist/{accounts-K5XLEO6W.js.map → accounts-VPWCLF6X.js.map} +0 -0
- /package/dist/{actions-4JYHXRFH.js.map → actions-D7OWCP36.js.map} +0 -0
- /package/dist/{active-entities-3BAPHE4P.js.map → active-entities-WDPW7652.js.map} +0 -0
- /package/dist/{activities-LKLPORDI.js.map → activities-WGPHYSFU.js.map} +0 -0
- /package/dist/{ads-KBE5JXCH.js.map → ads-F7AUJWK7.js.map} +0 -0
- /package/dist/{ads-LXWXOQHX.js.map → ads-OV3SMLKA.js.map} +0 -0
- /package/dist/{adsets-YWBJFPAZ.js.map → adsets-XH2ULWPM.js.map} +0 -0
- /package/dist/{asset-writes-72DEVXGO.js.map → asset-writes-4X3AJQ4Q.js.map} +0 -0
- /package/dist/{audiences-QAH42HIM.js.map → audiences-MBBXWEOI.js.map} +0 -0
- /package/dist/{audiences-34IQKOGS.js.map → audiences-YUG5JLL4.js.map} +0 -0
- /package/dist/{audit-7ED6CUTQ.js.map → audit-WFXS5ELM.js.map} +0 -0
- /package/dist/{avatars-N6W6HUPP.js.map → avatars-WZ2JDMHH.js.map} +0 -0
- /package/dist/{brand-ITWQVZD2.js.map → brand-IZTTBZII.js.map} +0 -0
- /package/dist/{businesses-MGP2YCEU.js.map → businesses-24JNY46Z.js.map} +0 -0
- /package/dist/{campaigns-XZOQ2VTK.js.map → campaigns-KXYGSH27.js.map} +0 -0
- /package/dist/{campaigns-5BIDXYSR.js.map → campaigns-U5FQ2VWL.js.map} +0 -0
- /package/dist/{canvas-SL3RMOY5.js.map → canvas-IQ753Q2O.js.map} +0 -0
- /package/dist/{cards-A7GQVC7B.js.map → cards-NSNAFTEB.js.map} +0 -0
- /package/dist/{changes-36C754R4.js.map → changes-RDWMNSTK.js.map} +0 -0
- /package/dist/{chatgpt-3WFOPURY.js.map → chatgpt-27NEJVGF.js.map} +0 -0
- /package/dist/{chunk-KUY26RCF.js.map → chunk-2F4DELSV.js.map} +0 -0
- /package/dist/{chunk-WF25CCLD.js.map → chunk-2GYCWRF3.js.map} +0 -0
- /package/dist/{chunk-HJKYTNAZ.js.map → chunk-2L7F7KR4.js.map} +0 -0
- /package/dist/{chunk-4GAEB6NK.js.map → chunk-44ZRCSR7.js.map} +0 -0
- /package/dist/{chunk-2TOIY2WN.js.map → chunk-46YLDIQG.js.map} +0 -0
- /package/dist/{chunk-DQ54POZN.js.map → chunk-4EDWXZ3I.js.map} +0 -0
- /package/dist/{chunk-SIXU5PDF.js.map → chunk-4FFBGR5L.js.map} +0 -0
- /package/dist/{chunk-JSNMKTFM.js.map → chunk-4UZUUSVL.js.map} +0 -0
- /package/dist/{chunk-Q6JMMBSQ.js.map → chunk-4XHCEYHI.js.map} +0 -0
- /package/dist/{chunk-ALMYGH5U.js.map → chunk-4Z6PVR3M.js.map} +0 -0
- /package/dist/{chunk-K4FLWDEX.js.map → chunk-5Y5FZV2W.js.map} +0 -0
- /package/dist/{chunk-INUU3752.js.map → chunk-6HJXLGDV.js.map} +0 -0
- /package/dist/{chunk-XE6N4SZI.js.map → chunk-6S5CWGDA.js.map} +0 -0
- /package/dist/{chunk-SXMK5AEJ.js.map → chunk-6VYROVWO.js.map} +0 -0
- /package/dist/{chunk-TTLD66NI.js.map → chunk-AQRXXC6E.js.map} +0 -0
- /package/dist/{chunk-W4D7C74B.js.map → chunk-ARBXT73X.js.map} +0 -0
- /package/dist/{chunk-LAC6YHHX.js.map → chunk-BEZHQIEI.js.map} +0 -0
- /package/dist/{chunk-J3UWMBOP.js.map → chunk-BFURWHVR.js.map} +0 -0
- /package/dist/{chunk-RAQHUMKS.js.map → chunk-EZSPVWLQ.js.map} +0 -0
- /package/dist/{chunk-DM3Q6F5F.js.map → chunk-FCHZ5TNG.js.map} +0 -0
- /package/dist/{chunk-MI4HXE7M.js.map → chunk-FLWDFPXE.js.map} +0 -0
- /package/dist/{chunk-PLBITHV6.js.map → chunk-FQMEX3GX.js.map} +0 -0
- /package/dist/{chunk-FKQK22IX.js.map → chunk-GE3VT3CA.js.map} +0 -0
- /package/dist/{chunk-HMIROUFV.js.map → chunk-HCQJYI6X.js.map} +0 -0
- /package/dist/{chunk-FLK6QHOY.js.map → chunk-HGBJQGO5.js.map} +0 -0
- /package/dist/{chunk-GU5MXV2Y.js.map → chunk-HHVWV5BJ.js.map} +0 -0
- /package/dist/{chunk-HGUYC5K6.js.map → chunk-I3WGTSDY.js.map} +0 -0
- /package/dist/{chunk-MGYC2IRC.js.map → chunk-I7AYMJZA.js.map} +0 -0
- /package/dist/{chunk-7NF73SCB.js.map → chunk-IDSDJHRS.js.map} +0 -0
- /package/dist/{chunk-OBJCNGZL.js.map → chunk-ILPHIYAL.js.map} +0 -0
- /package/dist/{chunk-WR3FR3K3.js.map → chunk-IWKD56AY.js.map} +0 -0
- /package/dist/{chunk-Y7XSDJEA.js.map → chunk-JLAQWMVF.js.map} +0 -0
- /package/dist/{chunk-XUJZO7MZ.js.map → chunk-K6NULQN7.js.map} +0 -0
- /package/dist/{chunk-JI77AKT6.js.map → chunk-L2BRAC2J.js.map} +0 -0
- /package/dist/{chunk-Y67LUJBE.js.map → chunk-LGMI4LSY.js.map} +0 -0
- /package/dist/{chunk-3GAR4AZK.js.map → chunk-LNODLR7W.js.map} +0 -0
- /package/dist/{chunk-5XTGG4PV.js.map → chunk-LQ2BRGMX.js.map} +0 -0
- /package/dist/{chunk-B2POVFR2.js.map → chunk-M7QZSEHF.js.map} +0 -0
- /package/dist/{chunk-OJGYYH6K.js.map → chunk-NB2FU6EZ.js.map} +0 -0
- /package/dist/{chunk-PFTYKINE.js.map → chunk-NFII3MTG.js.map} +0 -0
- /package/dist/{chunk-WQPUX3BA.js.map → chunk-OG47L5GG.js.map} +0 -0
- /package/dist/{chunk-4D46PS6J.js.map → chunk-QIOFOD4K.js.map} +0 -0
- /package/dist/{chunk-6JCX3YLM.js.map → chunk-R2SYF5FC.js.map} +0 -0
- /package/dist/{chunk-JNURZHZJ.js.map → chunk-RTH2I55B.js.map} +0 -0
- /package/dist/{chunk-FFFJBNHA.js.map → chunk-S6VFDNSQ.js.map} +0 -0
- /package/dist/{chunk-ZNRGH4NS.js.map → chunk-SG2TDQEE.js.map} +0 -0
- /package/dist/{chunk-CKQTJ2LV.js.map → chunk-T3P6O2VU.js.map} +0 -0
- /package/dist/{chunk-RCJKABOS.js.map → chunk-TU5LQUJM.js.map} +0 -0
- /package/dist/{chunk-TLQOMWLQ.js.map → chunk-TU7DWSTW.js.map} +0 -0
- /package/dist/{chunk-V5NHJU3M.js.map → chunk-TXDE2QJ3.js.map} +0 -0
- /package/dist/{chunk-TVAIOC77.js.map → chunk-TYXZ2SRW.js.map} +0 -0
- /package/dist/{chunk-C6CBBZBO.js.map → chunk-UDIEKCIR.js.map} +0 -0
- /package/dist/{chunk-KBRJSPIM.js.map → chunk-UQHHGT67.js.map} +0 -0
- /package/dist/{chunk-SA22KXWT.js.map → chunk-USCADMM3.js.map} +0 -0
- /package/dist/{chunk-MJ7RNDD4.js.map → chunk-UUGISMNE.js.map} +0 -0
- /package/dist/{chunk-IQHO2ABF.js.map → chunk-VDPOCAQ2.js.map} +0 -0
- /package/dist/{chunk-AQKRSEBQ.js.map → chunk-VEJ3QX6M.js.map} +0 -0
- /package/dist/{chunk-XDNJC62G.js.map → chunk-VFJB7OG6.js.map} +0 -0
- /package/dist/{chunk-TVTSA4EN.js.map → chunk-VPABGAN4.js.map} +0 -0
- /package/dist/{chunk-DL2UJNJ7.js.map → chunk-VRIPVLE7.js.map} +0 -0
- /package/dist/{chunk-D3KLDIPQ.js.map → chunk-WLESMH4J.js.map} +0 -0
- /package/dist/{chunk-OLBLXJNI.js.map → chunk-YILZR3XI.js.map} +0 -0
- /package/dist/{chunk-JDR3HUEL.js.map → chunk-YJFLXOH4.js.map} +0 -0
- /package/dist/{chunk-BL6RTOK3.js.map → chunk-YWHZYR6S.js.map} +0 -0
- /package/dist/{chunk-XGPU2VDU.js.map → chunk-Z35KUMBW.js.map} +0 -0
- /package/dist/{chunk-GACSA5A6.js.map → chunk-Z7I2ZFXS.js.map} +0 -0
- /package/dist/{config-SMVIY6RW.js.map → config-55WGRLY3.js.map} +0 -0
- /package/dist/{connect-HPQ32KGV.js.map → connect-3YY7MF3I.js.map} +0 -0
- /package/dist/{conversion-upload-command-KTYAY7IG.js.map → conversion-upload-command-VM2P57K6.js.map} +0 -0
- /package/dist/{creatives-RNOL4F4E.js.map → creatives-2DR3QHJW.js.map} +0 -0
- /package/dist/{creatives-JPKA2RHU.js.map → creatives-DUR5Z5AN.js.map} +0 -0
- /package/dist/{currency-R4ORE2U3.js.map → currency-X4KEACEP.js.map} +0 -0
- /package/dist/{custom-conversions-5HJBB5XL.js.map → custom-conversions-OIA5Y2GX.js.map} +0 -0
- /package/dist/{customers-OFZTEXST.js.map → customers-663K2OCP.js.map} +0 -0
- /package/dist/{discover-GSJRZUOC.js.map → discover-2W42JB56.js.map} +0 -0
- /package/dist/{draft-RIR2V6A2.js.map → draft-2ZX73IRO.js.map} +0 -0
- /package/dist/{draft-WYDMLNYA.js.map → draft-CKLIIWXZ.js.map} +0 -0
- /package/dist/{draft-ZCL7FVBH.js.map → draft-L5Q6KEER.js.map} +0 -0
- /package/dist/{draft-DJIYEMZU.js.map → draft-MJRMZGMP.js.map} +0 -0
- /package/dist/{experiment-I5CRLOVN.js.map → experiment-3VRHCQN5.js.map} +0 -0
- /package/dist/{fit-53DGYRFD.js.map → fit-BEFCY2B4.js.map} +0 -0
- /package/dist/{fonts-LFMBUT4R.js.map → fonts-C6XN5667.js.map} +0 -0
- /package/dist/{forecast-4AG5F7YC.js.map → forecast-LYN6ZGQC.js.map} +0 -0
- /package/dist/{funding-5W4LX6DU.js.map → funding-TCEPQXRQ.js.map} +0 -0
- /package/dist/{ga4-BWVCDVIR.js.map → ga4-JE3HS36B.js.map} +0 -0
- /package/dist/{google-NAA4BASO.js.map → google-24FDG4C4.js.map} +0 -0
- /package/dist/{gsc-2MPE4N32.js.map → gsc-RMVOYIM3.js.map} +0 -0
- /package/dist/{ideas-NK3KQHAK.js.map → ideas-M66FU45H.js.map} +0 -0
- /package/dist/{images-2XS3JT7E.js.map → images-MM5OPUKV.js.map} +0 -0
- /package/dist/{ingest-DHXWZZX4.js.map → ingest-KMLYCFF4.js.map} +0 -0
- /package/dist/{intent-NSHW7EJT.js.map → intent-YCQCUCV3.js.map} +0 -0
- /package/dist/{job-DRFCQ27M.js.map → job-SM2OQ2LO.js.map} +0 -0
- /package/dist/{job-create-2EC25Y3J.js.map → job-create-ECZHPVKH.js.map} +0 -0
- /package/dist/{job-status-UNVZRPIA.js.map → job-status-QSYDKIIV.js.map} +0 -0
- /package/dist/{keyword-gap-ITTWKBWZ.js.map → keyword-gap-PUSF7EKY.js.map} +0 -0
- /package/dist/{landing-QONUUP3C.js.map → landing-OZU5RRFV.js.map} +0 -0
- /package/dist/{languages-MEFQQBJ2.js.map → languages-Q5SKO4AM.js.map} +0 -0
- /package/dist/{line-items-OH426JGT.js.map → line-items-2V5FY33R.js.map} +0 -0
- /package/dist/{locations-RLWAS6AC.js.map → locations-VQYREHYI.js.map} +0 -0
- /package/dist/{lookup-ZJIP2M4X.js.map → lookup-MELV3RUL.js.map} +0 -0
- /package/dist/{media-XCTZJIW4.js.map → media-BPI2VE6A.js.map} +0 -0
- /package/dist/{media-ZWN7E777.js.map → media-EEWZZU3P.js.map} +0 -0
- /package/dist/{media-sources-7L622UTF.js.map → media-sources-EQI3U4TC.js.map} +0 -0
- /package/dist/{meta-EHKXH257.js.map → meta-SMJUQP37.js.map} +0 -0
- /package/dist/{metrics-K6FDCMK7.js.map → metrics-EMAP7ESR.js.map} +0 -0
- /package/dist/{output-WTEPRUPE.js.map → output-4QBQEM4C.js.map} +0 -0
- /package/dist/{pages-J6AF5NDU.js.map → pages-DTQWQUKP.js.map} +0 -0
- /package/dist/{performance-K4VB6L6Z.js.map → performance-NIF3CESZ.js.map} +0 -0
- /package/dist/{pixels-ZZTB6NWF.js.map → pixels-2BKADWE6.js.map} +0 -0
- /package/dist/{promoted-tweets-KPG4IUVD.js.map → promoted-tweets-653Q5AC6.js.map} +0 -0
- /package/dist/{properties-RBLJCVSG.js.map → properties-VWKO3AAK.js.map} +0 -0
- /package/dist/{query-QM7MBQD7.js.map → query-CXIOL7WI.js.map} +0 -0
- /package/dist/{query-KQ675KJZ.js.map → query-OOP63DJF.js.map} +0 -0
- /package/dist/{query-BJJYUGQZ.js.map → query-RBZFAIDK.js.map} +0 -0
- /package/dist/{read-QME7JYVF.js.map → read-GOULD7YL.js.map} +0 -0
- /package/dist/{reddit-Z7DOVIGR.js.map → reddit-JIHMAKAQ.js.map} +0 -0
- /package/dist/{relevant-pages-VOICMQ7U.js.map → relevant-pages-FS7GBVXK.js.map} +0 -0
- /package/dist/{research-HW4EVOZU.js.map → research-PNBACCCP.js.map} +0 -0
- /package/dist/{rules-KTJ2ZZ62.js.map → rules-HY7S2YTD.js.map} +0 -0
- /package/dist/{run-YRR3KOUU.js.map → run-QCNRR3CA.js.map} +0 -0
- /package/dist/{scheduled-agents-DG7FTCUZ.js.map → scheduled-agents-OXYAVSIE.js.map} +0 -0
- /package/dist/{shared-ZFULUOPQ.js.map → shared-CGEJI2RB.js.map} +0 -0
- /package/dist/{sitemaps-F3HYH5ZP.js.map → sitemaps-5SP7PVQ6.js.map} +0 -0
- /package/dist/{sites-JSMF72BY.js.map → sites-YZDPHBST.js.map} +0 -0
- /package/dist/{sources-562ITR77.js.map → sources-FLUGHSVP.js.map} +0 -0
- /package/dist/{stats-QP4LFQZJ.js.map → stats-EGGNFTKI.js.map} +0 -0
- /package/dist/{studies-ZOEUY6YP.js.map → studies-6VUUOMZD.js.map} +0 -0
- /package/dist/{sync-PHH65JFS.js.map → sync-SCM6JGJP.js.map} +0 -0
- /package/dist/{sync-definition-NJPT6ABG.js.map → sync-definition-OGQ5XTQE.js.map} +0 -0
- /package/dist/{tag-manager-F7PVTDBB.js.map → tag-manager-REKD4WGU.js.map} +0 -0
- /package/dist/{tags-5KBOJJ5R.js.map → tags-CZTRQNXV.js.map} +0 -0
- /package/dist/{targeting-constants-236ES5HE.js.map → targeting-constants-MRQB4N5I.js.map} +0 -0
- /package/dist/{targeting-criteria-FJWNK53T.js.map → targeting-criteria-HSAESZIR.js.map} +0 -0
- /package/dist/{terms-O6ODXEOK.js.map → terms-D2KAFHKJ.js.map} +0 -0
- /package/dist/{testimonials-WAPFIGFJ.js.map → testimonials-G3OCNPBY.js.map} +0 -0
- /package/dist/{themes-B4LCQUXB.js.map → themes-X56KIX3Z.js.map} +0 -0
- /package/dist/{tweets-IUINLOXF.js.map → tweets-JN6ARKF6.js.map} +0 -0
- /package/dist/{videos-ZJCTODEB.js.map → videos-36AXDUGZ.js.map} +0 -0
- /package/dist/{viewer-check-GWZNGWCO.js.map → viewer-check-6HL4OUQY.js.map} +0 -0
- /package/dist/{winning-ads-W7GTXTX7.js.map → winning-ads-GMM5W2O4.js.map} +0 -0
- /package/dist/{write-commands-OTWH6BKZ.js.map → write-commands-B25W4FP5.js.map} +0 -0
- /package/dist/{write-commands-5J47ZNO4.js.map → write-commands-GNNEUVDW.js.map} +0 -0
- /package/dist/{x-V4NNNWRU.js.map → x-JNR5SO6F.js.map} +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import {
|
|
2
|
+
csvOrJson,
|
|
3
|
+
handleLinkedinError,
|
|
4
|
+
resolveAccountIdArg
|
|
5
|
+
} from "./chunk-NFII3MTG.js";
|
|
6
|
+
import {
|
|
7
|
+
writeAdsJson,
|
|
8
|
+
writeAdsOutput
|
|
9
|
+
} from "./chunk-6DPSWLGY.js";
|
|
10
|
+
import {
|
|
11
|
+
NO_CACHE_ARG
|
|
12
|
+
} from "./chunk-AGBBTTKA.js";
|
|
13
|
+
import "./chunk-PC3FJEZH.js";
|
|
14
|
+
import "./chunk-CAZGM2NX.js";
|
|
15
|
+
import "./chunk-NZS3KEQ2.js";
|
|
16
|
+
import "./chunk-GIWHHCD6.js";
|
|
17
|
+
import "./chunk-SOPVIIUW.js";
|
|
18
|
+
import "./chunk-G4FG5EQO.js";
|
|
19
|
+
import "./chunk-NSBNIPIW.js";
|
|
20
|
+
import "./chunk-46YLDIQG.js";
|
|
21
|
+
import {
|
|
22
|
+
apiGet
|
|
23
|
+
} from "./chunk-X7VQFLHI.js";
|
|
24
|
+
import "./chunk-LU4HI4KI.js";
|
|
25
|
+
import "./chunk-LGK7UWBN.js";
|
|
26
|
+
import "./chunk-Q7US4OOA.js";
|
|
27
|
+
import "./chunk-YQSBHWOI.js";
|
|
28
|
+
|
|
29
|
+
// src/commands/ads/linkedin/leads.ts
|
|
30
|
+
import { defineCommand } from "citty";
|
|
31
|
+
var DAY_MS = 864e5;
|
|
32
|
+
function epochMs(value, flag) {
|
|
33
|
+
const text = String(value);
|
|
34
|
+
const ms = /^\d+$/.test(text) ? Number(text) : Date.parse(text);
|
|
35
|
+
if (Number.isNaN(ms)) {
|
|
36
|
+
throw new Error(`${flag} must be YYYY-MM-DD or epoch ms, got ${text}`);
|
|
37
|
+
}
|
|
38
|
+
return ms;
|
|
39
|
+
}
|
|
40
|
+
function leadsParams(args, accountId) {
|
|
41
|
+
const params = { "account-id": accountId };
|
|
42
|
+
if (args["form-id"]) params["form-id"] = String(args["form-id"]);
|
|
43
|
+
if (args["campaign-id"]) params["campaign-id"] = String(args["campaign-id"]);
|
|
44
|
+
const sinceMs = args["since-ms"] ? epochMs(args["since-ms"], "--since-ms") : args["since-days"] ? Date.now() - Number(args["since-days"]) * DAY_MS : void 0;
|
|
45
|
+
if (sinceMs) params["since-ms"] = String(sinceMs);
|
|
46
|
+
if (args.until) params["until-ms"] = String(epochMs(args.until, "--until"));
|
|
47
|
+
if (args["test-leads"]) params["test-leads"] = "true";
|
|
48
|
+
if (args.limit) params.limit = String(args.limit);
|
|
49
|
+
if (args["no-cache"]) params["skip-cache"] = "true";
|
|
50
|
+
return params;
|
|
51
|
+
}
|
|
52
|
+
var leadsCommand = defineCommand({
|
|
53
|
+
meta: {
|
|
54
|
+
name: "leads",
|
|
55
|
+
description: `List Lead Gen Form responses (playbook \xA707).
|
|
56
|
+
|
|
57
|
+
LinkedIn retains LGF responses for 90 days only \u2014 sync to your CRM via this
|
|
58
|
+
endpoint or you'll lose them.
|
|
59
|
+
|
|
60
|
+
Examples:
|
|
61
|
+
baker ads linkedin leads --account-id 503001492
|
|
62
|
+
baker ads linkedin leads --account-id 503001492 --campaign-id 1234
|
|
63
|
+
baker ads linkedin leads --account-id 503001492 --form-id 5678 --since-days 7
|
|
64
|
+
baker ads linkedin leads --account-id 503001492 --output csv
|
|
65
|
+
baker ads linkedin leads --test-leads # only the test leads Campaign Manager's preview submitted
|
|
66
|
+
|
|
67
|
+
Answers come back with their question's label, and a multiple-choice answer as
|
|
68
|
+
the option chosen. Form ids are the ones \`baker ads linkedin lead-forms\` lists.`
|
|
69
|
+
},
|
|
70
|
+
args: {
|
|
71
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
72
|
+
"account-urn": { type: "string", description: "Alias for --account-id" },
|
|
73
|
+
"form-id": { type: "string", description: "Filter by Lead Gen Form ID" },
|
|
74
|
+
"campaign-id": { type: "string", description: "Filter by campaign ID" },
|
|
75
|
+
"since-days": { type: "string", description: "Only responses submitted in the last N days" },
|
|
76
|
+
"since-ms": {
|
|
77
|
+
type: "string",
|
|
78
|
+
description: "Only responses submitted at or after this epoch ms (alternative to --since-days)"
|
|
79
|
+
},
|
|
80
|
+
until: { type: "string", description: "Only responses submitted before this date (YYYY-MM-DD or epoch ms)" },
|
|
81
|
+
"test-leads": { type: "boolean", description: "Only test leads (submitted from a form preview)" },
|
|
82
|
+
limit: { type: "string", description: "Max rows (default: 500)" },
|
|
83
|
+
"no-cache": NO_CACHE_ARG,
|
|
84
|
+
output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
|
|
85
|
+
},
|
|
86
|
+
run: async ({ args }) => {
|
|
87
|
+
const accountId = resolveAccountIdArg(args);
|
|
88
|
+
try {
|
|
89
|
+
const params = leadsParams(args, accountId);
|
|
90
|
+
const data = await apiGet("/api/ads/linkedin/leads", params);
|
|
91
|
+
const fmt = csvOrJson(args);
|
|
92
|
+
if (fmt !== "json") {
|
|
93
|
+
const flat = data.map((r) => ({
|
|
94
|
+
id: r.id,
|
|
95
|
+
formId: r.formId,
|
|
96
|
+
formName: r.formName ?? "",
|
|
97
|
+
campaignUrn: r.campaignUrn,
|
|
98
|
+
campaignName: r.campaignName ?? "",
|
|
99
|
+
testLead: r.testLead ?? false,
|
|
100
|
+
submittedAt: r.submittedAt ? new Date(r.submittedAt).toISOString() : "",
|
|
101
|
+
answers: (r.answers ?? []).map((a) => `${a.question}: ${a.answer}`).join(" | ")
|
|
102
|
+
}));
|
|
103
|
+
writeAdsOutput(flat, fmt);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
writeAdsJson({ ok: true, data });
|
|
107
|
+
} catch (err) {
|
|
108
|
+
handleLinkedinError(err);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
export {
|
|
113
|
+
leadsCommand
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=leads-VOSFVNUK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/linkedin/leads.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiGet } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput } from \"../output.ts\";\nimport { csvOrJson, handleLinkedinError, resolveAccountIdArg } from \"./shared.ts\";\n\ninterface LeadResponseRow {\n id: string;\n formId: string;\n formUrn: string;\n formName?: string;\n campaignUrn?: string;\n campaignName?: string;\n creativeUrn?: string;\n testLead?: boolean;\n submittedAt?: number;\n answers?: Array<{ questionId: string; question: string; answer: string }>;\n consentResponses?: Array<{ consentId: string; consentText?: string; agreed?: boolean }>;\n}\n\nconst DAY_MS = 86_400_000;\n\nfunction epochMs(value: unknown, flag: string): number {\n const text = String(value);\n const ms = /^\\d+$/.test(text) ? Number(text) : Date.parse(text);\n if (Number.isNaN(ms)) {\n throw new Error(`${flag} must be YYYY-MM-DD or epoch ms, got ${text}`);\n }\n return ms;\n}\n\n/** The leads route's query: filters, the submitted-time window, and the test-lead switch. */\nfunction leadsParams(args: Record<string, unknown>, accountId: string): Record<string, string> {\n const params: Record<string, string> = { \"account-id\": accountId };\n if (args[\"form-id\"]) params[\"form-id\"] = String(args[\"form-id\"]);\n if (args[\"campaign-id\"]) params[\"campaign-id\"] = String(args[\"campaign-id\"]);\n const sinceMs = args[\"since-ms\"]\n ? epochMs(args[\"since-ms\"], \"--since-ms\")\n : args[\"since-days\"]\n ? Date.now() - Number(args[\"since-days\"]) * DAY_MS\n : undefined;\n if (sinceMs) params[\"since-ms\"] = String(sinceMs);\n if (args.until) params[\"until-ms\"] = String(epochMs(args.until, \"--until\"));\n if (args[\"test-leads\"]) params[\"test-leads\"] = \"true\";\n if (args.limit) params.limit = String(args.limit);\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n return params;\n}\n\nexport const leadsCommand = defineCommand({\n meta: {\n name: \"leads\",\n description: `List Lead Gen Form responses (playbook §07).\n\nLinkedIn retains LGF responses for 90 days only — sync to your CRM via this\nendpoint or you'll lose them.\n\nExamples:\n baker ads linkedin leads --account-id 503001492\n baker ads linkedin leads --account-id 503001492 --campaign-id 1234\n baker ads linkedin leads --account-id 503001492 --form-id 5678 --since-days 7\n baker ads linkedin leads --account-id 503001492 --output csv\n baker ads linkedin leads --test-leads # only the test leads Campaign Manager's preview submitted\n\nAnswers come back with their question's label, and a multiple-choice answer as\nthe option chosen. Form ids are the ones \\`baker ads linkedin lead-forms\\` lists.`,\n },\n args: {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or urn:li:sponsoredAccount:N\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id\" },\n \"form-id\": { type: \"string\", description: \"Filter by Lead Gen Form ID\" },\n \"campaign-id\": { type: \"string\", description: \"Filter by campaign ID\" },\n \"since-days\": { type: \"string\", description: \"Only responses submitted in the last N days\" },\n \"since-ms\": {\n type: \"string\",\n description: \"Only responses submitted at or after this epoch ms (alternative to --since-days)\",\n },\n until: { type: \"string\", description: \"Only responses submitted before this date (YYYY-MM-DD or epoch ms)\" },\n \"test-leads\": { type: \"boolean\", description: \"Only test leads (submitted from a form preview)\" },\n limit: { type: \"string\", description: \"Max rows (default: 500)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n try {\n const params = leadsParams(args as Record<string, unknown>, accountId);\n const data = await apiGet<LeadResponseRow[]>(\"/api/ads/linkedin/leads\", params);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n // Flatten the answers array for CSV/MD output.\n const flat = data.map((r) => ({\n id: r.id,\n formId: r.formId,\n formName: r.formName ?? \"\",\n campaignUrn: r.campaignUrn,\n campaignName: r.campaignName ?? \"\",\n testLead: r.testLead ?? false,\n submittedAt: r.submittedAt ? new Date(r.submittedAt).toISOString() : \"\",\n answers: (r.answers ?? []).map((a) => `${a.question}: ${a.answer}`).join(\" | \"),\n }));\n writeAdsOutput(flat as unknown as Array<Record<string, unknown>>, fmt);\n return;\n }\n writeAdsJson({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseDays,
|
|
3
|
+
withDefinitions
|
|
4
|
+
} from "./chunk-USCADMM3.js";
|
|
5
|
+
import {
|
|
6
|
+
setDefinitionFields
|
|
7
|
+
} from "./chunk-YNYAT2TZ.js";
|
|
8
|
+
import {
|
|
9
|
+
IDEAS_DIR,
|
|
10
|
+
readIdeas
|
|
11
|
+
} from "./chunk-SWN6OHXG.js";
|
|
12
|
+
import "./chunk-A3IQAONL.js";
|
|
13
|
+
import "./chunk-QPESDKZC.js";
|
|
14
|
+
import "./chunk-E44NXCTL.js";
|
|
15
|
+
import {
|
|
16
|
+
findWorkspaceRoot
|
|
17
|
+
} from "./chunk-EJGAJHLB.js";
|
|
18
|
+
import "./chunk-LRV6M2WB.js";
|
|
19
|
+
import "./chunk-MCJ5I5LR.js";
|
|
20
|
+
import "./chunk-LNNTHEL7.js";
|
|
21
|
+
import "./chunk-FOMFU2RX.js";
|
|
22
|
+
import "./chunk-PSGIHSNC.js";
|
|
23
|
+
import "./chunk-PONLPYD7.js";
|
|
24
|
+
import {
|
|
25
|
+
failApi
|
|
26
|
+
} from "./chunk-UDIEKCIR.js";
|
|
27
|
+
import "./chunk-PC3FJEZH.js";
|
|
28
|
+
import "./chunk-CAZGM2NX.js";
|
|
29
|
+
import "./chunk-NZS3KEQ2.js";
|
|
30
|
+
import "./chunk-GIWHHCD6.js";
|
|
31
|
+
import "./chunk-SOPVIIUW.js";
|
|
32
|
+
import "./chunk-G4FG5EQO.js";
|
|
33
|
+
import "./chunk-NSBNIPIW.js";
|
|
34
|
+
import "./chunk-46YLDIQG.js";
|
|
35
|
+
import {
|
|
36
|
+
apiPost
|
|
37
|
+
} from "./chunk-X7VQFLHI.js";
|
|
38
|
+
import "./chunk-LU4HI4KI.js";
|
|
39
|
+
import "./chunk-LGK7UWBN.js";
|
|
40
|
+
import {
|
|
41
|
+
registerSchema,
|
|
42
|
+
writeJson
|
|
43
|
+
} from "./chunk-Q7US4OOA.js";
|
|
44
|
+
import "./chunk-YQSBHWOI.js";
|
|
45
|
+
|
|
46
|
+
// src/commands/creatives/learn.ts
|
|
47
|
+
import { readFileSync } from "fs";
|
|
48
|
+
import { readFile, writeFile } from "fs/promises";
|
|
49
|
+
import path from "path";
|
|
50
|
+
import { defineCommand } from "citty";
|
|
51
|
+
|
|
52
|
+
// src/commands/creatives/learn-model.ts
|
|
53
|
+
var MIN_IMPRESSIONS = 1e3;
|
|
54
|
+
var SEEN_ENOUGH = 5e3;
|
|
55
|
+
var WINNER_RATIO = 0.8;
|
|
56
|
+
var WINNER_MIN_RESULTS = 3;
|
|
57
|
+
var FAILED_RATIO = 1.5;
|
|
58
|
+
var SILENT_SPEND = 2;
|
|
59
|
+
var SETTLED = /* @__PURE__ */ new Set(["winner", "failed", "inconclusive"]);
|
|
60
|
+
var round = (n) => Math.round(n * 100) / 100;
|
|
61
|
+
function totals(creatives) {
|
|
62
|
+
const spend = creatives.reduce((sum, c) => sum + c.spend, 0);
|
|
63
|
+
const impressions = creatives.reduce((sum, c) => sum + c.impressions, 0);
|
|
64
|
+
const results = creatives.reduce((sum, c) => sum + (c.results ?? 0), 0);
|
|
65
|
+
const clicks = creatives.reduce((sum, c) => sum + (c.ctr ?? 0) * c.impressions, 0);
|
|
66
|
+
return { spend, impressions, results, ctr: impressions > 0 ? round(clicks / impressions) : null };
|
|
67
|
+
}
|
|
68
|
+
function verdict(result, usual) {
|
|
69
|
+
if (result.impressions < MIN_IMPRESSIONS) return "testing";
|
|
70
|
+
if (usual !== null) {
|
|
71
|
+
if (result.results === 0 && result.spend >= SILENT_SPEND * usual) return "failed";
|
|
72
|
+
const ratio = result.vsAccount;
|
|
73
|
+
if (ratio !== null && result.results >= WINNER_MIN_RESULTS && ratio <= WINNER_RATIO) return "winner";
|
|
74
|
+
if (ratio !== null && ratio >= FAILED_RATIO) return "failed";
|
|
75
|
+
}
|
|
76
|
+
return result.impressions >= SEEN_ENOUGH ? "inconclusive" : "testing";
|
|
77
|
+
}
|
|
78
|
+
function ideaResult(own, usual, asOf) {
|
|
79
|
+
const mine = totals(own);
|
|
80
|
+
const costPerResult = mine.results > 0 ? round(mine.spend / mine.results) : null;
|
|
81
|
+
return {
|
|
82
|
+
asOf,
|
|
83
|
+
creatives: own.length,
|
|
84
|
+
...own[0]?.currency ? { currency: own[0].currency } : {},
|
|
85
|
+
spend: round(mine.spend),
|
|
86
|
+
impressions: mine.impressions,
|
|
87
|
+
results: mine.results,
|
|
88
|
+
costPerResult,
|
|
89
|
+
ctr: mine.ctr,
|
|
90
|
+
vsAccount: usual !== null && costPerResult !== null ? round(costPerResult / usual) : null
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function learnFromResults(ideas, creatives, asOf) {
|
|
94
|
+
const ideaOf = (c) => c.definition?.idea ?? null;
|
|
95
|
+
return ideas.flatMap((idea) => {
|
|
96
|
+
if (idea.status === "idea" || idea.status === "retired") return [];
|
|
97
|
+
const own = creatives.filter((c) => ideaOf(c) === idea.id);
|
|
98
|
+
if (own.length === 0) return [];
|
|
99
|
+
const rest = totals(creatives.filter((c) => ideaOf(c) !== idea.id));
|
|
100
|
+
const usual = rest.results > 0 ? rest.spend / rest.results : null;
|
|
101
|
+
const result = ideaResult(own, usual, asOf);
|
|
102
|
+
const to = verdict(result, usual);
|
|
103
|
+
if (to === "testing" && SETTLED.has(idea.status)) return [];
|
|
104
|
+
return [{ idea: idea.id, from: idea.status, to, result }];
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// src/commands/creatives/learn.ts
|
|
109
|
+
var DESCRIPTION = `Write back what each built idea's ads did in the live Meta account: every creative of the idea pooled, judged against the rest of the account's cost per result, and the verdict (winner, failed, inconclusive, testing) and frozen numbers written onto src/creatives/_ideas/<idea>.md. Run it before writing new ideas, and weekly.
|
|
110
|
+
|
|
111
|
+
Start here:
|
|
112
|
+
baker creatives learn # last 30 days, written onto the ideas
|
|
113
|
+
baker creatives learn --days 60
|
|
114
|
+
baker creatives learn --dry-run # show the verdicts, write nothing
|
|
115
|
+
|
|
116
|
+
A winner gets results at 0.8x the usual cost or less (3+ results); failed is 1.5x or more, or spend worth two usual results with none; under 1,000 impressions it is still testing.`;
|
|
117
|
+
var ARGS = {
|
|
118
|
+
days: { type: "string", required: false, description: "Reporting window in days (default 30)" },
|
|
119
|
+
"dry-run": { type: "boolean", required: false, default: false, description: "Show the verdicts; write nothing" }
|
|
120
|
+
};
|
|
121
|
+
registerSchema({ command: "creatives.learn", description: DESCRIPTION, args: ARGS });
|
|
122
|
+
function learnEnvelope(learnings, written, unreadable = []) {
|
|
123
|
+
const winners = learnings.filter((l) => l.to === "winner").map((l) => l.idea);
|
|
124
|
+
const failed = learnings.filter((l) => l.to === "failed").map((l) => l.idea);
|
|
125
|
+
const hints = [];
|
|
126
|
+
if (unreadable.length > 0) {
|
|
127
|
+
hints.push(
|
|
128
|
+
`Could not read ${unreadable.join(", ")}, so their results were not written: fix what \`baker creatives ideas\` names, then run this again.`
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
if (learnings.length === 0) {
|
|
132
|
+
hints.push(
|
|
133
|
+
"No built idea has ads delivering yet: nothing to learn. Ideas count once a published ad shows their creative."
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
if (winners.length > 0) {
|
|
137
|
+
hints.push(
|
|
138
|
+
`Build on ${winners.join(", ")}: keep the message and make it in a new format or for a new persona before any new idea.`
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
if (failed.length > 0) {
|
|
142
|
+
hints.push(
|
|
143
|
+
`${failed.join(", ")} lost: never repeat their message; \`baker creatives ideas\` flags an idea that does.`
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
ok: true,
|
|
148
|
+
data: {
|
|
149
|
+
written,
|
|
150
|
+
ideas: learnings.map((l) => ({
|
|
151
|
+
idea: l.idea,
|
|
152
|
+
status: l.from === l.to ? l.to : `${l.from} \u2192 ${l.to}`,
|
|
153
|
+
...l.result
|
|
154
|
+
}))
|
|
155
|
+
},
|
|
156
|
+
hints
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
async function writeBack(root, learnings) {
|
|
160
|
+
for (const learning of learnings) {
|
|
161
|
+
const file = path.join(root, IDEAS_DIR, `${learning.idea}.md`);
|
|
162
|
+
const raw = await readFile(file, "utf8");
|
|
163
|
+
await writeFile(file, setDefinitionFields(raw, { status: learning.to, result: learning.result }), "utf8");
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function readDefinition(root, slug) {
|
|
167
|
+
try {
|
|
168
|
+
return readFileSync(path.join(root, "src", "creatives", slug, "_definition.md"), "utf8");
|
|
169
|
+
} catch {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function today() {
|
|
174
|
+
return (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
175
|
+
}
|
|
176
|
+
var learnCommand = defineCommand({
|
|
177
|
+
meta: { name: "learn", description: DESCRIPTION },
|
|
178
|
+
args: ARGS,
|
|
179
|
+
async run({ args }) {
|
|
180
|
+
try {
|
|
181
|
+
const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();
|
|
182
|
+
const days = parseDays(args.days);
|
|
183
|
+
const performance = withDefinitions(
|
|
184
|
+
await apiPost("/api/creatives/performance", days ? { days } : {}),
|
|
185
|
+
(slug) => readDefinition(root, slug)
|
|
186
|
+
);
|
|
187
|
+
const { ideas, unreadable } = await readIdeas(root);
|
|
188
|
+
const learnings = learnFromResults(ideas, performance.data.creatives, today());
|
|
189
|
+
const dryRun = args["dry-run"] === true;
|
|
190
|
+
if (!dryRun) await writeBack(root, learnings);
|
|
191
|
+
writeJson(
|
|
192
|
+
learnEnvelope(
|
|
193
|
+
learnings,
|
|
194
|
+
!dryRun && learnings.length > 0,
|
|
195
|
+
unreadable.map((u) => u.id)
|
|
196
|
+
)
|
|
197
|
+
);
|
|
198
|
+
} catch (err) {
|
|
199
|
+
failApi(err);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
export {
|
|
204
|
+
learnCommand,
|
|
205
|
+
learnEnvelope
|
|
206
|
+
};
|
|
207
|
+
//# sourceMappingURL=learn-NBBJRMVZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/creatives/learn.ts","../src/commands/creatives/learn-model.ts"],"sourcesContent":["/**\n * `baker creatives learn`: what the ads each idea became did in the live account, written back\n * onto the idea (its `status` and a frozen `result`), so the next chat builds on winners and\n * never repeats a message that lost.\n */\nimport { readFileSync } from \"node:fs\";\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { CreativesPerformanceResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi } from \"../actions/shared.ts\";\nimport { findWorkspaceRoot } from \"../canvas/normalize-paths.ts\";\nimport { IDEAS_DIR, readIdeas } from \"./ideas-workspace.ts\";\nimport { type IdeaLearning, learnFromResults } from \"./learn-model.ts\";\nimport { setDefinitionFields } from \"./make-model.ts\";\nimport { parseDays, withDefinitions } from \"./performance.ts\";\n\nconst DESCRIPTION = `Write back what each built idea's ads did in the live Meta account: every creative of the idea pooled, judged against the rest of the account's cost per result, and the verdict (winner, failed, inconclusive, testing) and frozen numbers written onto src/creatives/_ideas/<idea>.md. Run it before writing new ideas, and weekly.\n\nStart here:\n baker creatives learn # last 30 days, written onto the ideas\n baker creatives learn --days 60\n baker creatives learn --dry-run # show the verdicts, write nothing\n\nA winner gets results at 0.8x the usual cost or less (3+ results); failed is 1.5x or more, or spend worth two usual results with none; under 1,000 impressions it is still testing.`;\n\nconst ARGS = {\n days: { type: \"string\", required: false, description: \"Reporting window in days (default 30)\" },\n \"dry-run\": { type: \"boolean\", required: false, default: false, description: \"Show the verdicts; write nothing\" },\n} as const;\n\nregisterSchema({ command: \"creatives.learn\", description: DESCRIPTION, args: ARGS });\n\n/** What the agent reads, and what to do with winners and losers. Pure. */\nexport function learnEnvelope(\n learnings: readonly IdeaLearning[],\n written: boolean,\n unreadable: readonly string[] = [],\n) {\n const winners = learnings.filter((l) => l.to === \"winner\").map((l) => l.idea);\n const failed = learnings.filter((l) => l.to === \"failed\").map((l) => l.idea);\n const hints: string[] = [];\n if (unreadable.length > 0) {\n hints.push(\n `Could not read ${unreadable.join(\", \")}, so their results were not written: fix what \\`baker creatives ideas\\` names, then run this again.`,\n );\n }\n if (learnings.length === 0) {\n hints.push(\n \"No built idea has ads delivering yet: nothing to learn. Ideas count once a published ad shows their creative.\",\n );\n }\n if (winners.length > 0) {\n hints.push(\n `Build on ${winners.join(\", \")}: keep the message and make it in a new format or for a new persona before any new idea.`,\n );\n }\n if (failed.length > 0) {\n hints.push(\n `${failed.join(\", \")} lost: never repeat their message; \\`baker creatives ideas\\` flags an idea that does.`,\n );\n }\n return {\n ok: true as const,\n data: {\n written,\n ideas: learnings.map((l) => ({\n idea: l.idea,\n status: l.from === l.to ? l.to : `${l.from} → ${l.to}`,\n ...l.result,\n })),\n },\n hints,\n };\n}\n\nasync function writeBack(root: string, learnings: readonly IdeaLearning[]): Promise<void> {\n for (const learning of learnings) {\n const file = path.join(root, IDEAS_DIR, `${learning.idea}.md`);\n const raw = await readFile(file, \"utf8\");\n await writeFile(file, setDefinitionFields(raw, { status: learning.to, result: learning.result }), \"utf8\");\n }\n}\n\nfunction readDefinition(root: string, slug: string): string | null {\n try {\n return readFileSync(path.join(root, \"src\", \"creatives\", slug, \"_definition.md\"), \"utf8\");\n } catch {\n return null;\n }\n}\n\nfunction today(): string {\n return new Date().toISOString().slice(0, 10);\n}\n\nexport const learnCommand = defineCommand({\n meta: { name: \"learn\", description: DESCRIPTION },\n args: ARGS,\n async run({ args }) {\n try {\n const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();\n const days = parseDays(args.days as string | undefined);\n const performance = withDefinitions(\n await apiPost<CreativesPerformanceResponse>(\"/api/creatives/performance\", days ? { days } : {}),\n (slug) => readDefinition(root, slug),\n );\n const { ideas, unreadable } = await readIdeas(root);\n const learnings = learnFromResults(ideas, performance.data.creatives, today());\n const dryRun = args[\"dry-run\"] === true;\n if (!dryRun) await writeBack(root, learnings);\n writeJson(\n learnEnvelope(\n learnings,\n !dryRun && learnings.length > 0,\n unreadable.map((u) => u.id),\n ),\n );\n } catch (err) {\n failApi(err);\n }\n },\n});\n","/**\n * What the ads an idea became did, written back onto the idea: `baker creatives learn` turns\n * performance into a verdict per idea, so the next chat starts from what won and what lost\n * instead of from zero. Pure.\n */\nimport type { CreativePerformance } from \"@baker/api\";\nimport type { Idea, IdeaStatus } from \"./ideas-model.ts\";\n\n/** Below this many impressions an idea has not been seen enough to call. */\nconst MIN_IMPRESSIONS = 1000;\n/** Seen this much with no clear verdict, an idea is inconclusive rather than still testing. */\nconst SEEN_ENOUGH = 5000;\n/** At or under this share of the account's usual cost per result, with enough results: a winner. */\nconst WINNER_RATIO = 0.8;\nconst WINNER_MIN_RESULTS = 3;\n/** At or over this share of the usual cost per result: failed. */\nconst FAILED_RATIO = 1.5;\n/** Spending this many usual results' worth with none: failed. */\nconst SILENT_SPEND = 2;\n/** Verdicts a thin window never takes back: too little delivery says nothing new about them. */\nconst SETTLED: ReadonlySet<IdeaStatus> = new Set([\"winner\", \"failed\", \"inconclusive\"]);\n\nexport type IdeaResult = {\n asOf: string;\n creatives: number;\n currency?: string;\n spend: number;\n impressions: number;\n results: number;\n costPerResult: number | null;\n ctr: number | null;\n /** Cost per result over the rest of the account's: 0.5 is half the usual cost. */\n vsAccount: number | null;\n};\n\nexport type IdeaLearning = { idea: string; from: IdeaStatus; to: IdeaStatus; result: IdeaResult };\n\nconst round = (n: number) => Math.round(n * 100) / 100;\n\nfunction totals(creatives: readonly CreativePerformance[]) {\n const spend = creatives.reduce((sum, c) => sum + c.spend, 0);\n const impressions = creatives.reduce((sum, c) => sum + c.impressions, 0);\n const results = creatives.reduce((sum, c) => sum + (c.results ?? 0), 0);\n const clicks = creatives.reduce((sum, c) => sum + (c.ctr ?? 0) * c.impressions, 0);\n return { spend, impressions, results, ctr: impressions > 0 ? round(clicks / impressions) : null };\n}\n\nfunction verdict(result: IdeaResult, usual: number | null): IdeaStatus {\n if (result.impressions < MIN_IMPRESSIONS) return \"testing\";\n if (usual !== null) {\n if (result.results === 0 && result.spend >= SILENT_SPEND * usual) return \"failed\";\n const ratio = result.vsAccount;\n if (ratio !== null && result.results >= WINNER_MIN_RESULTS && ratio <= WINNER_RATIO) return \"winner\";\n if (ratio !== null && ratio >= FAILED_RATIO) return \"failed\";\n }\n return result.impressions >= SEEN_ENOUGH ? \"inconclusive\" : \"testing\";\n}\n\n/** One idea's ads pooled into the numbers frozen on it, against the account's usual cost per result. */\nfunction ideaResult(own: readonly CreativePerformance[], usual: number | null, asOf: string): IdeaResult {\n const mine = totals(own);\n const costPerResult = mine.results > 0 ? round(mine.spend / mine.results) : null;\n return {\n asOf,\n creatives: own.length,\n ...(own[0]?.currency ? { currency: own[0].currency } : {}),\n spend: round(mine.spend),\n impressions: mine.impressions,\n results: mine.results,\n costPerResult,\n ctr: mine.ctr,\n vsAccount: usual !== null && costPerResult !== null ? round(costPerResult / usual) : null,\n };\n}\n\n/**\n * Each built idea's ads, pooled and judged against the rest of the account: cheaper results than\n * usual win, far dearer ones (or spend with none) fail. Ideas still to build, retired, with no\n * ad delivering, or already judged and seen too little since, are left alone.\n */\nexport function learnFromResults(\n ideas: readonly Idea[],\n creatives: readonly CreativePerformance[],\n asOf: string,\n): IdeaLearning[] {\n const ideaOf = (c: CreativePerformance) => c.definition?.idea ?? null;\n return ideas.flatMap((idea): IdeaLearning[] => {\n if (idea.status === \"idea\" || idea.status === \"retired\") return [];\n const own = creatives.filter((c) => ideaOf(c) === idea.id);\n if (own.length === 0) return [];\n const rest = totals(creatives.filter((c) => ideaOf(c) !== idea.id));\n const usual = rest.results > 0 ? rest.spend / rest.results : null;\n const result = ideaResult(own, usual, asOf);\n const to = verdict(result, usual);\n if (to === \"testing\" && SETTLED.has(idea.status)) return [];\n return [{ idea: idea.id, from: idea.status, to, result }];\n });\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import {
|
|
2
|
+
compact,
|
|
3
|
+
csvArg,
|
|
4
|
+
microsFromArg,
|
|
5
|
+
requireTarget,
|
|
6
|
+
requireTargets,
|
|
7
|
+
stageAccountId,
|
|
8
|
+
stageXOp,
|
|
9
|
+
stageXOps
|
|
10
|
+
} from "./chunk-EZSPVWLQ.js";
|
|
11
|
+
import "./chunk-FIN4ZXGJ.js";
|
|
12
|
+
import "./chunk-IDSDJHRS.js";
|
|
13
|
+
import "./chunk-6DPSWLGY.js";
|
|
14
|
+
import {
|
|
15
|
+
OBJECTIVES,
|
|
16
|
+
PLACEMENTS,
|
|
17
|
+
PRODUCT_TYPES
|
|
18
|
+
} from "./chunk-PC3FJEZH.js";
|
|
19
|
+
import "./chunk-CAZGM2NX.js";
|
|
20
|
+
import "./chunk-NZS3KEQ2.js";
|
|
21
|
+
import "./chunk-GIWHHCD6.js";
|
|
22
|
+
import "./chunk-SOPVIIUW.js";
|
|
23
|
+
import "./chunk-G4FG5EQO.js";
|
|
24
|
+
import "./chunk-NSBNIPIW.js";
|
|
25
|
+
import "./chunk-46YLDIQG.js";
|
|
26
|
+
import "./chunk-X7VQFLHI.js";
|
|
27
|
+
import "./chunk-LU4HI4KI.js";
|
|
28
|
+
import "./chunk-LGK7UWBN.js";
|
|
29
|
+
import {
|
|
30
|
+
registerSchema
|
|
31
|
+
} from "./chunk-Q7US4OOA.js";
|
|
32
|
+
import "./chunk-YQSBHWOI.js";
|
|
33
|
+
|
|
34
|
+
// src/commands/ads/x/line-item-writes.ts
|
|
35
|
+
import { defineCommand } from "citty";
|
|
36
|
+
registerSchema({
|
|
37
|
+
command: "ads.x.lineItems.create",
|
|
38
|
+
description: `Stage a new X ad group under a campaign. Objective, product type and campaign are fixed at create \u2014 X refuses to change any of them afterwards, so get them right here.
|
|
39
|
+
Objectives: ${OBJECTIVES.join(", ")}.`,
|
|
40
|
+
args: {
|
|
41
|
+
"account-id": { type: "string", description: "X Ads account ID", required: false },
|
|
42
|
+
"campaign-id": {
|
|
43
|
+
type: "string",
|
|
44
|
+
description: "Parent campaign id, or an x_temp_* ref staged in this draft",
|
|
45
|
+
required: true
|
|
46
|
+
},
|
|
47
|
+
name: { type: "string", description: "Ad group name", required: true },
|
|
48
|
+
objective: { type: "string", description: OBJECTIVES.join(" | "), required: true },
|
|
49
|
+
"product-type": { type: "string", description: PRODUCT_TYPES.join(" | "), required: false },
|
|
50
|
+
placements: { type: "string", description: `CSV of ${PLACEMENTS.join(", ")}`, required: false },
|
|
51
|
+
status: { type: "string", description: "ACTIVE | PAUSED | DRAFT (default PAUSED)", required: false },
|
|
52
|
+
"bid-strategy": { type: "string", description: "AUTO | MAX | TARGET", required: false },
|
|
53
|
+
bid: {
|
|
54
|
+
type: "string",
|
|
55
|
+
description: "Bid in account currency \u2014 required for MAX/TARGET, refused for AUTO",
|
|
56
|
+
required: false
|
|
57
|
+
},
|
|
58
|
+
"daily-budget": { type: "string", description: "Daily budget in account currency", required: false },
|
|
59
|
+
"total-budget": { type: "string", description: "Lifetime budget in account currency", required: false },
|
|
60
|
+
"start-time": { type: "string", description: "ISO 8601 start", required: false },
|
|
61
|
+
"end-time": { type: "string", description: "ISO 8601 end", required: false }
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
var lineItemsCreateCommand = defineCommand({
|
|
65
|
+
meta: {
|
|
66
|
+
name: "create",
|
|
67
|
+
description: `Stage a new ad group (applies when the chat is published).
|
|
68
|
+
|
|
69
|
+
Examples:
|
|
70
|
+
baker ads x line-items create --campaign-id oilf0 --name "Spain" --objective WEBSITE_CLICKS
|
|
71
|
+
baker ads x line-items create --campaign-id x_temp_abc --name "Spain" --objective REACH --bid-strategy MAX --bid 1.20`
|
|
72
|
+
},
|
|
73
|
+
args: {
|
|
74
|
+
"account-id": { type: "string", description: "X Ads account ID" },
|
|
75
|
+
"campaign-id": { type: "string", description: "Parent campaign id or x_temp_* ref", required: true },
|
|
76
|
+
name: { type: "string", description: "Ad group name", required: true },
|
|
77
|
+
objective: { type: "string", description: OBJECTIVES.join(" | "), required: true },
|
|
78
|
+
"product-type": { type: "string", description: PRODUCT_TYPES.join(" | ") },
|
|
79
|
+
placements: { type: "string", description: `CSV of ${PLACEMENTS.join(", ")}` },
|
|
80
|
+
status: { type: "string", description: "ACTIVE | PAUSED | DRAFT (default PAUSED)" },
|
|
81
|
+
"bid-strategy": { type: "string", description: "AUTO | MAX | TARGET" },
|
|
82
|
+
bid: { type: "string", description: "Bid in account currency" },
|
|
83
|
+
"daily-budget": { type: "string", description: "Daily budget in account currency" },
|
|
84
|
+
"total-budget": { type: "string", description: "Lifetime budget in account currency" },
|
|
85
|
+
"start-time": { type: "string", description: "ISO 8601 start" },
|
|
86
|
+
"end-time": { type: "string", description: "ISO 8601 end" }
|
|
87
|
+
},
|
|
88
|
+
run: async ({ args }) => {
|
|
89
|
+
const accountId = await stageAccountId(args);
|
|
90
|
+
await stageXOp({
|
|
91
|
+
kind: "lineItem.create",
|
|
92
|
+
accountId,
|
|
93
|
+
payload: compact({
|
|
94
|
+
campaignId: args["campaign-id"],
|
|
95
|
+
name: args.name,
|
|
96
|
+
objective: args.objective,
|
|
97
|
+
productType: args["product-type"],
|
|
98
|
+
placements: csvArg(args.placements),
|
|
99
|
+
entityStatus: args.status,
|
|
100
|
+
bidStrategy: args["bid-strategy"],
|
|
101
|
+
bidAmountLocalMicro: microsFromArg(args.bid, "--bid"),
|
|
102
|
+
dailyBudgetAmountLocalMicro: microsFromArg(args["daily-budget"], "--daily-budget"),
|
|
103
|
+
totalBudgetAmountLocalMicro: microsFromArg(args["total-budget"], "--total-budget"),
|
|
104
|
+
startTime: args["start-time"],
|
|
105
|
+
endTime: args["end-time"]
|
|
106
|
+
})
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
registerSchema({
|
|
111
|
+
command: "ads.x.lineItems.update",
|
|
112
|
+
description: "Stage a change to an existing X ad group. Objective, product type and campaign are absent on purpose \u2014 X treats all three as immutable after create.",
|
|
113
|
+
args: {
|
|
114
|
+
id: { type: "string", description: "Ad group id", required: true },
|
|
115
|
+
"account-id": { type: "string", description: "X Ads account ID", required: false },
|
|
116
|
+
name: { type: "string", description: "New name", required: false },
|
|
117
|
+
status: { type: "string", description: "ACTIVE | PAUSED", required: false },
|
|
118
|
+
placements: { type: "string", description: "CSV of placements", required: false },
|
|
119
|
+
"bid-strategy": { type: "string", description: "AUTO | MAX | TARGET", required: false },
|
|
120
|
+
bid: { type: "string", description: "Bid in account currency", required: false },
|
|
121
|
+
"daily-budget": { type: "string", description: "Daily budget in account currency", required: false },
|
|
122
|
+
"total-budget": { type: "string", description: "Lifetime budget in account currency", required: false },
|
|
123
|
+
"start-time": { type: "string", description: "ISO 8601 start", required: false },
|
|
124
|
+
"end-time": { type: "string", description: "ISO 8601 end", required: false }
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
var lineItemsUpdateCommand = defineCommand({
|
|
128
|
+
meta: {
|
|
129
|
+
name: "update",
|
|
130
|
+
description: `Stage a change to an ad group.
|
|
131
|
+
|
|
132
|
+
Examples:
|
|
133
|
+
baker ads x line-items update wiee9 --bid 1.50
|
|
134
|
+
baker ads x line-items update wiee9 --end-time 2026-12-31T00:00:00Z`
|
|
135
|
+
},
|
|
136
|
+
args: {
|
|
137
|
+
id: { type: "positional", description: "Ad group id", required: true },
|
|
138
|
+
"account-id": { type: "string", description: "X Ads account ID" },
|
|
139
|
+
name: { type: "string", description: "New name" },
|
|
140
|
+
status: { type: "string", description: "ACTIVE | PAUSED" },
|
|
141
|
+
placements: { type: "string", description: "CSV of placements" },
|
|
142
|
+
"bid-strategy": { type: "string", description: "AUTO | MAX | TARGET" },
|
|
143
|
+
bid: { type: "string", description: "Bid in account currency" },
|
|
144
|
+
"daily-budget": { type: "string", description: "Daily budget in account currency" },
|
|
145
|
+
"total-budget": { type: "string", description: "Lifetime budget in account currency" },
|
|
146
|
+
"start-time": { type: "string", description: "ISO 8601 start" },
|
|
147
|
+
"end-time": { type: "string", description: "ISO 8601 end" }
|
|
148
|
+
},
|
|
149
|
+
run: async ({ args }) => {
|
|
150
|
+
const accountId = await stageAccountId(args);
|
|
151
|
+
await stageXOp({
|
|
152
|
+
kind: "lineItem.update",
|
|
153
|
+
accountId,
|
|
154
|
+
target: requireTarget(args, "id"),
|
|
155
|
+
payload: compact({
|
|
156
|
+
name: args.name,
|
|
157
|
+
entityStatus: args.status,
|
|
158
|
+
placements: csvArg(args.placements),
|
|
159
|
+
bidStrategy: args["bid-strategy"],
|
|
160
|
+
bidAmountLocalMicro: microsFromArg(args.bid, "--bid"),
|
|
161
|
+
dailyBudgetAmountLocalMicro: microsFromArg(args["daily-budget"], "--daily-budget"),
|
|
162
|
+
totalBudgetAmountLocalMicro: microsFromArg(args["total-budget"], "--total-budget"),
|
|
163
|
+
startTime: args["start-time"],
|
|
164
|
+
endTime: args["end-time"]
|
|
165
|
+
})
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
function statusCommand(name, status) {
|
|
170
|
+
registerSchema({
|
|
171
|
+
command: `ads.x.lineItems.${name}`,
|
|
172
|
+
description: `Stage ${name === "pause" ? "a pause" : "a resume"} for one or more X ad groups. Pass every id in one call.`,
|
|
173
|
+
args: {
|
|
174
|
+
ids: { type: "string", description: "Ad group ids, comma-separated", required: true },
|
|
175
|
+
"account-id": { type: "string", description: "X Ads account ID", required: false }
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
return defineCommand({
|
|
179
|
+
meta: {
|
|
180
|
+
name,
|
|
181
|
+
description: `Stage ${name === "pause" ? "pausing" : "resuming"} ad groups.
|
|
182
|
+
|
|
183
|
+
Example:
|
|
184
|
+
baker ads x line-items ${name} wiee9,wo2sr`
|
|
185
|
+
},
|
|
186
|
+
args: {
|
|
187
|
+
ids: { type: "positional", description: "Ad group ids, comma-separated", required: true },
|
|
188
|
+
"account-id": { type: "string", description: "X Ads account ID" }
|
|
189
|
+
},
|
|
190
|
+
run: async ({ args }) => {
|
|
191
|
+
const accountId = await stageAccountId(args);
|
|
192
|
+
await stageXOps(
|
|
193
|
+
requireTargets(args, "ids").map((id) => ({
|
|
194
|
+
kind: "lineItem.update",
|
|
195
|
+
accountId,
|
|
196
|
+
target: id,
|
|
197
|
+
payload: { entityStatus: status }
|
|
198
|
+
}))
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
var lineItemsPauseCommand = statusCommand("pause", "PAUSED");
|
|
204
|
+
var lineItemsResumeCommand = statusCommand("resume", "ACTIVE");
|
|
205
|
+
export {
|
|
206
|
+
lineItemsCreateCommand,
|
|
207
|
+
lineItemsPauseCommand,
|
|
208
|
+
lineItemsResumeCommand,
|
|
209
|
+
lineItemsUpdateCommand
|
|
210
|
+
};
|
|
211
|
+
//# sourceMappingURL=line-item-writes-VBBB3TRS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/x/line-item-writes.ts"],"sourcesContent":["import { OBJECTIVES, PLACEMENTS, PRODUCT_TYPES } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport {\n compact,\n csvArg,\n microsFromArg,\n requireTarget,\n requireTargets,\n stageAccountId,\n stageXOp,\n stageXOps,\n} from \"./write-shared.ts\";\n\n/**\n * Staged ad-group (line item) writes. X calls them line items; X Ads Manager\n * and every marketer call them ad groups, so the help does too.\n */\n\nregisterSchema({\n command: \"ads.x.lineItems.create\",\n description: `Stage a new X ad group under a campaign. Objective, product type and campaign are fixed at create — X refuses to change any of them afterwards, so get them right here.\nObjectives: ${OBJECTIVES.join(\", \")}.`,\n args: {\n \"account-id\": { type: \"string\", description: \"X Ads account ID\", required: false },\n \"campaign-id\": {\n type: \"string\",\n description: \"Parent campaign id, or an x_temp_* ref staged in this draft\",\n required: true,\n },\n name: { type: \"string\", description: \"Ad group name\", required: true },\n objective: { type: \"string\", description: OBJECTIVES.join(\" | \"), required: true },\n \"product-type\": { type: \"string\", description: PRODUCT_TYPES.join(\" | \"), required: false },\n placements: { type: \"string\", description: `CSV of ${PLACEMENTS.join(\", \")}`, required: false },\n status: { type: \"string\", description: \"ACTIVE | PAUSED | DRAFT (default PAUSED)\", required: false },\n \"bid-strategy\": { type: \"string\", description: \"AUTO | MAX | TARGET\", required: false },\n bid: {\n type: \"string\",\n description: \"Bid in account currency — required for MAX/TARGET, refused for AUTO\",\n required: false,\n },\n \"daily-budget\": { type: \"string\", description: \"Daily budget in account currency\", required: false },\n \"total-budget\": { type: \"string\", description: \"Lifetime budget in account currency\", required: false },\n \"start-time\": { type: \"string\", description: \"ISO 8601 start\", required: false },\n \"end-time\": { type: \"string\", description: \"ISO 8601 end\", required: false },\n },\n});\n\nexport const lineItemsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new ad group (applies when the chat is published).\n\nExamples:\n baker ads x line-items create --campaign-id oilf0 --name \"Spain\" --objective WEBSITE_CLICKS\n baker ads x line-items create --campaign-id x_temp_abc --name \"Spain\" --objective REACH --bid-strategy MAX --bid 1.20`,\n },\n args: {\n \"account-id\": { type: \"string\", description: \"X Ads account ID\" },\n \"campaign-id\": { type: \"string\", description: \"Parent campaign id or x_temp_* ref\", required: true },\n name: { type: \"string\", description: \"Ad group name\", required: true },\n objective: { type: \"string\", description: OBJECTIVES.join(\" | \"), required: true },\n \"product-type\": { type: \"string\", description: PRODUCT_TYPES.join(\" | \") },\n placements: { type: \"string\", description: `CSV of ${PLACEMENTS.join(\", \")}` },\n status: { type: \"string\", description: \"ACTIVE | PAUSED | DRAFT (default PAUSED)\" },\n \"bid-strategy\": { type: \"string\", description: \"AUTO | MAX | TARGET\" },\n bid: { type: \"string\", description: \"Bid in account currency\" },\n \"daily-budget\": { type: \"string\", description: \"Daily budget in account currency\" },\n \"total-budget\": { type: \"string\", description: \"Lifetime budget in account currency\" },\n \"start-time\": { type: \"string\", description: \"ISO 8601 start\" },\n \"end-time\": { type: \"string\", description: \"ISO 8601 end\" },\n },\n run: async ({ args }) => {\n const accountId = await stageAccountId(args);\n await stageXOp({\n kind: \"lineItem.create\",\n accountId,\n payload: compact({\n campaignId: args[\"campaign-id\"],\n name: args.name,\n objective: args.objective,\n productType: args[\"product-type\"],\n placements: csvArg(args.placements),\n entityStatus: args.status,\n bidStrategy: args[\"bid-strategy\"],\n bidAmountLocalMicro: microsFromArg(args.bid, \"--bid\"),\n dailyBudgetAmountLocalMicro: microsFromArg(args[\"daily-budget\"], \"--daily-budget\"),\n totalBudgetAmountLocalMicro: microsFromArg(args[\"total-budget\"], \"--total-budget\"),\n startTime: args[\"start-time\"],\n endTime: args[\"end-time\"],\n }),\n });\n },\n});\n\nregisterSchema({\n command: \"ads.x.lineItems.update\",\n description:\n \"Stage a change to an existing X ad group. Objective, product type and campaign are absent on purpose — X treats all three as immutable after create.\",\n args: {\n id: { type: \"string\", description: \"Ad group id\", required: true },\n \"account-id\": { type: \"string\", description: \"X Ads account ID\", required: false },\n name: { type: \"string\", description: \"New name\", required: false },\n status: { type: \"string\", description: \"ACTIVE | PAUSED\", required: false },\n placements: { type: \"string\", description: \"CSV of placements\", required: false },\n \"bid-strategy\": { type: \"string\", description: \"AUTO | MAX | TARGET\", required: false },\n bid: { type: \"string\", description: \"Bid in account currency\", required: false },\n \"daily-budget\": { type: \"string\", description: \"Daily budget in account currency\", required: false },\n \"total-budget\": { type: \"string\", description: \"Lifetime budget in account currency\", required: false },\n \"start-time\": { type: \"string\", description: \"ISO 8601 start\", required: false },\n \"end-time\": { type: \"string\", description: \"ISO 8601 end\", required: false },\n },\n});\n\nexport const lineItemsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage a change to an ad group.\n\nExamples:\n baker ads x line-items update wiee9 --bid 1.50\n baker ads x line-items update wiee9 --end-time 2026-12-31T00:00:00Z`,\n },\n args: {\n id: { type: \"positional\", description: \"Ad group id\", required: true },\n \"account-id\": { type: \"string\", description: \"X Ads account ID\" },\n name: { type: \"string\", description: \"New name\" },\n status: { type: \"string\", description: \"ACTIVE | PAUSED\" },\n placements: { type: \"string\", description: \"CSV of placements\" },\n \"bid-strategy\": { type: \"string\", description: \"AUTO | MAX | TARGET\" },\n bid: { type: \"string\", description: \"Bid in account currency\" },\n \"daily-budget\": { type: \"string\", description: \"Daily budget in account currency\" },\n \"total-budget\": { type: \"string\", description: \"Lifetime budget in account currency\" },\n \"start-time\": { type: \"string\", description: \"ISO 8601 start\" },\n \"end-time\": { type: \"string\", description: \"ISO 8601 end\" },\n },\n run: async ({ args }) => {\n const accountId = await stageAccountId(args);\n await stageXOp({\n kind: \"lineItem.update\",\n accountId,\n target: requireTarget(args, \"id\"),\n payload: compact({\n name: args.name,\n entityStatus: args.status,\n placements: csvArg(args.placements),\n bidStrategy: args[\"bid-strategy\"],\n bidAmountLocalMicro: microsFromArg(args.bid, \"--bid\"),\n dailyBudgetAmountLocalMicro: microsFromArg(args[\"daily-budget\"], \"--daily-budget\"),\n totalBudgetAmountLocalMicro: microsFromArg(args[\"total-budget\"], \"--total-budget\"),\n startTime: args[\"start-time\"],\n endTime: args[\"end-time\"],\n }),\n });\n },\n});\n\nfunction statusCommand(name: \"pause\" | \"resume\", status: \"PAUSED\" | \"ACTIVE\") {\n registerSchema({\n command: `ads.x.lineItems.${name}`,\n description: `Stage ${name === \"pause\" ? \"a pause\" : \"a resume\"} for one or more X ad groups. Pass every id in one call.`,\n args: {\n ids: { type: \"string\", description: \"Ad group ids, comma-separated\", required: true },\n \"account-id\": { type: \"string\", description: \"X Ads account ID\", required: false },\n },\n });\n return defineCommand({\n meta: {\n name,\n description: `Stage ${name === \"pause\" ? \"pausing\" : \"resuming\"} ad groups.\n\nExample:\n baker ads x line-items ${name} wiee9,wo2sr`,\n },\n args: {\n ids: { type: \"positional\", description: \"Ad group ids, comma-separated\", required: true },\n \"account-id\": { type: \"string\", description: \"X Ads account ID\" },\n },\n run: async ({ args }) => {\n const accountId = await stageAccountId(args);\n await stageXOps(\n requireTargets(args, \"ids\").map((id) => ({\n kind: \"lineItem.update\",\n accountId,\n target: id,\n payload: { entityStatus: status },\n })),\n );\n },\n });\n}\n\nexport const lineItemsPauseCommand = statusCommand(\"pause\", \"PAUSED\");\nexport const lineItemsResumeCommand = statusCommand(\"resume\", \"ACTIVE\");\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAkB9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,cACD,WAAW,KAAK,IAAI,CAAC;AAAA,EACjC,MAAM;AAAA,IACJ,cAAc,EAAE,MAAM,UAAU,aAAa,oBAAoB,UAAU,MAAM;AAAA,IACjF,eAAe;AAAA,MACb,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM,EAAE,MAAM,UAAU,aAAa,iBAAiB,UAAU,KAAK;AAAA,IACrE,WAAW,EAAE,MAAM,UAAU,aAAa,WAAW,KAAK,KAAK,GAAG,UAAU,KAAK;AAAA,IACjF,gBAAgB,EAAE,MAAM,UAAU,aAAa,cAAc,KAAK,KAAK,GAAG,UAAU,MAAM;AAAA,IAC1F,YAAY,EAAE,MAAM,UAAU,aAAa,UAAU,WAAW,KAAK,IAAI,CAAC,IAAI,UAAU,MAAM;AAAA,IAC9F,QAAQ,EAAE,MAAM,UAAU,aAAa,4CAA4C,UAAU,MAAM;AAAA,IACnG,gBAAgB,EAAE,MAAM,UAAU,aAAa,uBAAuB,UAAU,MAAM;AAAA,IACtF,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,gBAAgB,EAAE,MAAM,UAAU,aAAa,oCAAoC,UAAU,MAAM;AAAA,IACnG,gBAAgB,EAAE,MAAM,UAAU,aAAa,uCAAuC,UAAU,MAAM;AAAA,IACtG,cAAc,EAAE,MAAM,UAAU,aAAa,kBAAkB,UAAU,MAAM;AAAA,IAC/E,YAAY,EAAE,MAAM,UAAU,aAAa,gBAAgB,UAAU,MAAM;AAAA,EAC7E;AACF,CAAC;AAEM,IAAM,yBAAyB,cAAc;AAAA,EAClD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKf;AAAA,EACA,MAAM;AAAA,IACJ,cAAc,EAAE,MAAM,UAAU,aAAa,mBAAmB;AAAA,IAChE,eAAe,EAAE,MAAM,UAAU,aAAa,sCAAsC,UAAU,KAAK;AAAA,IACnG,MAAM,EAAE,MAAM,UAAU,aAAa,iBAAiB,UAAU,KAAK;AAAA,IACrE,WAAW,EAAE,MAAM,UAAU,aAAa,WAAW,KAAK,KAAK,GAAG,UAAU,KAAK;AAAA,IACjF,gBAAgB,EAAE,MAAM,UAAU,aAAa,cAAc,KAAK,KAAK,EAAE;AAAA,IACzE,YAAY,EAAE,MAAM,UAAU,aAAa,UAAU,WAAW,KAAK,IAAI,CAAC,GAAG;AAAA,IAC7E,QAAQ,EAAE,MAAM,UAAU,aAAa,2CAA2C;AAAA,IAClF,gBAAgB,EAAE,MAAM,UAAU,aAAa,sBAAsB;AAAA,IACrE,KAAK,EAAE,MAAM,UAAU,aAAa,0BAA0B;AAAA,IAC9D,gBAAgB,EAAE,MAAM,UAAU,aAAa,mCAAmC;AAAA,IAClF,gBAAgB,EAAE,MAAM,UAAU,aAAa,sCAAsC;AAAA,IACrF,cAAc,EAAE,MAAM,UAAU,aAAa,iBAAiB;AAAA,IAC9D,YAAY,EAAE,MAAM,UAAU,aAAa,eAAe;AAAA,EAC5D;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,YAAY,MAAM,eAAe,IAAI;AAC3C,UAAM,SAAS;AAAA,MACb,MAAM;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,QACf,YAAY,KAAK,aAAa;AAAA,QAC9B,MAAM,KAAK;AAAA,QACX,WAAW,KAAK;AAAA,QAChB,aAAa,KAAK,cAAc;AAAA,QAChC,YAAY,OAAO,KAAK,UAAU;AAAA,QAClC,cAAc,KAAK;AAAA,QACnB,aAAa,KAAK,cAAc;AAAA,QAChC,qBAAqB,cAAc,KAAK,KAAK,OAAO;AAAA,QACpD,6BAA6B,cAAc,KAAK,cAAc,GAAG,gBAAgB;AAAA,QACjF,6BAA6B,cAAc,KAAK,cAAc,GAAG,gBAAgB;AAAA,QACjF,WAAW,KAAK,YAAY;AAAA,QAC5B,SAAS,KAAK,UAAU;AAAA,MAC1B,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAED,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,UAAU,aAAa,eAAe,UAAU,KAAK;AAAA,IACjE,cAAc,EAAE,MAAM,UAAU,aAAa,oBAAoB,UAAU,MAAM;AAAA,IACjF,MAAM,EAAE,MAAM,UAAU,aAAa,YAAY,UAAU,MAAM;AAAA,IACjE,QAAQ,EAAE,MAAM,UAAU,aAAa,mBAAmB,UAAU,MAAM;AAAA,IAC1E,YAAY,EAAE,MAAM,UAAU,aAAa,qBAAqB,UAAU,MAAM;AAAA,IAChF,gBAAgB,EAAE,MAAM,UAAU,aAAa,uBAAuB,UAAU,MAAM;AAAA,IACtF,KAAK,EAAE,MAAM,UAAU,aAAa,2BAA2B,UAAU,MAAM;AAAA,IAC/E,gBAAgB,EAAE,MAAM,UAAU,aAAa,oCAAoC,UAAU,MAAM;AAAA,IACnG,gBAAgB,EAAE,MAAM,UAAU,aAAa,uCAAuC,UAAU,MAAM;AAAA,IACtG,cAAc,EAAE,MAAM,UAAU,aAAa,kBAAkB,UAAU,MAAM;AAAA,IAC/E,YAAY,EAAE,MAAM,UAAU,aAAa,gBAAgB,UAAU,MAAM;AAAA,EAC7E;AACF,CAAC;AAEM,IAAM,yBAAyB,cAAc;AAAA,EAClD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKf;AAAA,EACA,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,cAAc,aAAa,eAAe,UAAU,KAAK;AAAA,IACrE,cAAc,EAAE,MAAM,UAAU,aAAa,mBAAmB;AAAA,IAChE,MAAM,EAAE,MAAM,UAAU,aAAa,WAAW;AAAA,IAChD,QAAQ,EAAE,MAAM,UAAU,aAAa,kBAAkB;AAAA,IACzD,YAAY,EAAE,MAAM,UAAU,aAAa,oBAAoB;AAAA,IAC/D,gBAAgB,EAAE,MAAM,UAAU,aAAa,sBAAsB;AAAA,IACrE,KAAK,EAAE,MAAM,UAAU,aAAa,0BAA0B;AAAA,IAC9D,gBAAgB,EAAE,MAAM,UAAU,aAAa,mCAAmC;AAAA,IAClF,gBAAgB,EAAE,MAAM,UAAU,aAAa,sCAAsC;AAAA,IACrF,cAAc,EAAE,MAAM,UAAU,aAAa,iBAAiB;AAAA,IAC9D,YAAY,EAAE,MAAM,UAAU,aAAa,eAAe;AAAA,EAC5D;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,YAAY,MAAM,eAAe,IAAI;AAC3C,UAAM,SAAS;AAAA,MACb,MAAM;AAAA,MACN;AAAA,MACA,QAAQ,cAAc,MAAM,IAAI;AAAA,MAChC,SAAS,QAAQ;AAAA,QACf,MAAM,KAAK;AAAA,QACX,cAAc,KAAK;AAAA,QACnB,YAAY,OAAO,KAAK,UAAU;AAAA,QAClC,aAAa,KAAK,cAAc;AAAA,QAChC,qBAAqB,cAAc,KAAK,KAAK,OAAO;AAAA,QACpD,6BAA6B,cAAc,KAAK,cAAc,GAAG,gBAAgB;AAAA,QACjF,6BAA6B,cAAc,KAAK,cAAc,GAAG,gBAAgB;AAAA,QACjF,WAAW,KAAK,YAAY;AAAA,QAC5B,SAAS,KAAK,UAAU;AAAA,MAC1B,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAED,SAAS,cAAc,MAA0B,QAA6B;AAC5E,iBAAe;AAAA,IACb,SAAS,mBAAmB,IAAI;AAAA,IAChC,aAAa,SAAS,SAAS,UAAU,YAAY,UAAU;AAAA,IAC/D,MAAM;AAAA,MACJ,KAAK,EAAE,MAAM,UAAU,aAAa,iCAAiC,UAAU,KAAK;AAAA,MACpF,cAAc,EAAE,MAAM,UAAU,aAAa,oBAAoB,UAAU,MAAM;AAAA,IACnF;AAAA,EACF,CAAC;AACD,SAAO,cAAc;AAAA,IACnB,MAAM;AAAA,MACJ;AAAA,MACA,aAAa,SAAS,SAAS,UAAU,YAAY,UAAU;AAAA;AAAA;AAAA,2BAG1C,IAAI;AAAA,IAC3B;AAAA,IACA,MAAM;AAAA,MACJ,KAAK,EAAE,MAAM,cAAc,aAAa,iCAAiC,UAAU,KAAK;AAAA,MACxF,cAAc,EAAE,MAAM,UAAU,aAAa,mBAAmB;AAAA,IAClE;AAAA,IACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,YAAM,YAAY,MAAM,eAAe,IAAI;AAC3C,YAAM;AAAA,QACJ,eAAe,MAAM,KAAK,EAAE,IAAI,CAAC,QAAQ;AAAA,UACvC,MAAM;AAAA,UACN;AAAA,UACA,QAAQ;AAAA,UACR,SAAS,EAAE,cAAc,OAAO;AAAA,QAClC,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,IAAM,wBAAwB,cAAc,SAAS,QAAQ;AAC7D,IAAM,yBAAyB,cAAc,UAAU,QAAQ;","names":[]}
|