@koda-sl/baker-cli 0.465.0 → 0.467.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 +18 -1
- package/dist/account-2VTEV5C3.js +79 -0
- package/dist/account-2VTEV5C3.js.map +1 -0
- package/dist/account-HZC6X2PH.js +49 -0
- package/dist/account-MLX2MQTO.js +80 -0
- package/dist/account-reads-FCETXYI7.js +218 -0
- package/dist/account-writes-UNVXSLMV.js +66 -0
- package/dist/accounts-4P54UY6F.js +115 -0
- package/dist/accounts-6UNBLIUH.js +75 -0
- package/dist/accounts-GVTZN4VE.js +114 -0
- package/dist/accounts-PSNCMJLI.js +611 -0
- package/dist/accounts-PSNCMJLI.js.map +1 -0
- package/dist/accounts-XVQVPFDG.js +77 -0
- package/dist/accounts-XVQVPFDG.js.map +1 -0
- package/dist/actions-MEKXFKDN.js +55 -0
- package/dist/active-entities-UGHMVRWH.js +103 -0
- package/dist/activities-2J7FTZMN.js +74 -0
- package/dist/ad-group-writes-2YEZNT5Q.js +170 -0
- package/dist/ad-groups-YXVIPI7B.js +68 -0
- package/dist/ad-writes-HBNG55VT.js +174 -0
- package/dist/add-2FHPLALV.js +105 -0
- package/dist/add-JEMGWBRH.js +104 -0
- package/dist/add-JEMGWBRH.js.map +1 -0
- package/dist/add-JP76KCCY.js +97 -0
- package/dist/add-OZIORHYQ.js +302 -0
- package/dist/add-OZIORHYQ.js.map +1 -0
- package/dist/add-accounts-M5Y4DQFM.js +91 -0
- package/dist/ads-DB5NDHX5.js +128 -0
- package/dist/ads-NDV3GOIW.js +40 -0
- package/dist/ads-QBXR7IPO.js +77 -0
- package/dist/ads-W2IPUWHQ.js +113 -0
- package/dist/adsets-PY5ZKGBO.js +176 -0
- package/dist/advertisers-7BN7X2IH.js +120 -0
- package/dist/advertisers-7BN7X2IH.js.map +1 -0
- package/dist/advertisers-BVAZ4XUX.js +125 -0
- package/dist/analytics-CQMJG7S4.js +1976 -0
- package/dist/analytics-CQMJG7S4.js.map +1 -0
- package/dist/analytics-S6P7FO7Z.js +433 -0
- package/dist/analytics-S6P7FO7Z.js.map +1 -0
- package/dist/animate-QEHFEQHZ.js +480 -0
- package/dist/assign-NNI5YU4M.js +77 -0
- package/dist/assign-NNI5YU4M.js.map +1 -0
- package/dist/audience-size-BCKF7ETB.js +94 -0
- package/dist/audience-size-BCKF7ETB.js.map +1 -0
- package/dist/audiences-NTT3HZN7.js +85 -0
- package/dist/audiences-QWJ34WIW.js +268 -0
- package/dist/audiences-UUIYQFS6.js +78 -0
- package/dist/audit-3IEVQLR4.js +151 -0
- package/dist/audit-3IEVQLR4.js.map +1 -0
- package/dist/audit-OWXTLQC4.js +88 -0
- package/dist/autocomplete-5PN6N7DQ.js +111 -0
- package/dist/autocomplete-5PN6N7DQ.js.map +1 -0
- package/dist/avatars-3PC7FTU3.js +38 -0
- package/dist/bid-pricing-S5IU2BQW.js +99 -0
- package/dist/bid-pricing-S5IU2BQW.js.map +1 -0
- package/dist/brand-XVXQ7VAU.js +22 -0
- package/dist/brief-SZSPXGG4.js +490 -0
- package/dist/businesses-ZH67AXR6.js +53 -0
- package/dist/campaign-groups-SBUN3CVL.js +95 -0
- package/dist/campaign-groups-SBUN3CVL.js.map +1 -0
- package/dist/campaign-writes-2LMGW7FW.js +165 -0
- package/dist/campaign-writes-2LMGW7FW.js.map +1 -0
- package/dist/campaign-writes-4N3LQJL2.js +170 -0
- package/dist/campaigns-5FH5THMS.js +76 -0
- package/dist/campaigns-66OOGMDW.js +110 -0
- package/dist/campaigns-CYPLOBK3.js +109 -0
- package/dist/campaigns-CYPLOBK3.js.map +1 -0
- package/dist/campaigns-QUQQYMIO.js +107 -0
- package/dist/canvas-3GSDOZTI.js +46 -0
- package/dist/canvas-3GSDOZTI.js.map +1 -0
- package/dist/capabilities-UP52NQJ7.js +144 -0
- package/dist/capabilities-UP52NQJ7.js.map +1 -0
- package/dist/cards-RSMTBND3.js +85 -0
- package/dist/catalog-YDDBFPRO.js +64 -0
- package/dist/catalog-YDDBFPRO.js.map +1 -0
- package/dist/catalogs-3IYC53GK.js +128 -0
- package/dist/changes-U263PWVD.js +135 -0
- package/dist/chatgpt-O64OJE6R.js +47 -0
- package/dist/chats-FP44JQYE.js +262 -0
- package/dist/chats-FP44JQYE.js.map +1 -0
- package/dist/chunk-35ENAFJX.js +46 -0
- package/dist/chunk-3KIH22M7.js +207 -0
- package/dist/chunk-4DM6OAQ6.js +2065 -0
- package/dist/chunk-4DM6OAQ6.js.map +1 -0
- package/dist/chunk-4FCLXJYW.js +1442 -0
- package/dist/chunk-4OSBBGG5.js +304 -0
- package/dist/chunk-57UECM77.js +98 -0
- package/dist/chunk-5Q3XCLMS.js +455 -0
- package/dist/chunk-65BQAJMH.js +136 -0
- package/dist/chunk-6GFJFTG6.js +75 -0
- package/dist/chunk-6GKC2PBR.js +160 -0
- package/dist/chunk-6HPIWZHS.js +76 -0
- package/dist/chunk-73B3RQJC.js +610 -0
- package/dist/chunk-7MQVCSA7.js +310 -0
- package/dist/chunk-7NTION5F.js +26 -0
- package/dist/chunk-A3VUXG5G.js +1079 -0
- package/dist/chunk-A3VUXG5G.js.map +1 -0
- package/dist/chunk-AQ4HEXUH.js +1830 -0
- package/dist/chunk-AUWN3C2K.js +474 -0
- package/dist/chunk-B3SPFCKC.js +494 -0
- package/dist/chunk-CBCGVPHB.js +125 -0
- package/dist/chunk-CECS3DHZ.js +333 -0
- package/dist/chunk-CHFKTRB5.js +665 -0
- package/dist/chunk-D24DJ7DB.js +67 -0
- package/dist/chunk-D5MF337I.js +97 -0
- package/dist/chunk-DL2W4N7J.js +52 -0
- package/dist/chunk-DL2W4N7J.js.map +1 -0
- package/dist/chunk-DLUWHZCE.js +225 -0
- package/dist/chunk-ECBHE5S6.js +51 -0
- package/dist/chunk-EXZ2NIKX.js +111 -0
- package/dist/chunk-F3FSD6BO.js +96 -0
- package/dist/chunk-F5XU546T.js +23 -0
- package/dist/chunk-G3KO2HFZ.js +35 -0
- package/dist/chunk-GIWHHCD6.js +145 -0
- package/dist/chunk-GIWHHCD6.js.map +1 -0
- package/dist/chunk-GKXMIXEV.js +166 -0
- package/dist/chunk-GT4UFORX.js +296 -0
- package/dist/chunk-GWM4DCAK.js +4410 -0
- package/dist/chunk-GZ6YS7TG.js +106 -0
- package/dist/chunk-H7JOVRHO.js +106 -0
- package/dist/chunk-HF5V7TWU.js +592 -0
- package/dist/chunk-HM25R6XJ.js +433 -0
- package/dist/chunk-HWSUW5PX.js +169 -0
- package/dist/chunk-I7R3YSZF.js +346 -0
- package/dist/chunk-IJDF7D4U.js +139 -0
- package/dist/chunk-IK2S7QGF.js +363 -0
- package/dist/chunk-INI7U2SZ.js +188 -0
- package/dist/chunk-INJHF7AF.js +172 -0
- package/dist/chunk-J2QOKD2F.js +76 -0
- package/dist/chunk-J57EXXFU.js +175 -0
- package/dist/chunk-JE5NMVRX.js +274 -0
- package/dist/chunk-JHLGXB6K.js +45 -0
- package/dist/chunk-JSEPE5EP.js +23992 -0
- package/dist/chunk-JSKBCXI5.js +3151 -0
- package/dist/chunk-JSKBCXI5.js.map +1 -0
- package/dist/chunk-KB5HBQEK.js +25 -0
- package/dist/chunk-KB5XJHQX.js +216 -0
- package/dist/chunk-KB5XJHQX.js.map +1 -0
- package/dist/chunk-KCCWCK6L.js +6667 -0
- package/dist/chunk-KTL2D7NT.js +96 -0
- package/dist/chunk-KWTKAYCG.js +1599 -0
- package/dist/chunk-LHNL6JM2.js +309 -0
- package/dist/chunk-MPXDQWYI.js +57 -0
- package/dist/chunk-NAMEFVWL.js +1743 -0
- package/dist/chunk-NAMEFVWL.js.map +1 -0
- package/dist/chunk-NBYP5N4X.js +509 -0
- package/dist/chunk-NOSWSBLW.js +382 -0
- package/dist/chunk-O3LHCQ7Q.js +136 -0
- package/dist/chunk-P5H2BL4J.js +92 -0
- package/dist/chunk-P66JWKAL.js +533 -0
- package/dist/chunk-PA5MYVQY.js +66 -0
- package/dist/chunk-Q676JHJA.js +58 -0
- package/dist/chunk-QDOVBGKZ.js +149 -0
- package/dist/chunk-QN5VAYER.js +622 -0
- package/dist/chunk-QNEX7FEC.js +174 -0
- package/dist/chunk-QTL4NJ5I.js +65 -0
- package/dist/chunk-QXDEZKAR.js +455 -0
- package/dist/chunk-QXDEZKAR.js.map +1 -0
- package/dist/chunk-R3GZRH43.js +98 -0
- package/dist/chunk-R7CQCE3E.js +103 -0
- package/dist/chunk-RFJ3S47F.js +172 -0
- package/dist/chunk-RV67UWHI.js +5187 -0
- package/dist/chunk-RV67UWHI.js.map +1 -0
- package/dist/chunk-TMQ5LHZ3.js +159 -0
- package/dist/chunk-TRLVH7T3.js +846 -0
- package/dist/chunk-UUBFYAVE.js +337 -0
- package/dist/chunk-UXTZ5MBE.js +56 -0
- package/dist/chunk-V43RLLZE.js +55 -0
- package/dist/chunk-V4UFNEHE.js +541 -0
- package/dist/chunk-V5L5QD7R.js +60 -0
- package/dist/chunk-VAYFVC5B.js +297 -0
- package/dist/chunk-VFSLIDXA.js +42 -0
- package/dist/chunk-VHMNSO2B.js +84 -0
- package/dist/chunk-VOH2QWVG.js +275 -0
- package/dist/chunk-WESRVXFS.js +133 -0
- package/dist/chunk-WILN7TD6.js +84 -0
- package/dist/chunk-WXC3I4CT.js +6188 -0
- package/dist/chunk-X4DLIDFW.js +197 -0
- package/dist/chunk-XUMMI5WJ.js +817 -0
- package/dist/chunk-XUMMI5WJ.js.map +1 -0
- package/dist/chunk-YONSWWCF.js +215 -0
- package/dist/chunk-YONSWWCF.js.map +1 -0
- package/dist/chunk-YT74ZEVP.js +206 -0
- package/dist/chunk-Z5KBRTB2.js +191 -0
- package/dist/chunk-ZBKBTTHD.js +74 -0
- package/dist/chunk-ZFIYN7KP.js +19 -0
- package/dist/chunk-ZLU5QDLU.js +486 -0
- package/dist/chunk-ZNNC6B75.js +94 -0
- package/dist/chunk-ZO2YLHRW.js +74 -0
- package/dist/chunk-ZPJE6D7W.js +74 -0
- package/dist/claim-Y5HNMIGT.js +197 -0
- package/dist/claim-Y5HNMIGT.js.map +1 -0
- package/dist/cli.js +40 -37
- package/dist/cli.js.map +1 -1
- package/dist/client-LY2JCQS2.js +19 -0
- package/dist/code-7CBNYUPU.js +76 -0
- package/dist/companies-KXL2F27Q.js +195 -0
- package/dist/companies-KXL2F27Q.js.map +1 -0
- package/dist/complete-Y47RTEZU.js +81 -0
- package/dist/complete-Y47RTEZU.js.map +1 -0
- package/dist/config-7COTFJWK.js +88 -0
- package/dist/connect-VOCZSB3W.js +42 -0
- package/dist/content-OXMONMHJ.js +85 -0
- package/dist/conversation-DJLUJC2V.js +93 -0
- package/dist/conversation-DJLUJC2V.js.map +1 -0
- package/dist/conversion-report-ZRNV7X7D.js +125 -0
- package/dist/conversion-upload-command-IMHHSGYU.js +438 -0
- package/dist/conversion-writes-7N5UDQGH.js +120 -0
- package/dist/conversions-CRRH74GZ.js +135 -0
- package/dist/conversions-CRRH74GZ.js.map +1 -0
- package/dist/conversions-QOXRO26I.js +76 -0
- package/dist/countries-UXAUGSBR.js +82 -0
- package/dist/create-4HHYBOZF.js +59 -0
- package/dist/create-4HHYBOZF.js.map +1 -0
- package/dist/create-FVIVHA37.js +207 -0
- package/dist/create-FVIVHA37.js.map +1 -0
- package/dist/create-XSXCJ2IS.js +235 -0
- package/dist/create-XSXCJ2IS.js.map +1 -0
- package/dist/create-YTCXQUUX.js +130 -0
- package/dist/create-YTCXQUUX.js.map +1 -0
- package/dist/creatives-6DJPLVV7.js +182 -0
- package/dist/creatives-6DJPLVV7.js.map +1 -0
- package/dist/creatives-F26GDJG2.js +51 -0
- package/dist/creatives-ONKKGW5T.js +87 -0
- package/dist/credentials-6W4YNIWY.js +287 -0
- package/dist/credentials-6W4YNIWY.js.map +1 -0
- package/dist/critique-EFZPHFIS.js +213 -0
- package/dist/critique-EFZPHFIS.js.map +1 -0
- package/dist/critique-JNWRNCVW.js +1449 -0
- package/dist/critique-JNWRNCVW.js.map +1 -0
- package/dist/crm-E3BPZUW3.js +224 -0
- package/dist/crm-E3BPZUW3.js.map +1 -0
- package/dist/crm-MAZU2GZR.js +318 -0
- package/dist/crm-MAZU2GZR.js.map +1 -0
- package/dist/crop-3ZV5BFCA.js +113 -0
- package/dist/currency-PGLGLRKU.js +88 -0
- package/dist/custom-conversions-TV23XQHW.js +125 -0
- package/dist/customers-I2EHMEX3.js +56 -0
- package/dist/decide-EGQ3CRHI.js +199 -0
- package/dist/decide-EGQ3CRHI.js.map +1 -0
- package/dist/delete-A5NP6I7U.js +54 -0
- package/dist/delete-A5NP6I7U.js.map +1 -0
- package/dist/delete-MN6GZAZH.js +66 -0
- package/dist/delete-MN6GZAZH.js.map +1 -0
- package/dist/delete-MUPTLWHI.js +71 -0
- package/dist/delete-QMIJ5Z3V.js +63 -0
- package/dist/delete-QMIJ5Z3V.js.map +1 -0
- package/dist/delete-R2SEUSLV.js +69 -0
- package/dist/delete-ZGBBWFAW.js +71 -0
- package/dist/demographics-3DHCGMUR.js +138 -0
- package/dist/demographics-3DHCGMUR.js.map +1 -0
- package/dist/describe-4O3VCV6L.js +97 -0
- package/dist/describe-FCTM53MM.js +97 -0
- package/dist/dimensions-AD4VS5AH.js +101 -0
- package/dist/discard-7QUFDYVK.js +66 -0
- package/dist/discard-7QUFDYVK.js.map +1 -0
- package/dist/discover-6XSPNZYE.js +172 -0
- package/dist/discover-UQXQUPNO.js +93 -0
- package/dist/domain-NRPTYLT2.js +98 -0
- package/dist/domain-NRPTYLT2.js.map +1 -0
- package/dist/download-IE6XLFHM.js +299 -0
- package/dist/draft-24B2O3SG.js +217 -0
- package/dist/draft-24B2O3SG.js.map +1 -0
- package/dist/draft-ENA7S4Y7.js +103 -0
- package/dist/draft-FGPMNIZK.js +306 -0
- package/dist/draft-FGPMNIZK.js.map +1 -0
- package/dist/draft-MGKJ5RYI.js +100 -0
- package/dist/draft-PPRDQDGW.js +307 -0
- package/dist/draft-R5RZ72PS.js +328 -0
- package/dist/draft-R5RZ72PS.js.map +1 -0
- package/dist/draft-S6VPKZYY.js +233 -0
- package/dist/draft-VVDI2OR3.js +281 -0
- package/dist/engine/index.js +12 -13
- package/dist/env-YLOVBOAE.js +43 -0
- package/dist/experiment-PHFP6IBM.js +1397 -0
- package/dist/export-R2IMUCQO.js +168 -0
- package/dist/extract-OQP3TSQG.js +113 -0
- package/dist/facets-HFX6SZT6.js +114 -0
- package/dist/facets-HFX6SZT6.js.map +1 -0
- package/dist/favorites-NS73FDG5.js +178 -0
- package/dist/feed-SQPOB7SP.js +177 -0
- package/dist/feedback-XHSJBBEJ.js +66 -0
- package/dist/feedback-record-Z7Z4AW2L.js +175 -0
- package/dist/feedback-record-Z7Z4AW2L.js.map +1 -0
- package/dist/fetch-PQ3NOPIE.js +139 -0
- package/dist/fetch-TPRDJJGI.js +176 -0
- package/dist/fetch-TPRDJJGI.js.map +1 -0
- package/dist/find-Y22AANDE.js +134 -0
- package/dist/fit-XJPM6573.js +45 -0
- package/dist/flows-NF3IHOVV.js +247 -0
- package/dist/flows-NF3IHOVV.js.map +1 -0
- package/dist/follow-N3DQZV7M.js +94 -0
- package/dist/follow-competitors-BZPCBGIB.js +112 -0
- package/dist/following-KESWTEBR.js +113 -0
- package/dist/fonts-3FX3OYEQ.js +34 -0
- package/dist/forecast-CYSEUIS4.js +168 -0
- package/dist/forecast-MO4PAKTH.js +104 -0
- package/dist/forecast-MO4PAKTH.js.map +1 -0
- package/dist/funding-G6S4UVU5.js +85 -0
- package/dist/funnel-MM4AXAE7.js +394 -0
- package/dist/funnel-MM4AXAE7.js.map +1 -0
- package/dist/ga4-2QHOA4RO.js +55 -0
- package/dist/generate-F4FDRDAW.js +262 -0
- package/dist/get-3P2EQLP3.js +63 -0
- package/dist/get-FJB3X44Z.js +61 -0
- package/dist/get-HV2VIJYO.js +78 -0
- package/dist/get-HV2VIJYO.js.map +1 -0
- package/dist/get-LHL6CGOR.js +56 -0
- package/dist/get-LHL6CGOR.js.map +1 -0
- package/dist/get-MBGO4VJD.js +63 -0
- package/dist/get-NOKSZPIV.js +59 -0
- package/dist/get-WHC4SRYK.js +92 -0
- package/dist/gif-SFYVDLCU.js +94 -0
- package/dist/google-MY45TUC4.js +3190 -0
- package/dist/google-XRAMIES5.js +136 -0
- package/dist/google-ads-DMOYC7OY.js +195 -0
- package/dist/google-ads-DMOYC7OY.js.map +1 -0
- package/dist/group-6RDJTWVN.js +43 -0
- package/dist/group-TZJCKHKS.js +43 -0
- package/dist/gsc-HD6UFRYM.js +30 -0
- package/dist/history-2WBZRPPE.js +67 -0
- package/dist/history-PY5BYL7T.js +133 -0
- package/dist/history-PY5BYL7T.js.map +1 -0
- package/dist/hubspot-WQ6P3TZL.js +779 -0
- package/dist/hubspot-WQ6P3TZL.js.map +1 -0
- package/dist/icon-BMCDFGMN.js +137 -0
- package/dist/ideas-VLHUTFHP.js +32 -0
- package/dist/images-C4TBUPXM.js +90 -0
- package/dist/improve-P6F2HXYQ.js +86 -0
- package/dist/ingest-SXT33KE6.js +23 -0
- package/dist/ingest-V42IQ2FN.js +107 -0
- package/dist/ingest-V42IQ2FN.js.map +1 -0
- package/dist/insights-DI4W3D2Y.js +423 -0
- package/dist/insights-X75LRPS3.js +122 -0
- package/dist/inspect-YO5ER5OK.js +189 -0
- package/dist/inspect-YO5ER5OK.js.map +1 -0
- package/dist/inspiration-MDCCU2CF.js +53 -0
- package/dist/intent-A4SOIFKK.js +95 -0
- package/dist/job-QDLPQFIT.js +202 -0
- package/dist/job-create-6XKD5GEC.js +109 -0
- package/dist/job-status-MH7CGLWC.js +74 -0
- package/dist/keep-42SLV4CR.js +78 -0
- package/dist/keyword-gap-D4P2CC2L.js +130 -0
- package/dist/keyword-metrics-JLTZ4533.js +197 -0
- package/dist/keyword-metrics-JLTZ4533.js.map +1 -0
- package/dist/keywords-for-site-UCUPPHVX.js +128 -0
- package/dist/keywords-for-site-UCUPPHVX.js.map +1 -0
- package/dist/landing-JWD3U2K5.js +28 -0
- package/dist/landings-5IYXHA5Z.js +151 -0
- package/dist/languages-HX4FD3GX.js +40 -0
- package/dist/languages-SRFGW6Z3.js +55 -0
- package/dist/launches-7U4TPNO3.js +108 -0
- package/dist/layerize-U672AXED.js +190 -0
- package/dist/leads-MXUQISOC.js +293 -0
- package/dist/leads-WMKTJWW5.js +90 -0
- package/dist/leads-WMKTJWW5.js.map +1 -0
- package/dist/learn-C4AJ2JDS.js +203 -0
- package/dist/learn-C4AJ2JDS.js.map +1 -0
- package/dist/library-RPFXNER4.js +109 -0
- package/dist/lighthouse-SJ4QNLUS.js +75 -0
- package/dist/line-item-writes-N5XUSGEM.js +208 -0
- package/dist/line-item-writes-N5XUSGEM.js.map +1 -0
- package/dist/line-items-QIBNOEOH.js +103 -0
- package/dist/link-ZC6MH7AP.js +64 -0
- package/dist/link-ZC6MH7AP.js.map +1 -0
- package/dist/linkedin-MIEUUP4J.js +1008 -0
- package/dist/linkedin-MIEUUP4J.js.map +1 -0
- package/dist/list-GQ65MC2N.js +65 -0
- package/dist/list-HT4HZWF4.js +63 -0
- package/dist/list-HT4HZWF4.js.map +1 -0
- package/dist/list-K56J7FZW.js +51 -0
- package/dist/list-LLBBUXTM.js +151 -0
- package/dist/list-LLBBUXTM.js.map +1 -0
- package/dist/list-LYRCC67M.js +303 -0
- package/dist/list-LYRCC67M.js.map +1 -0
- package/dist/list-M4Z3WYPM.js +76 -0
- package/dist/list-SXYVDDMU.js +57 -0
- package/dist/list-XFIOXFB2.js +50 -0
- package/dist/locations-PQWB7EGC.js +40 -0
- package/dist/locations-WNSET6RM.js +67 -0
- package/dist/log-SXXIU7ZP.js +92 -0
- package/dist/log-SXXIU7ZP.js.map +1 -0
- package/dist/logo-4JOWGJ5A.js +18 -0
- package/dist/lookup-QGGSAHOO.js +22 -0
- package/dist/make-6OQBIYWC.js +633 -0
- package/dist/map-YMFE54VT.js +404 -0
- package/dist/map-YMFE54VT.js.map +1 -0
- package/dist/mcp-QAZ4XLMN.js +463 -0
- package/dist/mcp-QAZ4XLMN.js.map +1 -0
- package/dist/media-2SWDJDA6.js +15 -0
- package/dist/media-O5L7GO72.js +89 -0
- package/dist/media-sources-LF6I6AYP.js +32 -0
- package/dist/members-RGK6FRVY.js +44 -0
- package/dist/members-RGK6FRVY.js.map +1 -0
- package/dist/meta-37L6QBOZ.js +69 -0
- package/dist/metrics-WVG3IUMH.js +152 -0
- package/dist/models-5QWYGJ7Y.js +155 -0
- package/dist/normalize-5G6MMOAB.js +141 -0
- package/dist/normalize-5G6MMOAB.js.map +1 -0
- package/dist/normalize-P5Q3F7FU.js +806 -0
- package/dist/options-TYQL4KRW.js +121 -0
- package/dist/options-TYQL4KRW.js.map +1 -0
- package/dist/output-ZL62UZHQ.js +24 -0
- package/dist/page-FZ7IZ5CV.js +105 -0
- package/dist/pages-SS7TZTHV.js +66 -0
- package/dist/performance-2K425XAN.js +24 -0
- package/dist/pinterest-UETS7U7U.js +96 -0
- package/dist/pixels-D73GQFGM.js +60 -0
- package/dist/pixels-LCTMLKGP.js +108 -0
- package/dist/plan-4HLITU3A.js +207 -0
- package/dist/preview-RU54Z4EM.js +169 -0
- package/dist/profile-NQOIBLJL.js +150 -0
- package/dist/promoted-tweet-writes-YIZGFYZO.js +180 -0
- package/dist/promoted-tweet-writes-YIZGFYZO.js.map +1 -0
- package/dist/promoted-tweets-D5NKZ3FS.js +119 -0
- package/dist/properties-ZUDQH3LE.js +101 -0
- package/dist/publish-WDHGUTNP.js +322 -0
- package/dist/publish-WDHGUTNP.js.map +1 -0
- package/dist/query-26T7XATH.js +236 -0
- package/dist/query-IJVVSB54.js +61 -0
- package/dist/query-SHUOHXTO.js +247 -0
- package/dist/questionnaire-7AEVHZDR.js +93 -0
- package/dist/read-UYSQAXRV.js +141 -0
- package/dist/reddit-YBEYPDZP.js +26 -0
- package/dist/refresh-NKBJT47F.js +94 -0
- package/dist/refresh-NKBJT47F.js.map +1 -0
- package/dist/release-4UPLYFTE.js +60 -0
- package/dist/release-4UPLYFTE.js.map +1 -0
- package/dist/relevant-pages-OI7GTPOK.js +99 -0
- package/dist/remove-2KACTXKP.js +48 -0
- package/dist/remove-HEL2YO3Q.js +50 -0
- package/dist/remove-HEL2YO3Q.js.map +1 -0
- package/dist/reopen-3RWFCQU2.js +63 -0
- package/dist/reopen-3RWFCQU2.js.map +1 -0
- package/dist/rerun-LM52CBPS.js +84 -0
- package/dist/research-547KDC54.js +62 -0
- package/dist/research-VW37GQ5K.js +262 -0
- package/dist/research-VW37GQ5K.js.map +1 -0
- package/dist/reset-LHQJDSVK.js +54 -0
- package/dist/reset-LHQJDSVK.js.map +1 -0
- package/dist/reset-OIRUQHMS.js +54 -0
- package/dist/reset-OIRUQHMS.js.map +1 -0
- package/dist/resolve-2N35OI2Y.js +121 -0
- package/dist/resolve-2N35OI2Y.js.map +1 -0
- package/dist/retry-EZRMUB4I.js +62 -0
- package/dist/retry-EZRMUB4I.js.map +1 -0
- package/dist/retry-GXH7SCNK.js +60 -0
- package/dist/retry-GXH7SCNK.js.map +1 -0
- package/dist/retry-failed-NWLH6WHK.js +45 -0
- package/dist/run-DWR24LCU.js +65 -0
- package/dist/run-DWR24LCU.js.map +1 -0
- package/dist/run-PLUL33QX.js +59 -0
- package/dist/scaffold-ad-W4RZXLDX.js +1548 -0
- package/dist/scaffold-static-ad-IPJYRAOT.js +971 -0
- package/dist/scaffold-video-XBII4YLS.js +872 -0
- package/dist/schedule-QZPDYWHK.js +61 -0
- package/dist/schedule-QZPDYWHK.js.map +1 -0
- package/dist/schedule-S547HPUT.js +66 -0
- package/dist/scheduled-agents-DWSVPMZP.js +49 -0
- package/dist/schema-O4JTYZEY.js +132 -0
- package/dist/schema-O4JTYZEY.js.map +1 -0
- package/dist/schema-SQIP75WG.js +63 -0
- package/dist/scrape-TI6S2W7I.js +2241 -0
- package/dist/screenshot-XFAYY4WW.js +102 -0
- package/dist/search-4HIOKYFR.js +26 -0
- package/dist/search-D2IV7KFJ.js +92 -0
- package/dist/search-IZPDHRJ4.js +224 -0
- package/dist/search-KFDL2IGG.js +91 -0
- package/dist/search-L3RYKE3G.js +174 -0
- package/dist/search-L3RYKE3G.js.map +1 -0
- package/dist/search-copy-QZXCAGK4.js +168 -0
- package/dist/seeds-VUNZMHZH.js +101 -0
- package/dist/select-IAHFSSDX.js +94 -0
- package/dist/select-IAHFSSDX.js.map +1 -0
- package/dist/sends-UT4WXVOS.js +309 -0
- package/dist/sequences-5RAGZE7L.js +146 -0
- package/dist/set-prompt-WVQ4AI66.js +185 -0
- package/dist/setup-links-DFGWE4CV.js +141 -0
- package/dist/setup-links-DFGWE4CV.js.map +1 -0
- package/dist/shared-3CGGKICB.js +31 -0
- package/dist/site-4XF273BE.js +177 -0
- package/dist/site-4XF273BE.js.map +1 -0
- package/dist/sitemaps-3WDYQHYR.js +87 -0
- package/dist/sites-G4DQ2Z2X.js +101 -0
- package/dist/skills-PA26HXEP.js +47 -0
- package/dist/sources-M46IYW42.js +421 -0
- package/dist/sources-M46IYW42.js.map +1 -0
- package/dist/sources-PZXOSE4S.js +30 -0
- package/dist/stale-M64FB7J3.js +63 -0
- package/dist/stale-M64FB7J3.js.map +1 -0
- package/dist/stats-6DPPYSP3.js +34 -0
- package/dist/status-C6UZ45WO.js +62 -0
- package/dist/status-C6UZ45WO.js.map +1 -0
- package/dist/sticker-MC2IAIQB.js +94 -0
- package/dist/stock-B7LKMKUK.js +179 -0
- package/dist/studio-EQ2L6OBJ.js +49 -0
- package/dist/sync-CLZDZL5F.js +54 -0
- package/dist/sync-V26UBMAN.js +265 -0
- package/dist/sync-VYOJ7G6S.js +54 -0
- package/dist/sync-VYOJ7G6S.js.map +1 -0
- package/dist/sync-definition-2SGGHSKR.js +52 -0
- package/dist/tag-manager-KIHXVFMF.js +43 -0
- package/dist/tags-6RGJF4GS.js +20 -0
- package/dist/tags-6RGJF4GS.js.map +1 -0
- package/dist/tags-FGCZJZWK.js +20 -0
- package/dist/tags-FGCZJZWK.js.map +1 -0
- package/dist/tags-JN475JPP.js +26 -0
- package/dist/tags-ODT4WI57.js +20 -0
- package/dist/tags-ODT4WI57.js.map +1 -0
- package/dist/tags-SURC65KF.js +224 -0
- package/dist/tags-SURC65KF.js.map +1 -0
- package/dist/targeting-constants-6Y5J2PPZ.js +118 -0
- package/dist/targeting-criteria-NMZD3CK6.js +113 -0
- package/dist/targets-L4M53NRI.js +102 -0
- package/dist/targets-L4M53NRI.js.map +1 -0
- package/dist/templates-5AC4336C.js +178 -0
- package/dist/templates-5AC4336C.js.map +1 -0
- package/dist/testimonials-YN2AB7U7.js +32 -0
- package/dist/themes-BYRMCXYR.js +94 -0
- package/dist/top-companies-X75ZLN4Y.js +108 -0
- package/dist/top-companies-X75ZLN4Y.js.map +1 -0
- package/dist/translate-YPVSDMH6.js +598 -0
- package/dist/translate-YPVSDMH6.js.map +1 -0
- package/dist/triggers-GBKVEQZF.js +141 -0
- package/dist/triggers-GBKVEQZF.js.map +1 -0
- package/dist/tweets-KTM7HX5R.js +123 -0
- package/dist/unfollow-WBBTVEHE.js +46 -0
- package/dist/unlink-ORHXBQKH.js +67 -0
- package/dist/unlink-ORHXBQKH.js.map +1 -0
- package/dist/unstage-2R23KGQG.js +84 -0
- package/dist/unstage-2R23KGQG.js.map +1 -0
- package/dist/unstage-GYBJZWCZ.js +95 -0
- package/dist/update-2VOYUTLV.js +155 -0
- package/dist/update-2VOYUTLV.js.map +1 -0
- package/dist/update-JTFWVXRB.js +142 -0
- package/dist/update-JTFWVXRB.js.map +1 -0
- package/dist/update-VKPYJXNK.js +63 -0
- package/dist/update-VKPYJXNK.js.map +1 -0
- package/dist/update-YTDA3XJ3.js +98 -0
- package/dist/update-YTDA3XJ3.js.map +1 -0
- package/dist/upload-NA62W5RS.js +150 -0
- package/dist/upload-V42RNE7Q.js +126 -0
- package/dist/upload-V42RNE7Q.js.map +1 -0
- package/dist/upscale-RXJUBHXN.js +109 -0
- package/dist/url-options-LZIHCPP4.js +130 -0
- package/dist/url-params-5SRJGPT6.js +98 -0
- package/dist/url-params-5SRJGPT6.js.map +1 -0
- package/dist/use-MHPNS4V4.js +95 -0
- package/dist/validate-IIOV3YJK.js +88 -0
- package/dist/variant-ZFCWILPG.js +338 -0
- package/dist/videos-MIHTMO3G.js +39 -0
- package/dist/view-PYCGDGT2.js +121 -0
- package/dist/viewer-check-65TIGVAJ.js +68 -0
- package/dist/web-2ACSE34L.js +140 -0
- package/dist/web-2ACSE34L.js.map +1 -0
- package/dist/winners-AI4PVSOI.js +113 -0
- package/dist/winning-ads-2ZOUOAYM.js +84 -0
- package/dist/winning-ads-2ZOUOAYM.js.map +1 -0
- package/dist/write-commands-34L5LJIB.js +713 -0
- package/dist/write-commands-5TJ3LQ5F.js +737 -0
- package/dist/write-commands-GLIDTGI3.js +1015 -0
- package/dist/write-commands-GLIDTGI3.js.map +1 -0
- package/dist/write-commands-R3UCCBUI.js +206 -0
- package/dist/x-V7V47E4N.js +47 -0
- package/package.json +1 -1
- package/dist/account-EVSPW2NO.js +0 -78
- package/dist/account-EVSPW2NO.js.map +0 -1
- package/dist/account-NN54QFVE.js +0 -80
- package/dist/account-W3YGN5RU.js +0 -49
- package/dist/account-reads-3UBDY7R4.js +0 -218
- package/dist/account-writes-M35QGN3H.js +0 -66
- package/dist/accounts-7X62JNDG.js +0 -115
- package/dist/accounts-IUV2RDXE.js +0 -75
- package/dist/accounts-MYN4PSB5.js +0 -610
- package/dist/accounts-MYN4PSB5.js.map +0 -1
- package/dist/accounts-NSJGNWOW.js +0 -76
- package/dist/accounts-NSJGNWOW.js.map +0 -1
- package/dist/accounts-RKAIEZ3N.js +0 -114
- package/dist/actions-R64YNGQ6.js +0 -55
- package/dist/active-entities-O2NQ6ME7.js +0 -103
- package/dist/activities-LAPEEDLI.js +0 -74
- package/dist/ad-group-writes-W757O2JA.js +0 -170
- package/dist/ad-groups-VPUTJHQ6.js +0 -68
- package/dist/ad-writes-6O7ZPQB6.js +0 -174
- package/dist/add-73WQXNDK.js +0 -301
- package/dist/add-73WQXNDK.js.map +0 -1
- package/dist/add-B5PDUYPI.js +0 -97
- package/dist/add-K54IJOCB.js +0 -103
- package/dist/add-K54IJOCB.js.map +0 -1
- package/dist/add-ZLVF72VE.js +0 -105
- package/dist/add-accounts-JJCODXBQ.js +0 -91
- package/dist/ads-3HJPFZEV.js +0 -40
- package/dist/ads-63MVBIHB.js +0 -113
- package/dist/ads-JUCDJ5ZC.js +0 -128
- package/dist/ads-KCELHZAZ.js +0 -77
- package/dist/adsets-Z43O26IR.js +0 -176
- package/dist/advertisers-IANKSIDM.js +0 -125
- package/dist/advertisers-ZGFQ3T3W.js +0 -119
- package/dist/advertisers-ZGFQ3T3W.js.map +0 -1
- package/dist/analytics-KRWVFOBE.js +0 -432
- package/dist/analytics-KRWVFOBE.js.map +0 -1
- package/dist/analytics-VVLCX7LM.js +0 -1975
- package/dist/analytics-VVLCX7LM.js.map +0 -1
- package/dist/animate-CUJNLMHT.js +0 -480
- package/dist/assign-X5DTLHIV.js +0 -76
- package/dist/assign-X5DTLHIV.js.map +0 -1
- package/dist/audience-size-PQA3NQZK.js +0 -93
- package/dist/audience-size-PQA3NQZK.js.map +0 -1
- package/dist/audiences-PLTZX3EZ.js +0 -85
- package/dist/audiences-QXQJWDVX.js +0 -78
- package/dist/audiences-YZKSBJKA.js +0 -268
- package/dist/audit-IBY6D6U3.js +0 -150
- package/dist/audit-IBY6D6U3.js.map +0 -1
- package/dist/audit-VBRVGMF2.js +0 -88
- package/dist/autocomplete-YA2DS6YM.js +0 -110
- package/dist/autocomplete-YA2DS6YM.js.map +0 -1
- package/dist/avatars-IXEYEQZD.js +0 -38
- package/dist/bid-pricing-OXIRMCY4.js +0 -98
- package/dist/bid-pricing-OXIRMCY4.js.map +0 -1
- package/dist/brand-EUGPDVYQ.js +0 -22
- package/dist/brief-GGR3JRG3.js +0 -490
- package/dist/businesses-3HJBLPMC.js +0 -53
- package/dist/campaign-groups-EPT7UL24.js +0 -94
- package/dist/campaign-groups-EPT7UL24.js.map +0 -1
- package/dist/campaign-writes-34CK5DDY.js +0 -170
- package/dist/campaign-writes-HJBJUF4F.js +0 -164
- package/dist/campaign-writes-HJBJUF4F.js.map +0 -1
- package/dist/campaigns-2SNG6SBB.js +0 -110
- package/dist/campaigns-CSEWMSLB.js +0 -108
- package/dist/campaigns-CSEWMSLB.js.map +0 -1
- package/dist/campaigns-M652OGDL.js +0 -76
- package/dist/campaigns-W7IOUU6R.js +0 -107
- package/dist/canvas-UGXQ2OUR.js +0 -46
- package/dist/canvas-UGXQ2OUR.js.map +0 -1
- package/dist/capabilities-OGOB267O.js +0 -143
- package/dist/capabilities-OGOB267O.js.map +0 -1
- package/dist/cards-RB4IQP3D.js +0 -85
- package/dist/catalog-6GXTR7XW.js +0 -65
- package/dist/catalog-6GXTR7XW.js.map +0 -1
- package/dist/catalogs-WKOWOYE6.js +0 -128
- package/dist/changes-UU3FWB63.js +0 -135
- package/dist/chatgpt-AGS322BK.js +0 -47
- package/dist/chats-TWFWA5WN.js +0 -261
- package/dist/chats-TWFWA5WN.js.map +0 -1
- package/dist/chunk-22IO6KYA.js +0 -19
- package/dist/chunk-2XJDWQE6.js +0 -6667
- package/dist/chunk-3BNFG5IH.js +0 -60
- package/dist/chunk-3JER367J.js +0 -46
- package/dist/chunk-3QDGEASC.js +0 -67
- package/dist/chunk-3QLACKNX.js +0 -310
- package/dist/chunk-4EGXTLKD.js +0 -23
- package/dist/chunk-4TOE7NXN.js +0 -188
- package/dist/chunk-4XVVTERH.js +0 -149
- package/dist/chunk-5LHDRP5F.js +0 -166
- package/dist/chunk-5PFKCXTT.js +0 -42
- package/dist/chunk-5W3GSAPI.js +0 -169
- package/dist/chunk-5ZYR2ZDH.js +0 -92
- package/dist/chunk-65VDFALQ.js +0 -846
- package/dist/chunk-6ZCYWVKZ.js +0 -486
- package/dist/chunk-7DIIZUZO.js +0 -454
- package/dist/chunk-7DIIZUZO.js.map +0 -1
- package/dist/chunk-7FCNHAAZ.js +0 -592
- package/dist/chunk-7KSJUVNK.js +0 -346
- package/dist/chunk-7LWVWFIV.js +0 -215
- package/dist/chunk-7LWVWFIV.js.map +0 -1
- package/dist/chunk-7V2FDO3O.js +0 -56
- package/dist/chunk-7YRESXIS.js +0 -125
- package/dist/chunk-ANAJIYDY.js +0 -296
- package/dist/chunk-AVMJDODA.js +0 -98
- package/dist/chunk-BXDWSA2Q.js +0 -191
- package/dist/chunk-C26QSQXP.js +0 -57
- package/dist/chunk-DJV7NHSB.js +0 -3153
- package/dist/chunk-DJV7NHSB.js.map +0 -1
- package/dist/chunk-DWUBZGYX.js +0 -541
- package/dist/chunk-DZD3XEBO.js +0 -84
- package/dist/chunk-EXSVOUU4.js +0 -174
- package/dist/chunk-FPUVMFR6.js +0 -1830
- package/dist/chunk-FXNJMN76.js +0 -160
- package/dist/chunk-G54P65K2.js +0 -76
- package/dist/chunk-GEMBH2HB.js +0 -106
- package/dist/chunk-GF5SLKYH.js +0 -55
- package/dist/chunk-GHIV4TYN.js +0 -494
- package/dist/chunk-GWKYXBZV.js +0 -1711
- package/dist/chunk-GWKYXBZV.js.map +0 -1
- package/dist/chunk-HHLEPWHB.js +0 -433
- package/dist/chunk-IKQE6HHT.js +0 -136
- package/dist/chunk-INMTAPMV.js +0 -74
- package/dist/chunk-IPQ533MQ.js +0 -622
- package/dist/chunk-ISC7J3F2.js +0 -31
- package/dist/chunk-ISC7J3F2.js.map +0 -1
- package/dist/chunk-JAEVTZ6J.js +0 -197
- package/dist/chunk-JM6XT33N.js +0 -1079
- package/dist/chunk-JM6XT33N.js.map +0 -1
- package/dist/chunk-JQH5YQOD.js +0 -337
- package/dist/chunk-KREO4YIC.js +0 -76
- package/dist/chunk-KW6VVXDJ.js +0 -23992
- package/dist/chunk-L7OTZTWV.js +0 -35
- package/dist/chunk-LUQM6DFI.js +0 -133
- package/dist/chunk-LW7OGQOG.js +0 -274
- package/dist/chunk-MLBXDAHX.js +0 -455
- package/dist/chunk-MZ7AEXVL.js +0 -74
- package/dist/chunk-NDEACMK4.js +0 -665
- package/dist/chunk-NDVUUGKL.js +0 -304
- package/dist/chunk-NH7FE2DD.js +0 -5189
- package/dist/chunk-NH7FE2DD.js.map +0 -1
- package/dist/chunk-NRWU674J.js +0 -139
- package/dist/chunk-O47IL4FE.js +0 -26
- package/dist/chunk-OEWBWKDE.js +0 -175
- package/dist/chunk-ON4ITQ3U.js +0 -111
- package/dist/chunk-PAE5XKKY.js +0 -97
- package/dist/chunk-PBHQPJZG.js +0 -474
- package/dist/chunk-PGZ4EHAA.js +0 -610
- package/dist/chunk-PJFGOJGF.js +0 -74
- package/dist/chunk-Q4BQ4OQK.js +0 -207
- package/dist/chunk-QI42BRSW.js +0 -333
- package/dist/chunk-QL57CR4R.js +0 -275
- package/dist/chunk-QMJ22KGU.js +0 -363
- package/dist/chunk-QRQ3LNSX.js +0 -297
- package/dist/chunk-QTYQPOGZ.js +0 -25
- package/dist/chunk-RIYI4BBQ.js +0 -94
- package/dist/chunk-RKOFMNU6.js +0 -819
- package/dist/chunk-RKOFMNU6.js.map +0 -1
- package/dist/chunk-S6JDX5NI.js +0 -103
- package/dist/chunk-S7HMUFO3.js +0 -65
- package/dist/chunk-SHVQFDNY.js +0 -2057
- package/dist/chunk-SHVQFDNY.js.map +0 -1
- package/dist/chunk-SPJJVPPV.js +0 -66
- package/dist/chunk-T2MH5SCT.js +0 -214
- package/dist/chunk-T2MH5SCT.js.map +0 -1
- package/dist/chunk-T4RQKMGO.js +0 -45
- package/dist/chunk-TC3SJU2O.js +0 -509
- package/dist/chunk-U3CTJ2SE.js +0 -172
- package/dist/chunk-U7DPRTS4.js +0 -382
- package/dist/chunk-UC4C6JUW.js +0 -1442
- package/dist/chunk-UQ6DXUOQ.js +0 -533
- package/dist/chunk-UU67QDR7.js +0 -58
- package/dist/chunk-UVVY55HY.js +0 -75
- package/dist/chunk-VAX5ITZ5.js +0 -309
- package/dist/chunk-W2PXP333.js +0 -1599
- package/dist/chunk-WHA3DDV6.js +0 -96
- package/dist/chunk-WY6PPZO4.js +0 -172
- package/dist/chunk-X7ZODEXJ.js +0 -36
- package/dist/chunk-X7ZODEXJ.js.map +0 -1
- package/dist/chunk-XD7F3BSP.js +0 -51
- package/dist/chunk-XPFQ3RSQ.js +0 -84
- package/dist/chunk-XX5DXKEI.js +0 -206
- package/dist/chunk-YDO5NMF3.js +0 -96
- package/dist/chunk-YHXACQKB.js +0 -4410
- package/dist/chunk-YOFHPTWU.js +0 -136
- package/dist/chunk-YSSW437J.js +0 -225
- package/dist/chunk-YX74KMNK.js +0 -106
- package/dist/chunk-ZBWUDJUC.js +0 -98
- package/dist/chunk-ZJVHZHYP.js +0 -6188
- package/dist/chunk-ZQKJIWDS.js +0 -159
- package/dist/claim-OEDHDWP2.js +0 -196
- package/dist/claim-OEDHDWP2.js.map +0 -1
- package/dist/client-P7OREXNC.js +0 -19
- package/dist/code-PRV5LVMQ.js +0 -76
- package/dist/companies-EPGH7WDU.js +0 -194
- package/dist/companies-EPGH7WDU.js.map +0 -1
- package/dist/complete-OB6F2GDY.js +0 -80
- package/dist/complete-OB6F2GDY.js.map +0 -1
- package/dist/config-Y644DINP.js +0 -88
- package/dist/connect-DGTD2N25.js +0 -41
- package/dist/content-TALOFHDP.js +0 -85
- package/dist/conversation-TKNFW3UK.js +0 -92
- package/dist/conversation-TKNFW3UK.js.map +0 -1
- package/dist/conversion-report-QZU2PAQN.js +0 -125
- package/dist/conversion-upload-command-A5X42QDR.js +0 -438
- package/dist/conversion-writes-NSAEZNCR.js +0 -120
- package/dist/conversions-OOWE5O3I.js +0 -134
- package/dist/conversions-OOWE5O3I.js.map +0 -1
- package/dist/conversions-QVNRC7CU.js +0 -76
- package/dist/countries-2I6VNSVR.js +0 -82
- package/dist/create-6BWXUH4T.js +0 -206
- package/dist/create-6BWXUH4T.js.map +0 -1
- package/dist/create-7PBP2D5I.js +0 -234
- package/dist/create-7PBP2D5I.js.map +0 -1
- package/dist/create-JAZ7UYPQ.js +0 -58
- package/dist/create-JAZ7UYPQ.js.map +0 -1
- package/dist/create-KFVDKOPX.js +0 -129
- package/dist/create-KFVDKOPX.js.map +0 -1
- package/dist/creatives-CYKVB3ZK.js +0 -181
- package/dist/creatives-CYKVB3ZK.js.map +0 -1
- package/dist/creatives-JBHNQEH4.js +0 -51
- package/dist/creatives-KNQHWJFJ.js +0 -87
- package/dist/credentials-JD7367HY.js +0 -286
- package/dist/credentials-JD7367HY.js.map +0 -1
- package/dist/critique-234EJDWZ.js +0 -1448
- package/dist/critique-234EJDWZ.js.map +0 -1
- package/dist/critique-JPUJSS3Z.js +0 -212
- package/dist/critique-JPUJSS3Z.js.map +0 -1
- package/dist/crm-AFK6H2PB.js +0 -223
- package/dist/crm-AFK6H2PB.js.map +0 -1
- package/dist/crm-SHU2VNHK.js +0 -317
- package/dist/crm-SHU2VNHK.js.map +0 -1
- package/dist/crop-4ANU2DAZ.js +0 -113
- package/dist/currency-Q7QTY444.js +0 -88
- package/dist/custom-conversions-PAH42DOH.js +0 -125
- package/dist/customers-AWIDLQKG.js +0 -55
- package/dist/delete-DEZGXUCQ.js +0 -69
- package/dist/delete-GDYLLHYS.js +0 -53
- package/dist/delete-GDYLLHYS.js.map +0 -1
- package/dist/delete-OMHFV5PL.js +0 -71
- package/dist/delete-PKWPIXF6.js +0 -62
- package/dist/delete-PKWPIXF6.js.map +0 -1
- package/dist/delete-XABKZH7Z.js +0 -71
- package/dist/delete-Y27LLJRB.js +0 -65
- package/dist/delete-Y27LLJRB.js.map +0 -1
- package/dist/demographics-6UIWUTUD.js +0 -137
- package/dist/demographics-6UIWUTUD.js.map +0 -1
- package/dist/describe-EKDSVBFK.js +0 -97
- package/dist/describe-LK3XJEXX.js +0 -97
- package/dist/dimensions-NKLUJ4I7.js +0 -101
- package/dist/discard-ZOIHZ6LZ.js +0 -65
- package/dist/discard-ZOIHZ6LZ.js.map +0 -1
- package/dist/discover-NZ4L2FAB.js +0 -93
- package/dist/discover-S24Q43VD.js +0 -172
- package/dist/domain-FSFPQHVD.js +0 -97
- package/dist/domain-FSFPQHVD.js.map +0 -1
- package/dist/download-27QM2APL.js +0 -299
- package/dist/draft-3H5DWKCM.js +0 -233
- package/dist/draft-6KLOODXX.js +0 -216
- package/dist/draft-6KLOODXX.js.map +0 -1
- package/dist/draft-JZ26MIHK.js +0 -307
- package/dist/draft-KI2HEV22.js +0 -281
- package/dist/draft-LINEUQZE.js +0 -100
- package/dist/draft-QBYS4BEE.js +0 -327
- package/dist/draft-QBYS4BEE.js.map +0 -1
- package/dist/draft-UYZXKTVR.js +0 -103
- package/dist/draft-ZS5YYGLD.js +0 -305
- package/dist/draft-ZS5YYGLD.js.map +0 -1
- package/dist/env-5OVWQ4KR.js +0 -43
- package/dist/experiment-ZY6GKKFO.js +0 -1397
- package/dist/export-EM7PJUWD.js +0 -168
- package/dist/extract-QFCDAP24.js +0 -113
- package/dist/facets-ZDSC4YPY.js +0 -113
- package/dist/facets-ZDSC4YPY.js.map +0 -1
- package/dist/favorites-A5EKOJRD.js +0 -178
- package/dist/feed-WPL7WCH7.js +0 -177
- package/dist/feedback-FOZ6M7LL.js +0 -66
- package/dist/feedback-record-4QSC2MV2.js +0 -174
- package/dist/feedback-record-4QSC2MV2.js.map +0 -1
- package/dist/fetch-2S2HM7NY.js +0 -175
- package/dist/fetch-2S2HM7NY.js.map +0 -1
- package/dist/fetch-CLHL6XXD.js +0 -139
- package/dist/find-WP6D3QCM.js +0 -134
- package/dist/fit-QOQ2KMBY.js +0 -45
- package/dist/flows-EF3WRATZ.js +0 -246
- package/dist/flows-EF3WRATZ.js.map +0 -1
- package/dist/follow-LA35GI4S.js +0 -94
- package/dist/follow-competitors-N6IUS5NO.js +0 -112
- package/dist/following-XCHW4KIF.js +0 -113
- package/dist/fonts-SKUCXIJM.js +0 -33
- package/dist/forecast-6KWNTFIO.js +0 -168
- package/dist/forecast-XAAUSN5P.js +0 -103
- package/dist/forecast-XAAUSN5P.js.map +0 -1
- package/dist/funding-M2UCPM6X.js +0 -85
- package/dist/funnel-DJGSPOR3.js +0 -393
- package/dist/funnel-DJGSPOR3.js.map +0 -1
- package/dist/ga4-QYCDH25I.js +0 -55
- package/dist/generate-OITIKU7P.js +0 -262
- package/dist/get-2FYPCEQK.js +0 -63
- package/dist/get-DKTWEZUI.js +0 -55
- package/dist/get-DKTWEZUI.js.map +0 -1
- package/dist/get-FNVMXQP3.js +0 -59
- package/dist/get-HS2ACWTQ.js +0 -92
- package/dist/get-SQESAJ4Z.js +0 -61
- package/dist/get-WVNYQQRG.js +0 -77
- package/dist/get-WVNYQQRG.js.map +0 -1
- package/dist/get-YDIJZRT3.js +0 -63
- package/dist/gif-S5EOHDRF.js +0 -94
- package/dist/google-C6U5YMTM.js +0 -136
- package/dist/google-KPER3UKQ.js +0 -3190
- package/dist/google-ads-EYEHCGFP.js +0 -194
- package/dist/google-ads-EYEHCGFP.js.map +0 -1
- package/dist/group-22AAKFSB.js +0 -43
- package/dist/group-V5VAZVOY.js +0 -43
- package/dist/gsc-AC23WZU4.js +0 -30
- package/dist/history-54PMYEOE.js +0 -132
- package/dist/history-54PMYEOE.js.map +0 -1
- package/dist/history-CJCMB2KQ.js +0 -67
- package/dist/hubspot-V3Q7TWB5.js +0 -778
- package/dist/hubspot-V3Q7TWB5.js.map +0 -1
- package/dist/icon-U4RUUEP5.js +0 -137
- package/dist/ideas-J6AJYFTI.js +0 -31
- package/dist/images-BFL4OXSL.js +0 -90
- package/dist/improve-A5UIOZOB.js +0 -86
- package/dist/ingest-JWLERIDM.js +0 -106
- package/dist/ingest-JWLERIDM.js.map +0 -1
- package/dist/ingest-RAWSXS4T.js +0 -22
- package/dist/insights-4DMLJZEE.js +0 -122
- package/dist/insights-GKGZJMAB.js +0 -423
- package/dist/inspect-MZTZ2K4G.js +0 -188
- package/dist/inspect-MZTZ2K4G.js.map +0 -1
- package/dist/inspiration-XCBXTDB6.js +0 -53
- package/dist/intent-TZD4G3JE.js +0 -95
- package/dist/job-63B2WPM2.js +0 -202
- package/dist/job-create-5PZ256PD.js +0 -109
- package/dist/job-status-H5WXV55V.js +0 -74
- package/dist/keep-HGLSG6CJ.js +0 -78
- package/dist/keyword-gap-5H6LPS7Y.js +0 -130
- package/dist/keyword-metrics-IH4FCU7C.js +0 -196
- package/dist/keyword-metrics-IH4FCU7C.js.map +0 -1
- package/dist/keywords-for-site-MDBTGZUE.js +0 -127
- package/dist/keywords-for-site-MDBTGZUE.js.map +0 -1
- package/dist/landing-YYBDXADL.js +0 -28
- package/dist/landings-LUW24CTP.js +0 -151
- package/dist/languages-7X5PROWY.js +0 -55
- package/dist/languages-Q7NLDV5C.js +0 -40
- package/dist/launches-HXMKMYJX.js +0 -108
- package/dist/layerize-SYLRTQ3A.js +0 -190
- package/dist/leads-RQG6LB7K.js +0 -293
- package/dist/leads-SDQBAGZX.js +0 -89
- package/dist/leads-SDQBAGZX.js.map +0 -1
- package/dist/learn-BKMNJ4RL.js +0 -202
- package/dist/learn-BKMNJ4RL.js.map +0 -1
- package/dist/library-PIIT56GK.js +0 -109
- package/dist/lighthouse-ASYAZ4YL.js +0 -75
- package/dist/line-item-writes-IIAXRUEP.js +0 -207
- package/dist/line-item-writes-IIAXRUEP.js.map +0 -1
- package/dist/line-items-IKBF3UU2.js +0 -103
- package/dist/link-6W5LKLN6.js +0 -63
- package/dist/link-6W5LKLN6.js.map +0 -1
- package/dist/linkedin-BJSJRWXC.js +0 -1007
- package/dist/linkedin-BJSJRWXC.js.map +0 -1
- package/dist/list-AHBRL6CF.js +0 -51
- package/dist/list-CO3EEAZK.js +0 -302
- package/dist/list-CO3EEAZK.js.map +0 -1
- package/dist/list-GW3LWBP2.js +0 -57
- package/dist/list-IDWGB4X3.js +0 -62
- package/dist/list-IDWGB4X3.js.map +0 -1
- package/dist/list-IZUXVPNL.js +0 -150
- package/dist/list-IZUXVPNL.js.map +0 -1
- package/dist/list-LQZDHNG3.js +0 -50
- package/dist/list-TSTTP5AF.js +0 -65
- package/dist/list-U46RRB5O.js +0 -76
- package/dist/locations-PQLM4426.js +0 -40
- package/dist/locations-VBHVPYER.js +0 -67
- package/dist/log-3MBBTTPW.js +0 -91
- package/dist/log-3MBBTTPW.js.map +0 -1
- package/dist/logo-YF46CHZO.js +0 -18
- package/dist/lookup-SOGUDT5P.js +0 -22
- package/dist/make-UOAOMFT3.js +0 -633
- package/dist/map-4QGLZFBQ.js +0 -403
- package/dist/map-4QGLZFBQ.js.map +0 -1
- package/dist/mcp-AYTX4TDA.js +0 -462
- package/dist/mcp-AYTX4TDA.js.map +0 -1
- package/dist/media-HX3X5ZW7.js +0 -89
- package/dist/media-VGJYSC4H.js +0 -15
- package/dist/media-sources-ESNG2EUR.js +0 -32
- package/dist/members-GSAI5DKT.js +0 -43
- package/dist/members-GSAI5DKT.js.map +0 -1
- package/dist/meta-BMUEM3KS.js +0 -69
- package/dist/metrics-N7SG5ME6.js +0 -152
- package/dist/models-DKTFCIPI.js +0 -155
- package/dist/normalize-2YBSAX54.js +0 -140
- package/dist/normalize-2YBSAX54.js.map +0 -1
- package/dist/normalize-E75DZCVO.js +0 -806
- package/dist/options-JF627M4S.js +0 -120
- package/dist/options-JF627M4S.js.map +0 -1
- package/dist/output-VNUB3ZDU.js +0 -24
- package/dist/page-T5GQ74JQ.js +0 -105
- package/dist/pages-Y6GD5TNO.js +0 -66
- package/dist/performance-VP7LFTOX.js +0 -23
- package/dist/pinterest-IO4HREWY.js +0 -96
- package/dist/pixels-QM3COIKE.js +0 -108
- package/dist/pixels-WWIVBVBD.js +0 -60
- package/dist/plan-M2L7MJEQ.js +0 -207
- package/dist/preview-VFM2WX4B.js +0 -169
- package/dist/profile-35CJMR2D.js +0 -150
- package/dist/promoted-tweet-writes-BGH7YQD3.js +0 -179
- package/dist/promoted-tweet-writes-BGH7YQD3.js.map +0 -1
- package/dist/promoted-tweets-AX3RBOMH.js +0 -119
- package/dist/properties-YPRTWLT3.js +0 -101
- package/dist/publish-QLTJ7MWQ.js +0 -321
- package/dist/publish-QLTJ7MWQ.js.map +0 -1
- package/dist/query-APOXSSD6.js +0 -236
- package/dist/query-IBHH6WZX.js +0 -247
- package/dist/query-SDOGFOUT.js +0 -61
- package/dist/questionnaire-DKZNPZMI.js +0 -93
- package/dist/read-LVAHQREC.js +0 -141
- package/dist/reddit-7KE75WNK.js +0 -25
- package/dist/refresh-U2HT4J6D.js +0 -93
- package/dist/refresh-U2HT4J6D.js.map +0 -1
- package/dist/release-YEI5C7QA.js +0 -59
- package/dist/release-YEI5C7QA.js.map +0 -1
- package/dist/relevant-pages-I3JY3IJV.js +0 -99
- package/dist/remove-4T4MG4EM.js +0 -49
- package/dist/remove-4T4MG4EM.js.map +0 -1
- package/dist/remove-QPYAI6UW.js +0 -48
- package/dist/reopen-RDQKY3A2.js +0 -62
- package/dist/reopen-RDQKY3A2.js.map +0 -1
- package/dist/rerun-SBUXP6SE.js +0 -84
- package/dist/research-GJW3K4PY.js +0 -62
- package/dist/research-QXX7N2AG.js +0 -261
- package/dist/research-QXX7N2AG.js.map +0 -1
- package/dist/reset-Q7DXAOPP.js +0 -53
- package/dist/reset-Q7DXAOPP.js.map +0 -1
- package/dist/reset-YES7QBG5.js +0 -53
- package/dist/reset-YES7QBG5.js.map +0 -1
- package/dist/resolve-XCJBMS7K.js +0 -120
- package/dist/resolve-XCJBMS7K.js.map +0 -1
- package/dist/retry-N5BAWMOX.js +0 -61
- package/dist/retry-N5BAWMOX.js.map +0 -1
- package/dist/retry-WUCEB7VA.js +0 -59
- package/dist/retry-WUCEB7VA.js.map +0 -1
- package/dist/retry-failed-XR6YAXQP.js +0 -45
- package/dist/run-2BZ43ROF.js +0 -59
- package/dist/run-YC2P6ZY6.js +0 -64
- package/dist/run-YC2P6ZY6.js.map +0 -1
- package/dist/scaffold-ad-UVCBYEXD.js +0 -1548
- package/dist/scaffold-static-ad-6MAOUZ7U.js +0 -971
- package/dist/scaffold-video-L2HMY2DR.js +0 -872
- package/dist/schedule-TLRN22JZ.js +0 -66
- package/dist/schedule-U5AUACBX.js +0 -60
- package/dist/schedule-U5AUACBX.js.map +0 -1
- package/dist/scheduled-agents-MDGPI2M4.js +0 -49
- package/dist/schema-PMUG7S5V.js +0 -63
- package/dist/schema-YURGT27S.js +0 -131
- package/dist/schema-YURGT27S.js.map +0 -1
- package/dist/scrape-ROILJTKL.js +0 -2241
- package/dist/screenshot-VWSXFIAR.js +0 -102
- package/dist/search-5FWLOOSS.js +0 -224
- package/dist/search-5VQOH7OZ.js +0 -26
- package/dist/search-5X42EKRW.js +0 -92
- package/dist/search-BBUAHFWV.js +0 -173
- package/dist/search-BBUAHFWV.js.map +0 -1
- package/dist/search-Y4YQGHK5.js +0 -91
- package/dist/search-copy-67XYV63G.js +0 -168
- package/dist/seeds-LE2CJPFA.js +0 -101
- package/dist/select-HMSZ6AAI.js +0 -93
- package/dist/select-HMSZ6AAI.js.map +0 -1
- package/dist/sends-B5ONB2KY.js +0 -309
- package/dist/sequences-EPTEYUDS.js +0 -146
- package/dist/set-prompt-6PDWQCT7.js +0 -185
- package/dist/setup-links-ZSGBSJG5.js +0 -140
- package/dist/setup-links-ZSGBSJG5.js.map +0 -1
- package/dist/shared-3FM2MOWA.js +0 -31
- package/dist/site-QXFPQYX6.js +0 -176
- package/dist/site-QXFPQYX6.js.map +0 -1
- package/dist/sitemaps-CKHZOGR6.js +0 -87
- package/dist/sites-OEHXRMWU.js +0 -101
- package/dist/skills-RD7IHMUO.js +0 -47
- package/dist/sources-3NPURARN.js +0 -30
- package/dist/sources-QD4NGNGY.js +0 -420
- package/dist/sources-QD4NGNGY.js.map +0 -1
- package/dist/stale-3RLO6UPG.js +0 -62
- package/dist/stale-3RLO6UPG.js.map +0 -1
- package/dist/stats-RWAXEWYD.js +0 -34
- package/dist/status-W64RG5TR.js +0 -61
- package/dist/status-W64RG5TR.js.map +0 -1
- package/dist/sticker-EVDFBJXE.js +0 -94
- package/dist/stock-WRTAR4PW.js +0 -179
- package/dist/studio-Y7OB5J6R.js +0 -49
- package/dist/sync-EKBT6R57.js +0 -54
- package/dist/sync-ITRZURD7.js +0 -53
- package/dist/sync-ITRZURD7.js.map +0 -1
- package/dist/sync-SPFI5726.js +0 -265
- package/dist/sync-definition-Z73K6BU2.js +0 -52
- package/dist/tag-manager-G4KPRTI2.js +0 -43
- package/dist/tags-22XRJTPJ.js +0 -26
- package/dist/tags-2BCS5MAY.js +0 -19
- package/dist/tags-2BCS5MAY.js.map +0 -1
- package/dist/tags-CFTVMRNR.js +0 -223
- package/dist/tags-CFTVMRNR.js.map +0 -1
- package/dist/tags-NZNVT5GK.js +0 -19
- package/dist/tags-NZNVT5GK.js.map +0 -1
- package/dist/tags-XHAFEXAM.js +0 -19
- package/dist/tags-XHAFEXAM.js.map +0 -1
- package/dist/targeting-constants-JTN45K7O.js +0 -118
- package/dist/targeting-criteria-A3PCU32M.js +0 -113
- package/dist/targets-BDSBX4FE.js +0 -101
- package/dist/targets-BDSBX4FE.js.map +0 -1
- package/dist/templates-64SHG73N.js +0 -177
- package/dist/templates-64SHG73N.js.map +0 -1
- package/dist/testimonials-QAEQK2QH.js +0 -32
- package/dist/themes-V27A4BN5.js +0 -94
- package/dist/top-companies-HYUHXCG4.js +0 -107
- package/dist/top-companies-HYUHXCG4.js.map +0 -1
- package/dist/translate-NRRZCXCE.js +0 -597
- package/dist/translate-NRRZCXCE.js.map +0 -1
- package/dist/triggers-XFY2NQ26.js +0 -140
- package/dist/triggers-XFY2NQ26.js.map +0 -1
- package/dist/tweets-FCHLCYSG.js +0 -123
- package/dist/unfollow-RRLQBX76.js +0 -46
- package/dist/unlink-IWTJMF7A.js +0 -66
- package/dist/unlink-IWTJMF7A.js.map +0 -1
- package/dist/unstage-743JO3CK.js +0 -83
- package/dist/unstage-743JO3CK.js.map +0 -1
- package/dist/unstage-GPI6FRJZ.js +0 -95
- package/dist/update-36HCI3GC.js +0 -97
- package/dist/update-36HCI3GC.js.map +0 -1
- package/dist/update-4H56EP7C.js +0 -154
- package/dist/update-4H56EP7C.js.map +0 -1
- package/dist/update-AN4IFT7R.js +0 -141
- package/dist/update-AN4IFT7R.js.map +0 -1
- package/dist/update-S3OWWI4P.js +0 -62
- package/dist/update-S3OWWI4P.js.map +0 -1
- package/dist/upload-NOKZB2WK.js +0 -150
- package/dist/upload-RXW2TNVG.js +0 -125
- package/dist/upload-RXW2TNVG.js.map +0 -1
- package/dist/upscale-HWT7BFR7.js +0 -109
- package/dist/url-options-6DISOYNT.js +0 -130
- package/dist/url-params-EGGK7XLL.js +0 -97
- package/dist/url-params-EGGK7XLL.js.map +0 -1
- package/dist/use-UNLVMWCI.js +0 -95
- package/dist/validate-4KUSCG5B.js +0 -88
- package/dist/variant-ZNLZOGOP.js +0 -338
- package/dist/videos-3GCK5R4D.js +0 -39
- package/dist/view-JBR45SOC.js +0 -121
- package/dist/viewer-check-LLQ3N4BI.js +0 -69
- package/dist/web-C7RX4AM7.js +0 -139
- package/dist/web-C7RX4AM7.js.map +0 -1
- package/dist/winners-G6UVDODV.js +0 -113
- package/dist/winning-ads-UKRM3SJO.js +0 -84
- package/dist/winning-ads-UKRM3SJO.js.map +0 -1
- package/dist/write-commands-DHMPOFSX.js +0 -1014
- package/dist/write-commands-DHMPOFSX.js.map +0 -1
- package/dist/write-commands-J2RGNLIP.js +0 -206
- package/dist/write-commands-SNGBG2FP.js +0 -713
- package/dist/write-commands-VPPBX4VX.js +0 -737
- package/dist/x-XEPTIJZ6.js +0 -47
- /package/dist/{account-W3YGN5RU.js.map → account-HZC6X2PH.js.map} +0 -0
- /package/dist/{account-NN54QFVE.js.map → account-MLX2MQTO.js.map} +0 -0
- /package/dist/{account-reads-3UBDY7R4.js.map → account-reads-FCETXYI7.js.map} +0 -0
- /package/dist/{account-writes-M35QGN3H.js.map → account-writes-UNVXSLMV.js.map} +0 -0
- /package/dist/{accounts-7X62JNDG.js.map → accounts-4P54UY6F.js.map} +0 -0
- /package/dist/{accounts-IUV2RDXE.js.map → accounts-6UNBLIUH.js.map} +0 -0
- /package/dist/{accounts-RKAIEZ3N.js.map → accounts-GVTZN4VE.js.map} +0 -0
- /package/dist/{actions-R64YNGQ6.js.map → actions-MEKXFKDN.js.map} +0 -0
- /package/dist/{active-entities-O2NQ6ME7.js.map → active-entities-UGHMVRWH.js.map} +0 -0
- /package/dist/{activities-LAPEEDLI.js.map → activities-2J7FTZMN.js.map} +0 -0
- /package/dist/{ad-group-writes-W757O2JA.js.map → ad-group-writes-2YEZNT5Q.js.map} +0 -0
- /package/dist/{ad-groups-VPUTJHQ6.js.map → ad-groups-YXVIPI7B.js.map} +0 -0
- /package/dist/{ad-writes-6O7ZPQB6.js.map → ad-writes-HBNG55VT.js.map} +0 -0
- /package/dist/{add-ZLVF72VE.js.map → add-2FHPLALV.js.map} +0 -0
- /package/dist/{add-B5PDUYPI.js.map → add-JP76KCCY.js.map} +0 -0
- /package/dist/{add-accounts-JJCODXBQ.js.map → add-accounts-M5Y4DQFM.js.map} +0 -0
- /package/dist/{ads-JUCDJ5ZC.js.map → ads-DB5NDHX5.js.map} +0 -0
- /package/dist/{ads-3HJPFZEV.js.map → ads-NDV3GOIW.js.map} +0 -0
- /package/dist/{ads-KCELHZAZ.js.map → ads-QBXR7IPO.js.map} +0 -0
- /package/dist/{ads-63MVBIHB.js.map → ads-W2IPUWHQ.js.map} +0 -0
- /package/dist/{adsets-Z43O26IR.js.map → adsets-PY5ZKGBO.js.map} +0 -0
- /package/dist/{advertisers-IANKSIDM.js.map → advertisers-BVAZ4XUX.js.map} +0 -0
- /package/dist/{animate-CUJNLMHT.js.map → animate-QEHFEQHZ.js.map} +0 -0
- /package/dist/{audiences-PLTZX3EZ.js.map → audiences-NTT3HZN7.js.map} +0 -0
- /package/dist/{audiences-YZKSBJKA.js.map → audiences-QWJ34WIW.js.map} +0 -0
- /package/dist/{audiences-QXQJWDVX.js.map → audiences-UUIYQFS6.js.map} +0 -0
- /package/dist/{audit-VBRVGMF2.js.map → audit-OWXTLQC4.js.map} +0 -0
- /package/dist/{avatars-IXEYEQZD.js.map → avatars-3PC7FTU3.js.map} +0 -0
- /package/dist/{brand-EUGPDVYQ.js.map → brand-XVXQ7VAU.js.map} +0 -0
- /package/dist/{brief-GGR3JRG3.js.map → brief-SZSPXGG4.js.map} +0 -0
- /package/dist/{businesses-3HJBLPMC.js.map → businesses-ZH67AXR6.js.map} +0 -0
- /package/dist/{campaign-writes-34CK5DDY.js.map → campaign-writes-4N3LQJL2.js.map} +0 -0
- /package/dist/{campaigns-M652OGDL.js.map → campaigns-5FH5THMS.js.map} +0 -0
- /package/dist/{campaigns-2SNG6SBB.js.map → campaigns-66OOGMDW.js.map} +0 -0
- /package/dist/{campaigns-W7IOUU6R.js.map → campaigns-QUQQYMIO.js.map} +0 -0
- /package/dist/{cards-RB4IQP3D.js.map → cards-RSMTBND3.js.map} +0 -0
- /package/dist/{catalogs-WKOWOYE6.js.map → catalogs-3IYC53GK.js.map} +0 -0
- /package/dist/{changes-UU3FWB63.js.map → changes-U263PWVD.js.map} +0 -0
- /package/dist/{chatgpt-AGS322BK.js.map → chatgpt-O64OJE6R.js.map} +0 -0
- /package/dist/{chunk-3JER367J.js.map → chunk-35ENAFJX.js.map} +0 -0
- /package/dist/{chunk-Q4BQ4OQK.js.map → chunk-3KIH22M7.js.map} +0 -0
- /package/dist/{chunk-UC4C6JUW.js.map → chunk-4FCLXJYW.js.map} +0 -0
- /package/dist/{chunk-NDVUUGKL.js.map → chunk-4OSBBGG5.js.map} +0 -0
- /package/dist/{chunk-AVMJDODA.js.map → chunk-57UECM77.js.map} +0 -0
- /package/dist/{chunk-MLBXDAHX.js.map → chunk-5Q3XCLMS.js.map} +0 -0
- /package/dist/{chunk-YOFHPTWU.js.map → chunk-65BQAJMH.js.map} +0 -0
- /package/dist/{chunk-UVVY55HY.js.map → chunk-6GFJFTG6.js.map} +0 -0
- /package/dist/{chunk-FXNJMN76.js.map → chunk-6GKC2PBR.js.map} +0 -0
- /package/dist/{chunk-KREO4YIC.js.map → chunk-6HPIWZHS.js.map} +0 -0
- /package/dist/{chunk-PGZ4EHAA.js.map → chunk-73B3RQJC.js.map} +0 -0
- /package/dist/{chunk-3QLACKNX.js.map → chunk-7MQVCSA7.js.map} +0 -0
- /package/dist/{chunk-O47IL4FE.js.map → chunk-7NTION5F.js.map} +0 -0
- /package/dist/{chunk-FPUVMFR6.js.map → chunk-AQ4HEXUH.js.map} +0 -0
- /package/dist/{chunk-PBHQPJZG.js.map → chunk-AUWN3C2K.js.map} +0 -0
- /package/dist/{chunk-GHIV4TYN.js.map → chunk-B3SPFCKC.js.map} +0 -0
- /package/dist/{chunk-7YRESXIS.js.map → chunk-CBCGVPHB.js.map} +0 -0
- /package/dist/{chunk-QI42BRSW.js.map → chunk-CECS3DHZ.js.map} +0 -0
- /package/dist/{chunk-NDEACMK4.js.map → chunk-CHFKTRB5.js.map} +0 -0
- /package/dist/{chunk-3QDGEASC.js.map → chunk-D24DJ7DB.js.map} +0 -0
- /package/dist/{chunk-PAE5XKKY.js.map → chunk-D5MF337I.js.map} +0 -0
- /package/dist/{chunk-YSSW437J.js.map → chunk-DLUWHZCE.js.map} +0 -0
- /package/dist/{chunk-XD7F3BSP.js.map → chunk-ECBHE5S6.js.map} +0 -0
- /package/dist/{chunk-ON4ITQ3U.js.map → chunk-EXZ2NIKX.js.map} +0 -0
- /package/dist/{chunk-WHA3DDV6.js.map → chunk-F3FSD6BO.js.map} +0 -0
- /package/dist/{chunk-4EGXTLKD.js.map → chunk-F5XU546T.js.map} +0 -0
- /package/dist/{chunk-L7OTZTWV.js.map → chunk-G3KO2HFZ.js.map} +0 -0
- /package/dist/{chunk-5LHDRP5F.js.map → chunk-GKXMIXEV.js.map} +0 -0
- /package/dist/{chunk-ANAJIYDY.js.map → chunk-GT4UFORX.js.map} +0 -0
- /package/dist/{chunk-YHXACQKB.js.map → chunk-GWM4DCAK.js.map} +0 -0
- /package/dist/{chunk-GEMBH2HB.js.map → chunk-GZ6YS7TG.js.map} +0 -0
- /package/dist/{chunk-YX74KMNK.js.map → chunk-H7JOVRHO.js.map} +0 -0
- /package/dist/{chunk-7FCNHAAZ.js.map → chunk-HF5V7TWU.js.map} +0 -0
- /package/dist/{chunk-HHLEPWHB.js.map → chunk-HM25R6XJ.js.map} +0 -0
- /package/dist/{chunk-5W3GSAPI.js.map → chunk-HWSUW5PX.js.map} +0 -0
- /package/dist/{chunk-7KSJUVNK.js.map → chunk-I7R3YSZF.js.map} +0 -0
- /package/dist/{chunk-NRWU674J.js.map → chunk-IJDF7D4U.js.map} +0 -0
- /package/dist/{chunk-QMJ22KGU.js.map → chunk-IK2S7QGF.js.map} +0 -0
- /package/dist/{chunk-4TOE7NXN.js.map → chunk-INI7U2SZ.js.map} +0 -0
- /package/dist/{chunk-U3CTJ2SE.js.map → chunk-INJHF7AF.js.map} +0 -0
- /package/dist/{chunk-G54P65K2.js.map → chunk-J2QOKD2F.js.map} +0 -0
- /package/dist/{chunk-OEWBWKDE.js.map → chunk-J57EXXFU.js.map} +0 -0
- /package/dist/{chunk-LW7OGQOG.js.map → chunk-JE5NMVRX.js.map} +0 -0
- /package/dist/{chunk-T4RQKMGO.js.map → chunk-JHLGXB6K.js.map} +0 -0
- /package/dist/{chunk-KW6VVXDJ.js.map → chunk-JSEPE5EP.js.map} +0 -0
- /package/dist/{chunk-QTYQPOGZ.js.map → chunk-KB5HBQEK.js.map} +0 -0
- /package/dist/{chunk-2XJDWQE6.js.map → chunk-KCCWCK6L.js.map} +0 -0
- /package/dist/{chunk-YDO5NMF3.js.map → chunk-KTL2D7NT.js.map} +0 -0
- /package/dist/{chunk-W2PXP333.js.map → chunk-KWTKAYCG.js.map} +0 -0
- /package/dist/{chunk-VAX5ITZ5.js.map → chunk-LHNL6JM2.js.map} +0 -0
- /package/dist/{chunk-C26QSQXP.js.map → chunk-MPXDQWYI.js.map} +0 -0
- /package/dist/{chunk-TC3SJU2O.js.map → chunk-NBYP5N4X.js.map} +0 -0
- /package/dist/{chunk-U7DPRTS4.js.map → chunk-NOSWSBLW.js.map} +0 -0
- /package/dist/{chunk-IKQE6HHT.js.map → chunk-O3LHCQ7Q.js.map} +0 -0
- /package/dist/{chunk-5ZYR2ZDH.js.map → chunk-P5H2BL4J.js.map} +0 -0
- /package/dist/{chunk-UQ6DXUOQ.js.map → chunk-P66JWKAL.js.map} +0 -0
- /package/dist/{chunk-SPJJVPPV.js.map → chunk-PA5MYVQY.js.map} +0 -0
- /package/dist/{chunk-UU67QDR7.js.map → chunk-Q676JHJA.js.map} +0 -0
- /package/dist/{chunk-4XVVTERH.js.map → chunk-QDOVBGKZ.js.map} +0 -0
- /package/dist/{chunk-IPQ533MQ.js.map → chunk-QN5VAYER.js.map} +0 -0
- /package/dist/{chunk-EXSVOUU4.js.map → chunk-QNEX7FEC.js.map} +0 -0
- /package/dist/{chunk-S7HMUFO3.js.map → chunk-QTL4NJ5I.js.map} +0 -0
- /package/dist/{chunk-ZBWUDJUC.js.map → chunk-R3GZRH43.js.map} +0 -0
- /package/dist/{chunk-S6JDX5NI.js.map → chunk-R7CQCE3E.js.map} +0 -0
- /package/dist/{chunk-WY6PPZO4.js.map → chunk-RFJ3S47F.js.map} +0 -0
- /package/dist/{chunk-ZQKJIWDS.js.map → chunk-TMQ5LHZ3.js.map} +0 -0
- /package/dist/{chunk-65VDFALQ.js.map → chunk-TRLVH7T3.js.map} +0 -0
- /package/dist/{chunk-JQH5YQOD.js.map → chunk-UUBFYAVE.js.map} +0 -0
- /package/dist/{chunk-7V2FDO3O.js.map → chunk-UXTZ5MBE.js.map} +0 -0
- /package/dist/{chunk-GF5SLKYH.js.map → chunk-V43RLLZE.js.map} +0 -0
- /package/dist/{chunk-DWUBZGYX.js.map → chunk-V4UFNEHE.js.map} +0 -0
- /package/dist/{chunk-3BNFG5IH.js.map → chunk-V5L5QD7R.js.map} +0 -0
- /package/dist/{chunk-QRQ3LNSX.js.map → chunk-VAYFVC5B.js.map} +0 -0
- /package/dist/{chunk-5PFKCXTT.js.map → chunk-VFSLIDXA.js.map} +0 -0
- /package/dist/{chunk-DZD3XEBO.js.map → chunk-VHMNSO2B.js.map} +0 -0
- /package/dist/{chunk-QL57CR4R.js.map → chunk-VOH2QWVG.js.map} +0 -0
- /package/dist/{chunk-LUQM6DFI.js.map → chunk-WESRVXFS.js.map} +0 -0
- /package/dist/{chunk-XPFQ3RSQ.js.map → chunk-WILN7TD6.js.map} +0 -0
- /package/dist/{chunk-ZJVHZHYP.js.map → chunk-WXC3I4CT.js.map} +0 -0
- /package/dist/{chunk-JAEVTZ6J.js.map → chunk-X4DLIDFW.js.map} +0 -0
- /package/dist/{chunk-XX5DXKEI.js.map → chunk-YT74ZEVP.js.map} +0 -0
- /package/dist/{chunk-BXDWSA2Q.js.map → chunk-Z5KBRTB2.js.map} +0 -0
- /package/dist/{chunk-MZ7AEXVL.js.map → chunk-ZBKBTTHD.js.map} +0 -0
- /package/dist/{chunk-22IO6KYA.js.map → chunk-ZFIYN7KP.js.map} +0 -0
- /package/dist/{chunk-6ZCYWVKZ.js.map → chunk-ZLU5QDLU.js.map} +0 -0
- /package/dist/{chunk-RIYI4BBQ.js.map → chunk-ZNNC6B75.js.map} +0 -0
- /package/dist/{chunk-PJFGOJGF.js.map → chunk-ZO2YLHRW.js.map} +0 -0
- /package/dist/{chunk-INMTAPMV.js.map → chunk-ZPJE6D7W.js.map} +0 -0
- /package/dist/{client-P7OREXNC.js.map → client-LY2JCQS2.js.map} +0 -0
- /package/dist/{code-PRV5LVMQ.js.map → code-7CBNYUPU.js.map} +0 -0
- /package/dist/{config-Y644DINP.js.map → config-7COTFJWK.js.map} +0 -0
- /package/dist/{connect-DGTD2N25.js.map → connect-VOCZSB3W.js.map} +0 -0
- /package/dist/{content-TALOFHDP.js.map → content-OXMONMHJ.js.map} +0 -0
- /package/dist/{conversion-report-QZU2PAQN.js.map → conversion-report-ZRNV7X7D.js.map} +0 -0
- /package/dist/{conversion-upload-command-A5X42QDR.js.map → conversion-upload-command-IMHHSGYU.js.map} +0 -0
- /package/dist/{conversion-writes-NSAEZNCR.js.map → conversion-writes-7N5UDQGH.js.map} +0 -0
- /package/dist/{conversions-QVNRC7CU.js.map → conversions-QOXRO26I.js.map} +0 -0
- /package/dist/{countries-2I6VNSVR.js.map → countries-UXAUGSBR.js.map} +0 -0
- /package/dist/{creatives-JBHNQEH4.js.map → creatives-F26GDJG2.js.map} +0 -0
- /package/dist/{creatives-KNQHWJFJ.js.map → creatives-ONKKGW5T.js.map} +0 -0
- /package/dist/{crop-4ANU2DAZ.js.map → crop-3ZV5BFCA.js.map} +0 -0
- /package/dist/{currency-Q7QTY444.js.map → currency-PGLGLRKU.js.map} +0 -0
- /package/dist/{custom-conversions-PAH42DOH.js.map → custom-conversions-TV23XQHW.js.map} +0 -0
- /package/dist/{customers-AWIDLQKG.js.map → customers-I2EHMEX3.js.map} +0 -0
- /package/dist/{delete-OMHFV5PL.js.map → delete-MUPTLWHI.js.map} +0 -0
- /package/dist/{delete-DEZGXUCQ.js.map → delete-R2SEUSLV.js.map} +0 -0
- /package/dist/{delete-XABKZH7Z.js.map → delete-ZGBBWFAW.js.map} +0 -0
- /package/dist/{describe-LK3XJEXX.js.map → describe-4O3VCV6L.js.map} +0 -0
- /package/dist/{describe-EKDSVBFK.js.map → describe-FCTM53MM.js.map} +0 -0
- /package/dist/{dimensions-NKLUJ4I7.js.map → dimensions-AD4VS5AH.js.map} +0 -0
- /package/dist/{discover-S24Q43VD.js.map → discover-6XSPNZYE.js.map} +0 -0
- /package/dist/{discover-NZ4L2FAB.js.map → discover-UQXQUPNO.js.map} +0 -0
- /package/dist/{download-27QM2APL.js.map → download-IE6XLFHM.js.map} +0 -0
- /package/dist/{draft-UYZXKTVR.js.map → draft-ENA7S4Y7.js.map} +0 -0
- /package/dist/{draft-LINEUQZE.js.map → draft-MGKJ5RYI.js.map} +0 -0
- /package/dist/{draft-JZ26MIHK.js.map → draft-PPRDQDGW.js.map} +0 -0
- /package/dist/{draft-3H5DWKCM.js.map → draft-S6VPKZYY.js.map} +0 -0
- /package/dist/{draft-KI2HEV22.js.map → draft-VVDI2OR3.js.map} +0 -0
- /package/dist/{env-5OVWQ4KR.js.map → env-YLOVBOAE.js.map} +0 -0
- /package/dist/{experiment-ZY6GKKFO.js.map → experiment-PHFP6IBM.js.map} +0 -0
- /package/dist/{export-EM7PJUWD.js.map → export-R2IMUCQO.js.map} +0 -0
- /package/dist/{extract-QFCDAP24.js.map → extract-OQP3TSQG.js.map} +0 -0
- /package/dist/{favorites-A5EKOJRD.js.map → favorites-NS73FDG5.js.map} +0 -0
- /package/dist/{feed-WPL7WCH7.js.map → feed-SQPOB7SP.js.map} +0 -0
- /package/dist/{feedback-FOZ6M7LL.js.map → feedback-XHSJBBEJ.js.map} +0 -0
- /package/dist/{fetch-CLHL6XXD.js.map → fetch-PQ3NOPIE.js.map} +0 -0
- /package/dist/{find-WP6D3QCM.js.map → find-Y22AANDE.js.map} +0 -0
- /package/dist/{fit-QOQ2KMBY.js.map → fit-XJPM6573.js.map} +0 -0
- /package/dist/{follow-LA35GI4S.js.map → follow-N3DQZV7M.js.map} +0 -0
- /package/dist/{follow-competitors-N6IUS5NO.js.map → follow-competitors-BZPCBGIB.js.map} +0 -0
- /package/dist/{following-XCHW4KIF.js.map → following-KESWTEBR.js.map} +0 -0
- /package/dist/{fonts-SKUCXIJM.js.map → fonts-3FX3OYEQ.js.map} +0 -0
- /package/dist/{forecast-6KWNTFIO.js.map → forecast-CYSEUIS4.js.map} +0 -0
- /package/dist/{funding-M2UCPM6X.js.map → funding-G6S4UVU5.js.map} +0 -0
- /package/dist/{ga4-QYCDH25I.js.map → ga4-2QHOA4RO.js.map} +0 -0
- /package/dist/{generate-OITIKU7P.js.map → generate-F4FDRDAW.js.map} +0 -0
- /package/dist/{get-YDIJZRT3.js.map → get-3P2EQLP3.js.map} +0 -0
- /package/dist/{get-SQESAJ4Z.js.map → get-FJB3X44Z.js.map} +0 -0
- /package/dist/{get-2FYPCEQK.js.map → get-MBGO4VJD.js.map} +0 -0
- /package/dist/{get-FNVMXQP3.js.map → get-NOKSZPIV.js.map} +0 -0
- /package/dist/{get-HS2ACWTQ.js.map → get-WHC4SRYK.js.map} +0 -0
- /package/dist/{gif-S5EOHDRF.js.map → gif-SFYVDLCU.js.map} +0 -0
- /package/dist/{google-KPER3UKQ.js.map → google-MY45TUC4.js.map} +0 -0
- /package/dist/{google-C6U5YMTM.js.map → google-XRAMIES5.js.map} +0 -0
- /package/dist/{group-V5VAZVOY.js.map → group-6RDJTWVN.js.map} +0 -0
- /package/dist/{group-22AAKFSB.js.map → group-TZJCKHKS.js.map} +0 -0
- /package/dist/{gsc-AC23WZU4.js.map → gsc-HD6UFRYM.js.map} +0 -0
- /package/dist/{history-CJCMB2KQ.js.map → history-2WBZRPPE.js.map} +0 -0
- /package/dist/{icon-U4RUUEP5.js.map → icon-BMCDFGMN.js.map} +0 -0
- /package/dist/{ideas-J6AJYFTI.js.map → ideas-VLHUTFHP.js.map} +0 -0
- /package/dist/{images-BFL4OXSL.js.map → images-C4TBUPXM.js.map} +0 -0
- /package/dist/{improve-A5UIOZOB.js.map → improve-P6F2HXYQ.js.map} +0 -0
- /package/dist/{ingest-RAWSXS4T.js.map → ingest-SXT33KE6.js.map} +0 -0
- /package/dist/{insights-GKGZJMAB.js.map → insights-DI4W3D2Y.js.map} +0 -0
- /package/dist/{insights-4DMLJZEE.js.map → insights-X75LRPS3.js.map} +0 -0
- /package/dist/{inspiration-XCBXTDB6.js.map → inspiration-MDCCU2CF.js.map} +0 -0
- /package/dist/{intent-TZD4G3JE.js.map → intent-A4SOIFKK.js.map} +0 -0
- /package/dist/{job-63B2WPM2.js.map → job-QDLPQFIT.js.map} +0 -0
- /package/dist/{job-create-5PZ256PD.js.map → job-create-6XKD5GEC.js.map} +0 -0
- /package/dist/{job-status-H5WXV55V.js.map → job-status-MH7CGLWC.js.map} +0 -0
- /package/dist/{keep-HGLSG6CJ.js.map → keep-42SLV4CR.js.map} +0 -0
- /package/dist/{keyword-gap-5H6LPS7Y.js.map → keyword-gap-D4P2CC2L.js.map} +0 -0
- /package/dist/{landing-YYBDXADL.js.map → landing-JWD3U2K5.js.map} +0 -0
- /package/dist/{landings-LUW24CTP.js.map → landings-5IYXHA5Z.js.map} +0 -0
- /package/dist/{languages-Q7NLDV5C.js.map → languages-HX4FD3GX.js.map} +0 -0
- /package/dist/{languages-7X5PROWY.js.map → languages-SRFGW6Z3.js.map} +0 -0
- /package/dist/{launches-HXMKMYJX.js.map → launches-7U4TPNO3.js.map} +0 -0
- /package/dist/{layerize-SYLRTQ3A.js.map → layerize-U672AXED.js.map} +0 -0
- /package/dist/{leads-RQG6LB7K.js.map → leads-MXUQISOC.js.map} +0 -0
- /package/dist/{library-PIIT56GK.js.map → library-RPFXNER4.js.map} +0 -0
- /package/dist/{lighthouse-ASYAZ4YL.js.map → lighthouse-SJ4QNLUS.js.map} +0 -0
- /package/dist/{line-items-IKBF3UU2.js.map → line-items-QIBNOEOH.js.map} +0 -0
- /package/dist/{list-TSTTP5AF.js.map → list-GQ65MC2N.js.map} +0 -0
- /package/dist/{list-AHBRL6CF.js.map → list-K56J7FZW.js.map} +0 -0
- /package/dist/{list-U46RRB5O.js.map → list-M4Z3WYPM.js.map} +0 -0
- /package/dist/{list-GW3LWBP2.js.map → list-SXYVDDMU.js.map} +0 -0
- /package/dist/{list-LQZDHNG3.js.map → list-XFIOXFB2.js.map} +0 -0
- /package/dist/{locations-PQLM4426.js.map → locations-PQWB7EGC.js.map} +0 -0
- /package/dist/{locations-VBHVPYER.js.map → locations-WNSET6RM.js.map} +0 -0
- /package/dist/{logo-YF46CHZO.js.map → logo-4JOWGJ5A.js.map} +0 -0
- /package/dist/{lookup-SOGUDT5P.js.map → lookup-QGGSAHOO.js.map} +0 -0
- /package/dist/{make-UOAOMFT3.js.map → make-6OQBIYWC.js.map} +0 -0
- /package/dist/{media-VGJYSC4H.js.map → media-2SWDJDA6.js.map} +0 -0
- /package/dist/{media-HX3X5ZW7.js.map → media-O5L7GO72.js.map} +0 -0
- /package/dist/{media-sources-ESNG2EUR.js.map → media-sources-LF6I6AYP.js.map} +0 -0
- /package/dist/{meta-BMUEM3KS.js.map → meta-37L6QBOZ.js.map} +0 -0
- /package/dist/{metrics-N7SG5ME6.js.map → metrics-WVG3IUMH.js.map} +0 -0
- /package/dist/{models-DKTFCIPI.js.map → models-5QWYGJ7Y.js.map} +0 -0
- /package/dist/{normalize-E75DZCVO.js.map → normalize-P5Q3F7FU.js.map} +0 -0
- /package/dist/{output-VNUB3ZDU.js.map → output-ZL62UZHQ.js.map} +0 -0
- /package/dist/{page-T5GQ74JQ.js.map → page-FZ7IZ5CV.js.map} +0 -0
- /package/dist/{pages-Y6GD5TNO.js.map → pages-SS7TZTHV.js.map} +0 -0
- /package/dist/{performance-VP7LFTOX.js.map → performance-2K425XAN.js.map} +0 -0
- /package/dist/{pinterest-IO4HREWY.js.map → pinterest-UETS7U7U.js.map} +0 -0
- /package/dist/{pixels-WWIVBVBD.js.map → pixels-D73GQFGM.js.map} +0 -0
- /package/dist/{pixels-QM3COIKE.js.map → pixels-LCTMLKGP.js.map} +0 -0
- /package/dist/{plan-M2L7MJEQ.js.map → plan-4HLITU3A.js.map} +0 -0
- /package/dist/{preview-VFM2WX4B.js.map → preview-RU54Z4EM.js.map} +0 -0
- /package/dist/{profile-35CJMR2D.js.map → profile-NQOIBLJL.js.map} +0 -0
- /package/dist/{promoted-tweets-AX3RBOMH.js.map → promoted-tweets-D5NKZ3FS.js.map} +0 -0
- /package/dist/{properties-YPRTWLT3.js.map → properties-ZUDQH3LE.js.map} +0 -0
- /package/dist/{query-APOXSSD6.js.map → query-26T7XATH.js.map} +0 -0
- /package/dist/{query-SDOGFOUT.js.map → query-IJVVSB54.js.map} +0 -0
- /package/dist/{query-IBHH6WZX.js.map → query-SHUOHXTO.js.map} +0 -0
- /package/dist/{questionnaire-DKZNPZMI.js.map → questionnaire-7AEVHZDR.js.map} +0 -0
- /package/dist/{read-LVAHQREC.js.map → read-UYSQAXRV.js.map} +0 -0
- /package/dist/{reddit-7KE75WNK.js.map → reddit-YBEYPDZP.js.map} +0 -0
- /package/dist/{relevant-pages-I3JY3IJV.js.map → relevant-pages-OI7GTPOK.js.map} +0 -0
- /package/dist/{remove-QPYAI6UW.js.map → remove-2KACTXKP.js.map} +0 -0
- /package/dist/{rerun-SBUXP6SE.js.map → rerun-LM52CBPS.js.map} +0 -0
- /package/dist/{research-GJW3K4PY.js.map → research-547KDC54.js.map} +0 -0
- /package/dist/{retry-failed-XR6YAXQP.js.map → retry-failed-NWLH6WHK.js.map} +0 -0
- /package/dist/{run-2BZ43ROF.js.map → run-PLUL33QX.js.map} +0 -0
- /package/dist/{scaffold-ad-UVCBYEXD.js.map → scaffold-ad-W4RZXLDX.js.map} +0 -0
- /package/dist/{scaffold-static-ad-6MAOUZ7U.js.map → scaffold-static-ad-IPJYRAOT.js.map} +0 -0
- /package/dist/{scaffold-video-L2HMY2DR.js.map → scaffold-video-XBII4YLS.js.map} +0 -0
- /package/dist/{schedule-TLRN22JZ.js.map → schedule-S547HPUT.js.map} +0 -0
- /package/dist/{scheduled-agents-MDGPI2M4.js.map → scheduled-agents-DWSVPMZP.js.map} +0 -0
- /package/dist/{schema-PMUG7S5V.js.map → schema-SQIP75WG.js.map} +0 -0
- /package/dist/{scrape-ROILJTKL.js.map → scrape-TI6S2W7I.js.map} +0 -0
- /package/dist/{screenshot-VWSXFIAR.js.map → screenshot-XFAYY4WW.js.map} +0 -0
- /package/dist/{search-5VQOH7OZ.js.map → search-4HIOKYFR.js.map} +0 -0
- /package/dist/{search-5X42EKRW.js.map → search-D2IV7KFJ.js.map} +0 -0
- /package/dist/{search-5FWLOOSS.js.map → search-IZPDHRJ4.js.map} +0 -0
- /package/dist/{search-Y4YQGHK5.js.map → search-KFDL2IGG.js.map} +0 -0
- /package/dist/{search-copy-67XYV63G.js.map → search-copy-QZXCAGK4.js.map} +0 -0
- /package/dist/{seeds-LE2CJPFA.js.map → seeds-VUNZMHZH.js.map} +0 -0
- /package/dist/{sends-B5ONB2KY.js.map → sends-UT4WXVOS.js.map} +0 -0
- /package/dist/{sequences-EPTEYUDS.js.map → sequences-5RAGZE7L.js.map} +0 -0
- /package/dist/{set-prompt-6PDWQCT7.js.map → set-prompt-WVQ4AI66.js.map} +0 -0
- /package/dist/{shared-3FM2MOWA.js.map → shared-3CGGKICB.js.map} +0 -0
- /package/dist/{sitemaps-CKHZOGR6.js.map → sitemaps-3WDYQHYR.js.map} +0 -0
- /package/dist/{sites-OEHXRMWU.js.map → sites-G4DQ2Z2X.js.map} +0 -0
- /package/dist/{skills-RD7IHMUO.js.map → skills-PA26HXEP.js.map} +0 -0
- /package/dist/{sources-3NPURARN.js.map → sources-PZXOSE4S.js.map} +0 -0
- /package/dist/{stats-RWAXEWYD.js.map → stats-6DPPYSP3.js.map} +0 -0
- /package/dist/{sticker-EVDFBJXE.js.map → sticker-MC2IAIQB.js.map} +0 -0
- /package/dist/{stock-WRTAR4PW.js.map → stock-B7LKMKUK.js.map} +0 -0
- /package/dist/{studio-Y7OB5J6R.js.map → studio-EQ2L6OBJ.js.map} +0 -0
- /package/dist/{sync-EKBT6R57.js.map → sync-CLZDZL5F.js.map} +0 -0
- /package/dist/{sync-SPFI5726.js.map → sync-V26UBMAN.js.map} +0 -0
- /package/dist/{sync-definition-Z73K6BU2.js.map → sync-definition-2SGGHSKR.js.map} +0 -0
- /package/dist/{tag-manager-G4KPRTI2.js.map → tag-manager-KIHXVFMF.js.map} +0 -0
- /package/dist/{tags-22XRJTPJ.js.map → tags-JN475JPP.js.map} +0 -0
- /package/dist/{targeting-constants-JTN45K7O.js.map → targeting-constants-6Y5J2PPZ.js.map} +0 -0
- /package/dist/{targeting-criteria-A3PCU32M.js.map → targeting-criteria-NMZD3CK6.js.map} +0 -0
- /package/dist/{testimonials-QAEQK2QH.js.map → testimonials-YN2AB7U7.js.map} +0 -0
- /package/dist/{themes-V27A4BN5.js.map → themes-BYRMCXYR.js.map} +0 -0
- /package/dist/{tweets-FCHLCYSG.js.map → tweets-KTM7HX5R.js.map} +0 -0
- /package/dist/{unfollow-RRLQBX76.js.map → unfollow-WBBTVEHE.js.map} +0 -0
- /package/dist/{unstage-GPI6FRJZ.js.map → unstage-GYBJZWCZ.js.map} +0 -0
- /package/dist/{upload-NOKZB2WK.js.map → upload-NA62W5RS.js.map} +0 -0
- /package/dist/{upscale-HWT7BFR7.js.map → upscale-RXJUBHXN.js.map} +0 -0
- /package/dist/{url-options-6DISOYNT.js.map → url-options-LZIHCPP4.js.map} +0 -0
- /package/dist/{use-UNLVMWCI.js.map → use-MHPNS4V4.js.map} +0 -0
- /package/dist/{validate-4KUSCG5B.js.map → validate-IIOV3YJK.js.map} +0 -0
- /package/dist/{variant-ZNLZOGOP.js.map → variant-ZFCWILPG.js.map} +0 -0
- /package/dist/{videos-3GCK5R4D.js.map → videos-MIHTMO3G.js.map} +0 -0
- /package/dist/{view-JBR45SOC.js.map → view-PYCGDGT2.js.map} +0 -0
- /package/dist/{viewer-check-LLQ3N4BI.js.map → viewer-check-65TIGVAJ.js.map} +0 -0
- /package/dist/{winners-G6UVDODV.js.map → winners-AI4PVSOI.js.map} +0 -0
- /package/dist/{write-commands-SNGBG2FP.js.map → write-commands-34L5LJIB.js.map} +0 -0
- /package/dist/{write-commands-VPPBX4VX.js.map → write-commands-5TJ3LQ5F.js.map} +0 -0
- /package/dist/{write-commands-J2RGNLIP.js.map → write-commands-R3UCCBUI.js.map} +0 -0
- /package/dist/{x-XEPTIJZ6.js.map → x-V7V47E4N.js.map} +0 -0
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import {
|
|
2
|
+
flowDataPath,
|
|
3
|
+
isUsableStepNameKey,
|
|
4
|
+
readFlowTree,
|
|
5
|
+
requestFlowInputCall,
|
|
6
|
+
stepNameKey,
|
|
7
|
+
walkNodes,
|
|
8
|
+
writeFlowTree
|
|
9
|
+
} from "./chunk-VOH2QWVG.js";
|
|
10
|
+
import {
|
|
11
|
+
flowCatalogEntry,
|
|
12
|
+
flowCatalogTypes,
|
|
13
|
+
flowNodeTriggers
|
|
14
|
+
} from "./chunk-WXC3I4CT.js";
|
|
15
|
+
import "./chunk-GXDLWBOY.js";
|
|
16
|
+
import "./chunk-GIWHHCD6.js";
|
|
17
|
+
import "./chunk-XQIOCIDO.js";
|
|
18
|
+
import "./chunk-ML7DLFFY.js";
|
|
19
|
+
import "./chunk-KB5XJHQX.js";
|
|
20
|
+
import "./chunk-YONSWWCF.js";
|
|
21
|
+
import "./chunk-QXDEZKAR.js";
|
|
22
|
+
import {
|
|
23
|
+
registerSchema,
|
|
24
|
+
writeJson
|
|
25
|
+
} from "./chunk-4DM6OAQ6.js";
|
|
26
|
+
import "./chunk-YQSBHWOI.js";
|
|
27
|
+
|
|
28
|
+
// src/commands/flows/add.ts
|
|
29
|
+
import { randomUUID } from "crypto";
|
|
30
|
+
import { defineCommand } from "citty";
|
|
31
|
+
function unknownType(kind, type) {
|
|
32
|
+
writeJson({
|
|
33
|
+
ok: false,
|
|
34
|
+
error: {
|
|
35
|
+
code: "VALIDATION_ERROR",
|
|
36
|
+
message: `No ${kind} type "${type}".`,
|
|
37
|
+
fix: `Known types: ${flowCatalogTypes(kind).join(", ")}. See: baker flows schema ${kind}`
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
function concrete(skeleton, replacements) {
|
|
43
|
+
return { ...structuredClone(skeleton), ...replacements };
|
|
44
|
+
}
|
|
45
|
+
function stepNameRefusal(nodes, name) {
|
|
46
|
+
const key = stepNameKey(name);
|
|
47
|
+
if (!isUsableStepNameKey(key)) {
|
|
48
|
+
return {
|
|
49
|
+
message: `"${name}" cannot be a step name: it becomes the constant \`${key || "(empty)"}\`, which is not a valid identifier.`,
|
|
50
|
+
fix: 'A step name becomes `export const <NAME> = \u2026` in the form\'s generated code, so it must start with a letter and hold only letters, digits, spaces and dashes. Try "Your Details" rather than "1. Your details".'
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const clash = nodes.find((node) => typeof node.name === "string" && stepNameKey(node.name) === key);
|
|
54
|
+
if (!clash) return null;
|
|
55
|
+
return {
|
|
56
|
+
message: `This form already has a step named "${clash.name}", which collides with "${name}".`,
|
|
57
|
+
fix: `Both become the constant \`${key}\`, and the form's generated code cannot hold it twice. Pick a name that differs by more than case, spacing or punctuation.`
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
registerSchema({
|
|
61
|
+
command: "flows.add-node",
|
|
62
|
+
description: "Add a step to a form with a valid skeleton \u2014 fresh UUID, explicit condition, correct nodeData discriminator, and form.external:null for a widget. Author its copy and conditions afterwards by editing _data.json.",
|
|
63
|
+
args: {
|
|
64
|
+
slug: { type: "positional", description: "Form slug", required: true },
|
|
65
|
+
type: { type: "string", description: "Node type (see: baker flows schema node)", required: true },
|
|
66
|
+
name: { type: "string", description: "Step name \u2014 unique, Title Case", required: true },
|
|
67
|
+
parent: { type: "string", description: "Parent node id. Omit to append to the root's children.", required: false }
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
var addNodeCommand = defineCommand({
|
|
71
|
+
meta: {
|
|
72
|
+
name: "add-node",
|
|
73
|
+
description: 'Add a step to a form, with the skeleton its type requires. Example: baker flows add-node contact --type customForm --name "Contact Info"'
|
|
74
|
+
},
|
|
75
|
+
args: {
|
|
76
|
+
slug: { type: "positional", description: "Form slug", required: true },
|
|
77
|
+
type: { type: "string", description: "Node type", required: true },
|
|
78
|
+
name: { type: "string", description: "Step name \u2014 unique, Title Case", required: true },
|
|
79
|
+
parent: { type: "string", description: "Parent node id (default: the root)" }
|
|
80
|
+
},
|
|
81
|
+
run: ({ args }) => {
|
|
82
|
+
const slug = String(args.slug);
|
|
83
|
+
const type = String(args.type);
|
|
84
|
+
const name = String(args.name).trim();
|
|
85
|
+
const entry = flowCatalogEntry("node", type) ?? unknownType("node", type);
|
|
86
|
+
const tree = readFlowTree(slug);
|
|
87
|
+
const nodes = walkNodes(tree);
|
|
88
|
+
const refusal = stepNameRefusal(nodes, name);
|
|
89
|
+
if (refusal) {
|
|
90
|
+
writeJson({
|
|
91
|
+
ok: false,
|
|
92
|
+
error: {
|
|
93
|
+
code: "VALIDATION_ERROR",
|
|
94
|
+
message: refusal.message.replace("This form", `"${slug}"`),
|
|
95
|
+
fix: refusal.fix
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
const parent = args.parent ? nodes.find((node2) => node2.id === String(args.parent)) : tree;
|
|
101
|
+
if (!parent) {
|
|
102
|
+
writeJson({
|
|
103
|
+
ok: false,
|
|
104
|
+
error: {
|
|
105
|
+
code: "NOT_FOUND",
|
|
106
|
+
message: `No node with id "${args.parent}" in "${slug}".`,
|
|
107
|
+
fix: `Nodes in this form: ${nodes.map((node2) => `${node2.id} (${node2.name})`).join(", ")}`
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
const node = concrete(entry.skeleton, { id: randomUUID(), name });
|
|
113
|
+
if (!Array.isArray(parent.children)) parent.children = [];
|
|
114
|
+
parent.children.push(node);
|
|
115
|
+
writeFlowTree(slug, tree);
|
|
116
|
+
writeJson({
|
|
117
|
+
ok: true,
|
|
118
|
+
data: { slug, nodeId: node.id, type, parentId: parent.id ?? null, path: flowDataPath(slug) },
|
|
119
|
+
hints: [
|
|
120
|
+
`Now fill in this step's \`ai\` field and its copy by editing ${flowDataPath(slug)}.`,
|
|
121
|
+
// Said on every step added, because the moment a Form's shape changes
|
|
122
|
+
// is the moment its outcome can move — and a Form nobody named an
|
|
123
|
+
// outcome for reports zero conversions rather than an error.
|
|
124
|
+
`Say what this Form counts before you finish: \`baker analytics conversions --flow ${slug}\` lists every ending already spelled as an event key, including this step's. Nothing in _data.json decides it.`,
|
|
125
|
+
...entry.owners?.["nodeData.form.external"] === "request_flow_input" ? [
|
|
126
|
+
`Pick this ${type} step's resource: ${requestFlowInputCall(slug, pendingItem("node", String(node.id), type))}.`
|
|
127
|
+
] : [],
|
|
128
|
+
...entry.gotcha ? [entry.gotcha] : []
|
|
129
|
+
]
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
function resolveTrigger(node, requested) {
|
|
134
|
+
const triggers = flowNodeTriggers(node.nodeData);
|
|
135
|
+
const where = `Step "${String(node.name ?? node.id)}"${triggers.type ? ` (a ${triggers.type} step)` : ""}`;
|
|
136
|
+
const raises = triggers.available.length > 0 ? `It raises: ${triggers.available.join(", ")}.` : triggers.why ?? "";
|
|
137
|
+
const no = (message, fix) => ({ ok: false, message, fix });
|
|
138
|
+
if (!triggers.known) {
|
|
139
|
+
return requested ? { ok: true, triggerId: requested } : no(`${where} is not a node type this command knows, so --trigger is required.`, triggers.why ?? "");
|
|
140
|
+
}
|
|
141
|
+
if (requested) {
|
|
142
|
+
return triggers.available.includes(requested) ? { ok: true, triggerId: requested } : no(
|
|
143
|
+
`${where} never raises \`${requested}\`, so a side effect carrying it would be written, pass every check, and never run.`,
|
|
144
|
+
raises
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
return triggers.completion ? { ok: true, triggerId: triggers.completion } : no(`${where} has no trigger a side effect can answer.`, raises);
|
|
148
|
+
}
|
|
149
|
+
function freeSideEffectId(type, taken) {
|
|
150
|
+
for (let n = 1; ; n++) {
|
|
151
|
+
const candidate = `se-${type}-${n}`;
|
|
152
|
+
if (!taken.has(candidate)) return candidate;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function sameTrackingSideEffect(node, type, triggerId) {
|
|
156
|
+
if (flowCatalogEntry("side-effect", type)?.owners?.tagIds !== "tags") return null;
|
|
157
|
+
const effects = Array.isArray(node.sideEffects) ? node.sideEffects : [];
|
|
158
|
+
for (const raw of effects) {
|
|
159
|
+
const effect = raw;
|
|
160
|
+
if (effect?.type === type && effect.triggerId === triggerId) return effect;
|
|
161
|
+
}
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
function secondPixelHint(node, type, triggerId) {
|
|
165
|
+
const already = sameTrackingSideEffect(node, type, triggerId);
|
|
166
|
+
if (!already) return null;
|
|
167
|
+
const event = typeof already.eventName === "string" ? ` with event "${already.eventName}"` : "";
|
|
168
|
+
return `"${String(node.name ?? node.id)}" already reports \`${triggerId}\` to ${type} as "${String(already.id)}"${event}. Give this one a different event; to change that conversion, edit "${String(already.id)}" and delete this one \u2014 the same event to the same tag counts every conversion twice.`;
|
|
169
|
+
}
|
|
170
|
+
function pendingItem(target, nodeId, kind, sideEffectId) {
|
|
171
|
+
return {
|
|
172
|
+
target,
|
|
173
|
+
nodeId,
|
|
174
|
+
kind,
|
|
175
|
+
status: `${kind} \u2014 not configured`,
|
|
176
|
+
needsInput: true,
|
|
177
|
+
...sideEffectId ? { sideEffectId } : {}
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function configureHints(slug, nodeId, id, type, needsCard) {
|
|
181
|
+
if (!needsCard) return [];
|
|
182
|
+
return [
|
|
183
|
+
`Configure it: ${requestFlowInputCall(slug, pendingItem("sideEffect", nodeId, type, id))}. Read the destination off that call's result.`
|
|
184
|
+
];
|
|
185
|
+
}
|
|
186
|
+
registerSchema({
|
|
187
|
+
command: "flows.add-side-effect",
|
|
188
|
+
description: "Add a side effect to a step with a valid skeleton \u2014 encryptedConfig:null for a CRM, a tagIds slot for a pixel, and no oauthProviderId key. Then set where it sends with `baker flows connect` (an email: --email/--subject, written by you); only a typed secret goes to request_flow_input.",
|
|
189
|
+
args: {
|
|
190
|
+
slug: { type: "positional", description: "Form slug", required: true },
|
|
191
|
+
node: { type: "string", description: "Id of the step that fires it", required: true },
|
|
192
|
+
type: { type: "string", description: "Side-effect type (see: baker flows schema side-effect)", required: true },
|
|
193
|
+
id: { type: "string", description: "Side-effect id. Defaults to se-{type}-{n}.", required: false },
|
|
194
|
+
trigger: {
|
|
195
|
+
type: "string",
|
|
196
|
+
description: "triggerId. Defaults to the moment the step named by --node completes, which is a different id per node type. Pass this only for a non-completion moment (a HubSpot form's onFormReady, a Calendly page view, one of several iframe events); an id the step never raises is refused.",
|
|
197
|
+
required: false
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
var addSideEffectCommand = defineCommand({
|
|
202
|
+
meta: {
|
|
203
|
+
name: "add-side-effect",
|
|
204
|
+
description: "Add a side effect to a step, with the skeleton its type requires. Example: baker flows add-side-effect contact --node <id> --type googleSpreadsheet"
|
|
205
|
+
},
|
|
206
|
+
args: {
|
|
207
|
+
slug: { type: "positional", description: "Form slug", required: true },
|
|
208
|
+
node: { type: "string", description: "Id of the step that fires it", required: true },
|
|
209
|
+
type: { type: "string", description: "Side-effect type", required: true },
|
|
210
|
+
id: { type: "string", description: "Side-effect id (default se-{type}-{n})" },
|
|
211
|
+
trigger: {
|
|
212
|
+
type: "string",
|
|
213
|
+
description: "triggerId, for a non-completion moment. Default: whatever the step named by --node raises"
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
run: ({ args }) => {
|
|
217
|
+
const slug = String(args.slug);
|
|
218
|
+
const type = String(args.type);
|
|
219
|
+
const entry = flowCatalogEntry("side-effect", type) ?? unknownType("side-effect", type);
|
|
220
|
+
const tree = readFlowTree(slug);
|
|
221
|
+
const nodes = walkNodes(tree);
|
|
222
|
+
const node = nodes.find((candidate) => candidate.id === String(args.node));
|
|
223
|
+
if (!node) {
|
|
224
|
+
writeJson({
|
|
225
|
+
ok: false,
|
|
226
|
+
error: {
|
|
227
|
+
code: "NOT_FOUND",
|
|
228
|
+
message: `No node with id "${args.node}" in "${slug}".`,
|
|
229
|
+
fix: `Nodes in this form: ${nodes.map((candidate) => `${candidate.id} (${candidate.name})`).join(", ")}`
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
process.exit(1);
|
|
233
|
+
}
|
|
234
|
+
if (!Array.isArray(node.sideEffects)) node.sideEffects = [];
|
|
235
|
+
const existing = node.sideEffects;
|
|
236
|
+
const takenIds = new Set(
|
|
237
|
+
nodes.flatMap((n) => (n.sideEffects ?? []).map((se) => String(se?.id ?? "")))
|
|
238
|
+
);
|
|
239
|
+
const id = args.id ? String(args.id) : freeSideEffectId(type, takenIds);
|
|
240
|
+
if (takenIds.has(id)) {
|
|
241
|
+
writeJson({
|
|
242
|
+
ok: false,
|
|
243
|
+
error: {
|
|
244
|
+
code: "VALIDATION_ERROR",
|
|
245
|
+
message: `"${slug}" already has a side effect with id "${id}".`,
|
|
246
|
+
fix: `Drop --id to be given a free one (${freeSideEffectId(type, takenIds)}), or pick another.`
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
process.exit(1);
|
|
250
|
+
}
|
|
251
|
+
const trigger = resolveTrigger(node, args.trigger ? String(args.trigger) : void 0);
|
|
252
|
+
if (!trigger.ok) {
|
|
253
|
+
writeJson({
|
|
254
|
+
ok: false,
|
|
255
|
+
error: { code: "VALIDATION_ERROR", message: trigger.message, ...trigger.fix ? { fix: trigger.fix } : {} }
|
|
256
|
+
});
|
|
257
|
+
process.exit(1);
|
|
258
|
+
}
|
|
259
|
+
const triggerId = trigger.triggerId;
|
|
260
|
+
const secondPixel = secondPixelHint(node, type, triggerId);
|
|
261
|
+
const sideEffect = concrete(entry.skeleton, { id, triggerId });
|
|
262
|
+
existing.push(sideEffect);
|
|
263
|
+
writeFlowTree(slug, tree);
|
|
264
|
+
const needsUser = Object.entries(entry.owners ?? {}).filter(([, owner]) => owner !== "agent");
|
|
265
|
+
writeJson({
|
|
266
|
+
ok: true,
|
|
267
|
+
data: { slug, nodeId: node.id, sideEffectId: id, type, triggerId, path: flowDataPath(slug) },
|
|
268
|
+
hints: [
|
|
269
|
+
`Fires on \`${triggerId}\` \u2014 the moment "${String(node.name ?? node.id)}" raises. A side effect only runs when its triggerId is the one its own step raises, so this is set from the step, never from the side-effect type.`,
|
|
270
|
+
// A pixel side effect is the thing most often mistaken for "setting the
|
|
271
|
+
// conversion". It tells the ad platform; it tells Baker nothing, and a
|
|
272
|
+
// Form can fire every pixel it has while every Baker report says it
|
|
273
|
+
// converted nobody.
|
|
274
|
+
...needsUser.some(([, owner]) => owner === "tags") ? [
|
|
275
|
+
`This reports the conversion to ${type}. It does NOT make Baker count anything: what Baker counts is a named event, set with \`baker analytics conversions --flow ${slug}\`. Do both \u2014 they are two different systems asked the same question.`
|
|
276
|
+
] : [],
|
|
277
|
+
...secondPixel ? [secondPixel] : [],
|
|
278
|
+
...configureHints(
|
|
279
|
+
slug,
|
|
280
|
+
String(node.id),
|
|
281
|
+
id,
|
|
282
|
+
type,
|
|
283
|
+
needsUser.some(([, owner]) => owner === "request_flow_input" || owner === "connect")
|
|
284
|
+
),
|
|
285
|
+
...needsUser.some(([, owner]) => owner === "tags") ? [
|
|
286
|
+
"Fill `tagIds` with a real ref from `baker tags list`, or stage the tag first with the `tags` skill. Never invent one."
|
|
287
|
+
] : [],
|
|
288
|
+
...entry.gotcha ? [entry.gotcha] : []
|
|
289
|
+
]
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
export {
|
|
294
|
+
addNodeCommand,
|
|
295
|
+
addSideEffectCommand,
|
|
296
|
+
freeSideEffectId,
|
|
297
|
+
resolveTrigger,
|
|
298
|
+
sameTrackingSideEffect,
|
|
299
|
+
secondPixelHint,
|
|
300
|
+
stepNameRefusal
|
|
301
|
+
};
|
|
302
|
+
//# sourceMappingURL=add-OZIORHYQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/flows/add.ts"],"sourcesContent":["/**\n * `add-node` and `add-side-effect`: emit a valid skeleton and splice it in.\n *\n * The point is not to save typing — it is that the skeleton is right. A node\n * needs a fresh UUID, an explicit `condition: null`, the correct `nodeData`\n * discriminator, and — for a widget — `form.external: null` rather than an\n * invented resource. A side effect needs `encryptedConfig: null` and no\n * `oauthProviderId` key at all. Every one of those is a rule the flow-builder\n * skill used to spend prose on, and each was a real defect when got wrong.\n *\n * Deliberately scoped to creating the skeleton. Copy, conditions, autofill and\n * the `ai` field stay hand-edited: they are judgement, and a flag-based API for\n * them would be worse than JSON.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { type FlowConfigStatus, flowCatalogEntry, flowCatalogTypes, flowNodeTriggers } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport {\n flowDataPath,\n isUsableStepNameKey,\n readFlowTree,\n requestFlowInputCall,\n stepNameKey,\n walkNodes,\n writeFlowTree,\n} from \"./shared.ts\";\n\ntype AnyRecord = Record<string, unknown>;\n\nfunction unknownType(kind: \"node\" | \"side-effect\", type: string): never {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `No ${kind} type \"${type}\".`,\n fix: `Known types: ${flowCatalogTypes(kind).join(\", \")}. See: baker flows schema ${kind}`,\n },\n });\n process.exit(1);\n}\n\n/** Replace the catalog's `<placeholder>` strings with real values where we have them. */\nfunction concrete(skeleton: AnyRecord, replacements: Record<string, unknown>): AnyRecord {\n return { ...structuredClone(skeleton), ...replacements };\n}\n\n/**\n * Whether this name can be a step in this form, and why not when it cannot.\n *\n * Both answers are about the same fact: the name becomes a constant in the\n * form's generated `_query.ts` (`export const <KEY> = \"<node id>\";`), and\n * `flow-typed.mjs` writes it without checking either that it parses or that no\n * other step already produced it. So both failures land on a generated file\n * rather than on the name that caused them — one as a syntax error, one as\n * `Duplicate flow node name` — and `_query.ts` stops regenerating for the whole\n * form. A name is minted once, here, which makes here the only cheap place to\n * say so.\n *\n * Returns `null` when the name is fine.\n */\nexport function stepNameRefusal(nodes: readonly AnyRecord[], name: string): { message: string; fix: string } | null {\n const key = stepNameKey(name);\n if (!isUsableStepNameKey(key)) {\n return {\n message: `\"${name}\" cannot be a step name: it becomes the constant \\`${key || \"(empty)\"}\\`, which is not a valid identifier.`,\n fix: 'A step name becomes `export const <NAME> = …` in the form\\'s generated code, so it must start with a letter and hold only letters, digits, spaces and dashes. Try \"Your Details\" rather than \"1. Your details\".',\n };\n }\n const clash = nodes.find((node) => typeof node.name === \"string\" && stepNameKey(node.name) === key);\n if (!clash) return null;\n return {\n message: `This form already has a step named \"${clash.name}\", which collides with \"${name}\".`,\n fix: `Both become the constant \\`${key}\\`, and the form's generated code cannot hold it twice. Pick a name that differs by more than case, spacing or punctuation.`,\n };\n}\n\nregisterSchema({\n command: \"flows.add-node\",\n description:\n \"Add a step to a form with a valid skeleton — fresh UUID, explicit condition, correct nodeData discriminator, and form.external:null for a widget. Author its copy and conditions afterwards by editing _data.json.\",\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n type: { type: \"string\", description: \"Node type (see: baker flows schema node)\", required: true },\n name: { type: \"string\", description: \"Step name — unique, Title Case\", required: true },\n parent: { type: \"string\", description: \"Parent node id. Omit to append to the root's children.\", required: false },\n },\n});\n\nexport const addNodeCommand = defineCommand({\n meta: {\n name: \"add-node\",\n description:\n 'Add a step to a form, with the skeleton its type requires. Example: baker flows add-node contact --type customForm --name \"Contact Info\"',\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n type: { type: \"string\", description: \"Node type\", required: true },\n name: { type: \"string\", description: \"Step name — unique, Title Case\", required: true },\n parent: { type: \"string\", description: \"Parent node id (default: the root)\" },\n },\n run: ({ args }) => {\n const slug = String(args.slug);\n const type = String(args.type);\n // Trimmed before anything reads it, because the generator does not trim:\n // ` Contact Info ` becomes the constant `_CONTACT_INFO_`, which is legal,\n // permanent, and not what anyone typed.\n const name = String(args.name).trim();\n const entry = flowCatalogEntry(\"node\", type) ?? unknownType(\"node\", type);\n\n const tree = readFlowTree(slug);\n const nodes = walkNodes(tree);\n\n const refusal = stepNameRefusal(nodes, name);\n if (refusal) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: refusal.message.replace(\"This form\", `\"${slug}\"`),\n fix: refusal.fix,\n },\n });\n process.exit(1);\n }\n\n const parent = args.parent ? nodes.find((node) => node.id === String(args.parent)) : tree;\n if (!parent) {\n writeJson({\n ok: false,\n error: {\n code: \"NOT_FOUND\",\n message: `No node with id \"${args.parent}\" in \"${slug}\".`,\n fix: `Nodes in this form: ${nodes.map((node) => `${node.id} (${node.name})`).join(\", \")}`,\n },\n });\n process.exit(1);\n }\n\n const node = concrete(entry.skeleton, { id: randomUUID(), name });\n if (!Array.isArray(parent.children)) parent.children = [];\n (parent.children as AnyRecord[]).push(node);\n writeFlowTree(slug, tree);\n\n writeJson({\n ok: true,\n data: { slug, nodeId: node.id, type, parentId: parent.id ?? null, path: flowDataPath(slug) },\n hints: [\n `Now fill in this step's \\`ai\\` field and its copy by editing ${flowDataPath(slug)}.`,\n // Said on every step added, because the moment a Form's shape changes\n // is the moment its outcome can move — and a Form nobody named an\n // outcome for reports zero conversions rather than an error.\n `Say what this Form counts before you finish: \\`baker analytics conversions --flow ${slug}\\` lists every ending already spelled as an event key, including this step's. Nothing in _data.json decides it.`,\n ...(entry.owners?.[\"nodeData.form.external\"] === \"request_flow_input\"\n ? [\n `Pick this ${type} step's resource: ${requestFlowInputCall(slug, pendingItem(\"node\", String(node.id), type))}.`,\n ]\n : []),\n ...(entry.gotcha ? [entry.gotcha] : []),\n ],\n });\n },\n});\n\n/**\n * The `triggerId` a side effect on this step has to carry.\n *\n * This is the one field on a side effect that is decided by its STEP rather\n * than by its own type, and getting it wrong is silent in every direction:\n * `fireSideEffects` filters on `triggerId` equality, so a mismatch means the\n * side effect never runs — no error, no log, nothing half-written. Every\n * validator in the repo passes, because the file is valid; it just does nothing.\n *\n * Taking the skeleton's default was that failure. `SIDE_EFFECT_ENVELOPE` carries\n * `customForm.onFormSubmitted`, which is right for a `customForm` step and wrong\n * for the five widget types that raise an id of their own — so the command that\n * exists to emit a skeleton the agent cannot get wrong emitted a dead side\n * effect on any booking or embedded-form step.\n */\nexport type TriggerChoice = { ok: true; triggerId: string } | { ok: false; message: string; fix: string };\n\nexport function resolveTrigger(node: AnyRecord, requested: string | undefined): TriggerChoice {\n const triggers = flowNodeTriggers(node.nodeData);\n const where = `Step \"${String(node.name ?? node.id)}\"${triggers.type ? ` (a ${triggers.type} step)` : \"\"}`;\n const raises = triggers.available.length > 0 ? `It raises: ${triggers.available.join(\", \")}.` : (triggers.why ?? \"\");\n const no = (message: string, fix: string): TriggerChoice => ({ ok: false, message, fix });\n\n // A node type the table does not cover is a table that has fallen behind, not\n // a form that is wrong — so an explicit trigger is taken at its word there.\n // Refusing instead would let a stale table reject a form the engine handles.\n if (!triggers.known) {\n return requested\n ? { ok: true, triggerId: requested }\n : no(`${where} is not a node type this command knows, so --trigger is required.`, triggers.why ?? \"\");\n }\n\n if (requested) {\n return triggers.available.includes(requested)\n ? { ok: true, triggerId: requested }\n : no(\n `${where} never raises \\`${requested}\\`, so a side effect carrying it would be written, pass every check, and never run.`,\n raises,\n );\n }\n\n return triggers.completion\n ? { ok: true, triggerId: triggers.completion }\n : no(`${where} has no trigger a side effect can answer.`, raises);\n}\n\n/**\n * The first `se-{type}-{n}` nobody is using.\n *\n * Counting the same-type side effects instead was wrong whenever the numbering\n * had a gap — a form holding `se-hubspotForm-1` and `se-hubspotForm-3`, or one\n * where `se-meta-1` was deleted and `se-meta-2` left behind. The count then\n * names an id that already exists and the command refuses, which is the one\n * outcome a skeleton-minting command should never produce for a form it can see\n * in full.\n */\nexport function freeSideEffectId(type: string, taken: ReadonlySet<string>): string {\n for (let n = 1; ; n++) {\n const candidate = `se-${type}-${n}`;\n if (!taken.has(candidate)) return candidate;\n }\n}\n\n/**\n * The pixel already reporting this step's moment to the same platform, if any.\n *\n * Only pixel types (those fed a tag ref) can double-count: two emails or two\n * CRMs on one step are a real need.\n */\nexport function sameTrackingSideEffect(node: AnyRecord, type: string, triggerId: string): AnyRecord | null {\n if (flowCatalogEntry(\"side-effect\", type)?.owners?.tagIds !== \"tags\") return null;\n const effects = Array.isArray(node.sideEffects) ? (node.sideEffects as unknown[]) : [];\n for (const raw of effects) {\n const effect = raw as AnyRecord | null;\n if (effect?.type === type && effect.triggerId === triggerId) return effect;\n }\n return null;\n}\n\n/**\n * What a second pixel of one platform on one moment must not repeat.\n *\n * Two chats each wired GA4 `generate_lead` onto one submit and every lead\n * counted twice — but GA4 `sign_up` beside it is a second conversion, and the\n * skeleton added here has no event yet. So this warns instead of refusing;\n * the same event to the same tag is refused by the Form check at verify.\n */\nexport function secondPixelHint(node: AnyRecord, type: string, triggerId: string): string | null {\n const already = sameTrackingSideEffect(node, type, triggerId);\n if (!already) return null;\n const event = typeof already.eventName === \"string\" ? ` with event \"${already.eventName}\"` : \"\";\n return `\"${String(node.name ?? node.id)}\" already reports \\`${triggerId}\\` to ${type} as \"${String(already.id)}\"${event}. Give this one a different event; to change that conversion, edit \"${String(already.id)}\" and delete this one — the same event to the same tag counts every conversion twice.`;\n}\n\n/** The one row `requestFlowInputCall` needs, for an item this command just added unconfigured. */\nfunction pendingItem(\n target: \"node\" | \"sideEffect\",\n nodeId: string,\n kind: string,\n sideEffectId?: string,\n): FlowConfigStatus {\n return {\n target,\n nodeId,\n kind,\n status: `${kind} — not configured`,\n needsInput: true,\n ...(sideEffectId ? { sideEffectId } : {}),\n };\n}\n\nfunction configureHints(slug: string, nodeId: string, id: string, type: string, needsCard: boolean): string[] {\n if (!needsCard) return [];\n return [\n `Configure it: ${requestFlowInputCall(slug, pendingItem(\"sideEffect\", nodeId, type, id))}. Read the destination off that call's result.`,\n ];\n}\n\nregisterSchema({\n command: \"flows.add-side-effect\",\n description:\n \"Add a side effect to a step with a valid skeleton — encryptedConfig:null for a CRM, a tagIds slot for a pixel, and no oauthProviderId key. Then set where it sends with `baker flows connect` (an email: --email/--subject, written by you); only a typed secret goes to request_flow_input.\",\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Id of the step that fires it\", required: true },\n type: { type: \"string\", description: \"Side-effect type (see: baker flows schema side-effect)\", required: true },\n id: { type: \"string\", description: \"Side-effect id. Defaults to se-{type}-{n}.\", required: false },\n trigger: {\n type: \"string\",\n description:\n \"triggerId. Defaults to the moment the step named by --node completes, which is a different id per node type. Pass this only for a non-completion moment (a HubSpot form's onFormReady, a Calendly page view, one of several iframe events); an id the step never raises is refused.\",\n required: false,\n },\n },\n});\n\nexport const addSideEffectCommand = defineCommand({\n meta: {\n name: \"add-side-effect\",\n description:\n \"Add a side effect to a step, with the skeleton its type requires. Example: baker flows add-side-effect contact --node <id> --type googleSpreadsheet\",\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Id of the step that fires it\", required: true },\n type: { type: \"string\", description: \"Side-effect type\", required: true },\n id: { type: \"string\", description: \"Side-effect id (default se-{type}-{n})\" },\n trigger: {\n type: \"string\",\n description: \"triggerId, for a non-completion moment. Default: whatever the step named by --node raises\",\n },\n },\n run: ({ args }) => {\n const slug = String(args.slug);\n const type = String(args.type);\n const entry = flowCatalogEntry(\"side-effect\", type) ?? unknownType(\"side-effect\", type);\n\n const tree = readFlowTree(slug);\n const nodes = walkNodes(tree);\n const node = nodes.find((candidate) => candidate.id === String(args.node));\n if (!node) {\n writeJson({\n ok: false,\n error: {\n code: \"NOT_FOUND\",\n message: `No node with id \"${args.node}\" in \"${slug}\".`,\n fix: `Nodes in this form: ${nodes.map((candidate) => `${candidate.id} (${candidate.name})`).join(\", \")}`,\n },\n });\n process.exit(1);\n }\n\n if (!Array.isArray(node.sideEffects)) node.sideEffects = [];\n const existing = node.sideEffects as AnyRecord[];\n const takenIds = new Set(\n nodes.flatMap((n) => ((n.sideEffects as AnyRecord[] | undefined) ?? []).map((se) => String(se?.id ?? \"\"))),\n );\n const id = args.id ? String(args.id) : freeSideEffectId(type, takenIds);\n\n // Only an id the caller chose can still collide — the generated one is free\n // by construction.\n if (takenIds.has(id)) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `\"${slug}\" already has a side effect with id \"${id}\".`,\n fix: `Drop --id to be given a free one (${freeSideEffectId(type, takenIds)}), or pick another.`,\n },\n });\n process.exit(1);\n }\n\n const trigger = resolveTrigger(node, args.trigger ? String(args.trigger) : undefined);\n if (!trigger.ok) {\n writeJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: trigger.message, ...(trigger.fix ? { fix: trigger.fix } : {}) },\n });\n process.exit(1);\n }\n const triggerId = trigger.triggerId;\n\n const secondPixel = secondPixelHint(node, type, triggerId);\n\n const sideEffect = concrete(entry.skeleton, { id, triggerId });\n existing.push(sideEffect);\n writeFlowTree(slug, tree);\n\n const needsUser = Object.entries(entry.owners ?? {}).filter(([, owner]) => owner !== \"agent\");\n writeJson({\n ok: true,\n data: { slug, nodeId: node.id, sideEffectId: id, type, triggerId, path: flowDataPath(slug) },\n hints: [\n `Fires on \\`${triggerId}\\` — the moment \"${String(node.name ?? node.id)}\" raises. A side effect only runs when its triggerId is the one its own step raises, so this is set from the step, never from the side-effect type.`,\n // A pixel side effect is the thing most often mistaken for \"setting the\n // conversion\". It tells the ad platform; it tells Baker nothing, and a\n // Form can fire every pixel it has while every Baker report says it\n // converted nobody.\n ...(needsUser.some(([, owner]) => owner === \"tags\")\n ? [\n `This reports the conversion to ${type}. It does NOT make Baker count anything: what Baker counts is a named event, set with \\`baker analytics conversions --flow ${slug}\\`. Do both — they are two different systems asked the same question.`,\n ]\n : []),\n ...(secondPixel ? [secondPixel] : []),\n ...configureHints(\n slug,\n String(node.id),\n id,\n type,\n needsUser.some(([, owner]) => owner === \"request_flow_input\" || owner === \"connect\"),\n ),\n ...(needsUser.some(([, owner]) => owner === \"tags\")\n ? [\n \"Fill `tagIds` with a real ref from `baker tags list`, or stage the tag first with the `tags` skill. Never invent one.\",\n ]\n : []),\n ...(entry.gotcha ? [entry.gotcha] : []),\n ],\n });\n },\n});\n"],"mappings":"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","names":["node"]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PLATFORM_NAMES,
|
|
3
|
+
reportError,
|
|
4
|
+
splitList
|
|
5
|
+
} from "./chunk-G3KO2HFZ.js";
|
|
6
|
+
import {
|
|
7
|
+
apiPost
|
|
8
|
+
} from "./chunk-KB5XJHQX.js";
|
|
9
|
+
import "./chunk-YONSWWCF.js";
|
|
10
|
+
import "./chunk-QXDEZKAR.js";
|
|
11
|
+
import {
|
|
12
|
+
BRAND_ACCOUNTS_MAX,
|
|
13
|
+
registerSchema,
|
|
14
|
+
writeJson
|
|
15
|
+
} from "./chunk-4DM6OAQ6.js";
|
|
16
|
+
import "./chunk-YQSBHWOI.js";
|
|
17
|
+
|
|
18
|
+
// src/commands/winning-ads/add-accounts.ts
|
|
19
|
+
import { defineCommand } from "citty";
|
|
20
|
+
var ADD_TIMEOUT_MS = 12e4;
|
|
21
|
+
var named = (accounts) => accounts.map((a) => `${a.name} (${PLATFORM_NAMES[a.platform]})`).join(", ");
|
|
22
|
+
function addAccountsHints(data) {
|
|
23
|
+
const hints = [];
|
|
24
|
+
if (data.added.length > 0) {
|
|
25
|
+
hints.push(
|
|
26
|
+
`Now tracking ${named(data.added)} \u2014 its ads arrive over the next minutes; check \`baker winning-ads following\`.`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
if (data.already_tracked.length > 0) {
|
|
30
|
+
hints.push(`Already tracked under this brand: ${named(data.already_tracked)}.`);
|
|
31
|
+
}
|
|
32
|
+
for (const failure of data.failed) {
|
|
33
|
+
hints.push(`Not added: "${failure.input}" \u2014 ${failure.error}`);
|
|
34
|
+
}
|
|
35
|
+
return hints;
|
|
36
|
+
}
|
|
37
|
+
registerSchema({
|
|
38
|
+
command: "winning-ads.add-accounts",
|
|
39
|
+
description: "Track more accounts under a brand you already follow \u2014 another country's or language's Facebook page, a second LinkedIn company, another Google Ads entity. Pass the brand's advertiser id and one or more links (comma-separated): profile or ad-library links, Google advertiser ids (AR\u2026), or a website. `follow` returns ready-made calls for the look-alike accounts it found.",
|
|
40
|
+
args: {
|
|
41
|
+
advertiser: { type: "string", description: "Advertiser id of a followed brand (from `following`)", required: true },
|
|
42
|
+
inputs: {
|
|
43
|
+
type: "string",
|
|
44
|
+
description: `Comma-separated links, advertiser ids or websites \u2014 up to ${BRAND_ACCOUNTS_MAX}`,
|
|
45
|
+
required: true
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
var addAccountsCommand = defineCommand({
|
|
50
|
+
meta: {
|
|
51
|
+
name: "add-accounts",
|
|
52
|
+
description: `Add more of a followed brand's accounts (another market's Facebook page, a second LinkedIn company). Example: baker winning-ads add-accounts adv_123 "https://www.facebook.com/barkibu.it,AR01614014350098432001"`
|
|
53
|
+
},
|
|
54
|
+
args: {
|
|
55
|
+
advertiser: { type: "positional", description: "Advertiser id of a followed brand", required: true },
|
|
56
|
+
inputs: {
|
|
57
|
+
type: "positional",
|
|
58
|
+
description: "Comma-separated links, advertiser ids or websites",
|
|
59
|
+
required: true
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
run: async ({ args }) => {
|
|
63
|
+
try {
|
|
64
|
+
const inputs = [...new Set(splitList(String(args.inputs ?? "")))];
|
|
65
|
+
if (inputs.length === 0 || inputs.length > BRAND_ACCOUNTS_MAX) {
|
|
66
|
+
writeJson({
|
|
67
|
+
ok: false,
|
|
68
|
+
error: {
|
|
69
|
+
code: "VALIDATION_ERROR",
|
|
70
|
+
message: `Pass between 1 and ${BRAND_ACCOUNTS_MAX} comma-separated links.`
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
const data = await apiPost(
|
|
76
|
+
"/api/ad-library/accounts/add",
|
|
77
|
+
{ advertiser_id: String(args.advertiser), inputs },
|
|
78
|
+
{ timeoutMs: ADD_TIMEOUT_MS }
|
|
79
|
+
);
|
|
80
|
+
const hints = addAccountsHints(data);
|
|
81
|
+
writeJson({ ok: true, data, hints: hints.length > 0 ? hints : void 0 });
|
|
82
|
+
} catch (err) {
|
|
83
|
+
reportError(err);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
export {
|
|
88
|
+
addAccountsCommand,
|
|
89
|
+
addAccountsHints
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=add-accounts-M5Y4DQFM.js.map
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import {
|
|
2
|
+
adFieldPlan,
|
|
3
|
+
adRows
|
|
4
|
+
} from "./chunk-QTL4NJ5I.js";
|
|
5
|
+
import {
|
|
6
|
+
reportError
|
|
7
|
+
} from "./chunk-G3KO2HFZ.js";
|
|
8
|
+
import {
|
|
9
|
+
apiGet
|
|
10
|
+
} from "./chunk-KB5XJHQX.js";
|
|
11
|
+
import "./chunk-YONSWWCF.js";
|
|
12
|
+
import "./chunk-QXDEZKAR.js";
|
|
13
|
+
import {
|
|
14
|
+
advertiserAdsRequestSchema,
|
|
15
|
+
registerSchema,
|
|
16
|
+
winningAdNormalizer,
|
|
17
|
+
writeJson,
|
|
18
|
+
writeOutput
|
|
19
|
+
} from "./chunk-4DM6OAQ6.js";
|
|
20
|
+
import "./chunk-YQSBHWOI.js";
|
|
21
|
+
|
|
22
|
+
// src/commands/winning-ads/ads.ts
|
|
23
|
+
import { defineCommand } from "citty";
|
|
24
|
+
registerSchema({
|
|
25
|
+
command: "winning-ads.ads",
|
|
26
|
+
description: "Every ad one advertiser has run (one row per distinct ad, strongest first), on every platform or one, running, stopped or both, of every format or the ones in --format (`--platform google --format text`: its Google search ads). The brand page's All ads; `winners` is its top winners. Pages with --offset; `next_offset` is null on the last page. Rows are compact; --fields ad_id,summary,days_active,active keeps a long listing small.",
|
|
27
|
+
args: {
|
|
28
|
+
advertiser: { type: "string", description: "Advertiser id (from `advertisers` or `following`)", required: true },
|
|
29
|
+
platform: { type: "string", description: "Only this platform: meta|linkedin|tiktok|google", required: false },
|
|
30
|
+
running: { type: "string", description: "all|running|stopped (default all)", required: false, default: "all" },
|
|
31
|
+
format: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Comma list: video,static,carousel,text (text = Google search ads); every format when omitted",
|
|
34
|
+
required: false
|
|
35
|
+
},
|
|
36
|
+
limit: { type: "number", description: "Ads per page 1-100 (default 24)", required: false, default: 24 },
|
|
37
|
+
offset: { type: "number", description: "Skip this many ads (from `next_offset`)", required: false, default: 0 },
|
|
38
|
+
full: { type: "boolean", description: "Include DNA detail + longevity", required: false, default: false }
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
function nextOffset(page, offset) {
|
|
42
|
+
const reached = offset + page.returned;
|
|
43
|
+
if (page.returned === 0) return null;
|
|
44
|
+
if (page.total === null) return page.returned === page.limit ? reached : null;
|
|
45
|
+
return reached < page.total ? reached : null;
|
|
46
|
+
}
|
|
47
|
+
function adsHints(request, returned, next) {
|
|
48
|
+
if (next !== null) return [`More ads: run again with --offset ${next}.`];
|
|
49
|
+
if (returned === 0 && request.offset === 0 && request.running === "running") {
|
|
50
|
+
return [
|
|
51
|
+
`No ad counts as running unless the brand was checked in the last 35 days: read last_checked_at in \`baker winning-ads profile ${request.id}\` before saying it runs nothing.`
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
var adsCommand = defineCommand({
|
|
57
|
+
meta: {
|
|
58
|
+
name: "ads",
|
|
59
|
+
description: "Every ad an advertiser has run, per platform and format or all together. Example: baker winning-ads ads adv_123 --platform google --format text --running running --output md"
|
|
60
|
+
},
|
|
61
|
+
args: {
|
|
62
|
+
advertiser: { type: "positional", description: "Advertiser id", required: true },
|
|
63
|
+
platform: { type: "string", description: "Only this platform: meta|linkedin|tiktok|google", required: false },
|
|
64
|
+
running: { type: "string", description: "all|running|stopped (default all)", required: false },
|
|
65
|
+
format: { type: "string", description: "Comma list: video,static,carousel,text", required: false },
|
|
66
|
+
limit: { type: "string", description: "Ads per page 1-100 (default 24)", required: false },
|
|
67
|
+
offset: { type: "string", description: "Skip this many ads (from next_offset)", required: false },
|
|
68
|
+
output: { type: "string", description: "Output format: json|files|md", required: false, default: "json" },
|
|
69
|
+
fields: { type: "string", description: "Comma-separated field names to include", required: false },
|
|
70
|
+
full: { type: "boolean", description: "Include DNA detail + longevity", required: false, default: false }
|
|
71
|
+
},
|
|
72
|
+
run: async ({ args }) => {
|
|
73
|
+
try {
|
|
74
|
+
const parsed = advertiserAdsRequestSchema.safeParse({
|
|
75
|
+
id: String(args.advertiser),
|
|
76
|
+
platform: args.platform || void 0,
|
|
77
|
+
running: args.running || void 0,
|
|
78
|
+
format: args.format || void 0,
|
|
79
|
+
limit: args.limit || void 0,
|
|
80
|
+
offset: args.offset || void 0
|
|
81
|
+
});
|
|
82
|
+
if (!parsed.success) {
|
|
83
|
+
const issue = parsed.error.issues[0];
|
|
84
|
+
writeJson({
|
|
85
|
+
ok: false,
|
|
86
|
+
error: { code: "BAD_REQUEST", message: `--${issue?.path.join(".") ?? "args"}: ${issue?.message}` }
|
|
87
|
+
});
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
const request = parsed.data;
|
|
91
|
+
const params = {
|
|
92
|
+
id: request.id,
|
|
93
|
+
running: request.running,
|
|
94
|
+
limit: String(request.limit),
|
|
95
|
+
offset: String(request.offset)
|
|
96
|
+
};
|
|
97
|
+
if (request.platform) params.platform = request.platform;
|
|
98
|
+
if (request.format) params.format = request.format.join(",");
|
|
99
|
+
const data = await apiGet("/api/ad-library/advertiser-ads", params);
|
|
100
|
+
const plan = adFieldPlan(args.fields, args.full);
|
|
101
|
+
const next = nextOffset({ returned: data.ads.length, total: data.total, limit: request.limit }, request.offset);
|
|
102
|
+
const hints = adsHints(request, data.ads.length, next);
|
|
103
|
+
const output = args.output || "json";
|
|
104
|
+
if (output === "json") {
|
|
105
|
+
writeJson({
|
|
106
|
+
ok: true,
|
|
107
|
+
data: {
|
|
108
|
+
advertiser_id: data.advertiser_id,
|
|
109
|
+
total: data.total,
|
|
110
|
+
next_offset: next,
|
|
111
|
+
ads: adRows(data.ads, plan)
|
|
112
|
+
},
|
|
113
|
+
...hints.length > 0 ? { hints } : {}
|
|
114
|
+
});
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
writeOutput({ ok: true, data: data.ads }, output, plan.fields, plan.full, winningAdNormalizer);
|
|
118
|
+
} catch (err) {
|
|
119
|
+
reportError(err);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
export {
|
|
124
|
+
adsCommand,
|
|
125
|
+
adsHints,
|
|
126
|
+
nextOffset
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=ads-DB5NDHX5.js.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import "./chunk-YQSBHWOI.js";
|
|
2
|
+
|
|
3
|
+
// src/commands/ads/index.ts
|
|
4
|
+
import { defineCommand } from "citty";
|
|
5
|
+
var adsCommand = defineCommand({
|
|
6
|
+
meta: {
|
|
7
|
+
name: "ads",
|
|
8
|
+
description: `Ad platform commands. Each platform exposes its own native command surface \u2014 no forced parity.
|
|
9
|
+
|
|
10
|
+
Platforms:
|
|
11
|
+
google \u2014 Google Ads (GAQL queries, keywords, accounts, ad library)
|
|
12
|
+
meta \u2014 Meta Ads (campaigns, adsets, ads, insights, previews)
|
|
13
|
+
linkedin \u2014 LinkedIn Ads (firmographic analytics \u2014 job-title \xD7 company \xD7 industry \xD7 seniority pivots)
|
|
14
|
+
x \u2014 X (Twitter) Ads (campaigns, line items, promoted tweets, analytics)
|
|
15
|
+
chatgpt \u2014 ChatGPT Ads (account, campaigns, ad groups, ads, insights \u2014 read-only)
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
baker ads google accounts
|
|
19
|
+
baker ads google query --preset campaign-performance --customer-id 1234567890
|
|
20
|
+
baker ads meta accounts
|
|
21
|
+
baker ads meta campaigns --account-id act_123 --effective-status ACTIVE
|
|
22
|
+
baker ads meta insights --object act_123 --level ad --date-preset last_7d --fields impressions,spend,ctr
|
|
23
|
+
baker ads linkedin accounts
|
|
24
|
+
baker ads x accounts
|
|
25
|
+
baker ads x stats sync --preset campaign-engagement-7d --entity-ids abc,def
|
|
26
|
+
baker ads chatgpt insights --days 30 --granularity daily
|
|
27
|
+
Full guides: __tooling__/docs/tools/baker/ads-<platform>.md (google|meta|linkedin|x|chatgpt)`
|
|
28
|
+
},
|
|
29
|
+
subCommands: {
|
|
30
|
+
google: () => import("./google-MY45TUC4.js").then((m) => m.googleCommand),
|
|
31
|
+
meta: () => import("./meta-37L6QBOZ.js").then((m) => m.metaCommand),
|
|
32
|
+
linkedin: () => import("./linkedin-MIEUUP4J.js").then((m) => m.linkedinCommand),
|
|
33
|
+
x: () => import("./x-V7V47E4N.js").then((m) => m.xCommand),
|
|
34
|
+
chatgpt: () => import("./chatgpt-O64OJE6R.js").then((m) => m.chatgptCommand)
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
export {
|
|
38
|
+
adsCommand
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=ads-NDV3GOIW.js.map
|