@koda-sl/baker-cli 0.575.0-dev.85f21462e → 0.575.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/account-H44DUS4O.js +82 -0
- package/dist/account-WFAMHUCQ.js +82 -0
- package/dist/account-reads-JPQ2K343.js +219 -0
- package/dist/account-users-R3CIZPV5.js +64 -0
- package/dist/account-writes-EEKHPF5I.js +68 -0
- package/dist/accounts-GGP5J2FI.js +498 -0
- package/dist/accounts-H3KO5AEN.js +119 -0
- package/dist/accounts-K5IASJQV.js +80 -0
- package/dist/actions-JXDJOGSY.js +55 -0
- package/dist/activecampaign-LXLAD2PF.js +938 -0
- package/dist/ad-group-writes-UDQ4563V.js +172 -0
- package/dist/ad-groups-RXT2XKSE.js +70 -0
- package/dist/ad-writes-SHLTL2FY.js +176 -0
- package/dist/add-DJQ5B245.js +305 -0
- package/dist/add-MPXVC7L3.js +107 -0
- package/dist/ads-2TUJH4L3.js +48 -0
- package/dist/ads-CUMOMBI3.js +79 -0
- package/dist/advertisers-EWSPWD6I.js +123 -0
- package/dist/alerts-4FE3PUUK.js +151 -0
- package/dist/analytics-HZDE5TKC.js +447 -0
- package/dist/analytics-QEYAVXZB.js +2397 -0
- package/dist/animate-MBNFCDUZ.js +480 -0
- package/dist/assign-JZ5E7XRJ.js +80 -0
- package/dist/audience-size-UXIGBCIO.js +76 -0
- package/dist/audiences-KBW2UAOP.js +280 -0
- package/dist/audit-B2X3ON7Y.js +154 -0
- package/dist/autocomplete-VB74AP3J.js +114 -0
- package/dist/avatars-WINNSCJK.js +38 -0
- package/dist/bid-pricing-JAR4EBDA.js +103 -0
- package/dist/brand-ZLBQSOKD.js +22 -0
- package/dist/brief-35KFM74X.js +543 -0
- package/dist/campaign-groups-2HUFNJK6.js +99 -0
- package/dist/campaign-writes-JYMQF6CK.js +176 -0
- package/dist/campaign-writes-SZX7DHNE.js +168 -0
- package/dist/campaigns-6NWQZXBM.js +113 -0
- package/dist/campaigns-DIP7NUSQ.js +111 -0
- package/dist/campaigns-TMHFCPAZ.js +78 -0
- package/dist/canvas-FRYDW4YS.js +46 -0
- package/dist/capabilities-2SLWTKI5.js +147 -0
- package/dist/catalog-2P422WOQ.js +66 -0
- package/dist/catalogs-XFYYY3CS.js +130 -0
- package/dist/changes-GFJITHF6.js +167 -0
- package/dist/chatgpt-KNLATOZ6.js +47 -0
- package/dist/chats-FID6CLCA.js +589 -0
- package/dist/check-M337BOPG.js +107 -0
- package/dist/chunk-2QAYZXPI.js +494 -0
- package/dist/chunk-37QNC344.js +843 -0
- package/dist/chunk-3WLUQ7DM.js +757 -0
- package/dist/chunk-3XGZFZVD.js +454 -0
- package/dist/chunk-4DHHMWP4.js +24026 -0
- package/dist/chunk-4DHHMWP4.js.map +1 -0
- package/dist/chunk-4GRVNPHA.js +274 -0
- package/dist/chunk-4HQR2O2K.js +479 -0
- package/dist/chunk-6A3MVR5D.js +220 -0
- package/dist/chunk-6CRNIIYN.js +604 -0
- package/dist/chunk-6LDG4LFO.js +455 -0
- package/dist/chunk-6LLA6IF6.js +285 -0
- package/dist/chunk-6PJGHPXG.js +131 -0
- package/dist/chunk-73NWLLZ3.js +8998 -0
- package/dist/chunk-73NWLLZ3.js.map +1 -0
- package/dist/chunk-7CVBEA7J.js +61 -0
- package/dist/chunk-7HZTVVO7.js +504 -0
- package/dist/chunk-7LFOSBF4.js +3510 -0
- package/dist/chunk-A7ICTIR5.js +51 -0
- package/dist/chunk-AYOTYURE.js +1518 -0
- package/dist/chunk-B2S5TT4L.js +547 -0
- package/dist/chunk-BMMXYR7A.js +238 -0
- package/dist/chunk-BNEWJXKU.js +638 -0
- package/dist/chunk-BUNG52KH.js +432 -0
- package/dist/chunk-BYV4VS5E.js +5471 -0
- package/dist/chunk-DCBCEYSH.js +98 -0
- package/dist/chunk-DWJV6IOW.js +224 -0
- package/dist/chunk-DZIP5OQX.js +142 -0
- package/dist/chunk-E7LNNUKD.js +23 -0
- package/dist/chunk-ERTG5BBY.js +66 -0
- package/dist/chunk-FTP6NDOU.js +1320 -0
- package/dist/chunk-FZQU47P4.js +163 -0
- package/dist/chunk-GBXTEXVK.js +297 -0
- package/dist/chunk-HFQSTIM5.js +344 -0
- package/dist/chunk-IGCS3X4F.js +150 -0
- package/dist/chunk-IPDDXD5K.js +8141 -0
- package/dist/chunk-IPDDXD5K.js.map +1 -0
- package/dist/chunk-JAC6JVCI.js +26 -0
- package/dist/chunk-JTYD7A3C.js +225 -0
- package/dist/chunk-L3MNDL6D.js +392 -0
- package/dist/chunk-LJ4AMUHS.js +309 -0
- package/dist/chunk-LRIP2J5S.js +5368 -0
- package/dist/chunk-M7BSXJNL.js +167 -0
- package/dist/chunk-MCJ5I5LR.js +3187 -0
- package/dist/chunk-MCJ5I5LR.js.map +1 -0
- package/dist/chunk-MI327KRO.js +399 -0
- package/dist/chunk-MJCOTA6T.js +312 -0
- package/dist/chunk-MNSHFXG6.js +19 -0
- package/dist/chunk-MQU4LNYG.js +46 -0
- package/dist/chunk-MTROFUSC.js +1920 -0
- package/dist/chunk-MTROFUSC.js.map +1 -0
- package/dist/chunk-MZPS46OR.js +76 -0
- package/dist/chunk-N24ZFIEW.js +169 -0
- package/dist/chunk-N6OIIBTB.js +170 -0
- package/dist/chunk-NEALLMDP.js +1919 -0
- package/dist/chunk-NGHOYXJD.js +962 -0
- package/dist/chunk-NPAXHLAP.js +351 -0
- package/dist/chunk-NSU6IKOE.js +930 -0
- package/dist/chunk-OG76GZU3.js +78 -0
- package/dist/chunk-OU542F66.js +819 -0
- package/dist/chunk-OWO3CB6D.js +103 -0
- package/dist/chunk-OXH63BGJ.js +57 -0
- package/dist/chunk-PFWDYIDG.js +2234 -0
- package/dist/chunk-Q45FEJZ6.js +249 -0
- package/dist/chunk-QENSBNRJ.js +1258 -0
- package/dist/chunk-QKGIXXXB.js +89 -0
- package/dist/chunk-SR65SC66.js +91 -0
- package/dist/chunk-SSFU4LKG.js +91 -0
- package/dist/chunk-T5TJJJGI.js +156 -0
- package/dist/chunk-TQIEDVJB.js +218 -0
- package/dist/chunk-UWWL7QIQ.js +197 -0
- package/dist/chunk-XHWHBGKX.js +4277 -0
- package/dist/chunk-XHWHBGKX.js.map +1 -0
- package/dist/chunk-XQNWHPRV.js +685 -0
- package/dist/chunk-XWWX3WFJ.js +259 -0
- package/dist/chunk-Y25W6RSY.js +203 -0
- package/dist/chunk-YP5SD6O2.js +148 -0
- package/dist/chunk-Z3KRNKEA.js +64 -0
- package/dist/claim-DXDA6XRM.js +200 -0
- package/dist/cli.js +32 -32
- package/dist/companies-UNAN4THP.js +34 -0
- package/dist/company-ALE2HVTA.js +308 -0
- package/dist/complete-GZC6MQD2.js +84 -0
- package/dist/connect-664TAEG6.js +45 -0
- package/dist/conversation-AYXZYWMG.js +96 -0
- package/dist/conversion-report-6SVHPLHT.js +127 -0
- package/dist/conversion-upload-command-J3STKMAL.js +439 -0
- package/dist/conversion-writes-PEKNBIDQ.js +122 -0
- package/dist/conversions-ICSKSSLX.js +78 -0
- package/dist/conversions-SHKCWNNC.js +140 -0
- package/dist/create-2FCQZ7PD.js +239 -0
- package/dist/create-42TY74QW.js +62 -0
- package/dist/create-7EJEY5EK.js +135 -0
- package/dist/create-SKI4H2XI.js +218 -0
- package/dist/creatives-NQHLWE6F.js +58 -0
- package/dist/creatives-OBKNNJAI.js +229 -0
- package/dist/credentials-BCMMD3XG.js +290 -0
- package/dist/critique-KSQKDC7Y.js +232 -0
- package/dist/critique-NWZIHUBH.js +1451 -0
- package/dist/crm-ANNNZDM5.js +323 -0
- package/dist/crm-NP5LXKMN.js +313 -0
- package/dist/currency-YZBACARU.js +88 -0
- package/dist/customers-IUS7M6PJ.js +65 -0
- package/dist/delete-NBHAHWZ7.js +57 -0
- package/dist/delete-OJPKAYMV.js +69 -0
- package/dist/delete-Y75QNAE4.js +67 -0
- package/dist/demographics-HDUPFELB.js +141 -0
- package/dist/discard-32HKP4BV.js +69 -0
- package/dist/discover-RKW25QME.js +172 -0
- package/dist/domain-ODCRVC6V.js +101 -0
- package/dist/download-75W2T7R7.js +172 -0
- package/dist/draft-3KPRQ3YL.js +374 -0
- package/dist/draft-EHDIVMWL.js +615 -0
- package/dist/draft-VJPB5MFJ.js +332 -0
- package/dist/draft-X6Y62O3Y.js +220 -0
- package/dist/draft-ZDS6KFZ3.js +315 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-GECLY35Q.js +236 -0
- package/dist/extract-KYD4M3XU.js +143 -0
- package/dist/facets-CA7J44EY.js +117 -0
- package/dist/feedback-G3RB3HVK.js +115 -0
- package/dist/feedback-P36JL2MA.js +114 -0
- package/dist/feedback-record-KMIQCEAR.js +269 -0
- package/dist/fetch-Z42TLLI4.js +204 -0
- package/dist/fit-ANYF4UJ2.js +65 -0
- package/dist/flows-3KUFFMLO.js +340 -0
- package/dist/fonts-TAJRK4HZ.js +39 -0
- package/dist/forecast-327XLLZ3.js +169 -0
- package/dist/forecast-FIYKBAEW.js +121 -0
- package/dist/funnel-OGQVXGM7.js +397 -0
- package/dist/generate-GBFLO76C.js +263 -0
- package/dist/get-LM4KTWKF.js +82 -0
- package/dist/get-OSBYMC2N.js +62 -0
- package/dist/google-FMGXNCW3.js +3300 -0
- package/dist/google-RHPQWNMK.js +163 -0
- package/dist/google-ads-EHJBMUJ4.js +198 -0
- package/dist/history-6X3VIQP3.js +102 -0
- package/dist/history-CDHA25XG.js +153 -0
- package/dist/history-K4VYVCZC.js +69 -0
- package/dist/hubspot-7E6EAUIV.js +817 -0
- package/dist/ideas-3UNEUSMO.js +45 -0
- package/dist/images-7KJX5JFY.js +92 -0
- package/dist/ingest-4Y35DBZV.js +28 -0
- package/dist/ingest-LGZ3R4OI.js +131 -0
- package/dist/insights-RHOCF7VR.js +132 -0
- package/dist/inspect-WYOMSTBG.js +192 -0
- package/dist/intent-TKFH57DZ.js +95 -0
- package/dist/keyword-gap-7I2CIUTK.js +130 -0
- package/dist/keyword-metrics-35TFEXA5.js +200 -0
- package/dist/keywords-for-site-IMHNWTTB.js +131 -0
- package/dist/landing-RKUGZ3LB.js +28 -0
- package/dist/languages-FMHPUVOL.js +40 -0
- package/dist/leads-C46ZXIXF.js +115 -0
- package/dist/learn-WDPCW5ZD.js +207 -0
- package/dist/line-item-writes-IZKFY3GR.js +211 -0
- package/dist/line-items-CBVRZ43V.js +107 -0
- package/dist/link-GEPIZSVI.js +67 -0
- package/dist/linkedin-FHEYMG4M.js +1381 -0
- package/dist/linkedin-person-2M3WBL66.js +139 -0
- package/dist/list-APJDJZL7.js +154 -0
- package/dist/list-CLJN4YN5.js +67 -0
- package/dist/list-LE6DJG44.js +306 -0
- package/dist/locations-DD3JRZ4C.js +69 -0
- package/dist/locations-HWMEJ64P.js +40 -0
- package/dist/log-FC2GLXIK.js +95 -0
- package/dist/make-LYY7W523.js +1367 -0
- package/dist/map-DGS5KKDJ.js +445 -0
- package/dist/mcp-IRG5E6U3.js +729 -0
- package/dist/media-sources-SXUKFPBW.js +35 -0
- package/dist/members-TNY3CQSI.js +47 -0
- package/dist/metrics-KXTFXSWK.js +152 -0
- package/dist/models-2ZEM64H5.js +155 -0
- package/dist/normalize-74VF6BZV.js +144 -0
- package/dist/options-LNJH5LJR.js +125 -0
- package/dist/organization-DHYTS3KH.js +949 -0
- package/dist/people-R3YTQXYH.js +164 -0
- package/dist/people-U6EP77HS.js +171 -0
- package/dist/performance-AZGVR3IG.js +27 -0
- package/dist/performance-LYBUVYLQ.js +5565 -0
- package/dist/pixels-3CINROKJ.js +62 -0
- package/dist/preview-3OGMMUT4.js +101 -0
- package/dist/promoted-tweet-writes-EPNO2VUY.js +183 -0
- package/dist/promoted-tweets-UNG4FV3M.js +119 -0
- package/dist/publish-YHU5K76M.js +350 -0
- package/dist/query-NYH5PMQF.js +62 -0
- package/dist/reddit-BYHNEZWI.js +29 -0
- package/dist/refresh-3L4DCDVG.js +97 -0
- package/dist/release-LIDQL3KW.js +63 -0
- package/dist/relevant-pages-QIF35NBQ.js +99 -0
- package/dist/remove-RZSRYB4K.js +53 -0
- package/dist/reopen-C2SDKYRQ.js +66 -0
- package/dist/rerun-RAOZJYYI.js +97 -0
- package/dist/research-BNUMVIBI.js +265 -0
- package/dist/research-JQGHHTHS.js +78 -0
- package/dist/reset-FZ475DZK.js +57 -0
- package/dist/reset-MES3UU3L.js +57 -0
- package/dist/resolve-3EJ2ZI64.js +124 -0
- package/dist/retry-IMGUCVDF.js +63 -0
- package/dist/retry-OFFHBZG2.js +65 -0
- package/dist/revenue-IACHOM7M.js +91 -0
- package/dist/rules-C72VPDXE.js +99 -0
- package/dist/rules-add-A3PKTQNR.js +465 -0
- package/dist/run-BG7WR3W4.js +72 -0
- package/dist/run-XYRUAAJH.js +69 -0
- package/dist/scaffold-ad-Y4FKVKVJ.js +1513 -0
- package/dist/scaffold-static-ad-N7P47U6N.js +1012 -0
- package/dist/scaffold-video-JYUGPW2L.js +885 -0
- package/dist/schedule-NMMJZXZH.js +64 -0
- package/dist/scheduled-agents-NFVSFOPB.js +56 -0
- package/dist/schema-MIWJBYFP.js +135 -0
- package/dist/search-B3EI65TS.js +177 -0
- package/dist/select-I4HA6HUB.js +110 -0
- package/dist/set-prompt-Y3IPUFUH.js +199 -0
- package/dist/setup-links-2Y3A676T.js +144 -0
- package/dist/shopify-5LZ5IWSB.js +4009 -0
- package/dist/site-GXH6QLNZ.js +180 -0
- package/dist/sources-7VWSZZHQ.js +30 -0
- package/dist/sources-KYAVCA5P.js +457 -0
- package/dist/stale-EOTWB2NV.js +90 -0
- package/dist/stale-EOTWB2NV.js.map +1 -0
- package/dist/status-II4PTBUU.js +65 -0
- package/dist/stock-WZN53KCQ.js +212 -0
- package/dist/studio-TG2UAKFI.js +49 -0
- package/dist/sync-OSHJH7TD.js +57 -0
- package/dist/sync-definition-AP6CA6BU.js +70 -0
- package/dist/tags-36OYKBFE.js +227 -0
- package/dist/tags-3K6QGK5B.js +26 -0
- package/dist/tags-53FUK4HL.js +23 -0
- package/dist/tags-B3Z3OQ6G.js +23 -0
- package/dist/tags-DXKEOOGL.js +23 -0
- package/dist/targeting-criteria-UFE3MLWR.js +113 -0
- package/dist/targets-JSBKVSRO.js +106 -0
- package/dist/testimonials-6KYRLQVP.js +32 -0
- package/dist/themes-7XHHY4XY.js +95 -0
- package/dist/top-companies-W3GBGJGL.js +246 -0
- package/dist/transcript-VTVLH4VV.js +165 -0
- package/dist/translate-2VAZU7BT.js +603 -0
- package/dist/triggers-ULFGRFHQ.js +144 -0
- package/dist/unlink-FGUCQNNF.js +70 -0
- package/dist/unstage-UHKSQUPR.js +88 -0
- package/dist/update-CF6437MN.js +192 -0
- package/dist/update-G2IRXCSJ.js +66 -0
- package/dist/update-KO5VEPRN.js +101 -0
- package/dist/update-OQUIUKSX.js +155 -0
- package/dist/upload-GD552SG7.js +137 -0
- package/dist/url-options-RTTLWCU5.js +131 -0
- package/dist/url-params-ZFX3EBLE.js +101 -0
- package/dist/validate-EFTSHSRZ.js +135 -0
- package/dist/videos-OA3PSDF6.js +41 -0
- package/dist/viewer-check-OIORNTQG.js +83 -0
- package/dist/web-RKEKSDU3.js +173 -0
- package/dist/winning-ads-CJQEQ6JQ.js +86 -0
- package/dist/write-commands-CPAOTG6H.js +1524 -0
- package/dist/x-PF3FDWKU.js +47 -0
- package/package.json +1 -1
- package/dist/account-MDLPCIDQ.js +0 -82
- package/dist/account-VRXCDDXY.js +0 -82
- package/dist/account-reads-FSOURMSH.js +0 -219
- package/dist/account-users-FXOWESWY.js +0 -64
- package/dist/account-writes-SRTOKSMT.js +0 -68
- package/dist/accounts-5YJZVSTB.js +0 -498
- package/dist/accounts-AT2UB2L3.js +0 -80
- package/dist/accounts-NR3ARJ72.js +0 -119
- package/dist/actions-766X6XRB.js +0 -55
- package/dist/activecampaign-MC4FYCCF.js +0 -938
- package/dist/ad-group-writes-UFBFB2PL.js +0 -172
- package/dist/ad-groups-KRKMZPF3.js +0 -70
- package/dist/ad-writes-SIAGGUDJ.js +0 -176
- package/dist/add-DWKVVW76.js +0 -305
- package/dist/add-MYX3BSUJ.js +0 -107
- package/dist/ads-3T4C4BBH.js +0 -79
- package/dist/ads-UGMHE33I.js +0 -48
- package/dist/advertisers-UFOLIRIK.js +0 -123
- package/dist/alerts-2GMBX6JV.js +0 -151
- package/dist/analytics-3EWNAHNG.js +0 -2397
- package/dist/analytics-G4WFP37R.js +0 -447
- package/dist/animate-PSOAMA52.js +0 -480
- package/dist/assign-5FALEZYD.js +0 -80
- package/dist/audience-size-VRYRLPO5.js +0 -76
- package/dist/audiences-EH426E3T.js +0 -280
- package/dist/audit-WHIVWMAI.js +0 -154
- package/dist/autocomplete-3HCLXTGK.js +0 -114
- package/dist/avatars-HN74FWDF.js +0 -38
- package/dist/bid-pricing-NN5JKZS4.js +0 -103
- package/dist/brand-MWU5IVEZ.js +0 -22
- package/dist/brief-6TXWQWHJ.js +0 -543
- package/dist/campaign-groups-MGEKCP7J.js +0 -99
- package/dist/campaign-writes-ORUT54WL.js +0 -168
- package/dist/campaign-writes-Z7B6V6Q3.js +0 -176
- package/dist/campaigns-3BDIHUSW.js +0 -78
- package/dist/campaigns-E7YC762Q.js +0 -111
- package/dist/campaigns-WLOJFSLV.js +0 -113
- package/dist/canvas-SEVIQRXN.js +0 -46
- package/dist/capabilities-KWJYBYQO.js +0 -147
- package/dist/catalog-DHTZDVWS.js +0 -66
- package/dist/catalogs-R4QFA5XO.js +0 -130
- package/dist/changes-F2GP72MO.js +0 -167
- package/dist/chatgpt-MN4XHO6L.js +0 -47
- package/dist/chats-IBMO724I.js +0 -589
- package/dist/check-EZI4OF3Q.js +0 -107
- package/dist/chunk-2CSNR4U7.js +0 -8954
- package/dist/chunk-2CSNR4U7.js.map +0 -1
- package/dist/chunk-2VUD4CIW.js +0 -64
- package/dist/chunk-423G75A7.js +0 -494
- package/dist/chunk-4ZAHRAWL.js +0 -454
- package/dist/chunk-5WOZ7OGU.js +0 -1919
- package/dist/chunk-66LUQENO.js +0 -197
- package/dist/chunk-6J2UZJ6F.js +0 -962
- package/dist/chunk-6OIKNJ7G.js +0 -26
- package/dist/chunk-7EPR7L2D.js +0 -203
- package/dist/chunk-AFWLBOIN.js +0 -757
- package/dist/chunk-ALCRXFIZ.js +0 -351
- package/dist/chunk-BJH2G3QF.js +0 -312
- package/dist/chunk-BTOGDXA4.js +0 -8141
- package/dist/chunk-BTOGDXA4.js.map +0 -1
- package/dist/chunk-BZXIDMV7.js +0 -91
- package/dist/chunk-C57NXUM2.js +0 -24026
- package/dist/chunk-C57NXUM2.js.map +0 -1
- package/dist/chunk-CNZ5KS4I.js +0 -344
- package/dist/chunk-D32EWSMB.js +0 -150
- package/dist/chunk-DAXBST7G.js +0 -51
- package/dist/chunk-DD6X3AZB.js +0 -1258
- package/dist/chunk-DI7M2JUA.js +0 -167
- package/dist/chunk-EA3643ET.js +0 -392
- package/dist/chunk-EBFKPGTL.js +0 -220
- package/dist/chunk-ETHUDFUY.js +0 -169
- package/dist/chunk-EZ3YSJTP.js +0 -685
- package/dist/chunk-F3CZFUXZ.js +0 -3187
- package/dist/chunk-F3CZFUXZ.js.map +0 -1
- package/dist/chunk-G6CLJ3WL.js +0 -3510
- package/dist/chunk-GLY3CB2F.js +0 -78
- package/dist/chunk-HXHGDFXA.js +0 -103
- package/dist/chunk-IEUF733F.js +0 -5471
- package/dist/chunk-IEX4RRHJ.js +0 -163
- package/dist/chunk-IMS53EQU.js +0 -4277
- package/dist/chunk-IMS53EQU.js.map +0 -1
- package/dist/chunk-IR2NRXHA.js +0 -309
- package/dist/chunk-J7L457MF.js +0 -1518
- package/dist/chunk-JFWTQDZL.js +0 -604
- package/dist/chunk-JGMQD3PX.js +0 -274
- package/dist/chunk-JTAPNHW5.js +0 -98
- package/dist/chunk-K2DKQ52D.js +0 -89
- package/dist/chunk-K3VMHRLJ.js +0 -61
- package/dist/chunk-LBPJDFFN.js +0 -19
- package/dist/chunk-LNRYMWXE.js +0 -930
- package/dist/chunk-LQRPFL2N.js +0 -218
- package/dist/chunk-LY7PDE76.js +0 -285
- package/dist/chunk-NOCBNING.js +0 -638
- package/dist/chunk-PEPLYJWK.js +0 -91
- package/dist/chunk-PK2U2ALQ.js +0 -57
- package/dist/chunk-PKSIPLMS.js +0 -399
- package/dist/chunk-QNY4IK3C.js +0 -297
- package/dist/chunk-QORVZUMT.js +0 -2234
- package/dist/chunk-RDIZCSTV.js +0 -156
- package/dist/chunk-RQ43VL2X.js +0 -148
- package/dist/chunk-S4QGD7PV.js +0 -170
- package/dist/chunk-S7WFZYKP.js +0 -46
- package/dist/chunk-SIKCVWM3.js +0 -76
- package/dist/chunk-SRMQCQ7T.js +0 -142
- package/dist/chunk-SZFWQVAC.js +0 -819
- package/dist/chunk-TBBAHTP3.js +0 -1320
- package/dist/chunk-U6EQMX3B.js +0 -131
- package/dist/chunk-UECTXVAO.js +0 -479
- package/dist/chunk-UQTINFCP.js +0 -455
- package/dist/chunk-UUUYWBTR.js +0 -225
- package/dist/chunk-UZ5ZC43B.js +0 -259
- package/dist/chunk-VSHXHSIW.js +0 -249
- package/dist/chunk-VTLW24DM.js +0 -23
- package/dist/chunk-WZXMZFVB.js +0 -238
- package/dist/chunk-X7NRAGJ5.js +0 -504
- package/dist/chunk-XYHAIEAF.js +0 -5368
- package/dist/chunk-XZJK2QB3.js +0 -1920
- package/dist/chunk-XZJK2QB3.js.map +0 -1
- package/dist/chunk-YLHWZOW7.js +0 -224
- package/dist/chunk-YNWBIAXJ.js +0 -843
- package/dist/chunk-YYYGUO2E.js +0 -66
- package/dist/chunk-ZAQQBVEM.js +0 -432
- package/dist/chunk-ZHQSXEJ2.js +0 -547
- package/dist/claim-JQCSXR4C.js +0 -200
- package/dist/companies-GHBIZKOK.js +0 -34
- package/dist/company-KNCYMQIA.js +0 -308
- package/dist/complete-V53XRNEQ.js +0 -84
- package/dist/connect-NUZQSIGL.js +0 -45
- package/dist/conversation-LBYO6ONM.js +0 -96
- package/dist/conversion-report-SRHJGIMT.js +0 -127
- package/dist/conversion-upload-command-5EKILBP2.js +0 -439
- package/dist/conversion-writes-P5FDTA6Y.js +0 -122
- package/dist/conversions-BXCGFNRK.js +0 -140
- package/dist/conversions-WJBOEPOO.js +0 -78
- package/dist/create-3PNWKXLP.js +0 -239
- package/dist/create-6FZR7JZT.js +0 -135
- package/dist/create-QXJ3UEOT.js +0 -218
- package/dist/create-XO7HUNPB.js +0 -62
- package/dist/creatives-O6TA2DOG.js +0 -58
- package/dist/creatives-YRYPXOCS.js +0 -229
- package/dist/credentials-ATAP54ZI.js +0 -290
- package/dist/critique-3UY7TUVQ.js +0 -232
- package/dist/critique-UC6SBKGO.js +0 -1451
- package/dist/crm-AXK74BCO.js +0 -313
- package/dist/crm-MGVGQ7PK.js +0 -323
- package/dist/currency-335ARWP5.js +0 -88
- package/dist/customers-7NBNJCDC.js +0 -65
- package/dist/delete-EKGTJSLK.js +0 -69
- package/dist/delete-OFG7FBMA.js +0 -57
- package/dist/delete-QQDGR7DD.js +0 -67
- package/dist/demographics-QWFAMEC2.js +0 -141
- package/dist/discard-4VW3AWI3.js +0 -69
- package/dist/discover-O6322XPL.js +0 -172
- package/dist/domain-EDPDUVAX.js +0 -101
- package/dist/download-46GLVBYU.js +0 -172
- package/dist/draft-IBR2W6GZ.js +0 -332
- package/dist/draft-NCUQFRGS.js +0 -315
- package/dist/draft-RRUJU2ZR.js +0 -220
- package/dist/draft-SLGJRUOV.js +0 -615
- package/dist/draft-TJAD7P6W.js +0 -374
- package/dist/experiments-DUVO7C7A.js +0 -236
- package/dist/extract-WYNFE6TQ.js +0 -143
- package/dist/facets-WTY6NOUV.js +0 -117
- package/dist/feedback-57BP27NA.js +0 -115
- package/dist/feedback-XDREGDOK.js +0 -114
- package/dist/feedback-record-HXSBLAZD.js +0 -269
- package/dist/fetch-L27MLPXM.js +0 -204
- package/dist/fit-K3G7HIMK.js +0 -65
- package/dist/flows-VJTWU3SU.js +0 -340
- package/dist/fonts-SEMIVGXJ.js +0 -39
- package/dist/forecast-EHOMHLUH.js +0 -169
- package/dist/forecast-VODA7N3G.js +0 -121
- package/dist/funnel-BXJDMVMF.js +0 -397
- package/dist/generate-VCGSO7HI.js +0 -263
- package/dist/get-EASXXOQR.js +0 -62
- package/dist/get-EN4UQI7R.js +0 -82
- package/dist/google-ATEQHENA.js +0 -163
- package/dist/google-ZVVKAI7T.js +0 -3300
- package/dist/google-ads-OUNSPGRQ.js +0 -198
- package/dist/history-5OJVW2ZF.js +0 -153
- package/dist/history-RQMCZQSC.js +0 -69
- package/dist/history-TDGBO76N.js +0 -102
- package/dist/hubspot-VQGONQQU.js +0 -817
- package/dist/ideas-B7RQXWHQ.js +0 -45
- package/dist/images-Q45MP4Q2.js +0 -92
- package/dist/ingest-6MMY4KDM.js +0 -131
- package/dist/ingest-UMQQIINM.js +0 -28
- package/dist/insights-WDHDMULM.js +0 -132
- package/dist/inspect-W2BIGA5F.js +0 -192
- package/dist/intent-3S6SHAYC.js +0 -95
- package/dist/keyword-gap-MGHKWE6A.js +0 -130
- package/dist/keyword-metrics-6R5TSHCE.js +0 -200
- package/dist/keywords-for-site-EFBLFX6E.js +0 -131
- package/dist/landing-WC5FX3UP.js +0 -28
- package/dist/languages-4J7JHZNB.js +0 -40
- package/dist/leads-CBOQ5CNM.js +0 -115
- package/dist/learn-ZUP35H3T.js +0 -207
- package/dist/line-item-writes-W4UFIYEA.js +0 -211
- package/dist/line-items-SGCUJF3S.js +0 -107
- package/dist/link-KLJB7COB.js +0 -67
- package/dist/linkedin-TANR45ZZ.js +0 -1381
- package/dist/linkedin-person-ECWP4XPE.js +0 -139
- package/dist/list-PXEJMDB4.js +0 -67
- package/dist/list-SVR5HBLA.js +0 -306
- package/dist/list-XELB7UV2.js +0 -154
- package/dist/locations-KM4XY56A.js +0 -40
- package/dist/locations-SNK2NDH3.js +0 -69
- package/dist/log-PMPOO42C.js +0 -95
- package/dist/make-Q36WVKT3.js +0 -1367
- package/dist/map-DQ65PS65.js +0 -445
- package/dist/mcp-XMFKYN3E.js +0 -729
- package/dist/media-sources-HG524YO4.js +0 -35
- package/dist/members-D4DI2IFH.js +0 -47
- package/dist/metrics-QVDXMTEI.js +0 -152
- package/dist/models-VOSJJFO2.js +0 -155
- package/dist/normalize-XRVNJTML.js +0 -144
- package/dist/options-HT27WLNS.js +0 -125
- package/dist/organization-DYPTFZBA.js +0 -949
- package/dist/people-5MJXHC3D.js +0 -171
- package/dist/people-TTUIYT3L.js +0 -164
- package/dist/performance-2AQ34OPB.js +0 -27
- package/dist/performance-WE4LHJ2B.js +0 -5565
- package/dist/pixels-EWFDIDFA.js +0 -62
- package/dist/preview-JYVRWRTT.js +0 -101
- package/dist/promoted-tweet-writes-HCVRPH45.js +0 -183
- package/dist/promoted-tweets-P56ZU6OK.js +0 -119
- package/dist/publish-4VWZHRYO.js +0 -350
- package/dist/query-DK7WWCJJ.js +0 -62
- package/dist/reddit-NSKYHSAC.js +0 -29
- package/dist/refresh-O3CLJX4O.js +0 -97
- package/dist/release-6TQQW4HB.js +0 -63
- package/dist/relevant-pages-B3ZFOGHQ.js +0 -99
- package/dist/remove-R55VAM47.js +0 -53
- package/dist/reopen-S426N3OD.js +0 -66
- package/dist/rerun-5KHANQR3.js +0 -97
- package/dist/research-5REXCSSO.js +0 -265
- package/dist/research-DMZLXMM2.js +0 -78
- package/dist/reset-5N2IVHFL.js +0 -57
- package/dist/reset-D4NGVG35.js +0 -57
- package/dist/resolve-V75JGD75.js +0 -124
- package/dist/retry-SB7EIJBA.js +0 -65
- package/dist/retry-WIKW6CGT.js +0 -63
- package/dist/revenue-GZJU3XMD.js +0 -91
- package/dist/rules-WI6YKZA4.js +0 -99
- package/dist/rules-add-JCRB4AJR.js +0 -465
- package/dist/run-RDHTORWZ.js +0 -69
- package/dist/run-VVK23U5P.js +0 -72
- package/dist/scaffold-ad-QSVBY3XR.js +0 -1513
- package/dist/scaffold-static-ad-64BZMUHP.js +0 -1012
- package/dist/scaffold-video-X27MRW7R.js +0 -885
- package/dist/schedule-XHPIVUJ6.js +0 -64
- package/dist/scheduled-agents-OMUQCGDG.js +0 -56
- package/dist/schema-RDVJQ5VW.js +0 -135
- package/dist/search-VX5ATSCD.js +0 -177
- package/dist/select-NX3VHQTH.js +0 -110
- package/dist/set-prompt-QGEWZ3HD.js +0 -199
- package/dist/setup-links-LIDZVTSU.js +0 -144
- package/dist/shopify-LZU3MCDG.js +0 -4009
- package/dist/site-CEO2V3BI.js +0 -180
- package/dist/sources-C7AQCP2Z.js +0 -30
- package/dist/sources-SIGZVORA.js +0 -457
- package/dist/stale-BOUBKOAA.js +0 -90
- package/dist/stale-BOUBKOAA.js.map +0 -1
- package/dist/status-NIG6OSAG.js +0 -65
- package/dist/stock-KY6BCN76.js +0 -212
- package/dist/studio-VQFYNK5O.js +0 -49
- package/dist/sync-3RS5E5ZI.js +0 -57
- package/dist/sync-definition-VHYZWLS5.js +0 -70
- package/dist/tags-F6DBHGIL.js +0 -26
- package/dist/tags-HGKEOIR7.js +0 -23
- package/dist/tags-I2LINXA7.js +0 -23
- package/dist/tags-UM6Y4DVQ.js +0 -227
- package/dist/tags-YCBZVXJQ.js +0 -23
- package/dist/targeting-criteria-XPK76HRH.js +0 -113
- package/dist/targets-KT4BNTKZ.js +0 -106
- package/dist/testimonials-QGXMSSWV.js +0 -32
- package/dist/themes-ZKUHKUZD.js +0 -95
- package/dist/top-companies-RC5KTWQ5.js +0 -246
- package/dist/transcript-OLF62WCH.js +0 -165
- package/dist/translate-NON5ZD3S.js +0 -603
- package/dist/triggers-UOQY4RFC.js +0 -144
- package/dist/unlink-RNIJPHHW.js +0 -70
- package/dist/unstage-QVDYVN77.js +0 -88
- package/dist/update-7KR5ABJP.js +0 -66
- package/dist/update-JAUWIWOH.js +0 -192
- package/dist/update-QZEF5MUW.js +0 -101
- package/dist/update-TRWHYXF4.js +0 -155
- package/dist/upload-MLK2MZB6.js +0 -137
- package/dist/url-options-2FVG55JF.js +0 -131
- package/dist/url-params-F4XNWPOD.js +0 -101
- package/dist/validate-P3AQVXG6.js +0 -135
- package/dist/videos-PAKAAFRD.js +0 -41
- package/dist/viewer-check-KXMDJH7R.js +0 -83
- package/dist/web-E5NHFG4Y.js +0 -173
- package/dist/winning-ads-P6PDTCCU.js +0 -86
- package/dist/write-commands-MBNO7DCX.js +0 -1524
- package/dist/x-5A74OD5P.js +0 -47
- /package/dist/{account-MDLPCIDQ.js.map → account-H44DUS4O.js.map} +0 -0
- /package/dist/{account-VRXCDDXY.js.map → account-WFAMHUCQ.js.map} +0 -0
- /package/dist/{account-reads-FSOURMSH.js.map → account-reads-JPQ2K343.js.map} +0 -0
- /package/dist/{account-users-FXOWESWY.js.map → account-users-R3CIZPV5.js.map} +0 -0
- /package/dist/{account-writes-SRTOKSMT.js.map → account-writes-EEKHPF5I.js.map} +0 -0
- /package/dist/{accounts-5YJZVSTB.js.map → accounts-GGP5J2FI.js.map} +0 -0
- /package/dist/{accounts-NR3ARJ72.js.map → accounts-H3KO5AEN.js.map} +0 -0
- /package/dist/{accounts-AT2UB2L3.js.map → accounts-K5IASJQV.js.map} +0 -0
- /package/dist/{actions-766X6XRB.js.map → actions-JXDJOGSY.js.map} +0 -0
- /package/dist/{activecampaign-MC4FYCCF.js.map → activecampaign-LXLAD2PF.js.map} +0 -0
- /package/dist/{ad-group-writes-UFBFB2PL.js.map → ad-group-writes-UDQ4563V.js.map} +0 -0
- /package/dist/{ad-groups-KRKMZPF3.js.map → ad-groups-RXT2XKSE.js.map} +0 -0
- /package/dist/{ad-writes-SIAGGUDJ.js.map → ad-writes-SHLTL2FY.js.map} +0 -0
- /package/dist/{add-DWKVVW76.js.map → add-DJQ5B245.js.map} +0 -0
- /package/dist/{add-MYX3BSUJ.js.map → add-MPXVC7L3.js.map} +0 -0
- /package/dist/{ads-UGMHE33I.js.map → ads-2TUJH4L3.js.map} +0 -0
- /package/dist/{ads-3T4C4BBH.js.map → ads-CUMOMBI3.js.map} +0 -0
- /package/dist/{advertisers-UFOLIRIK.js.map → advertisers-EWSPWD6I.js.map} +0 -0
- /package/dist/{alerts-2GMBX6JV.js.map → alerts-4FE3PUUK.js.map} +0 -0
- /package/dist/{analytics-G4WFP37R.js.map → analytics-HZDE5TKC.js.map} +0 -0
- /package/dist/{analytics-3EWNAHNG.js.map → analytics-QEYAVXZB.js.map} +0 -0
- /package/dist/{animate-PSOAMA52.js.map → animate-MBNFCDUZ.js.map} +0 -0
- /package/dist/{assign-5FALEZYD.js.map → assign-JZ5E7XRJ.js.map} +0 -0
- /package/dist/{audience-size-VRYRLPO5.js.map → audience-size-UXIGBCIO.js.map} +0 -0
- /package/dist/{audiences-EH426E3T.js.map → audiences-KBW2UAOP.js.map} +0 -0
- /package/dist/{audit-WHIVWMAI.js.map → audit-B2X3ON7Y.js.map} +0 -0
- /package/dist/{autocomplete-3HCLXTGK.js.map → autocomplete-VB74AP3J.js.map} +0 -0
- /package/dist/{avatars-HN74FWDF.js.map → avatars-WINNSCJK.js.map} +0 -0
- /package/dist/{bid-pricing-NN5JKZS4.js.map → bid-pricing-JAR4EBDA.js.map} +0 -0
- /package/dist/{brand-MWU5IVEZ.js.map → brand-ZLBQSOKD.js.map} +0 -0
- /package/dist/{brief-6TXWQWHJ.js.map → brief-35KFM74X.js.map} +0 -0
- /package/dist/{campaign-groups-MGEKCP7J.js.map → campaign-groups-2HUFNJK6.js.map} +0 -0
- /package/dist/{campaign-writes-Z7B6V6Q3.js.map → campaign-writes-JYMQF6CK.js.map} +0 -0
- /package/dist/{campaign-writes-ORUT54WL.js.map → campaign-writes-SZX7DHNE.js.map} +0 -0
- /package/dist/{campaigns-WLOJFSLV.js.map → campaigns-6NWQZXBM.js.map} +0 -0
- /package/dist/{campaigns-E7YC762Q.js.map → campaigns-DIP7NUSQ.js.map} +0 -0
- /package/dist/{campaigns-3BDIHUSW.js.map → campaigns-TMHFCPAZ.js.map} +0 -0
- /package/dist/{canvas-SEVIQRXN.js.map → canvas-FRYDW4YS.js.map} +0 -0
- /package/dist/{capabilities-KWJYBYQO.js.map → capabilities-2SLWTKI5.js.map} +0 -0
- /package/dist/{catalog-DHTZDVWS.js.map → catalog-2P422WOQ.js.map} +0 -0
- /package/dist/{catalogs-R4QFA5XO.js.map → catalogs-XFYYY3CS.js.map} +0 -0
- /package/dist/{changes-F2GP72MO.js.map → changes-GFJITHF6.js.map} +0 -0
- /package/dist/{chatgpt-MN4XHO6L.js.map → chatgpt-KNLATOZ6.js.map} +0 -0
- /package/dist/{chats-IBMO724I.js.map → chats-FID6CLCA.js.map} +0 -0
- /package/dist/{check-EZI4OF3Q.js.map → check-M337BOPG.js.map} +0 -0
- /package/dist/{chunk-423G75A7.js.map → chunk-2QAYZXPI.js.map} +0 -0
- /package/dist/{chunk-YNWBIAXJ.js.map → chunk-37QNC344.js.map} +0 -0
- /package/dist/{chunk-AFWLBOIN.js.map → chunk-3WLUQ7DM.js.map} +0 -0
- /package/dist/{chunk-4ZAHRAWL.js.map → chunk-3XGZFZVD.js.map} +0 -0
- /package/dist/{chunk-JGMQD3PX.js.map → chunk-4GRVNPHA.js.map} +0 -0
- /package/dist/{chunk-UECTXVAO.js.map → chunk-4HQR2O2K.js.map} +0 -0
- /package/dist/{chunk-EBFKPGTL.js.map → chunk-6A3MVR5D.js.map} +0 -0
- /package/dist/{chunk-JFWTQDZL.js.map → chunk-6CRNIIYN.js.map} +0 -0
- /package/dist/{chunk-UQTINFCP.js.map → chunk-6LDG4LFO.js.map} +0 -0
- /package/dist/{chunk-LY7PDE76.js.map → chunk-6LLA6IF6.js.map} +0 -0
- /package/dist/{chunk-U6EQMX3B.js.map → chunk-6PJGHPXG.js.map} +0 -0
- /package/dist/{chunk-K3VMHRLJ.js.map → chunk-7CVBEA7J.js.map} +0 -0
- /package/dist/{chunk-X7NRAGJ5.js.map → chunk-7HZTVVO7.js.map} +0 -0
- /package/dist/{chunk-G6CLJ3WL.js.map → chunk-7LFOSBF4.js.map} +0 -0
- /package/dist/{chunk-DAXBST7G.js.map → chunk-A7ICTIR5.js.map} +0 -0
- /package/dist/{chunk-J7L457MF.js.map → chunk-AYOTYURE.js.map} +0 -0
- /package/dist/{chunk-ZHQSXEJ2.js.map → chunk-B2S5TT4L.js.map} +0 -0
- /package/dist/{chunk-WZXMZFVB.js.map → chunk-BMMXYR7A.js.map} +0 -0
- /package/dist/{chunk-NOCBNING.js.map → chunk-BNEWJXKU.js.map} +0 -0
- /package/dist/{chunk-ZAQQBVEM.js.map → chunk-BUNG52KH.js.map} +0 -0
- /package/dist/{chunk-IEUF733F.js.map → chunk-BYV4VS5E.js.map} +0 -0
- /package/dist/{chunk-JTAPNHW5.js.map → chunk-DCBCEYSH.js.map} +0 -0
- /package/dist/{chunk-YLHWZOW7.js.map → chunk-DWJV6IOW.js.map} +0 -0
- /package/dist/{chunk-SRMQCQ7T.js.map → chunk-DZIP5OQX.js.map} +0 -0
- /package/dist/{chunk-VTLW24DM.js.map → chunk-E7LNNUKD.js.map} +0 -0
- /package/dist/{chunk-YYYGUO2E.js.map → chunk-ERTG5BBY.js.map} +0 -0
- /package/dist/{chunk-TBBAHTP3.js.map → chunk-FTP6NDOU.js.map} +0 -0
- /package/dist/{chunk-IEX4RRHJ.js.map → chunk-FZQU47P4.js.map} +0 -0
- /package/dist/{chunk-QNY4IK3C.js.map → chunk-GBXTEXVK.js.map} +0 -0
- /package/dist/{chunk-CNZ5KS4I.js.map → chunk-HFQSTIM5.js.map} +0 -0
- /package/dist/{chunk-D32EWSMB.js.map → chunk-IGCS3X4F.js.map} +0 -0
- /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
- /package/dist/{chunk-UUUYWBTR.js.map → chunk-JTYD7A3C.js.map} +0 -0
- /package/dist/{chunk-EA3643ET.js.map → chunk-L3MNDL6D.js.map} +0 -0
- /package/dist/{chunk-IR2NRXHA.js.map → chunk-LJ4AMUHS.js.map} +0 -0
- /package/dist/{chunk-XYHAIEAF.js.map → chunk-LRIP2J5S.js.map} +0 -0
- /package/dist/{chunk-DI7M2JUA.js.map → chunk-M7BSXJNL.js.map} +0 -0
- /package/dist/{chunk-PKSIPLMS.js.map → chunk-MI327KRO.js.map} +0 -0
- /package/dist/{chunk-BJH2G3QF.js.map → chunk-MJCOTA6T.js.map} +0 -0
- /package/dist/{chunk-LBPJDFFN.js.map → chunk-MNSHFXG6.js.map} +0 -0
- /package/dist/{chunk-S7WFZYKP.js.map → chunk-MQU4LNYG.js.map} +0 -0
- /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
- /package/dist/{chunk-ETHUDFUY.js.map → chunk-N24ZFIEW.js.map} +0 -0
- /package/dist/{chunk-S4QGD7PV.js.map → chunk-N6OIIBTB.js.map} +0 -0
- /package/dist/{chunk-5WOZ7OGU.js.map → chunk-NEALLMDP.js.map} +0 -0
- /package/dist/{chunk-6J2UZJ6F.js.map → chunk-NGHOYXJD.js.map} +0 -0
- /package/dist/{chunk-ALCRXFIZ.js.map → chunk-NPAXHLAP.js.map} +0 -0
- /package/dist/{chunk-LNRYMWXE.js.map → chunk-NSU6IKOE.js.map} +0 -0
- /package/dist/{chunk-GLY3CB2F.js.map → chunk-OG76GZU3.js.map} +0 -0
- /package/dist/{chunk-SZFWQVAC.js.map → chunk-OU542F66.js.map} +0 -0
- /package/dist/{chunk-HXHGDFXA.js.map → chunk-OWO3CB6D.js.map} +0 -0
- /package/dist/{chunk-PK2U2ALQ.js.map → chunk-OXH63BGJ.js.map} +0 -0
- /package/dist/{chunk-QORVZUMT.js.map → chunk-PFWDYIDG.js.map} +0 -0
- /package/dist/{chunk-VSHXHSIW.js.map → chunk-Q45FEJZ6.js.map} +0 -0
- /package/dist/{chunk-DD6X3AZB.js.map → chunk-QENSBNRJ.js.map} +0 -0
- /package/dist/{chunk-K2DKQ52D.js.map → chunk-QKGIXXXB.js.map} +0 -0
- /package/dist/{chunk-PEPLYJWK.js.map → chunk-SR65SC66.js.map} +0 -0
- /package/dist/{chunk-BZXIDMV7.js.map → chunk-SSFU4LKG.js.map} +0 -0
- /package/dist/{chunk-RDIZCSTV.js.map → chunk-T5TJJJGI.js.map} +0 -0
- /package/dist/{chunk-LQRPFL2N.js.map → chunk-TQIEDVJB.js.map} +0 -0
- /package/dist/{chunk-66LUQENO.js.map → chunk-UWWL7QIQ.js.map} +0 -0
- /package/dist/{chunk-EZ3YSJTP.js.map → chunk-XQNWHPRV.js.map} +0 -0
- /package/dist/{chunk-UZ5ZC43B.js.map → chunk-XWWX3WFJ.js.map} +0 -0
- /package/dist/{chunk-7EPR7L2D.js.map → chunk-Y25W6RSY.js.map} +0 -0
- /package/dist/{chunk-RQ43VL2X.js.map → chunk-YP5SD6O2.js.map} +0 -0
- /package/dist/{chunk-2VUD4CIW.js.map → chunk-Z3KRNKEA.js.map} +0 -0
- /package/dist/{claim-JQCSXR4C.js.map → claim-DXDA6XRM.js.map} +0 -0
- /package/dist/{companies-GHBIZKOK.js.map → companies-UNAN4THP.js.map} +0 -0
- /package/dist/{company-KNCYMQIA.js.map → company-ALE2HVTA.js.map} +0 -0
- /package/dist/{complete-V53XRNEQ.js.map → complete-GZC6MQD2.js.map} +0 -0
- /package/dist/{connect-NUZQSIGL.js.map → connect-664TAEG6.js.map} +0 -0
- /package/dist/{conversation-LBYO6ONM.js.map → conversation-AYXZYWMG.js.map} +0 -0
- /package/dist/{conversion-report-SRHJGIMT.js.map → conversion-report-6SVHPLHT.js.map} +0 -0
- /package/dist/{conversion-upload-command-5EKILBP2.js.map → conversion-upload-command-J3STKMAL.js.map} +0 -0
- /package/dist/{conversion-writes-P5FDTA6Y.js.map → conversion-writes-PEKNBIDQ.js.map} +0 -0
- /package/dist/{conversions-WJBOEPOO.js.map → conversions-ICSKSSLX.js.map} +0 -0
- /package/dist/{conversions-BXCGFNRK.js.map → conversions-SHKCWNNC.js.map} +0 -0
- /package/dist/{create-3PNWKXLP.js.map → create-2FCQZ7PD.js.map} +0 -0
- /package/dist/{create-XO7HUNPB.js.map → create-42TY74QW.js.map} +0 -0
- /package/dist/{create-6FZR7JZT.js.map → create-7EJEY5EK.js.map} +0 -0
- /package/dist/{create-QXJ3UEOT.js.map → create-SKI4H2XI.js.map} +0 -0
- /package/dist/{creatives-O6TA2DOG.js.map → creatives-NQHLWE6F.js.map} +0 -0
- /package/dist/{creatives-YRYPXOCS.js.map → creatives-OBKNNJAI.js.map} +0 -0
- /package/dist/{credentials-ATAP54ZI.js.map → credentials-BCMMD3XG.js.map} +0 -0
- /package/dist/{critique-3UY7TUVQ.js.map → critique-KSQKDC7Y.js.map} +0 -0
- /package/dist/{critique-UC6SBKGO.js.map → critique-NWZIHUBH.js.map} +0 -0
- /package/dist/{crm-MGVGQ7PK.js.map → crm-ANNNZDM5.js.map} +0 -0
- /package/dist/{crm-AXK74BCO.js.map → crm-NP5LXKMN.js.map} +0 -0
- /package/dist/{currency-335ARWP5.js.map → currency-YZBACARU.js.map} +0 -0
- /package/dist/{customers-7NBNJCDC.js.map → customers-IUS7M6PJ.js.map} +0 -0
- /package/dist/{delete-OFG7FBMA.js.map → delete-NBHAHWZ7.js.map} +0 -0
- /package/dist/{delete-EKGTJSLK.js.map → delete-OJPKAYMV.js.map} +0 -0
- /package/dist/{delete-QQDGR7DD.js.map → delete-Y75QNAE4.js.map} +0 -0
- /package/dist/{demographics-QWFAMEC2.js.map → demographics-HDUPFELB.js.map} +0 -0
- /package/dist/{discard-4VW3AWI3.js.map → discard-32HKP4BV.js.map} +0 -0
- /package/dist/{discover-O6322XPL.js.map → discover-RKW25QME.js.map} +0 -0
- /package/dist/{domain-EDPDUVAX.js.map → domain-ODCRVC6V.js.map} +0 -0
- /package/dist/{download-46GLVBYU.js.map → download-75W2T7R7.js.map} +0 -0
- /package/dist/{draft-TJAD7P6W.js.map → draft-3KPRQ3YL.js.map} +0 -0
- /package/dist/{draft-SLGJRUOV.js.map → draft-EHDIVMWL.js.map} +0 -0
- /package/dist/{draft-IBR2W6GZ.js.map → draft-VJPB5MFJ.js.map} +0 -0
- /package/dist/{draft-RRUJU2ZR.js.map → draft-X6Y62O3Y.js.map} +0 -0
- /package/dist/{draft-NCUQFRGS.js.map → draft-ZDS6KFZ3.js.map} +0 -0
- /package/dist/{experiments-DUVO7C7A.js.map → experiments-GECLY35Q.js.map} +0 -0
- /package/dist/{extract-WYNFE6TQ.js.map → extract-KYD4M3XU.js.map} +0 -0
- /package/dist/{facets-WTY6NOUV.js.map → facets-CA7J44EY.js.map} +0 -0
- /package/dist/{feedback-57BP27NA.js.map → feedback-G3RB3HVK.js.map} +0 -0
- /package/dist/{feedback-XDREGDOK.js.map → feedback-P36JL2MA.js.map} +0 -0
- /package/dist/{feedback-record-HXSBLAZD.js.map → feedback-record-KMIQCEAR.js.map} +0 -0
- /package/dist/{fetch-L27MLPXM.js.map → fetch-Z42TLLI4.js.map} +0 -0
- /package/dist/{fit-K3G7HIMK.js.map → fit-ANYF4UJ2.js.map} +0 -0
- /package/dist/{flows-VJTWU3SU.js.map → flows-3KUFFMLO.js.map} +0 -0
- /package/dist/{fonts-SEMIVGXJ.js.map → fonts-TAJRK4HZ.js.map} +0 -0
- /package/dist/{forecast-EHOMHLUH.js.map → forecast-327XLLZ3.js.map} +0 -0
- /package/dist/{forecast-VODA7N3G.js.map → forecast-FIYKBAEW.js.map} +0 -0
- /package/dist/{funnel-BXJDMVMF.js.map → funnel-OGQVXGM7.js.map} +0 -0
- /package/dist/{generate-VCGSO7HI.js.map → generate-GBFLO76C.js.map} +0 -0
- /package/dist/{get-EN4UQI7R.js.map → get-LM4KTWKF.js.map} +0 -0
- /package/dist/{get-EASXXOQR.js.map → get-OSBYMC2N.js.map} +0 -0
- /package/dist/{google-ZVVKAI7T.js.map → google-FMGXNCW3.js.map} +0 -0
- /package/dist/{google-ATEQHENA.js.map → google-RHPQWNMK.js.map} +0 -0
- /package/dist/{google-ads-OUNSPGRQ.js.map → google-ads-EHJBMUJ4.js.map} +0 -0
- /package/dist/{history-TDGBO76N.js.map → history-6X3VIQP3.js.map} +0 -0
- /package/dist/{history-5OJVW2ZF.js.map → history-CDHA25XG.js.map} +0 -0
- /package/dist/{history-RQMCZQSC.js.map → history-K4VYVCZC.js.map} +0 -0
- /package/dist/{hubspot-VQGONQQU.js.map → hubspot-7E6EAUIV.js.map} +0 -0
- /package/dist/{ideas-B7RQXWHQ.js.map → ideas-3UNEUSMO.js.map} +0 -0
- /package/dist/{images-Q45MP4Q2.js.map → images-7KJX5JFY.js.map} +0 -0
- /package/dist/{ingest-UMQQIINM.js.map → ingest-4Y35DBZV.js.map} +0 -0
- /package/dist/{ingest-6MMY4KDM.js.map → ingest-LGZ3R4OI.js.map} +0 -0
- /package/dist/{insights-WDHDMULM.js.map → insights-RHOCF7VR.js.map} +0 -0
- /package/dist/{inspect-W2BIGA5F.js.map → inspect-WYOMSTBG.js.map} +0 -0
- /package/dist/{intent-3S6SHAYC.js.map → intent-TKFH57DZ.js.map} +0 -0
- /package/dist/{keyword-gap-MGHKWE6A.js.map → keyword-gap-7I2CIUTK.js.map} +0 -0
- /package/dist/{keyword-metrics-6R5TSHCE.js.map → keyword-metrics-35TFEXA5.js.map} +0 -0
- /package/dist/{keywords-for-site-EFBLFX6E.js.map → keywords-for-site-IMHNWTTB.js.map} +0 -0
- /package/dist/{landing-WC5FX3UP.js.map → landing-RKUGZ3LB.js.map} +0 -0
- /package/dist/{languages-4J7JHZNB.js.map → languages-FMHPUVOL.js.map} +0 -0
- /package/dist/{leads-CBOQ5CNM.js.map → leads-C46ZXIXF.js.map} +0 -0
- /package/dist/{learn-ZUP35H3T.js.map → learn-WDPCW5ZD.js.map} +0 -0
- /package/dist/{line-item-writes-W4UFIYEA.js.map → line-item-writes-IZKFY3GR.js.map} +0 -0
- /package/dist/{line-items-SGCUJF3S.js.map → line-items-CBVRZ43V.js.map} +0 -0
- /package/dist/{link-KLJB7COB.js.map → link-GEPIZSVI.js.map} +0 -0
- /package/dist/{linkedin-TANR45ZZ.js.map → linkedin-FHEYMG4M.js.map} +0 -0
- /package/dist/{linkedin-person-ECWP4XPE.js.map → linkedin-person-2M3WBL66.js.map} +0 -0
- /package/dist/{list-XELB7UV2.js.map → list-APJDJZL7.js.map} +0 -0
- /package/dist/{list-PXEJMDB4.js.map → list-CLJN4YN5.js.map} +0 -0
- /package/dist/{list-SVR5HBLA.js.map → list-LE6DJG44.js.map} +0 -0
- /package/dist/{locations-SNK2NDH3.js.map → locations-DD3JRZ4C.js.map} +0 -0
- /package/dist/{locations-KM4XY56A.js.map → locations-HWMEJ64P.js.map} +0 -0
- /package/dist/{log-PMPOO42C.js.map → log-FC2GLXIK.js.map} +0 -0
- /package/dist/{make-Q36WVKT3.js.map → make-LYY7W523.js.map} +0 -0
- /package/dist/{map-DQ65PS65.js.map → map-DGS5KKDJ.js.map} +0 -0
- /package/dist/{mcp-XMFKYN3E.js.map → mcp-IRG5E6U3.js.map} +0 -0
- /package/dist/{media-sources-HG524YO4.js.map → media-sources-SXUKFPBW.js.map} +0 -0
- /package/dist/{members-D4DI2IFH.js.map → members-TNY3CQSI.js.map} +0 -0
- /package/dist/{metrics-QVDXMTEI.js.map → metrics-KXTFXSWK.js.map} +0 -0
- /package/dist/{models-VOSJJFO2.js.map → models-2ZEM64H5.js.map} +0 -0
- /package/dist/{normalize-XRVNJTML.js.map → normalize-74VF6BZV.js.map} +0 -0
- /package/dist/{options-HT27WLNS.js.map → options-LNJH5LJR.js.map} +0 -0
- /package/dist/{organization-DYPTFZBA.js.map → organization-DHYTS3KH.js.map} +0 -0
- /package/dist/{people-TTUIYT3L.js.map → people-R3YTQXYH.js.map} +0 -0
- /package/dist/{people-5MJXHC3D.js.map → people-U6EP77HS.js.map} +0 -0
- /package/dist/{performance-2AQ34OPB.js.map → performance-AZGVR3IG.js.map} +0 -0
- /package/dist/{performance-WE4LHJ2B.js.map → performance-LYBUVYLQ.js.map} +0 -0
- /package/dist/{pixels-EWFDIDFA.js.map → pixels-3CINROKJ.js.map} +0 -0
- /package/dist/{preview-JYVRWRTT.js.map → preview-3OGMMUT4.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-HCVRPH45.js.map → promoted-tweet-writes-EPNO2VUY.js.map} +0 -0
- /package/dist/{promoted-tweets-P56ZU6OK.js.map → promoted-tweets-UNG4FV3M.js.map} +0 -0
- /package/dist/{publish-4VWZHRYO.js.map → publish-YHU5K76M.js.map} +0 -0
- /package/dist/{query-DK7WWCJJ.js.map → query-NYH5PMQF.js.map} +0 -0
- /package/dist/{reddit-NSKYHSAC.js.map → reddit-BYHNEZWI.js.map} +0 -0
- /package/dist/{refresh-O3CLJX4O.js.map → refresh-3L4DCDVG.js.map} +0 -0
- /package/dist/{release-6TQQW4HB.js.map → release-LIDQL3KW.js.map} +0 -0
- /package/dist/{relevant-pages-B3ZFOGHQ.js.map → relevant-pages-QIF35NBQ.js.map} +0 -0
- /package/dist/{remove-R55VAM47.js.map → remove-RZSRYB4K.js.map} +0 -0
- /package/dist/{reopen-S426N3OD.js.map → reopen-C2SDKYRQ.js.map} +0 -0
- /package/dist/{rerun-5KHANQR3.js.map → rerun-RAOZJYYI.js.map} +0 -0
- /package/dist/{research-5REXCSSO.js.map → research-BNUMVIBI.js.map} +0 -0
- /package/dist/{research-DMZLXMM2.js.map → research-JQGHHTHS.js.map} +0 -0
- /package/dist/{reset-D4NGVG35.js.map → reset-FZ475DZK.js.map} +0 -0
- /package/dist/{reset-5N2IVHFL.js.map → reset-MES3UU3L.js.map} +0 -0
- /package/dist/{resolve-V75JGD75.js.map → resolve-3EJ2ZI64.js.map} +0 -0
- /package/dist/{retry-WIKW6CGT.js.map → retry-IMGUCVDF.js.map} +0 -0
- /package/dist/{retry-SB7EIJBA.js.map → retry-OFFHBZG2.js.map} +0 -0
- /package/dist/{revenue-GZJU3XMD.js.map → revenue-IACHOM7M.js.map} +0 -0
- /package/dist/{rules-WI6YKZA4.js.map → rules-C72VPDXE.js.map} +0 -0
- /package/dist/{rules-add-JCRB4AJR.js.map → rules-add-A3PKTQNR.js.map} +0 -0
- /package/dist/{run-VVK23U5P.js.map → run-BG7WR3W4.js.map} +0 -0
- /package/dist/{run-RDHTORWZ.js.map → run-XYRUAAJH.js.map} +0 -0
- /package/dist/{scaffold-ad-QSVBY3XR.js.map → scaffold-ad-Y4FKVKVJ.js.map} +0 -0
- /package/dist/{scaffold-static-ad-64BZMUHP.js.map → scaffold-static-ad-N7P47U6N.js.map} +0 -0
- /package/dist/{scaffold-video-X27MRW7R.js.map → scaffold-video-JYUGPW2L.js.map} +0 -0
- /package/dist/{schedule-XHPIVUJ6.js.map → schedule-NMMJZXZH.js.map} +0 -0
- /package/dist/{scheduled-agents-OMUQCGDG.js.map → scheduled-agents-NFVSFOPB.js.map} +0 -0
- /package/dist/{schema-RDVJQ5VW.js.map → schema-MIWJBYFP.js.map} +0 -0
- /package/dist/{search-VX5ATSCD.js.map → search-B3EI65TS.js.map} +0 -0
- /package/dist/{select-NX3VHQTH.js.map → select-I4HA6HUB.js.map} +0 -0
- /package/dist/{set-prompt-QGEWZ3HD.js.map → set-prompt-Y3IPUFUH.js.map} +0 -0
- /package/dist/{setup-links-LIDZVTSU.js.map → setup-links-2Y3A676T.js.map} +0 -0
- /package/dist/{shopify-LZU3MCDG.js.map → shopify-5LZ5IWSB.js.map} +0 -0
- /package/dist/{site-CEO2V3BI.js.map → site-GXH6QLNZ.js.map} +0 -0
- /package/dist/{sources-C7AQCP2Z.js.map → sources-7VWSZZHQ.js.map} +0 -0
- /package/dist/{sources-SIGZVORA.js.map → sources-KYAVCA5P.js.map} +0 -0
- /package/dist/{status-NIG6OSAG.js.map → status-II4PTBUU.js.map} +0 -0
- /package/dist/{stock-KY6BCN76.js.map → stock-WZN53KCQ.js.map} +0 -0
- /package/dist/{studio-VQFYNK5O.js.map → studio-TG2UAKFI.js.map} +0 -0
- /package/dist/{sync-3RS5E5ZI.js.map → sync-OSHJH7TD.js.map} +0 -0
- /package/dist/{sync-definition-VHYZWLS5.js.map → sync-definition-AP6CA6BU.js.map} +0 -0
- /package/dist/{tags-UM6Y4DVQ.js.map → tags-36OYKBFE.js.map} +0 -0
- /package/dist/{tags-F6DBHGIL.js.map → tags-3K6QGK5B.js.map} +0 -0
- /package/dist/{tags-I2LINXA7.js.map → tags-53FUK4HL.js.map} +0 -0
- /package/dist/{tags-YCBZVXJQ.js.map → tags-B3Z3OQ6G.js.map} +0 -0
- /package/dist/{tags-HGKEOIR7.js.map → tags-DXKEOOGL.js.map} +0 -0
- /package/dist/{targeting-criteria-XPK76HRH.js.map → targeting-criteria-UFE3MLWR.js.map} +0 -0
- /package/dist/{targets-KT4BNTKZ.js.map → targets-JSBKVSRO.js.map} +0 -0
- /package/dist/{testimonials-QGXMSSWV.js.map → testimonials-6KYRLQVP.js.map} +0 -0
- /package/dist/{themes-ZKUHKUZD.js.map → themes-7XHHY4XY.js.map} +0 -0
- /package/dist/{top-companies-RC5KTWQ5.js.map → top-companies-W3GBGJGL.js.map} +0 -0
- /package/dist/{transcript-OLF62WCH.js.map → transcript-VTVLH4VV.js.map} +0 -0
- /package/dist/{translate-NON5ZD3S.js.map → translate-2VAZU7BT.js.map} +0 -0
- /package/dist/{triggers-UOQY4RFC.js.map → triggers-ULFGRFHQ.js.map} +0 -0
- /package/dist/{unlink-RNIJPHHW.js.map → unlink-FGUCQNNF.js.map} +0 -0
- /package/dist/{unstage-QVDYVN77.js.map → unstage-UHKSQUPR.js.map} +0 -0
- /package/dist/{update-JAUWIWOH.js.map → update-CF6437MN.js.map} +0 -0
- /package/dist/{update-7KR5ABJP.js.map → update-G2IRXCSJ.js.map} +0 -0
- /package/dist/{update-QZEF5MUW.js.map → update-KO5VEPRN.js.map} +0 -0
- /package/dist/{update-TRWHYXF4.js.map → update-OQUIUKSX.js.map} +0 -0
- /package/dist/{upload-MLK2MZB6.js.map → upload-GD552SG7.js.map} +0 -0
- /package/dist/{url-options-2FVG55JF.js.map → url-options-RTTLWCU5.js.map} +0 -0
- /package/dist/{url-params-F4XNWPOD.js.map → url-params-ZFX3EBLE.js.map} +0 -0
- /package/dist/{validate-P3AQVXG6.js.map → validate-EFTSHSRZ.js.map} +0 -0
- /package/dist/{videos-PAKAAFRD.js.map → videos-OA3PSDF6.js.map} +0 -0
- /package/dist/{viewer-check-KXMDJH7R.js.map → viewer-check-OIORNTQG.js.map} +0 -0
- /package/dist/{web-E5NHFG4Y.js.map → web-RKEKSDU3.js.map} +0 -0
- /package/dist/{winning-ads-P6PDTCCU.js.map → winning-ads-CJQEQ6JQ.js.map} +0 -0
- /package/dist/{write-commands-MBNO7DCX.js.map → write-commands-CPAOTG6H.js.map} +0 -0
- /package/dist/{x-5A74OD5P.js.map → x-PF3FDWKU.js.map} +0 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import {
|
|
2
|
+
readAvatars
|
|
3
|
+
} from "./chunk-DN6EMVA4.js";
|
|
4
|
+
import {
|
|
5
|
+
readCompanyReading
|
|
6
|
+
} from "./chunk-HFQSTIM5.js";
|
|
7
|
+
import {
|
|
8
|
+
apiPost
|
|
9
|
+
} from "./chunk-JCFZ7ECN.js";
|
|
10
|
+
|
|
11
|
+
// src/commands/creatives/cast-inventory.ts
|
|
12
|
+
import { readdir, readFile } from "fs/promises";
|
|
13
|
+
import path from "path";
|
|
14
|
+
var short = (text, max) => text.length > max ? `${text.slice(0, max - 1).trimEnd()}\u2026` : text;
|
|
15
|
+
var nameKey = (name) => name.normalize("NFD").replace(new RegExp("\\p{M}", "gu"), "").toLowerCase().replace(/\b(?:inc|llc|ltd|gmbh|sl|sa|corp|co)\b\.?/g, "").replace(/[^\p{L}\p{N}]/gu, "");
|
|
16
|
+
function isTheCompany(employer, company) {
|
|
17
|
+
const key = nameKey(employer);
|
|
18
|
+
if (key.length < 3) return false;
|
|
19
|
+
return [company.name ?? "", ...company.brands ?? []].some((own) => {
|
|
20
|
+
const ownKey = nameKey(own);
|
|
21
|
+
return ownKey.length >= 3 && (key.includes(ownKey) || ownKey.includes(key));
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function avatarRelation(avatar, company) {
|
|
25
|
+
if (avatar.relation) return avatar.relation;
|
|
26
|
+
if (avatar.likeness === "synthetic" && !avatar.person) return "role";
|
|
27
|
+
return avatar.person?.company && isTheCompany(avatar.person.company, company) ? "team" : "unknown";
|
|
28
|
+
}
|
|
29
|
+
var CASTABLE = ["team", "founder", "role"];
|
|
30
|
+
function avatarsOf(response, company = {}) {
|
|
31
|
+
return response.avatars.filter((a) => a.status === "ready").map((a) => {
|
|
32
|
+
const real = a.likeness === "licensed" || Boolean(a.person);
|
|
33
|
+
const role = [a.person?.role, a.person?.company].filter(Boolean).join(" at ");
|
|
34
|
+
const relation = avatarRelation(a, company);
|
|
35
|
+
return {
|
|
36
|
+
handle: a.handle,
|
|
37
|
+
real,
|
|
38
|
+
who: short(role || a.subjectDescription || a.name, 90),
|
|
39
|
+
relation,
|
|
40
|
+
castable: CASTABLE.includes(relation),
|
|
41
|
+
...a.testimonialIds?.length ? { testimonialIds: a.testimonialIds } : {}
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
async function companyName(root) {
|
|
46
|
+
const doc = await readFile(path.join(root, "COMPANY.md"), "utf8").catch(() => "");
|
|
47
|
+
const title = /^#\s+(.+?)\s*$/m.exec(doc)?.[1] ?? "";
|
|
48
|
+
return title.replace(/[*_`]/g, "").replace(/^(?:company|empresa|compañía)\s*:\s*/i, "") || void 0;
|
|
49
|
+
}
|
|
50
|
+
async function castCompany(root) {
|
|
51
|
+
const [name, reading] = await Promise.all([companyName(root), readCompanyReading(root).catch(() => null)]);
|
|
52
|
+
return { ...name ? { name } : {}, brands: reading?.brands ?? [] };
|
|
53
|
+
}
|
|
54
|
+
function customersOf(found) {
|
|
55
|
+
return found.filter((t) => t.sentiment !== "negative" && (t.highlight || t.reviewText).trim()).slice(0, 3).map((t) => ({
|
|
56
|
+
...t.reviewerName ? { name: t.reviewerName } : {},
|
|
57
|
+
words: short((t.highlight || t.reviewText).trim().replace(/\s+/g, " "), 140),
|
|
58
|
+
source: t.sourceType,
|
|
59
|
+
photo: Boolean(t.reviewerImageUrl || t.reviewerImageId || t.imageIds?.length || t.videoIds?.length)
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
var LOGO_FILE = /\.(svg|png|webp|jpe?g)$/i;
|
|
63
|
+
async function castInventory(root, message, company) {
|
|
64
|
+
const own = await castCompany(root);
|
|
65
|
+
const [avatars, customers, logos] = await Promise.all([
|
|
66
|
+
readAvatars("/api/avatars", { status: "ready" }).then(
|
|
67
|
+
(response) => avatarsOf(response, { ...own, ...company ? { name: company } : {} }),
|
|
68
|
+
() => []
|
|
69
|
+
),
|
|
70
|
+
apiPost("/api/testimonials/search", { query: message, limit: 6 }).then(
|
|
71
|
+
customersOf,
|
|
72
|
+
() => []
|
|
73
|
+
),
|
|
74
|
+
readdir(path.join(root, "src", "brand", "logos")).then(
|
|
75
|
+
(files) => files.filter((f) => LOGO_FILE.test(f)).map((f) => `src/brand/logos/${f}`),
|
|
76
|
+
() => []
|
|
77
|
+
)
|
|
78
|
+
]);
|
|
79
|
+
return { avatars, customers, logos, ...company ? { company } : {} };
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export {
|
|
83
|
+
avatarRelation,
|
|
84
|
+
avatarsOf,
|
|
85
|
+
companyName,
|
|
86
|
+
castCompany,
|
|
87
|
+
castInventory
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=chunk-QKGIXXXB.js.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import {
|
|
2
|
+
definitionPlatformOf,
|
|
3
|
+
parseDefinitionDelivery,
|
|
4
|
+
resolveDelivery,
|
|
5
|
+
resolveFormatList
|
|
6
|
+
} from "./chunk-73NWLLZ3.js";
|
|
7
|
+
import {
|
|
8
|
+
AD_PLACEMENTS
|
|
9
|
+
} from "./chunk-MCJ5I5LR.js";
|
|
10
|
+
import {
|
|
11
|
+
CAPABILITY_SURFACES
|
|
12
|
+
} from "./chunk-3WOFZTGC.js";
|
|
13
|
+
import {
|
|
14
|
+
apiPost
|
|
15
|
+
} from "./chunk-JCFZ7ECN.js";
|
|
16
|
+
|
|
17
|
+
// src/commands/canvas/scaffold-delivery.ts
|
|
18
|
+
var flagText = (value) => typeof value === "string" || typeof value === "number" ? String(value).trim() || void 0 : void 0;
|
|
19
|
+
function deliveryInputOf(flags, definition, idea) {
|
|
20
|
+
const platformsFlag = flagText(flags.platforms);
|
|
21
|
+
const legacyPlatform = flagText(flags.platform);
|
|
22
|
+
const legacyPlacements = flagText(flags.placements);
|
|
23
|
+
const aspect = flagText(flags.aspect);
|
|
24
|
+
const formatsFlag = flagText(flags.formats);
|
|
25
|
+
const targetAdSet = flagText(flags["target-adset"]);
|
|
26
|
+
return {
|
|
27
|
+
...platformsFlag ? { platformsFlag } : {},
|
|
28
|
+
...legacyPlatform ? { legacyPlatform } : {},
|
|
29
|
+
...legacyPlacements ? { legacyPlacements } : {},
|
|
30
|
+
...aspect ? { aspect } : {},
|
|
31
|
+
...formatsFlag ? { formatsFlag } : {},
|
|
32
|
+
...idea && idea.length > 0 ? { idea } : {},
|
|
33
|
+
definition,
|
|
34
|
+
...targetAdSet ? { targetAdSet } : {}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function namesDelivery(flags) {
|
|
38
|
+
return [flags.platforms, flags.platform, flags.placements, flags.formats].some((f) => flagText(f) !== void 0);
|
|
39
|
+
}
|
|
40
|
+
var SURFACE_PLATFORMS = {
|
|
41
|
+
"meta-ads": "meta",
|
|
42
|
+
"linkedin-ads": "linkedin",
|
|
43
|
+
"google-ads": "google_demandgen",
|
|
44
|
+
"x-ads": "x",
|
|
45
|
+
"chatgpt-ads": "chatgpt"
|
|
46
|
+
};
|
|
47
|
+
async function connectedAdPlatforms() {
|
|
48
|
+
try {
|
|
49
|
+
const response = await apiPost("/api/capabilities", {}, { timeoutMs: 15e3 });
|
|
50
|
+
return response.data.surfaces.filter((s) => s.connected && CAPABILITY_SURFACES.includes(s.surface)).flatMap((s) => SURFACE_PLATFORMS[s.surface] ? [SURFACE_PLATFORMS[s.surface]] : []);
|
|
51
|
+
} catch {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function scaffoldDelivery(flags, definitionText, idea) {
|
|
56
|
+
const definition = definitionText === null ? null : parseDefinitionDelivery(definitionText);
|
|
57
|
+
const input = deliveryInputOf(flags, definition, idea);
|
|
58
|
+
const resolved = resolveDelivery(input);
|
|
59
|
+
if (resolved.ok || resolved.error.code !== "platform_required") return resolved;
|
|
60
|
+
return resolveDelivery({ ...input, connected: await connectedAdPlatforms() });
|
|
61
|
+
}
|
|
62
|
+
function deliveryDefinitionFields(delivery) {
|
|
63
|
+
const platforms = delivery.platforms.map((p) => p.trim());
|
|
64
|
+
return {
|
|
65
|
+
// The collection names whole platforms; a placement named alone records its platform.
|
|
66
|
+
platforms: [...new Set(platforms.map(platformOfName))],
|
|
67
|
+
platform: definitionPlatformOf(platforms[0] ?? ""),
|
|
68
|
+
formats: resolveFormatList(delivery.formats)
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function platformOfName(name) {
|
|
72
|
+
return AD_PLACEMENTS.find((p) => p.id === name)?.platform ?? name;
|
|
73
|
+
}
|
|
74
|
+
function deliveryNote(delivery, renderRatio) {
|
|
75
|
+
const from = {
|
|
76
|
+
flag: "as asked",
|
|
77
|
+
idea: "from the idea",
|
|
78
|
+
definition: "from _definition.md",
|
|
79
|
+
legacy_definition: "from _definition.md's platform",
|
|
80
|
+
adset: "from its Meta ad set"
|
|
81
|
+
};
|
|
82
|
+
return `Made for ${delivery.platforms.join(", ")} (${from[delivery.source]}): delivers ${delivery.formats.join(", ")}, the ${delivery.lead} designed first (rendered at ${renderRatio}) and every other size re-laid out from it.`;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export {
|
|
86
|
+
namesDelivery,
|
|
87
|
+
scaffoldDelivery,
|
|
88
|
+
deliveryDefinitionFields,
|
|
89
|
+
deliveryNote
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=chunk-SR65SC66.js.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import {
|
|
2
|
+
leadVersion,
|
|
3
|
+
writeSeriesMemberCanvas
|
|
4
|
+
} from "./chunk-NSU6IKOE.js";
|
|
5
|
+
import {
|
|
6
|
+
definitionFieldsOf,
|
|
7
|
+
setDefinitionFields,
|
|
8
|
+
setSpecMessage
|
|
9
|
+
} from "./chunk-6LLA6IF6.js";
|
|
10
|
+
import {
|
|
11
|
+
IDEAS_DIR
|
|
12
|
+
} from "./chunk-YP5SD6O2.js";
|
|
13
|
+
|
|
14
|
+
// src/commands/creatives/make-series.ts
|
|
15
|
+
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
16
|
+
import path from "path";
|
|
17
|
+
import { parseDocument } from "yaml";
|
|
18
|
+
var LEAD_ONLY = ["idea", "message", "evidence", "angle", "persona", "awareness", "hypothesis", "series", "title"];
|
|
19
|
+
function withoutFields(raw, keys) {
|
|
20
|
+
const match = raw.match(/^---\r?\n([\s\S]*?\r?\n)?---/);
|
|
21
|
+
if (!match) return raw;
|
|
22
|
+
const doc = parseDocument(match[1] ?? "");
|
|
23
|
+
if (doc.errors.length > 0) return raw;
|
|
24
|
+
for (const key of keys) doc.delete(key);
|
|
25
|
+
return `---
|
|
26
|
+
${doc.toString()}---${raw.slice(match[0].length)}`;
|
|
27
|
+
}
|
|
28
|
+
async function makeSeriesAd(root, idea, slug, lead, evidence, deps) {
|
|
29
|
+
if (slug === lead) {
|
|
30
|
+
return {
|
|
31
|
+
code: "series_of_itself",
|
|
32
|
+
message: `"${slug}" is the lead itself.`,
|
|
33
|
+
fix: "Give the new ad its own --slug."
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const version = await leadVersion(root, lead);
|
|
37
|
+
if ("refused" in version) return version.refused;
|
|
38
|
+
const dir = path.join(root, "src", "creatives", slug);
|
|
39
|
+
const definitionPath = path.join(dir, "_definition.md");
|
|
40
|
+
await mkdir(dir, { recursive: true });
|
|
41
|
+
await writeFile(path.join(dir, "prompt.json"), setSpecMessage(JSON.stringify(version.spec), idea.message), "utf8");
|
|
42
|
+
const leadDefinition = await readFile(path.join(root, "src", "creatives", lead, "_definition.md"), "utf8").catch(
|
|
43
|
+
() => "---\nkind: static\n---\n"
|
|
44
|
+
);
|
|
45
|
+
const definition = setDefinitionFields(withoutFields(leadDefinition, LEAD_ONLY), {
|
|
46
|
+
title: idea.message.slice(0, 120),
|
|
47
|
+
series: lead,
|
|
48
|
+
status: "draft",
|
|
49
|
+
...definitionFieldsOf(idea, evidence)
|
|
50
|
+
});
|
|
51
|
+
await writeFile(definitionPath, definition, "utf8");
|
|
52
|
+
const made = await writeSeriesMemberCanvas(root, slug, { leadWords: true });
|
|
53
|
+
if (made === null || "refused" in made) {
|
|
54
|
+
return made?.refused ?? { code: "series_not_made", message: `"${slug}" could not be made in the series of "${lead}".` };
|
|
55
|
+
}
|
|
56
|
+
if (idea.status === "idea") {
|
|
57
|
+
const ideaPath = path.join(root, IDEAS_DIR, `${idea.id}.md`);
|
|
58
|
+
const raw = await readFile(ideaPath, "utf8").catch(() => null);
|
|
59
|
+
if (raw !== null) await writeFile(ideaPath, setDefinitionFields(raw, { status: "built" }), "utf8");
|
|
60
|
+
}
|
|
61
|
+
await deps.sync(dir);
|
|
62
|
+
return { slug, lead, leadRunId: version.lead.runId, canvasPath: made.canvasPath };
|
|
63
|
+
}
|
|
64
|
+
function seriesMadeEnvelope(made, idea) {
|
|
65
|
+
const lead = made.leadPlatforms ?? [];
|
|
66
|
+
const elsewhere = (idea.platforms ?? []).some((p) => !lead.includes(p));
|
|
67
|
+
return {
|
|
68
|
+
ok: true,
|
|
69
|
+
data: {
|
|
70
|
+
creative: made.slug,
|
|
71
|
+
idea: idea.id,
|
|
72
|
+
message: idea.message,
|
|
73
|
+
series: made.lead,
|
|
74
|
+
canvas_path: made.canvasPath
|
|
75
|
+
},
|
|
76
|
+
hints: [
|
|
77
|
+
`Write this ad's words in src/creatives/${made.slug}/prompt.json \`copy\`: one line for each of the lead's, in the same roles and about as long, saying this idea's message. Change nothing else: the picture, layout and colours are the lead's (${made.lead}), and every word you write replaces the lead's line in its place.`,
|
|
78
|
+
`When every ad of the series has its words: baker canvas run --series ${made.lead} (renders them all at once, each reviewed and corrected on its own).`,
|
|
79
|
+
...elsewhere && lead.length > 0 ? [
|
|
80
|
+
`A series ad runs where its lead runs (${lead.join(", ")}), in its sizes; the idea names ${idea.platforms?.join(", ")}. To run it there, make it on its own: baker creatives make ${idea.id} --platforms ${idea.platforms?.join(",")}.`
|
|
81
|
+
] : []
|
|
82
|
+
]
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export {
|
|
87
|
+
withoutFields,
|
|
88
|
+
makeSeriesAd,
|
|
89
|
+
seriesMadeEnvelope
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=chunk-SSFU4LKG.js.map
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Phrases,
|
|
3
|
+
RULE_APPLIES,
|
|
4
|
+
RULE_KINDS,
|
|
5
|
+
RULE_STRENGTHS
|
|
6
|
+
} from "./chunk-BNEWJXKU.js";
|
|
7
|
+
import {
|
|
8
|
+
holdWorkspaceSpend
|
|
9
|
+
} from "./chunk-T4HIFVNK.js";
|
|
10
|
+
import {
|
|
11
|
+
askAboutText
|
|
12
|
+
} from "./chunk-37QNC344.js";
|
|
13
|
+
import {
|
|
14
|
+
CREATIVE_FEEDBACK_REASON_LABELS
|
|
15
|
+
} from "./chunk-IPDDXD5K.js";
|
|
16
|
+
|
|
17
|
+
// src/commands/creatives/rule-candidate.ts
|
|
18
|
+
import { createHash } from "crypto";
|
|
19
|
+
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
20
|
+
import path from "path";
|
|
21
|
+
import { z } from "zod";
|
|
22
|
+
var optionalPhrases = Phrases.optional().catch(void 0);
|
|
23
|
+
var Draft = z.object({
|
|
24
|
+
because: z.string().trim().min(3).max(400),
|
|
25
|
+
text: z.string().trim().min(1).max(300),
|
|
26
|
+
strength: z.enum(RULE_STRENGTHS).catch("must"),
|
|
27
|
+
applies: z.enum(RULE_APPLIES).catch("any"),
|
|
28
|
+
language: z.string().trim().regex(/^[a-z]{2,3}$/).optional().catch(void 0),
|
|
29
|
+
kinds: z.array(z.enum(RULE_KINDS)).optional().catch(void 0),
|
|
30
|
+
platforms: optionalPhrases,
|
|
31
|
+
forbid: optionalPhrases,
|
|
32
|
+
require: optionalPhrases,
|
|
33
|
+
allow: optionalPhrases,
|
|
34
|
+
people: z.literal("real").optional().catch(void 0)
|
|
35
|
+
});
|
|
36
|
+
function parseDrafts(answer) {
|
|
37
|
+
const rules = answer?.rules;
|
|
38
|
+
if (!Array.isArray(rules)) return [];
|
|
39
|
+
return rules.slice(0, MAX_DRAFTS).flatMap((raw) => {
|
|
40
|
+
const draft = Draft.safeParse(raw);
|
|
41
|
+
if (!draft.success) return [];
|
|
42
|
+
const { because: _because, ...rule } = draft.data;
|
|
43
|
+
return [
|
|
44
|
+
Object.fromEntries(
|
|
45
|
+
Object.entries(rule).filter(([, v]) => v !== void 0 && !(Array.isArray(v) && v.length === 0))
|
|
46
|
+
)
|
|
47
|
+
];
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
var MAX_DRAFTS = 3;
|
|
51
|
+
function draftRulesPrompt(note, ad) {
|
|
52
|
+
const where = [ad.kind ? `a ${ad.kind} ad` : "an ad", ad.platform ? `for ${ad.platform}` : ""].filter(Boolean).join(" ");
|
|
53
|
+
return [
|
|
54
|
+
`A person rejected ${where} and said, in their own words:`,
|
|
55
|
+
`"""${note}"""`,
|
|
56
|
+
"",
|
|
57
|
+
"List only the standing rules this note states for EVERY future ad of the company (at most 3). Most notes state none: they ask for changes to this ad (fix a word, move the logo, speed up a scene, redo the pieces), and a change to this ad is never a rule, however it is phrased. A rule is standing only when the note itself says it holds beyond this ad (always, never, in every video, in these creatives, these mistakes keep happening, it is the format of the programme, the rule of the other pieces), or it corrects how the company or what it sells must always be named.",
|
|
58
|
+
"For each rule, quote in `because` the note's own words that make it hold beyond this ad; a rule you cannot quote that for is not a rule. Return JSON only:",
|
|
59
|
+
'{"rules": [{"because": string, "text": string, "strength": "never" | "must" | "prefer", "applies": "copy" | "picture" | "cast" | "logo" | "voice" | "sound" | "subtitles" | "any", "language": string, "kinds": ["static" | "video"], "platforms": string[], "forbid": string[], "require": string[], "allow": string[], "people": "real" | null}]}',
|
|
60
|
+
"- text: the rule in one short sentence, in the note's own language and close to its words.",
|
|
61
|
+
'- strength: "never" for a ban, "must" for something every ad has to do, "prefer" for a taste.',
|
|
62
|
+
'- applies: what of the ad it is about ("copy" for its words, "picture", "cast" for who appears, "logo", "voice", "sound", "subtitles"), else "any".',
|
|
63
|
+
`- language: the note's language as a two-letter code ("es").`,
|
|
64
|
+
'- kinds and platforms: only when the note limits the rule to them ("en estos creativos de linkedin" gives platforms ["linkedin"]); else [].',
|
|
65
|
+
`- forbid: the exact words the rule bans in the ad's words, only when a word or phrase decides it ("100 % online", not "online" gives forbid ["online"], allow ["100 % online"]); else []. require: words every ad must say; usually []. allow: the right phrase that contains a banned word.`,
|
|
66
|
+
'- people: "real" only when the rule is that no AI-made or invented people appear; else null.',
|
|
67
|
+
'Return {"rules": []} when the note states no standing rule.'
|
|
68
|
+
].join("\n");
|
|
69
|
+
}
|
|
70
|
+
var RULE_DRAFT_MODEL = "google/gemini-3.5-flash";
|
|
71
|
+
var DRAFT_REQUEST = {
|
|
72
|
+
provider: { order: ["google-vertex"], allow_fallbacks: false },
|
|
73
|
+
seed: 0,
|
|
74
|
+
reasoning: { effort: "low" },
|
|
75
|
+
response_format: { type: "json_object" }
|
|
76
|
+
};
|
|
77
|
+
var DRAFT_TIMEOUT_MS = 3e4;
|
|
78
|
+
function modelRuleDrafter(cacheDir) {
|
|
79
|
+
return async (note, ad) => {
|
|
80
|
+
const prompt = draftRulesPrompt(note, ad);
|
|
81
|
+
const key = createHash("sha256").update(JSON.stringify([RULE_DRAFT_MODEL, prompt])).digest("hex").slice(0, 16);
|
|
82
|
+
const file = path.join(cacheDir, "rule-drafts", `${key}.json`);
|
|
83
|
+
const cached = await readFile(file, "utf8").then(
|
|
84
|
+
(raw) => parseDrafts(JSON.parse(raw)),
|
|
85
|
+
() => null
|
|
86
|
+
);
|
|
87
|
+
if (cached) return cached;
|
|
88
|
+
const spent = [];
|
|
89
|
+
const answer = await askAboutText(RULE_DRAFT_MODEL, prompt, (u) => spent.push(u), {
|
|
90
|
+
timeoutMs: DRAFT_TIMEOUT_MS,
|
|
91
|
+
request: DRAFT_REQUEST
|
|
92
|
+
}).catch(() => null);
|
|
93
|
+
await holdWorkspaceSpend(spent);
|
|
94
|
+
if (answer === null) return [];
|
|
95
|
+
await mkdir(path.dirname(file), { recursive: true }).catch(() => void 0);
|
|
96
|
+
await writeFile(file, JSON.stringify(answer), "utf8").catch(() => void 0);
|
|
97
|
+
return parseDrafts(answer);
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
async function ruleCandidates(note, ad, draft) {
|
|
101
|
+
const text = note?.trim();
|
|
102
|
+
if (!text) return [];
|
|
103
|
+
return await draft(text, ad).catch(() => []);
|
|
104
|
+
}
|
|
105
|
+
var candidatesDir = (cacheDir) => path.join(cacheDir, "rule-candidates");
|
|
106
|
+
async function saveCandidates(cacheDir, candidates) {
|
|
107
|
+
await mkdir(candidatesDir(cacheDir), { recursive: true });
|
|
108
|
+
return await Promise.all(
|
|
109
|
+
candidates.map(async (c) => {
|
|
110
|
+
const id = `rc-${createHash("sha256").update(JSON.stringify(c)).digest("hex").slice(0, 8)}`;
|
|
111
|
+
await writeFile(path.join(candidatesDir(cacheDir), `${id}.json`), JSON.stringify(c), "utf8");
|
|
112
|
+
return id;
|
|
113
|
+
})
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
async function loadCandidate(cacheDir, id) {
|
|
117
|
+
if (!/^rc-[0-9a-f]{8}$/.test(id)) return null;
|
|
118
|
+
return await readFile(path.join(candidatesDir(cacheDir), `${id}.json`), "utf8").then(
|
|
119
|
+
(raw) => JSON.parse(raw),
|
|
120
|
+
() => null
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
var REPEATED_ON = 2;
|
|
124
|
+
var REPEATED_NOTES = 3;
|
|
125
|
+
function repeatedReasons(notes, reasons, slug) {
|
|
126
|
+
return reasons.flatMap((reason) => {
|
|
127
|
+
const others = notes.filter((n) => n.creative !== slug && n.reasons.includes(reason));
|
|
128
|
+
const creatives = new Set(others.map((n) => n.creative)).size;
|
|
129
|
+
return creatives >= REPEATED_ON ? [
|
|
130
|
+
{
|
|
131
|
+
label: CREATIVE_FEEDBACK_REASON_LABELS[reason],
|
|
132
|
+
creatives,
|
|
133
|
+
notes: [...new Set(others.map((n) => n.note))].slice(0, REPEATED_NOTES)
|
|
134
|
+
}
|
|
135
|
+
] : [];
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
function ruleCandidateHints(drafted, repeated) {
|
|
139
|
+
const asks = drafted.map(
|
|
140
|
+
(d) => `Their words state a rule for every ad: "${d.text}". Ask them once, in their language: make this a rule for every ad from now on? Only on yes: \`baker creatives rules add --candidate ${d.id}\` (reword it with --text if they correct it). On no, never ask again in this chat.`
|
|
141
|
+
);
|
|
142
|
+
const patterns = repeated.map(
|
|
143
|
+
(r) => `"${r.label}" was also the reason on ${r.creatives} other ads (their words: ${r.notes.map((n) => `"${n}"`).join("; ")}). ${drafted.length > 0 ? "Say so when you ask." : 'Ask them once whether there is a rule for every ad behind it; on yes, `baker creatives rules add --text "<the rule, in their words>" \u2026`.'}`
|
|
144
|
+
);
|
|
145
|
+
return [...asks, ...patterns];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export {
|
|
149
|
+
modelRuleDrafter,
|
|
150
|
+
ruleCandidates,
|
|
151
|
+
saveCandidates,
|
|
152
|
+
loadCandidate,
|
|
153
|
+
repeatedReasons,
|
|
154
|
+
ruleCandidateHints
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=chunk-T5TJJJGI.js.map
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import {
|
|
2
|
+
handleConnectionError,
|
|
3
|
+
needsConnectionFix,
|
|
4
|
+
writeAdsJson
|
|
5
|
+
} from "./chunk-VJUVTMHY.js";
|
|
6
|
+
import {
|
|
7
|
+
LINKEDIN_SEARCH_STATUSES,
|
|
8
|
+
unsupportedLinkedinSearchStatuses
|
|
9
|
+
} from "./chunk-IPDDXD5K.js";
|
|
10
|
+
import {
|
|
11
|
+
ApiError
|
|
12
|
+
} from "./chunk-JCFZ7ECN.js";
|
|
13
|
+
import {
|
|
14
|
+
MissingChatIdError,
|
|
15
|
+
getEnv
|
|
16
|
+
} from "./chunk-OMLZ35HJ.js";
|
|
17
|
+
|
|
18
|
+
// src/commands/ads/linkedin/shared.ts
|
|
19
|
+
import { readFileSync } from "fs";
|
|
20
|
+
var DAY_MS = 864e5;
|
|
21
|
+
function handleLinkedinError(err) {
|
|
22
|
+
if (err instanceof ApiError) {
|
|
23
|
+
if (needsConnectionFix(err.code, err.message)) {
|
|
24
|
+
handleConnectionError("linkedin_ads", err.message);
|
|
25
|
+
}
|
|
26
|
+
if (isNoAccountsSelectedError(err.code, err.message)) {
|
|
27
|
+
handleConnectionError("linkedin_ads", err.message);
|
|
28
|
+
}
|
|
29
|
+
const explanation = explainLinkedinError(err);
|
|
30
|
+
const envelope = {
|
|
31
|
+
ok: false,
|
|
32
|
+
error: {
|
|
33
|
+
code: err.code,
|
|
34
|
+
message: err.message,
|
|
35
|
+
fix: {
|
|
36
|
+
action: explanation.action,
|
|
37
|
+
explanation: explanation.message,
|
|
38
|
+
correctedCommand: explanation.correctedCommand
|
|
39
|
+
},
|
|
40
|
+
retryable: err.code === "RATE_LIMITED" || err.code === "UNAVAILABLE" || err.code === "INTERNAL_ERROR"
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
writeAdsJson(envelope);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
writeAdsJson(unexpectedErrorEnvelope(err));
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
function unexpectedErrorEnvelope(err) {
|
|
50
|
+
if (err instanceof MissingChatIdError) {
|
|
51
|
+
return {
|
|
52
|
+
ok: false,
|
|
53
|
+
error: {
|
|
54
|
+
code: err.code,
|
|
55
|
+
message: err.message,
|
|
56
|
+
fix: {
|
|
57
|
+
action: "reject",
|
|
58
|
+
explanation: "LinkedIn changes are staged in a chat and this run has none. Don't retry: carry on with the rest of the job and tell the user this change couldn't be staged from here."
|
|
59
|
+
},
|
|
60
|
+
retryable: false
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const message = err instanceof Error ? err.message : "Unexpected error";
|
|
65
|
+
return { ok: false, error: { code: "NETWORK_ERROR", message } };
|
|
66
|
+
}
|
|
67
|
+
function isNoAccountsSelectedError(code, message) {
|
|
68
|
+
return code === "VALIDATION_ERROR" && /no linkedin ad accounts selected/i.test(message);
|
|
69
|
+
}
|
|
70
|
+
function explainLinkedinError(err) {
|
|
71
|
+
const lower = err.message.toLowerCase();
|
|
72
|
+
if (err.code === "VALIDATION_ERROR" && lower.includes("granularity") && lower.includes("daily")) {
|
|
73
|
+
return {
|
|
74
|
+
action: "retry_with_flag",
|
|
75
|
+
message: "LinkedIn rejects DAILY granularity when pivoting on demographic dims (job-title, company, etc.). Re-run with --granularity ALL or MONTHLY.",
|
|
76
|
+
correctedCommand: void 0
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (err.code === "RATE_LIMITED") {
|
|
80
|
+
return {
|
|
81
|
+
action: "wait_and_retry",
|
|
82
|
+
message: "LinkedIn asked Baker to wait. A short wait is already sat out for you, so this one is long \u2014 up to LinkedIn's daily limit, which resets at midnight UTC. Don't retry in a loop: carry on with the rest of the job without this LinkedIn data, and tell the user it can be read again later."
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (err.code === "INTERNAL_ERROR" && lower.includes("deprecat")) {
|
|
86
|
+
return {
|
|
87
|
+
action: "reject",
|
|
88
|
+
message: "LinkedIn-Version header is deprecated. The backend constant LINKEDIN_API_VERSION needs to be bumped \u2014 file an issue or update the constant."
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return { action: "reject", message: err.message };
|
|
92
|
+
}
|
|
93
|
+
function normalizeLinkedinAccountId(raw) {
|
|
94
|
+
const match = raw.trim().match(/^(?:(?:urn:li:)?sponsoredAccount:)?(\d+)$/);
|
|
95
|
+
return match?.[1] ?? null;
|
|
96
|
+
}
|
|
97
|
+
function optionalAccountIdArg(args) {
|
|
98
|
+
const fromArgs = args["account-id"] ?? args["account-urn"];
|
|
99
|
+
const id = fromArgs || getEnv().BAKER_LINKEDIN_AD_ACCOUNT_ID;
|
|
100
|
+
if (!id) return void 0;
|
|
101
|
+
const bare = normalizeLinkedinAccountId(id);
|
|
102
|
+
if (bare === null) {
|
|
103
|
+
writeAdsJson({
|
|
104
|
+
ok: false,
|
|
105
|
+
error: {
|
|
106
|
+
code: "INVALID_ACCOUNT_ID",
|
|
107
|
+
message: `Invalid LinkedIn account ID "${id}". Expected numeric or urn:li:sponsoredAccount:N. Run \`baker ads linkedin accounts\` to list them.`
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
return bare;
|
|
113
|
+
}
|
|
114
|
+
function resolveAccountIdArg(args) {
|
|
115
|
+
const id = optionalAccountIdArg(args);
|
|
116
|
+
if (id === void 0) {
|
|
117
|
+
writeAdsJson({
|
|
118
|
+
ok: false,
|
|
119
|
+
error: {
|
|
120
|
+
code: "MISSING_ACCOUNT_ID",
|
|
121
|
+
message: "This company has several LinkedIn ad accounts selected, so the command needs one: pass --account-id. Run `baker ads linkedin accounts` to list them."
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
return id;
|
|
127
|
+
}
|
|
128
|
+
function todayIso() {
|
|
129
|
+
return (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
130
|
+
}
|
|
131
|
+
function daysAgoIso(days) {
|
|
132
|
+
return new Date(Date.now() - days * DAY_MS).toISOString().slice(0, 10);
|
|
133
|
+
}
|
|
134
|
+
function csvOrJson(args) {
|
|
135
|
+
return args.output ?? "json";
|
|
136
|
+
}
|
|
137
|
+
function statusesArgDescription(level) {
|
|
138
|
+
return `CSV of statuses (${LINKEDIN_SEARCH_STATUSES[level].join(",")})`;
|
|
139
|
+
}
|
|
140
|
+
function statusFilterError(level, statuses) {
|
|
141
|
+
const unsupported = unsupportedLinkedinSearchStatuses(level, statuses);
|
|
142
|
+
if (unsupported.length === 0) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const accepted = LINKEDIN_SEARCH_STATUSES[level].join(",");
|
|
146
|
+
return {
|
|
147
|
+
ok: false,
|
|
148
|
+
error: {
|
|
149
|
+
code: "INVALID_STATUS",
|
|
150
|
+
message: `LinkedIn does not accept status ${unsupported.join(", ")} for this listing.`,
|
|
151
|
+
fix: {
|
|
152
|
+
action: "retry_with_flag",
|
|
153
|
+
explanation: `Re-run with --statuses from ${accepted}, or --all-statuses to drop the filter.`
|
|
154
|
+
},
|
|
155
|
+
retryable: false
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
function resolveStatusFilter(args, level) {
|
|
160
|
+
if (args["all-statuses"]) {
|
|
161
|
+
return void 0;
|
|
162
|
+
}
|
|
163
|
+
const explicit = args.statuses;
|
|
164
|
+
if (!explicit) {
|
|
165
|
+
return ["ACTIVE"];
|
|
166
|
+
}
|
|
167
|
+
const statuses = explicit.split(",").map((s) => s.trim().toUpperCase()).filter(Boolean);
|
|
168
|
+
const error = statusFilterError(level, statuses);
|
|
169
|
+
if (error) {
|
|
170
|
+
writeAdsJson(error);
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
return statuses;
|
|
174
|
+
}
|
|
175
|
+
function loadTargetingArg(args) {
|
|
176
|
+
const inline = args.targeting;
|
|
177
|
+
if (inline) {
|
|
178
|
+
try {
|
|
179
|
+
return JSON.parse(inline);
|
|
180
|
+
} catch {
|
|
181
|
+
handleLinkedinError(new Error("--targeting must be valid JSON. See LinkedIn 'targetingCriteria' shape."));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
const file = args["targeting-file"];
|
|
185
|
+
if (file) {
|
|
186
|
+
try {
|
|
187
|
+
return JSON.parse(readFileSync(file, "utf-8"));
|
|
188
|
+
} catch (e) {
|
|
189
|
+
handleLinkedinError(
|
|
190
|
+
new Error(`Failed to read --targeting-file: ${e instanceof Error ? e.message : "I/O error"}`)
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
handleLinkedinError(new Error("Pass --targeting-file <path> or --targeting '{...JSON...}'"));
|
|
195
|
+
}
|
|
196
|
+
function exitOnInvalidArgs(issues, flagByField) {
|
|
197
|
+
const messages = issues.map((issue) => {
|
|
198
|
+
const field = String(issue.path[0] ?? "");
|
|
199
|
+
return `${flagByField[field] ?? (field || "args")}: ${issue.message}`;
|
|
200
|
+
});
|
|
201
|
+
writeAdsJson({ ok: false, error: { code: "INVALID_ARGS", message: messages.join("; ") } });
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export {
|
|
206
|
+
handleLinkedinError,
|
|
207
|
+
normalizeLinkedinAccountId,
|
|
208
|
+
optionalAccountIdArg,
|
|
209
|
+
resolveAccountIdArg,
|
|
210
|
+
todayIso,
|
|
211
|
+
daysAgoIso,
|
|
212
|
+
csvOrJson,
|
|
213
|
+
statusesArgDescription,
|
|
214
|
+
resolveStatusFilter,
|
|
215
|
+
loadTargetingArg,
|
|
216
|
+
exitOnInvalidArgs
|
|
217
|
+
};
|
|
218
|
+
//# sourceMappingURL=chunk-TQIEDVJB.js.map
|