@koda-sl/baker-cli 0.562.0 → 0.563.0-dev.25ca3cbc8
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 +1 -0
- package/dist/account-LFNHGUZP.js +82 -0
- package/dist/account-T2VKQW3R.js +82 -0
- package/dist/account-reads-XCXI4CXM.js +219 -0
- package/dist/account-users-HMFGFXG7.js +64 -0
- package/dist/account-writes-C5MSNEUU.js +68 -0
- package/dist/accounts-G5YAT5HL.js +80 -0
- package/dist/accounts-J4J5KBTY.js +119 -0
- package/dist/accounts-ZKZL5KOP.js +701 -0
- package/dist/actions-OR5ZCMBR.js +55 -0
- package/dist/activecampaign-G7KHC3BD.js +938 -0
- package/dist/ad-group-writes-7RSQHSUX.js +172 -0
- package/dist/ad-groups-MMYXS6NY.js +70 -0
- package/dist/ad-writes-E5CXFXPG.js +176 -0
- package/dist/add-KJRZREFO.js +305 -0
- package/dist/add-LX45HJ2Y.js +107 -0
- package/dist/ads-UUAJAWAG.js +79 -0
- package/dist/ads-WVSMMTY3.js +48 -0
- package/dist/advertisers-P3JHMAQH.js +123 -0
- package/dist/analytics-HPIH6WGB.js +447 -0
- package/dist/analytics-OTN24OJF.js +2437 -0
- package/dist/animate-LG55AZNJ.js +480 -0
- package/dist/assign-BCJG4QMO.js +80 -0
- package/dist/audience-size-FH6SNC7M.js +76 -0
- package/dist/audiences-CO4QVQGF.js +280 -0
- package/dist/audit-LKPZ2XPO.js +154 -0
- package/dist/autocomplete-CQSGHRMI.js +114 -0
- package/dist/avatars-B2MUQTUJ.js +38 -0
- package/dist/bid-pricing-EHPVGN4U.js +103 -0
- package/dist/brand-IETJLLMV.js +22 -0
- package/dist/brief-HSNY65DO.js +543 -0
- package/dist/campaign-groups-C3FKTALG.js +99 -0
- package/dist/campaign-writes-LKIROAJV.js +168 -0
- package/dist/campaign-writes-Y77J3SAI.js +176 -0
- package/dist/campaigns-57VQMODN.js +113 -0
- package/dist/campaigns-72BQQLVF.js +78 -0
- package/dist/campaigns-ICLQ4SRI.js +111 -0
- package/dist/canvas-F6E4U2U3.js +46 -0
- package/dist/capabilities-I5AO4SWW.js +147 -0
- package/dist/catalog-BQ7WEJ3T.js +66 -0
- package/dist/catalogs-TAX75WSS.js +130 -0
- package/dist/changes-M7KKGYFS.js +167 -0
- package/dist/chatgpt-K4HD6NNL.js +47 -0
- package/dist/chats-QLHOLSAC.js +449 -0
- package/dist/check-TT44PEH5.js +107 -0
- package/dist/chunk-2A4QXLYA.js +91 -0
- package/dist/chunk-2FMORF3B.js +638 -0
- package/dist/chunk-2H26UU5Y.js +167 -0
- package/dist/chunk-2RSUVSJU.js +98 -0
- package/dist/chunk-2UMQMFOA.js +685 -0
- package/dist/chunk-3AVFUHJI.js +224 -0
- package/dist/chunk-3U4DQRFG.js +5471 -0
- package/dist/chunk-43LDWE3R.js +66 -0
- package/dist/chunk-4JZ3NS43.js +3510 -0
- package/dist/chunk-6E5S477W.js +274 -0
- package/dist/chunk-6JM53JLR.js +150 -0
- package/dist/chunk-6U6YE5Z3.js +430 -0
- package/dist/chunk-6UNTNNQB.js +24026 -0
- package/dist/chunk-6UNTNNQB.js.map +1 -0
- package/dist/chunk-7XFVKPE5.js +4269 -0
- package/dist/chunk-7XFVKPE5.js.map +1 -0
- package/dist/chunk-A3MZX27M.js +8954 -0
- package/dist/chunk-AJFWK2DW.js +334 -0
- package/dist/chunk-B6NGBLOG.js +454 -0
- package/dist/chunk-BG25VWP6.js +191 -0
- package/dist/chunk-BJO7OAUA.js +930 -0
- package/dist/chunk-BRSEAVWZ.js +163 -0
- package/dist/chunk-DWA42GNM.js +131 -0
- package/dist/chunk-FHBMXLAF.js +2209 -0
- package/dist/chunk-FO5CVJ47.js +547 -0
- package/dist/chunk-FZJB77OK.js +1919 -0
- package/dist/chunk-GEGFJCAF.js +207 -0
- package/dist/chunk-GH6IU5BO.js +170 -0
- package/dist/chunk-GK2DUKJA.js +103 -0
- package/dist/chunk-HC6464KT.js +203 -0
- package/dist/chunk-HWDOKNJT.js +392 -0
- package/dist/chunk-I7UDOKXX.js +479 -0
- package/dist/chunk-IM4HHVY6.js +148 -0
- package/dist/chunk-IP6NHITS.js +285 -0
- package/dist/chunk-IR27GIFG.js +64 -0
- package/dist/chunk-IWNLW7ZC.js +139 -0
- package/dist/chunk-IZMSISEN.js +843 -0
- package/dist/chunk-J4LQ6GK5.js +1518 -0
- package/dist/chunk-J7IYLOPV.js +5368 -0
- package/dist/chunk-KFCN6DEX.js +89 -0
- package/dist/chunk-KHVZZTWD.js +46 -0
- package/dist/chunk-L3ITBLLD.js +197 -0
- package/dist/chunk-L4ATZPY2.js +76 -0
- package/dist/chunk-L6UWXOHS.js +26 -0
- package/dist/chunk-LEH6IUC4.js +399 -0
- package/dist/chunk-LQN7REMU.js +455 -0
- package/dist/chunk-LTUJKEAG.js +142 -0
- package/dist/chunk-M7LD4E6W.js +23 -0
- package/dist/chunk-OBOVOYJ5.js +1320 -0
- package/dist/chunk-OVNVYNVH.js +7861 -0
- package/dist/chunk-P4BFJOZD.js +225 -0
- package/dist/chunk-P54N2BRN.js +57 -0
- package/dist/chunk-P6SWLZGH.js +19 -0
- package/dist/chunk-PAJ4L26P.js +51 -0
- package/dist/chunk-PEZC3KZE.js +238 -0
- package/dist/chunk-PFIOOYZX.js +1246 -0
- package/dist/chunk-PFJHL4JS.js +604 -0
- package/dist/chunk-PI2XARDF.js +392 -0
- package/dist/chunk-PSMVR5UR.js +297 -0
- package/dist/chunk-RL4QUOVQ.js +91 -0
- package/dist/chunk-S5NSCPWH.js +249 -0
- package/dist/chunk-SROKJC6V.js +61 -0
- package/dist/chunk-SRR7XEI3.js +169 -0
- package/dist/chunk-SXNFXPAF.js +275 -0
- package/dist/chunk-TFF2G2WU.js +344 -0
- package/dist/chunk-TOQZ6WO2.js +709 -0
- package/dist/chunk-TTU7U3RU.js +156 -0
- package/dist/chunk-UL5LPRAC.js +1902 -0
- package/dist/chunk-UQA3ASVK.js +3187 -0
- package/dist/chunk-UQA3ASVK.js.map +1 -0
- package/dist/chunk-UT3VSNEM.js +494 -0
- package/dist/chunk-VFBNYBAA.js +63 -0
- package/dist/chunk-X2TCBD6H.js +783 -0
- package/dist/chunk-Y43COG3A.js +910 -0
- package/dist/chunk-ZXPFGNSJ.js +831 -0
- package/dist/claim-3KE5DZ75.js +200 -0
- package/dist/cli.js +35 -35
- package/dist/companies-JBZR5W56.js +198 -0
- package/dist/company-DQH4U7IH.js +308 -0
- package/dist/complete-YS4CTYPD.js +84 -0
- package/dist/connect-OG2URUXQ.js +45 -0
- package/dist/conversation-T5G2EOJ3.js +96 -0
- package/dist/conversion-report-4A4HJKZG.js +127 -0
- package/dist/conversion-upload-command-XREECG2M.js +439 -0
- package/dist/conversion-writes-T4ONKJTH.js +122 -0
- package/dist/conversions-336BIAR3.js +140 -0
- package/dist/conversions-EFPLZXN2.js +78 -0
- package/dist/create-D5XOJ7RZ.js +62 -0
- package/dist/create-JCPRS7JC.js +218 -0
- package/dist/create-YBXSCJSZ.js +135 -0
- package/dist/create-ZXEP5RKK.js +239 -0
- package/dist/creatives-PEGQCPXH.js +229 -0
- package/dist/creatives-YHVHL2JG.js +58 -0
- package/dist/credentials-DLN37Y53.js +290 -0
- package/dist/critique-BKPSE5TC.js +1451 -0
- package/dist/critique-FTD5HY3P.js +232 -0
- package/dist/crm-6VLBZP6R.js +229 -0
- package/dist/crm-CAHF5MFW.js +323 -0
- package/dist/currency-VHIIVTHK.js +88 -0
- package/dist/customers-3A72724B.js +65 -0
- package/dist/delete-AI6BTKRX.js +67 -0
- package/dist/delete-KRAI5WDX.js +69 -0
- package/dist/delete-OQJLGWSM.js +57 -0
- package/dist/demographics-YGRSGV33.js +141 -0
- package/dist/discard-E7NN7H5J.js +69 -0
- package/dist/discover-RASVEQYE.js +172 -0
- package/dist/domain-ROUKV26M.js +101 -0
- package/dist/download-2NSCKINN.js +172 -0
- package/dist/draft-DVKQV67R.js +557 -0
- package/dist/draft-FBXWPG6V.js +332 -0
- package/dist/draft-H2PICPFS.js +315 -0
- package/dist/draft-RQY63AJF.js +374 -0
- package/dist/draft-SQKEZUG5.js +220 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-EMTSSDXU.js +236 -0
- package/dist/extract-AZFZHNJF.js +143 -0
- package/dist/facets-6BAX2PIL.js +117 -0
- package/dist/feedback-BB6HQ2ZD.js +114 -0
- package/dist/feedback-GVW7I2YF.js +115 -0
- package/dist/feedback-record-JAYONJAV.js +269 -0
- package/dist/fetch-PSA6V3LZ.js +204 -0
- package/dist/find-UGFONLSD.js +144 -0
- package/dist/fit-XFIZNCRH.js +65 -0
- package/dist/flows-E6WI2ITC.js +250 -0
- package/dist/fonts-TWYK4FZH.js +39 -0
- package/dist/forecast-5ZGRXXSJ.js +121 -0
- package/dist/forecast-NVHOQXWR.js +169 -0
- package/dist/funnel-GKIFAU32.js +397 -0
- package/dist/ga4-YVKA3V4V.js +55 -0
- package/dist/generate-YZL4GGUY.js +263 -0
- package/dist/get-3TBQJ2J4.js +82 -0
- package/dist/get-GVQABBCB.js +62 -0
- package/dist/google-EG7YCO5C.js +3300 -0
- package/dist/google-VNEVAKGL.js +163 -0
- package/dist/google-ads-WXZHRP2N.js +198 -0
- package/dist/gsc-OJDMSP6H.js +30 -0
- package/dist/history-4Q6SPKOJ.js +69 -0
- package/dist/history-JECMIEEV.js +153 -0
- package/dist/history-XQUH5MKO.js +102 -0
- package/dist/hubspot-LJBJPAYJ.js +814 -0
- package/dist/icon-THWS5VPO.js +138 -0
- package/dist/ideas-PMRLNUWW.js +45 -0
- package/dist/images-F6PLQH5L.js +92 -0
- package/dist/ingest-F4MXHO2R.js +28 -0
- package/dist/ingest-JSCIUSTZ.js +131 -0
- package/dist/insights-HJ5MU3F4.js +132 -0
- package/dist/inspect-JRHB4MQ3.js +192 -0
- package/dist/inspiration-FPB3IB7X.js +53 -0
- package/dist/intent-XCNRLGQQ.js +95 -0
- package/dist/keyword-gap-J6RP6L25.js +130 -0
- package/dist/keyword-metrics-KUXAU25B.js +200 -0
- package/dist/keywords-for-site-DLDWLPYU.js +131 -0
- package/dist/landing-7EYVD2OI.js +28 -0
- package/dist/languages-6QDUHAFN.js +40 -0
- package/dist/leads-TRDLBJ4M.js +115 -0
- package/dist/learn-EVGUFBTE.js +207 -0
- package/dist/line-item-writes-KIRLIJ72.js +211 -0
- package/dist/line-items-4PFGOI3Q.js +107 -0
- package/dist/link-WIAE43ZD.js +67 -0
- package/dist/linkedin-E4REUEOL.js +1344 -0
- package/dist/linkedin-person-6JRV6UNR.js +139 -0
- package/dist/list-6IRAZFIF.js +67 -0
- package/dist/list-Q6YLGEFQ.js +306 -0
- package/dist/list-ZVEIKL24.js +154 -0
- package/dist/locations-3JFYNQGD.js +40 -0
- package/dist/locations-SKK6AUKD.js +69 -0
- package/dist/log-OB7VG6JH.js +95 -0
- package/dist/logo-ZSSR66WS.js +19 -0
- package/dist/make-RKKZFUVC.js +1367 -0
- package/dist/map-362DNLE4.js +436 -0
- package/dist/mcp-TI35F2P2.js +729 -0
- package/dist/media-sources-UL6B4634.js +35 -0
- package/dist/members-CK6GCEGZ.js +47 -0
- package/dist/meta-5TRG7RTQ.js +124 -0
- package/dist/meta-5TRG7RTQ.js.map +1 -0
- package/dist/metrics-SNUZTO3L.js +152 -0
- package/dist/models-A3AUZRAF.js +155 -0
- package/dist/normalize-IQZHY7RU.js +144 -0
- package/dist/options-7FYTYB7F.js +125 -0
- package/dist/organization-NNHIEOC6.js +949 -0
- package/dist/performance-3A5IXPQA.js +5565 -0
- package/dist/performance-C3DWVGHX.js +27 -0
- package/dist/pixels-O2XIQOU2.js +62 -0
- package/dist/posts-F327IP23.js +36 -0
- package/dist/preview-365IBP2N.js +101 -0
- package/dist/promoted-tweet-writes-IKCEXJUP.js +183 -0
- package/dist/promoted-tweets-44KS4NSY.js +119 -0
- package/dist/publish-QZTFEV4L.js +350 -0
- package/dist/query-RWTMCFGF.js +62 -0
- package/dist/reddit-CN33MIDK.js +29 -0
- package/dist/refresh-QF2YUF2H.js +97 -0
- package/dist/release-IGEYKGDO.js +63 -0
- package/dist/relevant-pages-VD7CW2NE.js +99 -0
- package/dist/remove-PDDAHLXZ.js +53 -0
- package/dist/reopen-KED3LNLC.js +66 -0
- package/dist/rerun-5RZSACIO.js +97 -0
- package/dist/research-E5BDGW4F.js +265 -0
- package/dist/research-YENNSNDT.js +75 -0
- package/dist/reset-3NUBL7ZW.js +57 -0
- package/dist/reset-JZJH37IK.js +57 -0
- package/dist/resolve-IBJKPRXW.js +124 -0
- package/dist/retry-2EVDWOTU.js +63 -0
- package/dist/retry-UVVOQ3ZP.js +65 -0
- package/dist/revenue-OYGVWMWP.js +91 -0
- package/dist/rules-KLP3ACBB.js +99 -0
- package/dist/rules-add-TG5NUWCG.js +465 -0
- package/dist/run-MLBDKYCN.js +69 -0
- package/dist/run-YQEJT6CE.js +72 -0
- package/dist/scaffold-ad-OVKDFAT3.js +1513 -0
- package/dist/scaffold-static-ad-HCZDYPQT.js +1012 -0
- package/dist/scaffold-video-R7U5SU4W.js +885 -0
- package/dist/schedule-45S5XYUG.js +64 -0
- package/dist/scheduled-agents-3SBTUT27.js +55 -0
- package/dist/schema-M4PXJYXA.js +135 -0
- package/dist/search-B7CHHWJ2.js +177 -0
- package/dist/select-E2QVMBDU.js +110 -0
- package/dist/set-prompt-EL3BTDER.js +199 -0
- package/dist/setup-links-EVK7LFRN.js +144 -0
- package/dist/shopify-Z5MTB35H.js +4009 -0
- package/dist/site-2ZQVEKAK.js +180 -0
- package/dist/sources-AXVQQUVX.js +30 -0
- package/dist/sources-KGIJIBDT.js +457 -0
- package/dist/stale-3U7GH6H6.js +90 -0
- package/dist/status-2QCLEF3K.js +65 -0
- package/dist/stock-SJHR5PN7.js +212 -0
- package/dist/studio-3WGQA4SK.js +49 -0
- package/dist/sync-SLZTE4GN.js +57 -0
- package/dist/sync-definition-EGX27T7D.js +70 -0
- package/dist/tags-4OJPFYHD.js +23 -0
- package/dist/tags-N3VBTOL7.js +23 -0
- package/dist/tags-O6LWR6HA.js +26 -0
- package/dist/tags-R37YVLQ7.js +227 -0
- package/dist/tags-UT4GCC4R.js +23 -0
- package/dist/targeting-criteria-HLMSZJIH.js +113 -0
- package/dist/targets-B2IEEQAZ.js +106 -0
- package/dist/testimonials-556NQTPE.js +32 -0
- package/dist/themes-T3N7PSQS.js +95 -0
- package/dist/top-companies-3RXHHEHT.js +111 -0
- package/dist/transcript-FVDC57YN.js +165 -0
- package/dist/translate-L4WNSEGK.js +603 -0
- package/dist/triggers-7HUHRSR5.js +144 -0
- package/dist/unlink-YAZPQOHS.js +70 -0
- package/dist/unstage-S7DX2UNA.js +88 -0
- package/dist/update-7EK3QV4C.js +101 -0
- package/dist/update-CFKO67HM.js +192 -0
- package/dist/update-UCLITI3F.js +155 -0
- package/dist/update-ZJNAZOMG.js +66 -0
- package/dist/upload-GLNKFQYB.js +137 -0
- package/dist/url-options-RLFQVU7T.js +131 -0
- package/dist/url-params-GC73ACBR.js +101 -0
- package/dist/validate-7KONBGGV.js +125 -0
- package/dist/videos-3RLDBPN4.js +41 -0
- package/dist/videos-NITQKILV.js +146 -0
- package/dist/videos-NITQKILV.js.map +1 -0
- package/dist/viewer-check-4I7DP7LF.js +83 -0
- package/dist/web-GJEXXHSQ.js +173 -0
- package/dist/winning-ads-SVAER25L.js +86 -0
- package/dist/write-commands-QKATOYYS.js +1524 -0
- package/dist/x-WKFJMY24.js +47 -0
- package/package.json +1 -1
- package/dist/account-B77TBYMN.js +0 -82
- package/dist/account-U6DFMD2V.js +0 -82
- package/dist/account-reads-X35O4MCA.js +0 -219
- package/dist/account-users-UKKABT5U.js +0 -64
- package/dist/account-writes-QSJ74QFR.js +0 -68
- package/dist/accounts-HGCR3WFZ.js +0 -119
- package/dist/accounts-QYNZXW2E.js +0 -80
- package/dist/accounts-XL2TMLGE.js +0 -701
- package/dist/actions-CVTRCHPG.js +0 -55
- package/dist/activecampaign-UNNM6J7M.js +0 -938
- package/dist/ad-group-writes-QBHOPTT5.js +0 -172
- package/dist/ad-groups-JZDUFT6J.js +0 -70
- package/dist/ad-writes-QYJO4IB3.js +0 -176
- package/dist/add-3GOSW7LW.js +0 -107
- package/dist/add-DPCBGUA5.js +0 -305
- package/dist/ads-LDCZ65B5.js +0 -48
- package/dist/ads-UMSWEI5X.js +0 -79
- package/dist/advertisers-3D36UJTQ.js +0 -123
- package/dist/analytics-YHOXWFBI.js +0 -2437
- package/dist/analytics-ZPPZJETP.js +0 -447
- package/dist/animate-WS63CZ3Y.js +0 -480
- package/dist/assign-5P7OJBAH.js +0 -80
- package/dist/audience-size-PHFJ22TX.js +0 -76
- package/dist/audiences-RSAUXKHR.js +0 -280
- package/dist/audit-3GRXRDLR.js +0 -154
- package/dist/autocomplete-GQLXBG5V.js +0 -114
- package/dist/avatars-I73KFB3F.js +0 -38
- package/dist/bid-pricing-6MZ7SC72.js +0 -103
- package/dist/brand-OISTKMY4.js +0 -22
- package/dist/brief-MI4RLV4N.js +0 -543
- package/dist/campaign-groups-QZ2NW5AW.js +0 -99
- package/dist/campaign-writes-BGS53O4B.js +0 -168
- package/dist/campaign-writes-GKNH2EHV.js +0 -176
- package/dist/campaigns-7RV65SXR.js +0 -78
- package/dist/campaigns-FGIVPEVA.js +0 -113
- package/dist/campaigns-YBPXM6B3.js +0 -111
- package/dist/canvas-YTSJAEOF.js +0 -46
- package/dist/capabilities-YFXCTUJJ.js +0 -147
- package/dist/catalog-URTZYAPU.js +0 -66
- package/dist/catalogs-5LWEXG5X.js +0 -130
- package/dist/changes-6CL42LG3.js +0 -167
- package/dist/chatgpt-HLIQ7OJZ.js +0 -47
- package/dist/chats-D5W2UWD4.js +0 -449
- package/dist/check-FFMWUB72.js +0 -107
- package/dist/chunk-2DVFPCH3.js +0 -91
- package/dist/chunk-2VHYY4RU.js +0 -191
- package/dist/chunk-3FLSRUID.js +0 -344
- package/dist/chunk-4S5ZAG4S.js +0 -63
- package/dist/chunk-533R4P5O.js +0 -224
- package/dist/chunk-6I7GJDBX.js +0 -910
- package/dist/chunk-6QINKM6T.js +0 -46
- package/dist/chunk-6QNXBEIN.js +0 -207
- package/dist/chunk-72VH4FPY.js +0 -455
- package/dist/chunk-AHZIGJXD.js +0 -61
- package/dist/chunk-BVGRKVHL.js +0 -103
- package/dist/chunk-CHVLFACB.js +0 -91
- package/dist/chunk-D2GDHVZP.js +0 -51
- package/dist/chunk-DFDV42NY.js +0 -709
- package/dist/chunk-DLM5OSHM.js +0 -843
- package/dist/chunk-DWPOAU4Z.js +0 -5471
- package/dist/chunk-EJBLF2LI.js +0 -167
- package/dist/chunk-EOMY5SUJ.js +0 -783
- package/dist/chunk-F62BW6DJ.js +0 -139
- package/dist/chunk-FVDC6AKZ.js +0 -150
- package/dist/chunk-FXZGRP3F.js +0 -454
- package/dist/chunk-GQ4DMO5Q.js +0 -8954
- package/dist/chunk-GTYVWDCC.js +0 -392
- package/dist/chunk-GUH2A5R5.js +0 -66
- package/dist/chunk-GWLP45WQ.js +0 -1518
- package/dist/chunk-H3HA22Z3.js +0 -1919
- package/dist/chunk-HBRXFQQV.js +0 -3510
- package/dist/chunk-JAC6JVCI.js +0 -26
- package/dist/chunk-JTIWQLY5.js +0 -98
- package/dist/chunk-KDAINT54.js +0 -131
- package/dist/chunk-LAP23AND.js +0 -399
- package/dist/chunk-LFPBZL2X.js +0 -163
- package/dist/chunk-LWN3ZNZU.js +0 -57
- package/dist/chunk-MCJ5I5LR.js +0 -3187
- package/dist/chunk-MCJ5I5LR.js.map +0 -1
- package/dist/chunk-MSGIF4EC.js +0 -275
- package/dist/chunk-MSMTG6OC.js +0 -4269
- package/dist/chunk-MSMTG6OC.js.map +0 -1
- package/dist/chunk-MZPS46OR.js +0 -76
- package/dist/chunk-N34A56X7.js +0 -249
- package/dist/chunk-N472TRB4.js +0 -392
- package/dist/chunk-OAJ6LVL2.js +0 -430
- package/dist/chunk-OASXBRXQ.js +0 -24026
- package/dist/chunk-OASXBRXQ.js.map +0 -1
- package/dist/chunk-ORQ3WBM6.js +0 -225
- package/dist/chunk-OWEON2S7.js +0 -1246
- package/dist/chunk-PXLBPOI3.js +0 -203
- package/dist/chunk-Q2JDS6WL.js +0 -238
- package/dist/chunk-Q5DFEVLE.js +0 -148
- package/dist/chunk-QKHH7YNN.js +0 -494
- package/dist/chunk-QLXVHWAC.js +0 -685
- package/dist/chunk-QPTYTM2X.js +0 -142
- package/dist/chunk-R2Z5L5CF.js +0 -297
- package/dist/chunk-RHSKKWPO.js +0 -1902
- package/dist/chunk-S37ZZSNM.js +0 -604
- package/dist/chunk-SJIEU3VG.js +0 -831
- package/dist/chunk-SKI7QMDT.js +0 -170
- package/dist/chunk-SLLY4ZTT.js +0 -169
- package/dist/chunk-TCR6KI6P.js +0 -1320
- package/dist/chunk-TK7VRZKM.js +0 -7861
- package/dist/chunk-TXWKDDF6.js +0 -479
- package/dist/chunk-UKDILXEA.js +0 -23
- package/dist/chunk-UKZKLXTE.js +0 -638
- package/dist/chunk-ULIQNJ5J.js +0 -274
- package/dist/chunk-UR7ENZ3F.js +0 -547
- package/dist/chunk-V6N6UBOT.js +0 -156
- package/dist/chunk-WYXYAKUP.js +0 -19
- package/dist/chunk-X2OVFCRC.js +0 -334
- package/dist/chunk-X3GWGFZP.js +0 -5368
- package/dist/chunk-X3YYZLBH.js +0 -285
- package/dist/chunk-X7XFAFU4.js +0 -2209
- package/dist/chunk-XZAVBONI.js +0 -64
- package/dist/chunk-Y43FKOED.js +0 -89
- package/dist/chunk-YFBHZ57K.js +0 -197
- package/dist/chunk-ZD5MNBLA.js +0 -930
- package/dist/claim-G4TW75Z2.js +0 -200
- package/dist/companies-TYDUEKET.js +0 -198
- package/dist/company-V5WKGDGU.js +0 -308
- package/dist/complete-QEKKP7YL.js +0 -84
- package/dist/connect-5Q2HQ7LT.js +0 -45
- package/dist/conversation-JIVOIZ5E.js +0 -96
- package/dist/conversion-report-76S5JOVT.js +0 -127
- package/dist/conversion-upload-command-WNHVNVMW.js +0 -439
- package/dist/conversion-writes-6HX665JT.js +0 -122
- package/dist/conversions-A524MH5C.js +0 -78
- package/dist/conversions-PSXVU4JL.js +0 -140
- package/dist/create-7QGB33HI.js +0 -135
- package/dist/create-AV7UY4N5.js +0 -239
- package/dist/create-CHBC745Y.js +0 -62
- package/dist/create-SBQU7B3S.js +0 -218
- package/dist/creatives-LNUSBQXQ.js +0 -229
- package/dist/creatives-XQILGK6P.js +0 -58
- package/dist/credentials-IWF37PAQ.js +0 -290
- package/dist/critique-CYV7JQAY.js +0 -1451
- package/dist/critique-ETRQP3QZ.js +0 -232
- package/dist/crm-IDN55BIC.js +0 -323
- package/dist/crm-T2ZJNZ6G.js +0 -229
- package/dist/currency-VQMZZXSS.js +0 -88
- package/dist/customers-XANEOEW6.js +0 -65
- package/dist/delete-2WL6K24W.js +0 -69
- package/dist/delete-6K7EZXNR.js +0 -67
- package/dist/delete-SCAVFYZL.js +0 -57
- package/dist/demographics-JJKL7MZC.js +0 -141
- package/dist/discard-FQDZ5GKN.js +0 -69
- package/dist/discover-4F4USNHE.js +0 -172
- package/dist/domain-AFWPUOI7.js +0 -101
- package/dist/download-MXKBJPPF.js +0 -172
- package/dist/draft-EKJQGNFT.js +0 -374
- package/dist/draft-OJHTFELQ.js +0 -332
- package/dist/draft-VIZTQ6W4.js +0 -557
- package/dist/draft-WOE7KQ7T.js +0 -315
- package/dist/draft-Z5IVHUHR.js +0 -220
- package/dist/experiments-YUBVWNB5.js +0 -236
- package/dist/extract-VHM2UNIE.js +0 -143
- package/dist/facets-5GLKSHTA.js +0 -117
- package/dist/feedback-36TL4GPS.js +0 -115
- package/dist/feedback-ECAZWGJP.js +0 -114
- package/dist/feedback-record-QGAP4HA4.js +0 -269
- package/dist/fetch-X4RIDS7N.js +0 -204
- package/dist/find-57WYB4V3.js +0 -144
- package/dist/fit-V4CRDVQV.js +0 -65
- package/dist/flows-YPBWZR4P.js +0 -250
- package/dist/fonts-RV5KUGFE.js +0 -39
- package/dist/forecast-E2HJSD6E.js +0 -169
- package/dist/forecast-LMYMZHZE.js +0 -121
- package/dist/funnel-MF2KFXEX.js +0 -397
- package/dist/ga4-FCMTGV4S.js +0 -55
- package/dist/generate-VGGXTZBP.js +0 -263
- package/dist/get-7NI64G6K.js +0 -82
- package/dist/get-MVZWQ4BE.js +0 -62
- package/dist/google-YNVTLX5E.js +0 -163
- package/dist/google-ZRZGM2XI.js +0 -3300
- package/dist/google-ads-UER2CSQN.js +0 -198
- package/dist/gsc-A3KB36WH.js +0 -30
- package/dist/history-3GRRZSWW.js +0 -102
- package/dist/history-LBIA45H3.js +0 -153
- package/dist/history-LXRFZNW7.js +0 -69
- package/dist/hubspot-NEENQKIP.js +0 -814
- package/dist/icon-7WND6UPY.js +0 -138
- package/dist/ideas-LDQMFMJM.js +0 -45
- package/dist/images-2FDXHKMR.js +0 -92
- package/dist/ingest-OJDK7AGH.js +0 -131
- package/dist/ingest-PS2LOYBM.js +0 -28
- package/dist/insights-H6M6VI43.js +0 -132
- package/dist/inspect-ALSHVHUP.js +0 -192
- package/dist/inspiration-TQHQNILK.js +0 -53
- package/dist/intent-ZKLT4DAW.js +0 -95
- package/dist/keyword-gap-QC3ITLNG.js +0 -130
- package/dist/keyword-metrics-PERWGH54.js +0 -200
- package/dist/keywords-for-site-CCCB6KHE.js +0 -131
- package/dist/landing-VE3MHOA3.js +0 -28
- package/dist/languages-QMLC4QWZ.js +0 -40
- package/dist/leads-TPMLYLBH.js +0 -115
- package/dist/learn-KK3AJS3N.js +0 -207
- package/dist/line-item-writes-ONKDXKOM.js +0 -211
- package/dist/line-items-ILJYVUHX.js +0 -107
- package/dist/link-YDHTMDC5.js +0 -67
- package/dist/linkedin-N3NGCE5N.js +0 -1344
- package/dist/linkedin-person-6F3YJHXM.js +0 -139
- package/dist/list-EKL5HIR7.js +0 -306
- package/dist/list-F7UDUU7C.js +0 -67
- package/dist/list-WDTPTY2T.js +0 -154
- package/dist/locations-5SLLGWZO.js +0 -69
- package/dist/locations-DNRK7DY4.js +0 -40
- package/dist/log-BZBRXB5P.js +0 -95
- package/dist/logo-ODONF6N7.js +0 -19
- package/dist/make-W27CB5X4.js +0 -1367
- package/dist/map-FNB7IWDY.js +0 -436
- package/dist/mcp-QSDCAWMU.js +0 -729
- package/dist/media-sources-NMT4G45B.js +0 -35
- package/dist/members-2XQ6E33F.js +0 -47
- package/dist/meta-5KQ6CQBT.js +0 -122
- package/dist/meta-5KQ6CQBT.js.map +0 -1
- package/dist/metrics-P4QDFCVB.js +0 -152
- package/dist/models-SITHUNAA.js +0 -155
- package/dist/normalize-5AU7SKYY.js +0 -144
- package/dist/options-CH52EP5K.js +0 -125
- package/dist/organization-6T4Q6XYI.js +0 -949
- package/dist/performance-2SCAQSQK.js +0 -27
- package/dist/performance-4DMGJCN7.js +0 -5565
- package/dist/pixels-WTTLC4O5.js +0 -62
- package/dist/posts-TRQCRLYZ.js +0 -36
- package/dist/preview-ICZR3SGB.js +0 -101
- package/dist/promoted-tweet-writes-DR6V7MHW.js +0 -183
- package/dist/promoted-tweets-IRECARIO.js +0 -119
- package/dist/publish-4HM2CJVF.js +0 -350
- package/dist/query-AQ6HNKW7.js +0 -62
- package/dist/reddit-KOC7KLYS.js +0 -29
- package/dist/refresh-2KEQLXRK.js +0 -97
- package/dist/release-X3Q3RFQC.js +0 -63
- package/dist/relevant-pages-NZKXWMNA.js +0 -99
- package/dist/remove-RYR6EAJY.js +0 -53
- package/dist/reopen-PIKLC5OW.js +0 -66
- package/dist/rerun-2HBMXJ55.js +0 -97
- package/dist/research-ZBZONY3D.js +0 -75
- package/dist/research-ZTA4XKNA.js +0 -265
- package/dist/reset-7YTMXVNX.js +0 -57
- package/dist/reset-Q3XSD4WI.js +0 -57
- package/dist/resolve-P3AT2S6A.js +0 -124
- package/dist/retry-CEZLEN7Z.js +0 -63
- package/dist/retry-YNNFUDWI.js +0 -65
- package/dist/revenue-6PR3BJFJ.js +0 -91
- package/dist/rules-R7NK5X4Z.js +0 -99
- package/dist/rules-add-2GIJGODB.js +0 -465
- package/dist/run-CDMNDJ7B.js +0 -72
- package/dist/run-RORVKARV.js +0 -69
- package/dist/scaffold-ad-DDGYTRFK.js +0 -1513
- package/dist/scaffold-static-ad-ES5AIQPA.js +0 -1012
- package/dist/scaffold-video-NWRJZQ7N.js +0 -885
- package/dist/schedule-2ELAAXVW.js +0 -64
- package/dist/scheduled-agents-RRAWQYPE.js +0 -55
- package/dist/schema-FHP43TLD.js +0 -135
- package/dist/search-G6W4LGVZ.js +0 -177
- package/dist/select-GFPXXVBU.js +0 -110
- package/dist/set-prompt-TQDOBUFT.js +0 -199
- package/dist/setup-links-CK7LBYJK.js +0 -144
- package/dist/shopify-SOTGSWXW.js +0 -4009
- package/dist/site-IAIGIP3R.js +0 -180
- package/dist/sources-62MIDG3D.js +0 -457
- package/dist/sources-D5XODGIV.js +0 -30
- package/dist/stale-4STBM2Z3.js +0 -90
- package/dist/status-BKSOFB53.js +0 -65
- package/dist/stock-F5QNFRPM.js +0 -212
- package/dist/studio-ZRAZ2C25.js +0 -49
- package/dist/sync-VPE5G6YX.js +0 -57
- package/dist/sync-definition-VSNVCRNG.js +0 -70
- package/dist/tags-CBNWQTFX.js +0 -23
- package/dist/tags-IFBIJ7BE.js +0 -23
- package/dist/tags-J6IPWIZ5.js +0 -227
- package/dist/tags-XPLXA3LV.js +0 -26
- package/dist/tags-ZV7JAF6S.js +0 -23
- package/dist/targeting-criteria-VVZQFPNS.js +0 -113
- package/dist/targets-EQAZUKT6.js +0 -106
- package/dist/testimonials-5MA427KH.js +0 -32
- package/dist/themes-WMZJWXFT.js +0 -95
- package/dist/top-companies-V5FVQMCS.js +0 -111
- package/dist/transcript-2TE2R4DH.js +0 -165
- package/dist/translate-XIF6VTDN.js +0 -603
- package/dist/triggers-ZMNQ6W3M.js +0 -144
- package/dist/unlink-HRCAROB3.js +0 -70
- package/dist/unstage-5WSEDFNH.js +0 -88
- package/dist/update-A64IC24P.js +0 -101
- package/dist/update-BESMEMQU.js +0 -155
- package/dist/update-WU4FAGEA.js +0 -192
- package/dist/update-ZUBU5NQP.js +0 -66
- package/dist/upload-FR6WRGXI.js +0 -137
- package/dist/url-options-QLDSJ7QJ.js +0 -131
- package/dist/url-params-YWIBMV3P.js +0 -101
- package/dist/validate-5EWYG4QS.js +0 -125
- package/dist/videos-MXEQHDMN.js +0 -41
- package/dist/viewer-check-QI4HKF7A.js +0 -83
- package/dist/web-DYT5YHEU.js +0 -173
- package/dist/winning-ads-YKBB2UZC.js +0 -86
- package/dist/write-commands-USXHGCVT.js +0 -1524
- package/dist/x-OIDZY7DM.js +0 -47
- /package/dist/{account-B77TBYMN.js.map → account-LFNHGUZP.js.map} +0 -0
- /package/dist/{account-U6DFMD2V.js.map → account-T2VKQW3R.js.map} +0 -0
- /package/dist/{account-reads-X35O4MCA.js.map → account-reads-XCXI4CXM.js.map} +0 -0
- /package/dist/{account-users-UKKABT5U.js.map → account-users-HMFGFXG7.js.map} +0 -0
- /package/dist/{account-writes-QSJ74QFR.js.map → account-writes-C5MSNEUU.js.map} +0 -0
- /package/dist/{accounts-QYNZXW2E.js.map → accounts-G5YAT5HL.js.map} +0 -0
- /package/dist/{accounts-HGCR3WFZ.js.map → accounts-J4J5KBTY.js.map} +0 -0
- /package/dist/{accounts-XL2TMLGE.js.map → accounts-ZKZL5KOP.js.map} +0 -0
- /package/dist/{actions-CVTRCHPG.js.map → actions-OR5ZCMBR.js.map} +0 -0
- /package/dist/{activecampaign-UNNM6J7M.js.map → activecampaign-G7KHC3BD.js.map} +0 -0
- /package/dist/{ad-group-writes-QBHOPTT5.js.map → ad-group-writes-7RSQHSUX.js.map} +0 -0
- /package/dist/{ad-groups-JZDUFT6J.js.map → ad-groups-MMYXS6NY.js.map} +0 -0
- /package/dist/{ad-writes-QYJO4IB3.js.map → ad-writes-E5CXFXPG.js.map} +0 -0
- /package/dist/{add-DPCBGUA5.js.map → add-KJRZREFO.js.map} +0 -0
- /package/dist/{add-3GOSW7LW.js.map → add-LX45HJ2Y.js.map} +0 -0
- /package/dist/{ads-UMSWEI5X.js.map → ads-UUAJAWAG.js.map} +0 -0
- /package/dist/{ads-LDCZ65B5.js.map → ads-WVSMMTY3.js.map} +0 -0
- /package/dist/{advertisers-3D36UJTQ.js.map → advertisers-P3JHMAQH.js.map} +0 -0
- /package/dist/{analytics-ZPPZJETP.js.map → analytics-HPIH6WGB.js.map} +0 -0
- /package/dist/{analytics-YHOXWFBI.js.map → analytics-OTN24OJF.js.map} +0 -0
- /package/dist/{animate-WS63CZ3Y.js.map → animate-LG55AZNJ.js.map} +0 -0
- /package/dist/{assign-5P7OJBAH.js.map → assign-BCJG4QMO.js.map} +0 -0
- /package/dist/{audience-size-PHFJ22TX.js.map → audience-size-FH6SNC7M.js.map} +0 -0
- /package/dist/{audiences-RSAUXKHR.js.map → audiences-CO4QVQGF.js.map} +0 -0
- /package/dist/{audit-3GRXRDLR.js.map → audit-LKPZ2XPO.js.map} +0 -0
- /package/dist/{autocomplete-GQLXBG5V.js.map → autocomplete-CQSGHRMI.js.map} +0 -0
- /package/dist/{avatars-I73KFB3F.js.map → avatars-B2MUQTUJ.js.map} +0 -0
- /package/dist/{bid-pricing-6MZ7SC72.js.map → bid-pricing-EHPVGN4U.js.map} +0 -0
- /package/dist/{brand-OISTKMY4.js.map → brand-IETJLLMV.js.map} +0 -0
- /package/dist/{brief-MI4RLV4N.js.map → brief-HSNY65DO.js.map} +0 -0
- /package/dist/{campaign-groups-QZ2NW5AW.js.map → campaign-groups-C3FKTALG.js.map} +0 -0
- /package/dist/{campaign-writes-BGS53O4B.js.map → campaign-writes-LKIROAJV.js.map} +0 -0
- /package/dist/{campaign-writes-GKNH2EHV.js.map → campaign-writes-Y77J3SAI.js.map} +0 -0
- /package/dist/{campaigns-FGIVPEVA.js.map → campaigns-57VQMODN.js.map} +0 -0
- /package/dist/{campaigns-7RV65SXR.js.map → campaigns-72BQQLVF.js.map} +0 -0
- /package/dist/{campaigns-YBPXM6B3.js.map → campaigns-ICLQ4SRI.js.map} +0 -0
- /package/dist/{canvas-YTSJAEOF.js.map → canvas-F6E4U2U3.js.map} +0 -0
- /package/dist/{capabilities-YFXCTUJJ.js.map → capabilities-I5AO4SWW.js.map} +0 -0
- /package/dist/{catalog-URTZYAPU.js.map → catalog-BQ7WEJ3T.js.map} +0 -0
- /package/dist/{catalogs-5LWEXG5X.js.map → catalogs-TAX75WSS.js.map} +0 -0
- /package/dist/{changes-6CL42LG3.js.map → changes-M7KKGYFS.js.map} +0 -0
- /package/dist/{chatgpt-HLIQ7OJZ.js.map → chatgpt-K4HD6NNL.js.map} +0 -0
- /package/dist/{chats-D5W2UWD4.js.map → chats-QLHOLSAC.js.map} +0 -0
- /package/dist/{check-FFMWUB72.js.map → check-TT44PEH5.js.map} +0 -0
- /package/dist/{chunk-CHVLFACB.js.map → chunk-2A4QXLYA.js.map} +0 -0
- /package/dist/{chunk-UKZKLXTE.js.map → chunk-2FMORF3B.js.map} +0 -0
- /package/dist/{chunk-EJBLF2LI.js.map → chunk-2H26UU5Y.js.map} +0 -0
- /package/dist/{chunk-JTIWQLY5.js.map → chunk-2RSUVSJU.js.map} +0 -0
- /package/dist/{chunk-QLXVHWAC.js.map → chunk-2UMQMFOA.js.map} +0 -0
- /package/dist/{chunk-533R4P5O.js.map → chunk-3AVFUHJI.js.map} +0 -0
- /package/dist/{chunk-DWPOAU4Z.js.map → chunk-3U4DQRFG.js.map} +0 -0
- /package/dist/{chunk-GUH2A5R5.js.map → chunk-43LDWE3R.js.map} +0 -0
- /package/dist/{chunk-HBRXFQQV.js.map → chunk-4JZ3NS43.js.map} +0 -0
- /package/dist/{chunk-ULIQNJ5J.js.map → chunk-6E5S477W.js.map} +0 -0
- /package/dist/{chunk-FVDC6AKZ.js.map → chunk-6JM53JLR.js.map} +0 -0
- /package/dist/{chunk-OAJ6LVL2.js.map → chunk-6U6YE5Z3.js.map} +0 -0
- /package/dist/{chunk-GQ4DMO5Q.js.map → chunk-A3MZX27M.js.map} +0 -0
- /package/dist/{chunk-X2OVFCRC.js.map → chunk-AJFWK2DW.js.map} +0 -0
- /package/dist/{chunk-FXZGRP3F.js.map → chunk-B6NGBLOG.js.map} +0 -0
- /package/dist/{chunk-2VHYY4RU.js.map → chunk-BG25VWP6.js.map} +0 -0
- /package/dist/{chunk-ZD5MNBLA.js.map → chunk-BJO7OAUA.js.map} +0 -0
- /package/dist/{chunk-LFPBZL2X.js.map → chunk-BRSEAVWZ.js.map} +0 -0
- /package/dist/{chunk-KDAINT54.js.map → chunk-DWA42GNM.js.map} +0 -0
- /package/dist/{chunk-X7XFAFU4.js.map → chunk-FHBMXLAF.js.map} +0 -0
- /package/dist/{chunk-UR7ENZ3F.js.map → chunk-FO5CVJ47.js.map} +0 -0
- /package/dist/{chunk-H3HA22Z3.js.map → chunk-FZJB77OK.js.map} +0 -0
- /package/dist/{chunk-6QNXBEIN.js.map → chunk-GEGFJCAF.js.map} +0 -0
- /package/dist/{chunk-SKI7QMDT.js.map → chunk-GH6IU5BO.js.map} +0 -0
- /package/dist/{chunk-BVGRKVHL.js.map → chunk-GK2DUKJA.js.map} +0 -0
- /package/dist/{chunk-PXLBPOI3.js.map → chunk-HC6464KT.js.map} +0 -0
- /package/dist/{chunk-N472TRB4.js.map → chunk-HWDOKNJT.js.map} +0 -0
- /package/dist/{chunk-TXWKDDF6.js.map → chunk-I7UDOKXX.js.map} +0 -0
- /package/dist/{chunk-Q5DFEVLE.js.map → chunk-IM4HHVY6.js.map} +0 -0
- /package/dist/{chunk-X3YYZLBH.js.map → chunk-IP6NHITS.js.map} +0 -0
- /package/dist/{chunk-XZAVBONI.js.map → chunk-IR27GIFG.js.map} +0 -0
- /package/dist/{chunk-F62BW6DJ.js.map → chunk-IWNLW7ZC.js.map} +0 -0
- /package/dist/{chunk-DLM5OSHM.js.map → chunk-IZMSISEN.js.map} +0 -0
- /package/dist/{chunk-GWLP45WQ.js.map → chunk-J4LQ6GK5.js.map} +0 -0
- /package/dist/{chunk-X3GWGFZP.js.map → chunk-J7IYLOPV.js.map} +0 -0
- /package/dist/{chunk-Y43FKOED.js.map → chunk-KFCN6DEX.js.map} +0 -0
- /package/dist/{chunk-6QINKM6T.js.map → chunk-KHVZZTWD.js.map} +0 -0
- /package/dist/{chunk-YFBHZ57K.js.map → chunk-L3ITBLLD.js.map} +0 -0
- /package/dist/{chunk-MZPS46OR.js.map → chunk-L4ATZPY2.js.map} +0 -0
- /package/dist/{chunk-JAC6JVCI.js.map → chunk-L6UWXOHS.js.map} +0 -0
- /package/dist/{chunk-LAP23AND.js.map → chunk-LEH6IUC4.js.map} +0 -0
- /package/dist/{chunk-72VH4FPY.js.map → chunk-LQN7REMU.js.map} +0 -0
- /package/dist/{chunk-QPTYTM2X.js.map → chunk-LTUJKEAG.js.map} +0 -0
- /package/dist/{chunk-UKDILXEA.js.map → chunk-M7LD4E6W.js.map} +0 -0
- /package/dist/{chunk-TCR6KI6P.js.map → chunk-OBOVOYJ5.js.map} +0 -0
- /package/dist/{chunk-TK7VRZKM.js.map → chunk-OVNVYNVH.js.map} +0 -0
- /package/dist/{chunk-ORQ3WBM6.js.map → chunk-P4BFJOZD.js.map} +0 -0
- /package/dist/{chunk-LWN3ZNZU.js.map → chunk-P54N2BRN.js.map} +0 -0
- /package/dist/{chunk-WYXYAKUP.js.map → chunk-P6SWLZGH.js.map} +0 -0
- /package/dist/{chunk-D2GDHVZP.js.map → chunk-PAJ4L26P.js.map} +0 -0
- /package/dist/{chunk-Q2JDS6WL.js.map → chunk-PEZC3KZE.js.map} +0 -0
- /package/dist/{chunk-OWEON2S7.js.map → chunk-PFIOOYZX.js.map} +0 -0
- /package/dist/{chunk-S37ZZSNM.js.map → chunk-PFJHL4JS.js.map} +0 -0
- /package/dist/{chunk-GTYVWDCC.js.map → chunk-PI2XARDF.js.map} +0 -0
- /package/dist/{chunk-R2Z5L5CF.js.map → chunk-PSMVR5UR.js.map} +0 -0
- /package/dist/{chunk-2DVFPCH3.js.map → chunk-RL4QUOVQ.js.map} +0 -0
- /package/dist/{chunk-N34A56X7.js.map → chunk-S5NSCPWH.js.map} +0 -0
- /package/dist/{chunk-AHZIGJXD.js.map → chunk-SROKJC6V.js.map} +0 -0
- /package/dist/{chunk-SLLY4ZTT.js.map → chunk-SRR7XEI3.js.map} +0 -0
- /package/dist/{chunk-MSGIF4EC.js.map → chunk-SXNFXPAF.js.map} +0 -0
- /package/dist/{chunk-3FLSRUID.js.map → chunk-TFF2G2WU.js.map} +0 -0
- /package/dist/{chunk-DFDV42NY.js.map → chunk-TOQZ6WO2.js.map} +0 -0
- /package/dist/{chunk-V6N6UBOT.js.map → chunk-TTU7U3RU.js.map} +0 -0
- /package/dist/{chunk-RHSKKWPO.js.map → chunk-UL5LPRAC.js.map} +0 -0
- /package/dist/{chunk-QKHH7YNN.js.map → chunk-UT3VSNEM.js.map} +0 -0
- /package/dist/{chunk-4S5ZAG4S.js.map → chunk-VFBNYBAA.js.map} +0 -0
- /package/dist/{chunk-EOMY5SUJ.js.map → chunk-X2TCBD6H.js.map} +0 -0
- /package/dist/{chunk-6I7GJDBX.js.map → chunk-Y43COG3A.js.map} +0 -0
- /package/dist/{chunk-SJIEU3VG.js.map → chunk-ZXPFGNSJ.js.map} +0 -0
- /package/dist/{claim-G4TW75Z2.js.map → claim-3KE5DZ75.js.map} +0 -0
- /package/dist/{companies-TYDUEKET.js.map → companies-JBZR5W56.js.map} +0 -0
- /package/dist/{company-V5WKGDGU.js.map → company-DQH4U7IH.js.map} +0 -0
- /package/dist/{complete-QEKKP7YL.js.map → complete-YS4CTYPD.js.map} +0 -0
- /package/dist/{connect-5Q2HQ7LT.js.map → connect-OG2URUXQ.js.map} +0 -0
- /package/dist/{conversation-JIVOIZ5E.js.map → conversation-T5G2EOJ3.js.map} +0 -0
- /package/dist/{conversion-report-76S5JOVT.js.map → conversion-report-4A4HJKZG.js.map} +0 -0
- /package/dist/{conversion-upload-command-WNHVNVMW.js.map → conversion-upload-command-XREECG2M.js.map} +0 -0
- /package/dist/{conversion-writes-6HX665JT.js.map → conversion-writes-T4ONKJTH.js.map} +0 -0
- /package/dist/{conversions-PSXVU4JL.js.map → conversions-336BIAR3.js.map} +0 -0
- /package/dist/{conversions-A524MH5C.js.map → conversions-EFPLZXN2.js.map} +0 -0
- /package/dist/{create-CHBC745Y.js.map → create-D5XOJ7RZ.js.map} +0 -0
- /package/dist/{create-SBQU7B3S.js.map → create-JCPRS7JC.js.map} +0 -0
- /package/dist/{create-7QGB33HI.js.map → create-YBXSCJSZ.js.map} +0 -0
- /package/dist/{create-AV7UY4N5.js.map → create-ZXEP5RKK.js.map} +0 -0
- /package/dist/{creatives-LNUSBQXQ.js.map → creatives-PEGQCPXH.js.map} +0 -0
- /package/dist/{creatives-XQILGK6P.js.map → creatives-YHVHL2JG.js.map} +0 -0
- /package/dist/{credentials-IWF37PAQ.js.map → credentials-DLN37Y53.js.map} +0 -0
- /package/dist/{critique-CYV7JQAY.js.map → critique-BKPSE5TC.js.map} +0 -0
- /package/dist/{critique-ETRQP3QZ.js.map → critique-FTD5HY3P.js.map} +0 -0
- /package/dist/{crm-T2ZJNZ6G.js.map → crm-6VLBZP6R.js.map} +0 -0
- /package/dist/{crm-IDN55BIC.js.map → crm-CAHF5MFW.js.map} +0 -0
- /package/dist/{currency-VQMZZXSS.js.map → currency-VHIIVTHK.js.map} +0 -0
- /package/dist/{customers-XANEOEW6.js.map → customers-3A72724B.js.map} +0 -0
- /package/dist/{delete-6K7EZXNR.js.map → delete-AI6BTKRX.js.map} +0 -0
- /package/dist/{delete-2WL6K24W.js.map → delete-KRAI5WDX.js.map} +0 -0
- /package/dist/{delete-SCAVFYZL.js.map → delete-OQJLGWSM.js.map} +0 -0
- /package/dist/{demographics-JJKL7MZC.js.map → demographics-YGRSGV33.js.map} +0 -0
- /package/dist/{discard-FQDZ5GKN.js.map → discard-E7NN7H5J.js.map} +0 -0
- /package/dist/{discover-4F4USNHE.js.map → discover-RASVEQYE.js.map} +0 -0
- /package/dist/{domain-AFWPUOI7.js.map → domain-ROUKV26M.js.map} +0 -0
- /package/dist/{download-MXKBJPPF.js.map → download-2NSCKINN.js.map} +0 -0
- /package/dist/{draft-VIZTQ6W4.js.map → draft-DVKQV67R.js.map} +0 -0
- /package/dist/{draft-OJHTFELQ.js.map → draft-FBXWPG6V.js.map} +0 -0
- /package/dist/{draft-WOE7KQ7T.js.map → draft-H2PICPFS.js.map} +0 -0
- /package/dist/{draft-EKJQGNFT.js.map → draft-RQY63AJF.js.map} +0 -0
- /package/dist/{draft-Z5IVHUHR.js.map → draft-SQKEZUG5.js.map} +0 -0
- /package/dist/{experiments-YUBVWNB5.js.map → experiments-EMTSSDXU.js.map} +0 -0
- /package/dist/{extract-VHM2UNIE.js.map → extract-AZFZHNJF.js.map} +0 -0
- /package/dist/{facets-5GLKSHTA.js.map → facets-6BAX2PIL.js.map} +0 -0
- /package/dist/{feedback-ECAZWGJP.js.map → feedback-BB6HQ2ZD.js.map} +0 -0
- /package/dist/{feedback-36TL4GPS.js.map → feedback-GVW7I2YF.js.map} +0 -0
- /package/dist/{feedback-record-QGAP4HA4.js.map → feedback-record-JAYONJAV.js.map} +0 -0
- /package/dist/{fetch-X4RIDS7N.js.map → fetch-PSA6V3LZ.js.map} +0 -0
- /package/dist/{find-57WYB4V3.js.map → find-UGFONLSD.js.map} +0 -0
- /package/dist/{fit-V4CRDVQV.js.map → fit-XFIZNCRH.js.map} +0 -0
- /package/dist/{flows-YPBWZR4P.js.map → flows-E6WI2ITC.js.map} +0 -0
- /package/dist/{fonts-RV5KUGFE.js.map → fonts-TWYK4FZH.js.map} +0 -0
- /package/dist/{forecast-LMYMZHZE.js.map → forecast-5ZGRXXSJ.js.map} +0 -0
- /package/dist/{forecast-E2HJSD6E.js.map → forecast-NVHOQXWR.js.map} +0 -0
- /package/dist/{funnel-MF2KFXEX.js.map → funnel-GKIFAU32.js.map} +0 -0
- /package/dist/{ga4-FCMTGV4S.js.map → ga4-YVKA3V4V.js.map} +0 -0
- /package/dist/{generate-VGGXTZBP.js.map → generate-YZL4GGUY.js.map} +0 -0
- /package/dist/{get-7NI64G6K.js.map → get-3TBQJ2J4.js.map} +0 -0
- /package/dist/{get-MVZWQ4BE.js.map → get-GVQABBCB.js.map} +0 -0
- /package/dist/{google-ZRZGM2XI.js.map → google-EG7YCO5C.js.map} +0 -0
- /package/dist/{google-YNVTLX5E.js.map → google-VNEVAKGL.js.map} +0 -0
- /package/dist/{google-ads-UER2CSQN.js.map → google-ads-WXZHRP2N.js.map} +0 -0
- /package/dist/{gsc-A3KB36WH.js.map → gsc-OJDMSP6H.js.map} +0 -0
- /package/dist/{history-LXRFZNW7.js.map → history-4Q6SPKOJ.js.map} +0 -0
- /package/dist/{history-LBIA45H3.js.map → history-JECMIEEV.js.map} +0 -0
- /package/dist/{history-3GRRZSWW.js.map → history-XQUH5MKO.js.map} +0 -0
- /package/dist/{hubspot-NEENQKIP.js.map → hubspot-LJBJPAYJ.js.map} +0 -0
- /package/dist/{icon-7WND6UPY.js.map → icon-THWS5VPO.js.map} +0 -0
- /package/dist/{ideas-LDQMFMJM.js.map → ideas-PMRLNUWW.js.map} +0 -0
- /package/dist/{images-2FDXHKMR.js.map → images-F6PLQH5L.js.map} +0 -0
- /package/dist/{ingest-PS2LOYBM.js.map → ingest-F4MXHO2R.js.map} +0 -0
- /package/dist/{ingest-OJDK7AGH.js.map → ingest-JSCIUSTZ.js.map} +0 -0
- /package/dist/{insights-H6M6VI43.js.map → insights-HJ5MU3F4.js.map} +0 -0
- /package/dist/{inspect-ALSHVHUP.js.map → inspect-JRHB4MQ3.js.map} +0 -0
- /package/dist/{inspiration-TQHQNILK.js.map → inspiration-FPB3IB7X.js.map} +0 -0
- /package/dist/{intent-ZKLT4DAW.js.map → intent-XCNRLGQQ.js.map} +0 -0
- /package/dist/{keyword-gap-QC3ITLNG.js.map → keyword-gap-J6RP6L25.js.map} +0 -0
- /package/dist/{keyword-metrics-PERWGH54.js.map → keyword-metrics-KUXAU25B.js.map} +0 -0
- /package/dist/{keywords-for-site-CCCB6KHE.js.map → keywords-for-site-DLDWLPYU.js.map} +0 -0
- /package/dist/{landing-VE3MHOA3.js.map → landing-7EYVD2OI.js.map} +0 -0
- /package/dist/{languages-QMLC4QWZ.js.map → languages-6QDUHAFN.js.map} +0 -0
- /package/dist/{leads-TPMLYLBH.js.map → leads-TRDLBJ4M.js.map} +0 -0
- /package/dist/{learn-KK3AJS3N.js.map → learn-EVGUFBTE.js.map} +0 -0
- /package/dist/{line-item-writes-ONKDXKOM.js.map → line-item-writes-KIRLIJ72.js.map} +0 -0
- /package/dist/{line-items-ILJYVUHX.js.map → line-items-4PFGOI3Q.js.map} +0 -0
- /package/dist/{link-YDHTMDC5.js.map → link-WIAE43ZD.js.map} +0 -0
- /package/dist/{linkedin-N3NGCE5N.js.map → linkedin-E4REUEOL.js.map} +0 -0
- /package/dist/{linkedin-person-6F3YJHXM.js.map → linkedin-person-6JRV6UNR.js.map} +0 -0
- /package/dist/{list-F7UDUU7C.js.map → list-6IRAZFIF.js.map} +0 -0
- /package/dist/{list-EKL5HIR7.js.map → list-Q6YLGEFQ.js.map} +0 -0
- /package/dist/{list-WDTPTY2T.js.map → list-ZVEIKL24.js.map} +0 -0
- /package/dist/{locations-DNRK7DY4.js.map → locations-3JFYNQGD.js.map} +0 -0
- /package/dist/{locations-5SLLGWZO.js.map → locations-SKK6AUKD.js.map} +0 -0
- /package/dist/{log-BZBRXB5P.js.map → log-OB7VG6JH.js.map} +0 -0
- /package/dist/{logo-ODONF6N7.js.map → logo-ZSSR66WS.js.map} +0 -0
- /package/dist/{make-W27CB5X4.js.map → make-RKKZFUVC.js.map} +0 -0
- /package/dist/{map-FNB7IWDY.js.map → map-362DNLE4.js.map} +0 -0
- /package/dist/{mcp-QSDCAWMU.js.map → mcp-TI35F2P2.js.map} +0 -0
- /package/dist/{media-sources-NMT4G45B.js.map → media-sources-UL6B4634.js.map} +0 -0
- /package/dist/{members-2XQ6E33F.js.map → members-CK6GCEGZ.js.map} +0 -0
- /package/dist/{metrics-P4QDFCVB.js.map → metrics-SNUZTO3L.js.map} +0 -0
- /package/dist/{models-SITHUNAA.js.map → models-A3AUZRAF.js.map} +0 -0
- /package/dist/{normalize-5AU7SKYY.js.map → normalize-IQZHY7RU.js.map} +0 -0
- /package/dist/{options-CH52EP5K.js.map → options-7FYTYB7F.js.map} +0 -0
- /package/dist/{organization-6T4Q6XYI.js.map → organization-NNHIEOC6.js.map} +0 -0
- /package/dist/{performance-4DMGJCN7.js.map → performance-3A5IXPQA.js.map} +0 -0
- /package/dist/{performance-2SCAQSQK.js.map → performance-C3DWVGHX.js.map} +0 -0
- /package/dist/{pixels-WTTLC4O5.js.map → pixels-O2XIQOU2.js.map} +0 -0
- /package/dist/{posts-TRQCRLYZ.js.map → posts-F327IP23.js.map} +0 -0
- /package/dist/{preview-ICZR3SGB.js.map → preview-365IBP2N.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-DR6V7MHW.js.map → promoted-tweet-writes-IKCEXJUP.js.map} +0 -0
- /package/dist/{promoted-tweets-IRECARIO.js.map → promoted-tweets-44KS4NSY.js.map} +0 -0
- /package/dist/{publish-4HM2CJVF.js.map → publish-QZTFEV4L.js.map} +0 -0
- /package/dist/{query-AQ6HNKW7.js.map → query-RWTMCFGF.js.map} +0 -0
- /package/dist/{reddit-KOC7KLYS.js.map → reddit-CN33MIDK.js.map} +0 -0
- /package/dist/{refresh-2KEQLXRK.js.map → refresh-QF2YUF2H.js.map} +0 -0
- /package/dist/{release-X3Q3RFQC.js.map → release-IGEYKGDO.js.map} +0 -0
- /package/dist/{relevant-pages-NZKXWMNA.js.map → relevant-pages-VD7CW2NE.js.map} +0 -0
- /package/dist/{remove-RYR6EAJY.js.map → remove-PDDAHLXZ.js.map} +0 -0
- /package/dist/{reopen-PIKLC5OW.js.map → reopen-KED3LNLC.js.map} +0 -0
- /package/dist/{rerun-2HBMXJ55.js.map → rerun-5RZSACIO.js.map} +0 -0
- /package/dist/{research-ZTA4XKNA.js.map → research-E5BDGW4F.js.map} +0 -0
- /package/dist/{research-ZBZONY3D.js.map → research-YENNSNDT.js.map} +0 -0
- /package/dist/{reset-Q3XSD4WI.js.map → reset-3NUBL7ZW.js.map} +0 -0
- /package/dist/{reset-7YTMXVNX.js.map → reset-JZJH37IK.js.map} +0 -0
- /package/dist/{resolve-P3AT2S6A.js.map → resolve-IBJKPRXW.js.map} +0 -0
- /package/dist/{retry-CEZLEN7Z.js.map → retry-2EVDWOTU.js.map} +0 -0
- /package/dist/{retry-YNNFUDWI.js.map → retry-UVVOQ3ZP.js.map} +0 -0
- /package/dist/{revenue-6PR3BJFJ.js.map → revenue-OYGVWMWP.js.map} +0 -0
- /package/dist/{rules-R7NK5X4Z.js.map → rules-KLP3ACBB.js.map} +0 -0
- /package/dist/{rules-add-2GIJGODB.js.map → rules-add-TG5NUWCG.js.map} +0 -0
- /package/dist/{run-RORVKARV.js.map → run-MLBDKYCN.js.map} +0 -0
- /package/dist/{run-CDMNDJ7B.js.map → run-YQEJT6CE.js.map} +0 -0
- /package/dist/{scaffold-ad-DDGYTRFK.js.map → scaffold-ad-OVKDFAT3.js.map} +0 -0
- /package/dist/{scaffold-static-ad-ES5AIQPA.js.map → scaffold-static-ad-HCZDYPQT.js.map} +0 -0
- /package/dist/{scaffold-video-NWRJZQ7N.js.map → scaffold-video-R7U5SU4W.js.map} +0 -0
- /package/dist/{schedule-2ELAAXVW.js.map → schedule-45S5XYUG.js.map} +0 -0
- /package/dist/{scheduled-agents-RRAWQYPE.js.map → scheduled-agents-3SBTUT27.js.map} +0 -0
- /package/dist/{schema-FHP43TLD.js.map → schema-M4PXJYXA.js.map} +0 -0
- /package/dist/{search-G6W4LGVZ.js.map → search-B7CHHWJ2.js.map} +0 -0
- /package/dist/{select-GFPXXVBU.js.map → select-E2QVMBDU.js.map} +0 -0
- /package/dist/{set-prompt-TQDOBUFT.js.map → set-prompt-EL3BTDER.js.map} +0 -0
- /package/dist/{setup-links-CK7LBYJK.js.map → setup-links-EVK7LFRN.js.map} +0 -0
- /package/dist/{shopify-SOTGSWXW.js.map → shopify-Z5MTB35H.js.map} +0 -0
- /package/dist/{site-IAIGIP3R.js.map → site-2ZQVEKAK.js.map} +0 -0
- /package/dist/{sources-D5XODGIV.js.map → sources-AXVQQUVX.js.map} +0 -0
- /package/dist/{sources-62MIDG3D.js.map → sources-KGIJIBDT.js.map} +0 -0
- /package/dist/{stale-4STBM2Z3.js.map → stale-3U7GH6H6.js.map} +0 -0
- /package/dist/{status-BKSOFB53.js.map → status-2QCLEF3K.js.map} +0 -0
- /package/dist/{stock-F5QNFRPM.js.map → stock-SJHR5PN7.js.map} +0 -0
- /package/dist/{studio-ZRAZ2C25.js.map → studio-3WGQA4SK.js.map} +0 -0
- /package/dist/{sync-VPE5G6YX.js.map → sync-SLZTE4GN.js.map} +0 -0
- /package/dist/{sync-definition-VSNVCRNG.js.map → sync-definition-EGX27T7D.js.map} +0 -0
- /package/dist/{tags-ZV7JAF6S.js.map → tags-4OJPFYHD.js.map} +0 -0
- /package/dist/{tags-CBNWQTFX.js.map → tags-N3VBTOL7.js.map} +0 -0
- /package/dist/{tags-XPLXA3LV.js.map → tags-O6LWR6HA.js.map} +0 -0
- /package/dist/{tags-J6IPWIZ5.js.map → tags-R37YVLQ7.js.map} +0 -0
- /package/dist/{tags-IFBIJ7BE.js.map → tags-UT4GCC4R.js.map} +0 -0
- /package/dist/{targeting-criteria-VVZQFPNS.js.map → targeting-criteria-HLMSZJIH.js.map} +0 -0
- /package/dist/{targets-EQAZUKT6.js.map → targets-B2IEEQAZ.js.map} +0 -0
- /package/dist/{testimonials-5MA427KH.js.map → testimonials-556NQTPE.js.map} +0 -0
- /package/dist/{themes-WMZJWXFT.js.map → themes-T3N7PSQS.js.map} +0 -0
- /package/dist/{top-companies-V5FVQMCS.js.map → top-companies-3RXHHEHT.js.map} +0 -0
- /package/dist/{transcript-2TE2R4DH.js.map → transcript-FVDC57YN.js.map} +0 -0
- /package/dist/{translate-XIF6VTDN.js.map → translate-L4WNSEGK.js.map} +0 -0
- /package/dist/{triggers-ZMNQ6W3M.js.map → triggers-7HUHRSR5.js.map} +0 -0
- /package/dist/{unlink-HRCAROB3.js.map → unlink-YAZPQOHS.js.map} +0 -0
- /package/dist/{unstage-5WSEDFNH.js.map → unstage-S7DX2UNA.js.map} +0 -0
- /package/dist/{update-A64IC24P.js.map → update-7EK3QV4C.js.map} +0 -0
- /package/dist/{update-WU4FAGEA.js.map → update-CFKO67HM.js.map} +0 -0
- /package/dist/{update-BESMEMQU.js.map → update-UCLITI3F.js.map} +0 -0
- /package/dist/{update-ZUBU5NQP.js.map → update-ZJNAZOMG.js.map} +0 -0
- /package/dist/{upload-FR6WRGXI.js.map → upload-GLNKFQYB.js.map} +0 -0
- /package/dist/{url-options-QLDSJ7QJ.js.map → url-options-RLFQVU7T.js.map} +0 -0
- /package/dist/{url-params-YWIBMV3P.js.map → url-params-GC73ACBR.js.map} +0 -0
- /package/dist/{validate-5EWYG4QS.js.map → validate-7KONBGGV.js.map} +0 -0
- /package/dist/{videos-MXEQHDMN.js.map → videos-3RLDBPN4.js.map} +0 -0
- /package/dist/{viewer-check-QI4HKF7A.js.map → viewer-check-4I7DP7LF.js.map} +0 -0
- /package/dist/{web-DYT5YHEU.js.map → web-GJEXXHSQ.js.map} +0 -0
- /package/dist/{winning-ads-YKBB2UZC.js.map → winning-ads-SVAER25L.js.map} +0 -0
- /package/dist/{write-commands-USXHGCVT.js.map → write-commands-QKATOYYS.js.map} +0 -0
- /package/dist/{x-OIDZY7DM.js.map → x-WKFJMY24.js.map} +0 -0
package/dist/chunk-6I7GJDBX.js
DELETED
|
@@ -1,910 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
flowsDir,
|
|
3
|
-
walkNodes
|
|
4
|
-
} from "./chunk-MSGIF4EC.js";
|
|
5
|
-
|
|
6
|
-
// ../api/src/activecampaign.ts
|
|
7
|
-
import { z } from "zod";
|
|
8
|
-
var ACTIVECAMPAIGN_FIELD_TYPES = [
|
|
9
|
-
"standard",
|
|
10
|
-
"custom",
|
|
11
|
-
"tags",
|
|
12
|
-
"lists",
|
|
13
|
-
"automations",
|
|
14
|
-
"deal",
|
|
15
|
-
"account",
|
|
16
|
-
"note",
|
|
17
|
-
"event"
|
|
18
|
-
];
|
|
19
|
-
var ACTIVECAMPAIGN_TAGS_KEY = "tags";
|
|
20
|
-
var ACTIVECAMPAIGN_DEAL_FIELDS = [
|
|
21
|
-
{ key: "title", label: "Deal title" },
|
|
22
|
-
{ key: "value", label: "Deal value" },
|
|
23
|
-
{ key: "currency", label: "Deal currency" },
|
|
24
|
-
{ key: "pipeline", label: "Pipeline" },
|
|
25
|
-
{ key: "stage", label: "Stage" },
|
|
26
|
-
{ key: "owner", label: "Deal owner" },
|
|
27
|
-
{ key: "description", label: "Deal description" }
|
|
28
|
-
];
|
|
29
|
-
var ACTIVECAMPAIGN_ACCOUNT_FIELDS = [
|
|
30
|
-
{ key: "name", label: "Account name" },
|
|
31
|
-
{ key: "url", label: "Account website" }
|
|
32
|
-
];
|
|
33
|
-
var ACTIVECAMPAIGN_EVENT_FIELDS = [
|
|
34
|
-
{ key: "name", label: "Event name" },
|
|
35
|
-
{ key: "data", label: "Event details" }
|
|
36
|
-
];
|
|
37
|
-
function splitActiveCampaignNames(value) {
|
|
38
|
-
const seen = /* @__PURE__ */ new Set();
|
|
39
|
-
for (const raw of value.split(",")) {
|
|
40
|
-
const name = raw.trim().slice(0, 255);
|
|
41
|
-
if (name) seen.add(name);
|
|
42
|
-
}
|
|
43
|
-
return [...seen];
|
|
44
|
-
}
|
|
45
|
-
function findActiveCampaignOption(options, named) {
|
|
46
|
-
const wanted = named.trim();
|
|
47
|
-
if (!wanted) return void 0;
|
|
48
|
-
return options.find((option) => option.id === wanted) ?? options.find((option) => option.name.trim().toLowerCase() === wanted.toLowerCase());
|
|
49
|
-
}
|
|
50
|
-
var activeCampaignFieldSchema = z.object({
|
|
51
|
-
fieldType: z.enum(ACTIVECAMPAIGN_FIELD_TYPES),
|
|
52
|
-
/** What the mapping stores: the standard field's name, a custom field's id, `tags`, a deal part, …. */
|
|
53
|
-
fieldKey: z.string(),
|
|
54
|
-
label: z.string(),
|
|
55
|
-
/** ActiveCampaign's own type for a custom field (`text`, `date`, `dropdown`, …); null otherwise. */
|
|
56
|
-
dataType: z.string().nullable(),
|
|
57
|
-
/** A custom field's personalization tag (`%SECTOR%`), which people recognise it by. */
|
|
58
|
-
perstag: z.string().nullable()
|
|
59
|
-
});
|
|
60
|
-
function fixedField(fieldType, fieldKey, label, dataType = null) {
|
|
61
|
-
return { fieldType, fieldKey, label, dataType, perstag: null };
|
|
62
|
-
}
|
|
63
|
-
var ACTIVECAMPAIGN_FIXED_FIELDS = [
|
|
64
|
-
fixedField("tags", ACTIVECAMPAIGN_TAGS_KEY, "Tags"),
|
|
65
|
-
fixedField("lists", "lists", "Lists"),
|
|
66
|
-
fixedField("automations", "automations", "Automations"),
|
|
67
|
-
...ACTIVECAMPAIGN_DEAL_FIELDS.map(
|
|
68
|
-
(field) => fixedField("deal", field.key, field.label, field.key === "value" ? "currency" : null)
|
|
69
|
-
),
|
|
70
|
-
...ACTIVECAMPAIGN_ACCOUNT_FIELDS.map((field) => fixedField("account", field.key, field.label)),
|
|
71
|
-
fixedField("note", "note", "Note"),
|
|
72
|
-
...ACTIVECAMPAIGN_EVENT_FIELDS.map((field) => fixedField("event", field.key, field.label))
|
|
73
|
-
];
|
|
74
|
-
var activeCampaignOptionSchema = z.object({ id: z.string(), name: z.string() });
|
|
75
|
-
var activeCampaignPipelineSchema = activeCampaignOptionSchema.extend({
|
|
76
|
-
stages: z.array(activeCampaignOptionSchema)
|
|
77
|
-
});
|
|
78
|
-
var activeCampaignAutomationSchema = activeCampaignOptionSchema.extend({
|
|
79
|
-
startTags: z.array(z.string()).default([])
|
|
80
|
-
});
|
|
81
|
-
var activeCampaignCatalogSchema = z.object({
|
|
82
|
-
fields: z.array(activeCampaignFieldSchema),
|
|
83
|
-
lists: z.array(activeCampaignOptionSchema).default([]),
|
|
84
|
-
automations: z.array(activeCampaignAutomationSchema).default([]),
|
|
85
|
-
pipelines: z.array(activeCampaignPipelineSchema).default([]),
|
|
86
|
-
users: z.array(activeCampaignOptionSchema).default([]),
|
|
87
|
-
/** Whether events can be sent: an event key is pasted on the connection, or ActiveCampaign reports one (event tracking is on). */
|
|
88
|
-
eventKeySaved: z.boolean().default(false)
|
|
89
|
-
});
|
|
90
|
-
var activeCampaignFieldsRequestSchema = z.object({
|
|
91
|
-
/** Connection id; optional when the company has exactly one ActiveCampaign account. */
|
|
92
|
-
account: z.string().optional()
|
|
93
|
-
});
|
|
94
|
-
var activeCampaignFieldsResponseSchema = z.object({
|
|
95
|
-
ok: z.literal(true),
|
|
96
|
-
data: activeCampaignCatalogSchema.extend({ account: z.string() })
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
// src/commands/flows/value-expression.ts
|
|
100
|
-
import { existsSync, readFileSync } from "fs";
|
|
101
|
-
import { join } from "path";
|
|
102
|
-
var PREFIXES = ["field", "tracking", "global", "code"];
|
|
103
|
-
function splitParts(raw) {
|
|
104
|
-
const parts = [];
|
|
105
|
-
let current = "";
|
|
106
|
-
let inQuotes = false;
|
|
107
|
-
for (let i = 0; i < raw.length; i++) {
|
|
108
|
-
const char = raw[i];
|
|
109
|
-
if (char === '"') {
|
|
110
|
-
inQuotes = !inQuotes;
|
|
111
|
-
current += char;
|
|
112
|
-
} else if (char === "+" && !inQuotes) {
|
|
113
|
-
parts.push(current);
|
|
114
|
-
current = "";
|
|
115
|
-
} else {
|
|
116
|
-
current += char;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
parts.push(current);
|
|
120
|
-
if (inQuotes) {
|
|
121
|
-
throw new MappingError(`Unclosed quote in value \`${raw}\`.`, 'A literal is written "like this".');
|
|
122
|
-
}
|
|
123
|
-
return parts.map((part) => part.trim()).filter((part) => part.length > 0);
|
|
124
|
-
}
|
|
125
|
-
var TRANSFORM_REFUSAL = "A value cannot run code. Map the field as it is (firstname=full_name), or split it in the step with a codeExecution that exposes first_name and last_name and map code:first_name.";
|
|
126
|
-
var METHOD_CALL = /\.\s*[A-Za-z_$][\w$]*\s*\(/;
|
|
127
|
-
var TRAILING_INDEX = /\[[^\]]*\]$/;
|
|
128
|
-
function mentionPart(inner) {
|
|
129
|
-
if (inner.startsWith("tracking.")) return { kind: "tracking", name: inner.slice("tracking.".length) };
|
|
130
|
-
if (inner.startsWith("global.")) return { kind: "global", name: inner.slice("global.".length) };
|
|
131
|
-
return referencePart(inner);
|
|
132
|
-
}
|
|
133
|
-
function referencePart(ref) {
|
|
134
|
-
return /\.codeExecution\.[^.]+$/.test(ref) ? { kind: "code", ref } : { kind: "field", ref };
|
|
135
|
-
}
|
|
136
|
-
function parsePart(part) {
|
|
137
|
-
if (part.startsWith('"') && part.endsWith('"') && part.length >= 2) {
|
|
138
|
-
return { kind: "text", text: part.slice(1, -1) };
|
|
139
|
-
}
|
|
140
|
-
if (METHOD_CALL.test(part) || TRAILING_INDEX.test(part)) {
|
|
141
|
-
throw new MappingError(TRANSFORM_REFUSAL);
|
|
142
|
-
}
|
|
143
|
-
if (part.startsWith("{{")) {
|
|
144
|
-
const close = part.indexOf("}}");
|
|
145
|
-
if (close < 0) {
|
|
146
|
-
throw new MappingError(
|
|
147
|
-
`Unclosed \`{{\` in value \`${part}\`.`,
|
|
148
|
-
"A mention is written {{<stepId>.customForm.<field>}}."
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
if (part.slice(close + 2).trim()) throw new MappingError(TRANSFORM_REFUSAL);
|
|
152
|
-
return mentionPart(part.slice(2, close).trim());
|
|
153
|
-
}
|
|
154
|
-
const colon = part.indexOf(":");
|
|
155
|
-
if (colon <= 0) return referencePart(part);
|
|
156
|
-
const prefix = part.slice(0, colon);
|
|
157
|
-
const rest = part.slice(colon + 1).trim();
|
|
158
|
-
if (!PREFIXES.includes(prefix)) {
|
|
159
|
-
throw new MappingError(
|
|
160
|
-
`\`${prefix}:\` is not a value kind.`,
|
|
161
|
-
`Use one of ${PREFIXES.map((candidate) => `${candidate}:`).join(" ")}, a bare form field name, or a "quoted literal".`
|
|
162
|
-
);
|
|
163
|
-
}
|
|
164
|
-
if (!rest) throw new MappingError(`\`${part}\` names no ${prefix}.`);
|
|
165
|
-
switch (prefix) {
|
|
166
|
-
case "tracking":
|
|
167
|
-
return { kind: "tracking", name: rest.replace(/^tracking\./, "") };
|
|
168
|
-
case "global":
|
|
169
|
-
return { kind: "global", name: rest };
|
|
170
|
-
case "code":
|
|
171
|
-
return { kind: "code", ref: rest };
|
|
172
|
-
default:
|
|
173
|
-
return { kind: "field", ref: rest };
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
function parseValueExpression(raw) {
|
|
177
|
-
const parts = splitParts(raw);
|
|
178
|
-
if (parts.length === 0) {
|
|
179
|
-
throw new MappingError("A --map needs a value on the right of the `=`.");
|
|
180
|
-
}
|
|
181
|
-
return parts.map(parsePart);
|
|
182
|
-
}
|
|
183
|
-
function trackingFieldIds() {
|
|
184
|
-
const path = join(flowsDir(), "..", "tracking.ts");
|
|
185
|
-
if (!existsSync(path)) return null;
|
|
186
|
-
try {
|
|
187
|
-
const source = readFileSync(path, "utf-8");
|
|
188
|
-
const block = source.match(/TRACKING_FIELD_IDS\s*=\s*\[([\s\S]*?)\]\s*as const/)?.[1];
|
|
189
|
-
if (!block) return null;
|
|
190
|
-
const ids = [...block.matchAll(/"(tracking\.[a-z0-9_]+)"/g)].map((match) => match[1]);
|
|
191
|
-
return ids.length > 0 ? new Set(ids) : null;
|
|
192
|
-
} catch {
|
|
193
|
-
return null;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
function externalOf(node) {
|
|
197
|
-
const nodeData = node.nodeData ?? {};
|
|
198
|
-
return nodeData.form?.external ?? {};
|
|
199
|
-
}
|
|
200
|
-
function fieldOwners(tree) {
|
|
201
|
-
return walkNodes(tree).flatMap((node) => {
|
|
202
|
-
const external = externalOf(node);
|
|
203
|
-
if (!Array.isArray(external.fields)) return [];
|
|
204
|
-
return [
|
|
205
|
-
{
|
|
206
|
-
id: String(node.id ?? ""),
|
|
207
|
-
name: typeof node.name === "string" && node.name ? node.name : "Form",
|
|
208
|
-
fields: external.fields.map((field) => field?.fieldName).filter((name) => typeof name === "string")
|
|
209
|
-
}
|
|
210
|
-
];
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
function splitRef(ref, segment) {
|
|
214
|
-
const marker = `.${segment}.`;
|
|
215
|
-
const at = ref.lastIndexOf(marker);
|
|
216
|
-
if (at > 0 && !ref.slice(at + marker.length).includes(".")) {
|
|
217
|
-
return { step: ref.slice(0, at), name: ref.slice(at + marker.length) };
|
|
218
|
-
}
|
|
219
|
-
const dot = ref.lastIndexOf(".");
|
|
220
|
-
if (dot <= 0) return { name: ref };
|
|
221
|
-
return { step: ref.slice(0, dot), name: ref.slice(dot + 1) };
|
|
222
|
-
}
|
|
223
|
-
function mention(id, label) {
|
|
224
|
-
return { type: "VariablesMention", attrs: { id, label, mentionSuggestionChar: "{{" } };
|
|
225
|
-
}
|
|
226
|
-
function titleize(value) {
|
|
227
|
-
return value.split(/[_-]+/).filter(Boolean).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
228
|
-
}
|
|
229
|
-
function resolveField(tree, ref) {
|
|
230
|
-
const { step, name } = splitRef(ref, "customForm");
|
|
231
|
-
const owners = fieldOwners(tree);
|
|
232
|
-
const inventory = owners.map((owner2) => ` ${owner2.name} (${owner2.id}): ${owner2.fields.join(", ") || "(no fields)"}`).join("\n");
|
|
233
|
-
const candidates = owners.filter(
|
|
234
|
-
(owner2) => owner2.fields.includes(name) && (!step || owner2.name === step || owner2.id === step)
|
|
235
|
-
);
|
|
236
|
-
if (candidates.length === 0) {
|
|
237
|
-
throw new MappingError(`Form field "${ref}" does not exist in this form.`, inventory);
|
|
238
|
-
}
|
|
239
|
-
if (candidates.length > 1) {
|
|
240
|
-
throw new MappingError(
|
|
241
|
-
`Form field "${name}" exists on ${candidates.length} steps \u2014 say which: field:<step>.${name}`,
|
|
242
|
-
candidates.map((owner2) => ` field:${owner2.name}.${name}`).join("\n")
|
|
243
|
-
);
|
|
244
|
-
}
|
|
245
|
-
const owner = candidates[0];
|
|
246
|
-
return mention(`${owner.id}.customForm.${name}`, `${owner.name} => ${titleize(name)}`);
|
|
247
|
-
}
|
|
248
|
-
function resolveTracking(name) {
|
|
249
|
-
const id = `tracking.${name}`;
|
|
250
|
-
const known = trackingFieldIds();
|
|
251
|
-
if (known && !known.has(id)) {
|
|
252
|
-
const near = [...known].filter((candidate) => candidate.includes(name.split("_")[0] ?? name)).slice(0, 8);
|
|
253
|
-
throw new MappingError(
|
|
254
|
-
`\`${id}\` is not a tracking variable.`,
|
|
255
|
-
near.length > 0 ? `Close matches: ${near.join(", ")}` : "See references/autofill-and-variables.md \xA7 Built-in Tracking Variables."
|
|
256
|
-
);
|
|
257
|
-
}
|
|
258
|
-
return mention(id, id);
|
|
259
|
-
}
|
|
260
|
-
function resolveGlobal(tree, name) {
|
|
261
|
-
const globals = tree.globalVariables ?? [];
|
|
262
|
-
const match = globals.find((variable) => variable?.name === name || variable?.id === name);
|
|
263
|
-
if (!match) {
|
|
264
|
-
throw new MappingError(
|
|
265
|
-
`No global variable named "${name}" on this form.`,
|
|
266
|
-
globals.length > 0 ? `Defined: ${globals.map((variable) => String(variable.name)).join(", ")}` : "This form defines none. Globals live on the first node only \u2014 see references/autofill-and-variables.md \xA7 Global Variables."
|
|
267
|
-
);
|
|
268
|
-
}
|
|
269
|
-
const id = `global.${String(match.id)}`;
|
|
270
|
-
return mention(id, id);
|
|
271
|
-
}
|
|
272
|
-
function resolveCode(tree, ref) {
|
|
273
|
-
const { step, name } = splitRef(ref, "codeExecution");
|
|
274
|
-
const owners = walkNodes(tree).flatMap((node) => {
|
|
275
|
-
const exposed = externalOf(node).codeExecution?.exposedValues ?? [];
|
|
276
|
-
const names = exposed.map((value) => value?.name).filter((value) => typeof value === "string");
|
|
277
|
-
return names.length > 0 ? [{ id: String(node.id ?? ""), name: String(node.name ?? "step"), names }] : [];
|
|
278
|
-
});
|
|
279
|
-
const candidates = owners.filter(
|
|
280
|
-
(owner2) => owner2.names.includes(name) && (!step || owner2.name === step || owner2.id === step)
|
|
281
|
-
);
|
|
282
|
-
if (candidates.length !== 1) {
|
|
283
|
-
throw new MappingError(
|
|
284
|
-
candidates.length === 0 ? `No codeExecution exposes "${ref}" on this form.` : `"${name}" is exposed by ${candidates.length} steps \u2014 say which: code:<step>.${name}`,
|
|
285
|
-
owners.length > 0 ? owners.map((owner2) => ` ${owner2.name} (${owner2.id}): ${owner2.names.join(", ")}`).join("\n") : "No step on this form exposes any codeExecution value."
|
|
286
|
-
);
|
|
287
|
-
}
|
|
288
|
-
const owner = candidates[0];
|
|
289
|
-
return mention(`${owner.id}.codeExecution.${name}`, `${owner.name} => ${titleize(name)}`);
|
|
290
|
-
}
|
|
291
|
-
function buildValueDoc(tree, expression) {
|
|
292
|
-
const parts = parseValueExpression(expression);
|
|
293
|
-
const content = parts.map((part) => {
|
|
294
|
-
switch (part.kind) {
|
|
295
|
-
case "text":
|
|
296
|
-
return { type: "text", text: part.text };
|
|
297
|
-
case "tracking":
|
|
298
|
-
return resolveTracking(part.name);
|
|
299
|
-
case "global":
|
|
300
|
-
return resolveGlobal(tree, part.name);
|
|
301
|
-
case "code":
|
|
302
|
-
return resolveCode(tree, part.ref);
|
|
303
|
-
default:
|
|
304
|
-
return resolveField(tree, part.ref);
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
const single = content.length === 1 && parts[0]?.kind !== "text";
|
|
308
|
-
return {
|
|
309
|
-
type: "doc",
|
|
310
|
-
content: [{ type: "paragraph", content: single ? [...content, { type: "text", text: " " }] : content }]
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// src/commands/flows/mapping.ts
|
|
315
|
-
var MappingError = class extends Error {
|
|
316
|
-
fix;
|
|
317
|
-
constructor(message, fix) {
|
|
318
|
-
super(message);
|
|
319
|
-
this.name = "MappingError";
|
|
320
|
-
this.fix = fix;
|
|
321
|
-
}
|
|
322
|
-
};
|
|
323
|
-
var PAYLOAD = (key) => ({ kind: "list", key, addressedBy: "key" });
|
|
324
|
-
var META_MATCHING = ["em", "fn", "ln", "ph", "external_id", "ge", "db", "ct", "st", "zp", "country"];
|
|
325
|
-
var ADS_MATCHING = [
|
|
326
|
-
"email",
|
|
327
|
-
"phone_number",
|
|
328
|
-
"first_name",
|
|
329
|
-
"last_name",
|
|
330
|
-
"street",
|
|
331
|
-
"city",
|
|
332
|
-
"region",
|
|
333
|
-
"postal_code",
|
|
334
|
-
"country"
|
|
335
|
-
];
|
|
336
|
-
var MAPPING_SLOTS = {
|
|
337
|
-
shopifyCustomer: [
|
|
338
|
-
{
|
|
339
|
-
kind: "record",
|
|
340
|
-
key: "customer",
|
|
341
|
-
allowed: ["email", "phone", "firstName", "lastName", "acceptsEmailMarketing", "acceptsSmsMarketing"]
|
|
342
|
-
}
|
|
343
|
-
],
|
|
344
|
-
googleSpreadsheet: [{ kind: "list", key: "columnMapping", addressedBy: "column" }],
|
|
345
|
-
hubspotForm: [
|
|
346
|
-
{
|
|
347
|
-
kind: "list",
|
|
348
|
-
key: "fieldMapping",
|
|
349
|
-
addressedBy: "fieldName",
|
|
350
|
-
needsFieldType: true,
|
|
351
|
-
fieldTypeSource: "Pass --hubspot-form <formGuid> and this command reads every property's type off the form itself \u2014 the guid is the `formGuid` in the `destination` request_flow_input returned. `baker hubspot forms view <formGuid>` prints the same list if you want to see it."
|
|
352
|
-
}
|
|
353
|
-
],
|
|
354
|
-
pipedrive: [
|
|
355
|
-
{
|
|
356
|
-
kind: "list",
|
|
357
|
-
key: "fieldMapping",
|
|
358
|
-
addressedBy: "fieldKey",
|
|
359
|
-
entities: ["person", "organization", "lead"],
|
|
360
|
-
needsFieldType: true,
|
|
361
|
-
needsIsCustom: true
|
|
362
|
-
}
|
|
363
|
-
],
|
|
364
|
-
goHighlevelContact: [
|
|
365
|
-
{
|
|
366
|
-
kind: "list",
|
|
367
|
-
key: "fieldMapping",
|
|
368
|
-
addressedBy: "fieldKey",
|
|
369
|
-
entities: ["business", "contact", "opportunity"],
|
|
370
|
-
needsFieldType: true,
|
|
371
|
-
needsIsCustom: true
|
|
372
|
-
}
|
|
373
|
-
],
|
|
374
|
-
crmble: [
|
|
375
|
-
{ kind: "list", key: "fieldMapping", addressedBy: "fieldId", entities: ["contact", "lead"], needsFieldType: true }
|
|
376
|
-
],
|
|
377
|
-
activeCampaignContact: [
|
|
378
|
-
{
|
|
379
|
-
kind: "list",
|
|
380
|
-
key: "fieldMapping",
|
|
381
|
-
addressedBy: "fieldKey",
|
|
382
|
-
needsFieldType: true,
|
|
383
|
-
fieldTypes: ACTIVECAMPAIGN_FIELD_TYPES,
|
|
384
|
-
qualifiedByFieldType: true,
|
|
385
|
-
fieldTypeSource: 'None to write: this command reads the connected ActiveCampaign account\'s field list itself. Write `email=email`, `firstName=nombre`, a custom field by its id, personalization tag or label (`SECTOR=sector`; `custom.UTM_SOURCE=\u2026` for one only staged so far), `tags="withbaker-"+tracking:page_path`, `lists="Newsletter"`, `automations="Welcome"`, `deal.title=\u2026` / `deal.pipeline="Sales"` / `deal.value=budget`, `account.name=company`, `note=\u2026`, `event.name="demo_requested"`.'
|
|
386
|
-
}
|
|
387
|
-
],
|
|
388
|
-
email: [{ ...PAYLOAD("fields"), under: "body" }],
|
|
389
|
-
zapier: [PAYLOAD("payloadKeys")],
|
|
390
|
-
httpWebhook: [PAYLOAD("payloadKeys")],
|
|
391
|
-
googleTagManager: [PAYLOAD("dataLayerParams")],
|
|
392
|
-
googleAnalytics: [PAYLOAD("eventParams")],
|
|
393
|
-
posthog: [PAYLOAD("eventParams")],
|
|
394
|
-
amplitude: [PAYLOAD("eventProperties")],
|
|
395
|
-
hubspot: [PAYLOAD("eventProperties")],
|
|
396
|
-
vwo: [PAYLOAD("eventProperties")],
|
|
397
|
-
code: [PAYLOAD("eventProperties")],
|
|
398
|
-
datafast: [PAYLOAD("goalParams")],
|
|
399
|
-
meta: [PAYLOAD("eventParams"), { kind: "record", key: "advancedMatching", allowed: META_MATCHING }],
|
|
400
|
-
chatgptAds: [
|
|
401
|
-
PAYLOAD("eventParams"),
|
|
402
|
-
{
|
|
403
|
-
kind: "record",
|
|
404
|
-
key: "advancedMatching",
|
|
405
|
-
allowed: ["em", "ph", "fn", "ln", "external_id", "ct", "st", "zp", "country"]
|
|
406
|
-
}
|
|
407
|
-
],
|
|
408
|
-
tiktok: [
|
|
409
|
-
PAYLOAD("eventParams"),
|
|
410
|
-
{ kind: "record", key: "identify", allowed: ["email", "phone_number", "external_id"] }
|
|
411
|
-
],
|
|
412
|
-
pinterest: [PAYLOAD("eventParams"), { kind: "record", key: "enhancedMatching", allowed: ["em", "hashed_maids"] }],
|
|
413
|
-
googleAds: [
|
|
414
|
-
{ kind: "record", key: "enhancedConversions", allowed: ADS_MATCHING },
|
|
415
|
-
{ kind: "scalar", keys: ["value", "currency", "transactionId"] }
|
|
416
|
-
],
|
|
417
|
-
linkedinInsightTag: [
|
|
418
|
-
{ kind: "record", key: "userMatching", allowed: ["em", "fn", "ln", "title", "companyName", "country"] },
|
|
419
|
-
{ kind: "scalar", keys: ["value", "currency"] }
|
|
420
|
-
],
|
|
421
|
-
twitterAds: [
|
|
422
|
-
{ kind: "record", key: "userMatching", allowed: ["em", "ph"] },
|
|
423
|
-
{ kind: "scalar", keys: ["value", "currency"] }
|
|
424
|
-
]
|
|
425
|
-
};
|
|
426
|
-
var UNMAPPABLE = {
|
|
427
|
-
hotjar: "A Hotjar event carries only its name.",
|
|
428
|
-
clarity: "A Clarity custom tag carries only its name."
|
|
429
|
-
};
|
|
430
|
-
function slotName(shape) {
|
|
431
|
-
if (shape.kind === "scalar") return shape.keys.join("/");
|
|
432
|
-
if (shape.kind === "list" && shape.under) return `${shape.under}.${shape.key}`;
|
|
433
|
-
return shape.key;
|
|
434
|
-
}
|
|
435
|
-
function shapeFor(type, into) {
|
|
436
|
-
const slots = MAPPING_SLOTS[type];
|
|
437
|
-
if (!slots) {
|
|
438
|
-
const why = UNMAPPABLE[type];
|
|
439
|
-
throw new MappingError(
|
|
440
|
-
`Side effect "${type}" has no mappable field.`,
|
|
441
|
-
why ?? `"${type}" is not a side-effect type this workspace's flow engine defines.`
|
|
442
|
-
);
|
|
443
|
-
}
|
|
444
|
-
if (!into) return slots[0];
|
|
445
|
-
const chosen = slots.find(
|
|
446
|
-
(slot) => slot.kind === "scalar" ? slot.keys.includes(into) || into === "scalar" : slot.key === into || slotName(slot) === into
|
|
447
|
-
);
|
|
448
|
-
if (!chosen) {
|
|
449
|
-
throw new MappingError(
|
|
450
|
-
`"${into}" is not a mappable slot on a ${type} side effect.`,
|
|
451
|
-
`Slots on ${type}: ${slots.map(slotName).join(", ")}`
|
|
452
|
-
);
|
|
453
|
-
}
|
|
454
|
-
return chosen;
|
|
455
|
-
}
|
|
456
|
-
function namesComeFromAccount(shape) {
|
|
457
|
-
return shape.kind === "list" && shape.addressedBy !== "key";
|
|
458
|
-
}
|
|
459
|
-
function describeSlots(type) {
|
|
460
|
-
return (MAPPING_SLOTS[type] ?? []).map((shape) => {
|
|
461
|
-
if (shape.kind === "record") {
|
|
462
|
-
return {
|
|
463
|
-
slot: shape.key,
|
|
464
|
-
addressedBy: "one of a closed set",
|
|
465
|
-
keysFrom: "closed",
|
|
466
|
-
keys: shape.allowed,
|
|
467
|
-
note: `${type} defines these names; any other is refused.`
|
|
468
|
-
};
|
|
469
|
-
}
|
|
470
|
-
if (shape.kind === "scalar") {
|
|
471
|
-
return {
|
|
472
|
-
slot: shape.keys.join("/"),
|
|
473
|
-
addressedBy: "the field's own name",
|
|
474
|
-
keysFrom: "closed",
|
|
475
|
-
keys: shape.keys,
|
|
476
|
-
note: "Each is a single value on the side effect, mapped like any other."
|
|
477
|
-
};
|
|
478
|
-
}
|
|
479
|
-
if (shape.addressedBy === "key") {
|
|
480
|
-
return {
|
|
481
|
-
slot: slotName(shape),
|
|
482
|
-
addressedBy: "key",
|
|
483
|
-
keysFrom: "yours",
|
|
484
|
-
note: "You name these \u2014 they are what the receiving system expects. Ask the user if you do not know them."
|
|
485
|
-
};
|
|
486
|
-
}
|
|
487
|
-
return {
|
|
488
|
-
slot: slotName(shape),
|
|
489
|
-
addressedBy: shape.addressedBy,
|
|
490
|
-
keysFrom: "account",
|
|
491
|
-
note: "These live in the connected account. Read them off the request_flow_input result; they cannot be guessed.",
|
|
492
|
-
...shape.needsFieldType ? { fieldTypes: shape.fieldTypeSource ?? FIELD_TYPE_FROM_INPUT } : {}
|
|
493
|
-
};
|
|
494
|
-
});
|
|
495
|
-
}
|
|
496
|
-
var FIELD_TYPE_FROM_INPUT = "Each mapping stores a field type. They come back from request_flow_input with the field list \u2014 write one on the LEFT: <field>:<fieldType>=<value>.";
|
|
497
|
-
function otherSlots(type, used) {
|
|
498
|
-
return (MAPPING_SLOTS[type] ?? []).filter((slot) => slot !== used).map(slotName);
|
|
499
|
-
}
|
|
500
|
-
var ACTIVECAMPAIGN_BARE_KINDS = /* @__PURE__ */ new Set(["standard", "custom", "tags", "lists", "automations", "note"]);
|
|
501
|
-
function addCustomAliases(catalog, field) {
|
|
502
|
-
const entry = catalog.get(`custom.${field.fieldKey}`);
|
|
503
|
-
if (!entry) return;
|
|
504
|
-
const tag = field.perstag?.replaceAll("%", "");
|
|
505
|
-
if (tag) catalog.set(`custom.${tag.toUpperCase()}`, entry);
|
|
506
|
-
const aliases = [field.perstag, tag, field.label].filter((alias) => !!alias);
|
|
507
|
-
for (const alias of aliases) {
|
|
508
|
-
const key = alias.trim().toLowerCase();
|
|
509
|
-
if (key && !catalog.has(key)) catalog.set(key, entry);
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
function activeCampaignDestinationFields(fields) {
|
|
513
|
-
const catalog = /* @__PURE__ */ new Map();
|
|
514
|
-
for (const field of fields) {
|
|
515
|
-
const qualified = `${field.fieldType}.${field.fieldKey}`;
|
|
516
|
-
const bare = ACTIVECAMPAIGN_BARE_KINDS.has(field.fieldType);
|
|
517
|
-
const entry = {
|
|
518
|
-
fieldType: field.fieldType,
|
|
519
|
-
fieldKey: field.fieldKey,
|
|
520
|
-
label: field.label,
|
|
521
|
-
...bare ? {} : { listedAs: qualified }
|
|
522
|
-
};
|
|
523
|
-
catalog.set(qualified, entry);
|
|
524
|
-
if (bare && !catalog.has(field.fieldKey)) {
|
|
525
|
-
catalog.set(field.fieldKey, entry);
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
for (const field of fields) {
|
|
529
|
-
if (field.fieldType === "custom") addCustomAliases(catalog, field);
|
|
530
|
-
}
|
|
531
|
-
return catalog;
|
|
532
|
-
}
|
|
533
|
-
function activeCampaignUnlistedField(destField) {
|
|
534
|
-
const match = /^custom\.%?([A-Za-z][A-Za-z0-9_]*)%?$/.exec(destField.trim());
|
|
535
|
-
if (!match?.[1]) return void 0;
|
|
536
|
-
const tag = match[1].toUpperCase();
|
|
537
|
-
return { fieldType: "custom", fieldKey: tag, label: `%${tag}%` };
|
|
538
|
-
}
|
|
539
|
-
function literalText(value) {
|
|
540
|
-
const paragraphs = (value ?? {}).content;
|
|
541
|
-
if (!Array.isArray(paragraphs)) return null;
|
|
542
|
-
const inline = paragraphs.flatMap((paragraph) => paragraph.content ?? []);
|
|
543
|
-
if (inline.length === 0 || inline.some((node) => node.type !== "text")) return null;
|
|
544
|
-
return inline.map((node) => node.text ?? "").join("");
|
|
545
|
-
}
|
|
546
|
-
function optionListing(options) {
|
|
547
|
-
return options.length > 0 ? options.map((option) => `${option.name} (${option.id})`).join(", ") : "none";
|
|
548
|
-
}
|
|
549
|
-
function unknownNames(value, options) {
|
|
550
|
-
const text = literalText(value);
|
|
551
|
-
if (text === null) return [];
|
|
552
|
-
return splitActiveCampaignNames(text).filter((name) => !findActiveCampaignOption(options, name));
|
|
553
|
-
}
|
|
554
|
-
function namedOptionHints(mapped, catalog) {
|
|
555
|
-
const hints = [];
|
|
556
|
-
const unknown = (type, key, options, noun) => {
|
|
557
|
-
for (const name of unknownNames(mapped(type, key)?.value, options)) {
|
|
558
|
-
hints.push(
|
|
559
|
-
`ActiveCampaign has no ${noun} called "${name}", so that part will be skipped. It has: ${optionListing(options)}.`
|
|
560
|
-
);
|
|
561
|
-
}
|
|
562
|
-
};
|
|
563
|
-
unknown("lists", "lists", catalog.lists, "list");
|
|
564
|
-
unknown("automations", "automations", catalog.automations, "automation");
|
|
565
|
-
if (mapped("automations", "automations") && catalog.automations.length === 0) {
|
|
566
|
-
hints.push(
|
|
567
|
-
"This ActiveCampaign account has no automations. They can only be built in ActiveCampaign \u2014 ask the user to create one."
|
|
568
|
-
);
|
|
569
|
-
}
|
|
570
|
-
unknown("deal", "pipeline", catalog.pipelines, "pipeline");
|
|
571
|
-
unknown("deal", "owner", catalog.users, "user");
|
|
572
|
-
return hints;
|
|
573
|
-
}
|
|
574
|
-
function literalTags(value) {
|
|
575
|
-
const paragraphs = (value ?? {}).content;
|
|
576
|
-
if (!Array.isArray(paragraphs)) return [];
|
|
577
|
-
const inline = paragraphs.flatMap((paragraph) => paragraph.content ?? []);
|
|
578
|
-
return inline.flatMap((node, index) => {
|
|
579
|
-
if (node.type !== "text") return [];
|
|
580
|
-
const pieces = (node.text ?? "").split(",");
|
|
581
|
-
const touchesBefore = index > 0 && inline[index - 1]?.type !== "text";
|
|
582
|
-
const touchesAfter = index < inline.length - 1 && inline[index + 1]?.type !== "text";
|
|
583
|
-
return pieces.filter((_, piece) => !(piece === 0 && touchesBefore) && !(piece === pieces.length - 1 && touchesAfter)).map((piece) => piece.trim()).filter((piece) => piece !== "");
|
|
584
|
-
});
|
|
585
|
-
}
|
|
586
|
-
function doubleEnrollmentHints(mapped, catalog) {
|
|
587
|
-
const enrolled = literalText(mapped("automations", "automations")?.value);
|
|
588
|
-
if (enrolled === null) return [];
|
|
589
|
-
const tags = new Set(literalTags(mapped("tags", "tags")?.value).map((tag) => tag.toLowerCase()));
|
|
590
|
-
return splitActiveCampaignNames(enrolled).flatMap((name) => {
|
|
591
|
-
const automation = catalog.automations.find((option) => findActiveCampaignOption([option], name));
|
|
592
|
-
const tag = automation?.startTags.find((start) => tags.has(start.toLowerCase()));
|
|
593
|
-
return automation && tag ? [
|
|
594
|
-
`"${automation.name}" starts when the tag "${tag}" is added, and this Form adds that tag AND enrolls the lead in it \u2014 every lead would run it twice (ActiveCampaign's "runs once" does not stop a direct enrollment). Keep one: drop "${automation.name}" from automations, or drop the tag.`
|
|
595
|
-
] : [];
|
|
596
|
-
});
|
|
597
|
-
}
|
|
598
|
-
function dealHints(fieldMapping, mapped, catalog) {
|
|
599
|
-
if (!fieldMapping.some((entry) => entry.fieldType === "deal")) return [];
|
|
600
|
-
const hints = [];
|
|
601
|
-
if (!mapped("deal", "title") && !mapped("deal", "pipeline")) {
|
|
602
|
-
hints.push("No deal is created without deal.title or deal.pipeline \u2014 map one of them too.");
|
|
603
|
-
}
|
|
604
|
-
if (catalog.pipelines.length === 0) {
|
|
605
|
-
hints.push("This ActiveCampaign account has no deal pipeline, so no deal can be created until one exists.");
|
|
606
|
-
}
|
|
607
|
-
const pipelineText = literalText(mapped("deal", "pipeline")?.value);
|
|
608
|
-
const pipeline = pipelineText ? findActiveCampaignOption(catalog.pipelines, pipelineText) : catalog.pipelines[0];
|
|
609
|
-
if (!pipeline) return hints;
|
|
610
|
-
for (const name of unknownNames(mapped("deal", "stage")?.value, pipeline.stages)) {
|
|
611
|
-
hints.push(
|
|
612
|
-
`The pipeline "${pipeline.name}" has no stage called "${name}", so deals land in its first stage. Its stages: ${optionListing(pipeline.stages)}.`
|
|
613
|
-
);
|
|
614
|
-
}
|
|
615
|
-
return hints;
|
|
616
|
-
}
|
|
617
|
-
function attachmentHints(mapped, catalog) {
|
|
618
|
-
const hints = [];
|
|
619
|
-
if (mapped("account", "url") && !mapped("account", "name")) {
|
|
620
|
-
hints.push("account.url is only sent with account.name \u2014 map the company name too.");
|
|
621
|
-
}
|
|
622
|
-
if (mapped("event", "data") && !mapped("event", "name")) hints.push("event.data is only sent with event.name.");
|
|
623
|
-
if (mapped("event", "name") && !catalog.eventKeySaved) {
|
|
624
|
-
hints.push(
|
|
625
|
-
"Event tracking is off on this ActiveCampaign account, so the event will be skipped: ask the user to switch event tracking on in ActiveCampaign (Settings \u2192 Tracking \u2192 Event Tracking). There is nothing to paste \u2014 Baker reads the account's event key itself once it is on. Until then only the event is skipped; the contact and the rest still arrive."
|
|
626
|
-
);
|
|
627
|
-
}
|
|
628
|
-
return hints;
|
|
629
|
-
}
|
|
630
|
-
function unlistedCustomHints(fieldMapping, catalog) {
|
|
631
|
-
const listedIds = new Set(catalog.fields.flatMap((field) => field.fieldType === "custom" ? [field.fieldKey] : []));
|
|
632
|
-
return fieldMapping.flatMap((entry) => {
|
|
633
|
-
const key = typeof entry.fieldKey === "string" ? entry.fieldKey : "";
|
|
634
|
-
if (entry.fieldType !== "custom" || /^\d+$/.test(key) || listedIds.has(key)) return [];
|
|
635
|
-
return [
|
|
636
|
-
`custom.${key} is not on the ActiveCampaign account yet. Stage the field (\`baker activecampaign stage field\`) so it exists at Publish; until it does, that value is left empty on each contact.`
|
|
637
|
-
];
|
|
638
|
-
});
|
|
639
|
-
}
|
|
640
|
-
function activeCampaignMappingHints(fieldMapping, catalog) {
|
|
641
|
-
const mapped = (type, key) => fieldMapping.find((entry) => entry.fieldType === type && entry.fieldKey === key);
|
|
642
|
-
return [
|
|
643
|
-
...namedOptionHints(mapped, catalog),
|
|
644
|
-
...doubleEnrollmentHints(mapped, catalog),
|
|
645
|
-
...dealHints(fieldMapping, mapped, catalog),
|
|
646
|
-
...attachmentHints(mapped, catalog),
|
|
647
|
-
...unlistedCustomHints(fieldMapping, catalog)
|
|
648
|
-
];
|
|
649
|
-
}
|
|
650
|
-
function parseMapSpec(raw) {
|
|
651
|
-
const eq = raw.indexOf("=");
|
|
652
|
-
if (eq <= 0 || eq === raw.length - 1) {
|
|
653
|
-
throw new MappingError(
|
|
654
|
-
`--map "${raw}" must be <destField>[:<fieldType>]=<value>`,
|
|
655
|
-
'Value: a form field (`nombre`), `tracking:utm_source`, `global:Name`, `code:name`, a "literal", or those joined with `+`.'
|
|
656
|
-
);
|
|
657
|
-
}
|
|
658
|
-
const left = raw.slice(0, eq).trim();
|
|
659
|
-
const expression = raw.slice(eq + 1).trim();
|
|
660
|
-
const colon = left.indexOf(":");
|
|
661
|
-
const destField = (colon > 0 ? left.slice(0, colon) : left).trim();
|
|
662
|
-
const fieldType = colon > 0 ? left.slice(colon + 1).trim() : "";
|
|
663
|
-
if (!destField) throw new MappingError(`--map "${raw}" names no destination field.`);
|
|
664
|
-
return { raw, destField, fieldType: fieldType || void 0, expression };
|
|
665
|
-
}
|
|
666
|
-
function sheetEntry(spec, value) {
|
|
667
|
-
if (!/^[A-Z]{1,3}$/.test(spec.destField)) {
|
|
668
|
-
throw new MappingError(
|
|
669
|
-
`--map "${spec.raw}": a Google Sheet is addressed by COLUMN, so the left side must be a column letter (A, B, \u2026 AA), got "${spec.destField}".`,
|
|
670
|
-
"Read the real destination back from the configured side effect first \u2014 a column letter is a guess until a spreadsheet is picked."
|
|
671
|
-
);
|
|
672
|
-
}
|
|
673
|
-
return { column: spec.destField, value };
|
|
674
|
-
}
|
|
675
|
-
function destinationField(spec, options) {
|
|
676
|
-
const catalog = options.destinationFields;
|
|
677
|
-
if (!catalog) return void 0;
|
|
678
|
-
const match = catalog.get(spec.destField);
|
|
679
|
-
if (match) return match;
|
|
680
|
-
const alias = catalog.get(spec.destField.trim().toLowerCase());
|
|
681
|
-
if (alias?.fieldKey) return alias;
|
|
682
|
-
const unlisted = options.unlistedField?.(spec.destField);
|
|
683
|
-
if (unlisted) return unlisted;
|
|
684
|
-
throw new MappingError(
|
|
685
|
-
`--map "${spec.raw}": the destination has no field called "${spec.destField}".`,
|
|
686
|
-
`Fields on it: ${catalogListing(catalog) || "(none)"}`
|
|
687
|
-
);
|
|
688
|
-
}
|
|
689
|
-
function catalogListing(catalog) {
|
|
690
|
-
const seen = /* @__PURE__ */ new Set();
|
|
691
|
-
const names = [];
|
|
692
|
-
for (const [name, field] of catalog) {
|
|
693
|
-
if (seen.has(field)) continue;
|
|
694
|
-
seen.add(field);
|
|
695
|
-
const key = field.listedAs ?? field.fieldKey ?? name;
|
|
696
|
-
names.push(field.label && field.label.toLowerCase() !== key.toLowerCase() ? `${key} (${field.label})` : key);
|
|
697
|
-
}
|
|
698
|
-
return names.join(", ");
|
|
699
|
-
}
|
|
700
|
-
function fieldTypeFor(type, shape, spec, known) {
|
|
701
|
-
const resolved = spec.fieldType ?? known?.fieldType;
|
|
702
|
-
if (resolved && shape.fieldTypes && !shape.fieldTypes.includes(resolved)) {
|
|
703
|
-
throw new MappingError(
|
|
704
|
-
`--map "${spec.raw}": "${resolved}" is not a ${type} field type \u2014 expected one of: ${shape.fieldTypes.join(", ")}.`,
|
|
705
|
-
shape.fieldTypeSource
|
|
706
|
-
);
|
|
707
|
-
}
|
|
708
|
-
if (resolved) return resolved;
|
|
709
|
-
throw new MappingError(
|
|
710
|
-
`--map "${spec.raw}": ${type} stores a field type per mapping, and "${spec.destField}" has none \u2014 write it on the left: <field>:<fieldType>=<value>.`,
|
|
711
|
-
shape.fieldTypeSource ?? FIELD_TYPE_FROM_INPUT
|
|
712
|
-
);
|
|
713
|
-
}
|
|
714
|
-
function assertCrmOptions(type, shape, options) {
|
|
715
|
-
const entities = shape.entities;
|
|
716
|
-
if (entities) {
|
|
717
|
-
if (!options.entity) {
|
|
718
|
-
throw new MappingError(
|
|
719
|
-
`${type} addresses a specific object, so --entity is required (one of: ${entities.join(", ")}).`,
|
|
720
|
-
"Which object a value lands on is a destination-side fact \u2014 read it back from the configured side effect, do not assume."
|
|
721
|
-
);
|
|
722
|
-
}
|
|
723
|
-
if (!entities.includes(options.entity)) {
|
|
724
|
-
throw new MappingError(
|
|
725
|
-
`--entity "${options.entity}" is not valid for ${type} \u2014 expected one of: ${entities.join(", ")}.`
|
|
726
|
-
);
|
|
727
|
-
}
|
|
728
|
-
}
|
|
729
|
-
if (shape.needsIsCustom && options.isCustomField === void 0) {
|
|
730
|
-
throw new MappingError(
|
|
731
|
-
`${type} looks a key up differently for custom and standard fields, so pass --custom or --standard.`,
|
|
732
|
-
"Mapping a custom field as standard (or the reverse) is accepted and then dropped. The field list from request_flow_input says which each one is."
|
|
733
|
-
);
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
function buildEntry(type, shape, spec, value, options) {
|
|
737
|
-
if (shape.key === "columnMapping") {
|
|
738
|
-
return sheetEntry(spec, value);
|
|
739
|
-
}
|
|
740
|
-
if (shape.addressedBy === "key") {
|
|
741
|
-
if (spec.fieldType) {
|
|
742
|
-
throw new MappingError(
|
|
743
|
-
`--map "${spec.raw}": a ${type} ${shape.key} entry is just a name and a value \u2014 it takes no field type.`,
|
|
744
|
-
`Write it as ${spec.destField}=${spec.expression}`
|
|
745
|
-
);
|
|
746
|
-
}
|
|
747
|
-
return { key: spec.destField, value };
|
|
748
|
-
}
|
|
749
|
-
const known = destinationField(spec, options);
|
|
750
|
-
if (type === "hubspotForm") {
|
|
751
|
-
return {
|
|
752
|
-
objectTypeId: options.objectType ?? known?.objectTypeId ?? "0-1",
|
|
753
|
-
fieldType: fieldTypeFor(type, shape, spec, known),
|
|
754
|
-
fieldName: spec.destField,
|
|
755
|
-
value
|
|
756
|
-
};
|
|
757
|
-
}
|
|
758
|
-
assertCrmOptions(type, shape, options);
|
|
759
|
-
return {
|
|
760
|
-
...shape.entities ? { entityType: options.entity } : {},
|
|
761
|
-
fieldType: fieldTypeFor(type, shape, spec, known),
|
|
762
|
-
...shape.needsIsCustom ? { isCustomField: options.isCustomField } : {},
|
|
763
|
-
[shape.addressedBy]: known?.fieldKey ?? spec.destField,
|
|
764
|
-
value
|
|
765
|
-
};
|
|
766
|
-
}
|
|
767
|
-
function listPatch(shape, sideEffect, entries) {
|
|
768
|
-
if (!shape.under) return { [shape.key]: entries };
|
|
769
|
-
const owner = sideEffect[shape.under] ?? {};
|
|
770
|
-
return { [shape.under]: { ...owner, [shape.key]: entries } };
|
|
771
|
-
}
|
|
772
|
-
function existingEntries(shape, sideEffect) {
|
|
773
|
-
const owner = shape.under ? sideEffect[shape.under] : sideEffect;
|
|
774
|
-
if (!owner || typeof owner !== "object") return [];
|
|
775
|
-
const list = owner[shape.key];
|
|
776
|
-
if (!Array.isArray(list)) return [];
|
|
777
|
-
return list.filter((entry) => Boolean(entry) && typeof entry === "object");
|
|
778
|
-
}
|
|
779
|
-
function entryAddress(shape, entry) {
|
|
780
|
-
const value = entry[shape.addressedBy];
|
|
781
|
-
if (typeof value !== "string") return null;
|
|
782
|
-
return shape.qualifiedByFieldType && typeof entry.fieldType === "string" ? `${entry.fieldType}.${value}` : value;
|
|
783
|
-
}
|
|
784
|
-
function mergeEntries(shape, existing, incoming) {
|
|
785
|
-
const address = (entry) => entryAddress(shape, entry);
|
|
786
|
-
const entries = [...existing];
|
|
787
|
-
const overwritten = /* @__PURE__ */ new Set();
|
|
788
|
-
for (const entry of incoming) {
|
|
789
|
-
const name = address(entry);
|
|
790
|
-
const at = name === null ? -1 : entries.findIndex((candidate) => address(candidate) === name);
|
|
791
|
-
if (at === -1) {
|
|
792
|
-
entries.push(entry);
|
|
793
|
-
continue;
|
|
794
|
-
}
|
|
795
|
-
entries[at] = entry;
|
|
796
|
-
if (at < existing.length) overwritten.add(at);
|
|
797
|
-
}
|
|
798
|
-
const kept = existing.length - overwritten.size;
|
|
799
|
-
return { entries, written: entries.length - kept, kept };
|
|
800
|
-
}
|
|
801
|
-
function assertMappableOwner(type, shape, sideEffect) {
|
|
802
|
-
if (shape.under !== "body") return;
|
|
803
|
-
const format = (sideEffect.body ?? {}).format;
|
|
804
|
-
if (format !== void 0 && format !== "json") {
|
|
805
|
-
throw new MappingError(
|
|
806
|
-
`This ${type} side effect sends \`body.format: "${String(format)}"\`, which is one written message rather than named keys.`,
|
|
807
|
-
'Set `body` to `{ "format": "json", "fields": [] }` first if you want mapped keys, or write the message in `body.content` and map nothing.'
|
|
808
|
-
);
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
function buildList(tree, type, shape, sideEffect, specs, options) {
|
|
812
|
-
assertMappableOwner(type, shape, sideEffect);
|
|
813
|
-
const incoming = specs.map((raw) => {
|
|
814
|
-
const spec = parseMapSpec(raw);
|
|
815
|
-
return buildEntry(type, shape, spec, buildValueDoc(tree, spec.expression), options);
|
|
816
|
-
});
|
|
817
|
-
const present = options.replace === true ? [] : existingEntries(shape, sideEffect);
|
|
818
|
-
const { kept: existing, dropped } = pruneAbsent(shape, present, options);
|
|
819
|
-
const { entries, written, kept } = mergeEntries(shape, existing, incoming);
|
|
820
|
-
return { key: slotName(shape), count: written, kept, dropped, patch: listPatch(shape, sideEffect, entries) };
|
|
821
|
-
}
|
|
822
|
-
function pruneAbsent(shape, existing, options) {
|
|
823
|
-
if (options.pruneMissing !== true) return { kept: existing, dropped: [] };
|
|
824
|
-
const catalog = options.destinationFields;
|
|
825
|
-
if (!catalog) {
|
|
826
|
-
throw new MappingError(
|
|
827
|
-
"--prune-missing needs the destination's own field list, and it could not be read.",
|
|
828
|
-
"Name the destination so its fields can be read \u2014 --hubspot-form <formGuid> for HubSpot (an ActiveCampaign side effect is read automatically). `baker flows show <slug>` names the side effect and returns the request_flow_input call that carries the guid."
|
|
829
|
-
);
|
|
830
|
-
}
|
|
831
|
-
const kept = [];
|
|
832
|
-
const dropped = [];
|
|
833
|
-
for (const entry of existing) {
|
|
834
|
-
const name = entryAddress(shape, entry);
|
|
835
|
-
if (name === null || catalog.has(name)) {
|
|
836
|
-
kept.push(entry);
|
|
837
|
-
continue;
|
|
838
|
-
}
|
|
839
|
-
dropped.push(name);
|
|
840
|
-
}
|
|
841
|
-
return { kept, dropped };
|
|
842
|
-
}
|
|
843
|
-
function buildRecord(tree, type, shape, sideEffect, specs, options) {
|
|
844
|
-
const existing = options.replace === true ? {} : sideEffect[shape.key] ?? {};
|
|
845
|
-
const record = Object.fromEntries(shape.allowed.map((slot) => [slot, existing[slot] ?? null]));
|
|
846
|
-
const filledBefore = shape.allowed.filter((slot) => record[slot] != null);
|
|
847
|
-
const written = /* @__PURE__ */ new Set();
|
|
848
|
-
for (const raw of specs) {
|
|
849
|
-
const spec = parseMapSpec(raw);
|
|
850
|
-
if (!shape.allowed.includes(spec.destField)) {
|
|
851
|
-
throw new MappingError(
|
|
852
|
-
`"${spec.destField}" is not a slot in ${shape.key} on a ${type} side effect.`,
|
|
853
|
-
`${shape.key} slots: ${shape.allowed.join(", ")}`
|
|
854
|
-
);
|
|
855
|
-
}
|
|
856
|
-
if (spec.fieldType) {
|
|
857
|
-
throw new MappingError(`--map "${spec.raw}": a ${shape.key} slot takes no field type.`);
|
|
858
|
-
}
|
|
859
|
-
record[spec.destField] = buildValueDoc(tree, spec.expression);
|
|
860
|
-
written.add(spec.destField);
|
|
861
|
-
}
|
|
862
|
-
return {
|
|
863
|
-
key: shape.key,
|
|
864
|
-
count: written.size,
|
|
865
|
-
kept: filledBefore.filter((slot) => !written.has(slot)).length,
|
|
866
|
-
dropped: [],
|
|
867
|
-
patch: { [shape.key]: record }
|
|
868
|
-
};
|
|
869
|
-
}
|
|
870
|
-
function buildScalar(tree, type, shape, sideEffect, specs, options) {
|
|
871
|
-
const patch = options.replace === true ? Object.fromEntries(shape.keys.map((key) => [key, null])) : {};
|
|
872
|
-
const written = /* @__PURE__ */ new Set();
|
|
873
|
-
for (const raw of specs) {
|
|
874
|
-
const spec = parseMapSpec(raw);
|
|
875
|
-
if (!shape.keys.includes(spec.destField)) {
|
|
876
|
-
throw new MappingError(
|
|
877
|
-
`"${spec.destField}" is not a mappable field on a ${type} side effect.`,
|
|
878
|
-
`Mappable directly: ${shape.keys.join(", ")}`
|
|
879
|
-
);
|
|
880
|
-
}
|
|
881
|
-
if (spec.fieldType) {
|
|
882
|
-
throw new MappingError(`--map "${spec.raw}": ${spec.destField} takes no field type.`);
|
|
883
|
-
}
|
|
884
|
-
patch[spec.destField] = buildValueDoc(tree, spec.expression);
|
|
885
|
-
written.add(spec.destField);
|
|
886
|
-
}
|
|
887
|
-
const kept = options.replace === true ? 0 : shape.keys.filter((key) => !written.has(key) && sideEffect[key] != null).length;
|
|
888
|
-
return { key: shape.keys.join("/"), count: written.size, kept, dropped: [], patch };
|
|
889
|
-
}
|
|
890
|
-
function buildFieldMapping(tree, sideEffect, specs, options = {}) {
|
|
891
|
-
const type = String(sideEffect.type ?? "");
|
|
892
|
-
const shape = shapeFor(type, options.into);
|
|
893
|
-
if (shape.kind === "record") return buildRecord(tree, type, shape, sideEffect, specs, options);
|
|
894
|
-
if (shape.kind === "scalar") return buildScalar(tree, type, shape, sideEffect, specs, options);
|
|
895
|
-
return buildList(tree, type, shape, sideEffect, specs, options);
|
|
896
|
-
}
|
|
897
|
-
|
|
898
|
-
export {
|
|
899
|
-
activeCampaignFieldsResponseSchema,
|
|
900
|
-
MappingError,
|
|
901
|
-
shapeFor,
|
|
902
|
-
namesComeFromAccount,
|
|
903
|
-
describeSlots,
|
|
904
|
-
otherSlots,
|
|
905
|
-
activeCampaignDestinationFields,
|
|
906
|
-
activeCampaignUnlistedField,
|
|
907
|
-
activeCampaignMappingHints,
|
|
908
|
-
buildFieldMapping
|
|
909
|
-
};
|
|
910
|
-
//# sourceMappingURL=chunk-6I7GJDBX.js.map
|