@koda-sl/baker-cli 0.495.0-dev.6b9c22aff → 0.495.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.
Files changed (860) hide show
  1. package/README.md +1 -5
  2. package/dist/account-EF6OPUJT.js +80 -0
  3. package/dist/account-UHNR5KTE.js +79 -0
  4. package/dist/account-reads-CDZ3EL5D.js +218 -0
  5. package/dist/account-writes-VWU4FRGQ.js +66 -0
  6. package/dist/accounts-KMLXHADA.js +77 -0
  7. package/dist/accounts-QDGNTSTV.js +611 -0
  8. package/dist/actions-QL5UD2W4.js +55 -0
  9. package/dist/activecampaign-5OD45ROS.js +935 -0
  10. package/dist/ad-group-writes-ID6I3QUZ.js +170 -0
  11. package/dist/ad-groups-M7CV6NTH.js +68 -0
  12. package/dist/ad-writes-TSOAZYRE.js +174 -0
  13. package/dist/add-6K6LO7CM.js +104 -0
  14. package/dist/add-LYDJZDGO.js +302 -0
  15. package/dist/ads-CGLO73MH.js +77 -0
  16. package/dist/ads-DHPJFU52.js +40 -0
  17. package/dist/advertisers-23LU7GTV.js +120 -0
  18. package/dist/analytics-DVD4OBBR.js +1976 -0
  19. package/dist/analytics-HO2SLL4W.js +433 -0
  20. package/dist/animate-RGZWDZG2.js +480 -0
  21. package/dist/assign-CLKJKH2B.js +77 -0
  22. package/dist/audience-size-NNYYXODL.js +73 -0
  23. package/dist/audiences-WXIP5PJH.js +268 -0
  24. package/dist/audit-KB4P2XGS.js +151 -0
  25. package/dist/autocomplete-VZD2SMTE.js +111 -0
  26. package/dist/avatars-FKOO6VZ2.js +38 -0
  27. package/dist/bid-pricing-6LLXOLLI.js +100 -0
  28. package/dist/brand-NNWHBIAX.js +22 -0
  29. package/dist/brief-CPJQWT6W.js +538 -0
  30. package/dist/campaign-groups-YPYNXOWU.js +95 -0
  31. package/dist/campaign-groups-YPYNXOWU.js.map +1 -0
  32. package/dist/campaign-writes-UJ4L2O6G.js +165 -0
  33. package/dist/campaign-writes-W5IL6ZGB.js +170 -0
  34. package/dist/campaigns-FLTPD66X.js +76 -0
  35. package/dist/campaigns-HLBZRH5A.js +107 -0
  36. package/dist/campaigns-N44ZDGB5.js +109 -0
  37. package/dist/campaigns-N44ZDGB5.js.map +1 -0
  38. package/dist/canvas-D64GLWUO.js +46 -0
  39. package/dist/capabilities-LWXCWMIY.js +144 -0
  40. package/dist/catalog-ZDLQAODO.js +65 -0
  41. package/dist/catalogs-26VXVUST.js +128 -0
  42. package/dist/changes-SX2N5KIO.js +135 -0
  43. package/dist/chatgpt-YI6YNACI.js +47 -0
  44. package/dist/chats-7WGC2CVW.js +276 -0
  45. package/dist/check-EH6BXWWL.js +104 -0
  46. package/dist/chunk-2B772ZEA.js +169 -0
  47. package/dist/chunk-2KRK667G.js +51 -0
  48. package/dist/chunk-2TVXJPGR.js +103 -0
  49. package/dist/chunk-3AMLOCXY.js +392 -0
  50. package/dist/chunk-3N5A44NQ.js +122 -0
  51. package/dist/chunk-3S274625.js +131 -0
  52. package/dist/chunk-3WAYZQNV.js +61 -0
  53. package/dist/chunk-5A257KJA.js +160 -0
  54. package/dist/chunk-6QGS3RQP.js +363 -0
  55. package/dist/chunk-7KHTJQGV.js +1518 -0
  56. package/dist/chunk-A3DKSAEL.js +1606 -0
  57. package/dist/chunk-A4DZ5L3T.js +665 -0
  58. package/dist/chunk-ACDLKTUP.js +23992 -0
  59. package/dist/chunk-ACDLKTUP.js.map +1 -0
  60. package/dist/chunk-AFD32O4A.js +494 -0
  61. package/dist/chunk-AW2GKIGS.js +433 -0
  62. package/dist/chunk-B7GF34FU.js +8914 -0
  63. package/dist/chunk-BDYLILMW.js +150 -0
  64. package/dist/chunk-DAO63OOP.js +6352 -0
  65. package/dist/chunk-DAO63OOP.js.map +1 -0
  66. package/dist/chunk-EJ4QCMM6.js +285 -0
  67. package/dist/chunk-EMQUW6JB.js +942 -0
  68. package/dist/chunk-EW3JEKIV.js +139 -0
  69. package/dist/chunk-F377KYIM.js +274 -0
  70. package/dist/chunk-FBFWMTOP.js +19 -0
  71. package/dist/chunk-FCM6VPFP.js +98 -0
  72. package/dist/chunk-FKYPAGKK.js +1919 -0
  73. package/dist/chunk-GXGYTFZA.js +8939 -0
  74. package/dist/chunk-I7J7YQXZ.js +142 -0
  75. package/dist/chunk-IBY44U2M.js +1079 -0
  76. package/dist/chunk-IFXGCI33.js +297 -0
  77. package/dist/chunk-IKLHXGMF.js +91 -0
  78. package/dist/chunk-IYTPWAN3.js +604 -0
  79. package/dist/chunk-J3CWAERS.js +3868 -0
  80. package/dist/chunk-JAC6JVCI.js +26 -0
  81. package/dist/chunk-JH2L5CQD.js +206 -0
  82. package/dist/chunk-JUVVCA7B.js +97 -0
  83. package/dist/chunk-MCJ5I5LR.js +3187 -0
  84. package/dist/chunk-MCJ5I5LR.js.map +1 -0
  85. package/dist/chunk-MK6XJUCQ.js +197 -0
  86. package/dist/chunk-MOFMOYUA.js +148 -0
  87. package/dist/chunk-MZPS46OR.js +76 -0
  88. package/dist/chunk-N3I6ZXR7.js +66 -0
  89. package/dist/chunk-NBO2NSAW.js +592 -0
  90. package/dist/chunk-NEU5QD2C.js +249 -0
  91. package/dist/chunk-NKIBXOHT.js +344 -0
  92. package/dist/chunk-NZKBW4YB.js +846 -0
  93. package/dist/chunk-OE3MIV4F.js +547 -0
  94. package/dist/chunk-OL7JS4NG.js +5368 -0
  95. package/dist/chunk-P2MFWJR3.js +903 -0
  96. package/dist/chunk-PHCIFBP3.js +89 -0
  97. package/dist/chunk-PTUXBO5O.js +224 -0
  98. package/dist/chunk-Q3LXLWZY.js +275 -0
  99. package/dist/chunk-Q5WBTVA7.js +455 -0
  100. package/dist/chunk-QMOYQJIN.js +46 -0
  101. package/dist/chunk-QRLTVJ6F.js +167 -0
  102. package/dist/chunk-RDEAVCMF.js +399 -0
  103. package/dist/chunk-RGMKXNQP.js +23 -0
  104. package/dist/chunk-RJZS4XDJ.js +64 -0
  105. package/dist/chunk-RZTKCCUL.js +831 -0
  106. package/dist/chunk-S4VLLGTW.js +843 -0
  107. package/dist/chunk-SVM3DGAQ.js +228 -0
  108. package/dist/chunk-TTKBNBQF.js +156 -0
  109. package/dist/chunk-VB3XUR6A.js +207 -0
  110. package/dist/chunk-WTJSMYY2.js +4249 -0
  111. package/dist/chunk-WTJSMYY2.js.map +1 -0
  112. package/dist/chunk-XCKINS7K.js +57 -0
  113. package/dist/chunk-Y46FE75E.js +627 -0
  114. package/dist/chunk-Y6GKV7CU.js +346 -0
  115. package/dist/chunk-Y6GKV7CU.js.map +1 -0
  116. package/dist/chunk-Z2GQREJY.js +159 -0
  117. package/dist/chunk-ZA7OQLDJ.js +225 -0
  118. package/dist/chunk-ZDAVSTEE.js +172 -0
  119. package/dist/chunk-ZXCSOVS5.js +191 -0
  120. package/dist/claim-SVDCQ2AI.js +197 -0
  121. package/dist/cli.js +34 -34
  122. package/dist/companies-BYMYQK6A.js +195 -0
  123. package/dist/complete-NEH3MWRI.js +81 -0
  124. package/dist/connect-5PGL7ZOM.js +42 -0
  125. package/dist/conversation-CSOKJXDW.js +93 -0
  126. package/dist/conversion-report-7JJ5L6WH.js +125 -0
  127. package/dist/conversion-upload-command-UO2QWG3J.js +438 -0
  128. package/dist/conversion-writes-GIGAZT4T.js +120 -0
  129. package/dist/conversions-4JOTTFEH.js +135 -0
  130. package/dist/conversions-4JOTTFEH.js.map +1 -0
  131. package/dist/conversions-CIJZLGII.js +76 -0
  132. package/dist/create-2XYMBULY.js +207 -0
  133. package/dist/create-56PTZABQ.js +235 -0
  134. package/dist/create-D6S6TGWY.js +59 -0
  135. package/dist/create-SMW4O5PC.js +132 -0
  136. package/dist/creatives-OO76DAFS.js +58 -0
  137. package/dist/creatives-VJUYWJL6.js +182 -0
  138. package/dist/creatives-VJUYWJL6.js.map +1 -0
  139. package/dist/credentials-2ONYUJW6.js +287 -0
  140. package/dist/critique-NDDFSGPE.js +1458 -0
  141. package/dist/critique-YXZVMLZ4.js +227 -0
  142. package/dist/crm-Q6CEP5XV.js +224 -0
  143. package/dist/crm-WRONZYDH.js +318 -0
  144. package/dist/currency-TAEJVMVK.js +88 -0
  145. package/dist/customers-2EFYSCU2.js +56 -0
  146. package/dist/delete-7WEVC3FS.js +66 -0
  147. package/dist/delete-RBWK255M.js +54 -0
  148. package/dist/delete-VN4WWMQF.js +64 -0
  149. package/dist/demographics-I5XZ435C.js +138 -0
  150. package/dist/discard-XJLIXTNM.js +66 -0
  151. package/dist/discover-5Z253HXF.js +172 -0
  152. package/dist/domain-M7AEGAYI.js +98 -0
  153. package/dist/draft-5DQI4W5F.js +306 -0
  154. package/dist/draft-5DQI4W5F.js.map +1 -0
  155. package/dist/draft-7DWRFCXW.js +281 -0
  156. package/dist/draft-7IIYHSY2.js +332 -0
  157. package/dist/draft-CN6GKVBF.js +217 -0
  158. package/dist/draft-MNEM4N5W.js +307 -0
  159. package/dist/engine/index.js +7 -7
  160. package/dist/experiment-IDDWRCJ7.js +1397 -0
  161. package/dist/facets-ZLZ6LIHN.js +114 -0
  162. package/dist/feedback-7LEX2P5Q.js +106 -0
  163. package/dist/feedback-record-P4JJ63KA.js +260 -0
  164. package/dist/fetch-MIVCEHXZ.js +176 -0
  165. package/dist/find-VHN34MWL.js +134 -0
  166. package/dist/fit-SS6HSZPU.js +62 -0
  167. package/dist/flows-UTIIHDNE.js +247 -0
  168. package/dist/fonts-YPNN7ZJP.js +36 -0
  169. package/dist/forecast-OBSHG2GJ.js +118 -0
  170. package/dist/forecast-W7Z5TVQX.js +168 -0
  171. package/dist/funnel-Z2VLXUEQ.js +394 -0
  172. package/dist/ga4-ZPAEF2G2.js +55 -0
  173. package/dist/generate-Y76WU7M7.js +263 -0
  174. package/dist/get-MDAO6I7T.js +56 -0
  175. package/dist/get-ZB553BSH.js +79 -0
  176. package/dist/google-C3X7O2UO.js +136 -0
  177. package/dist/google-WYXDMH2N.js +3265 -0
  178. package/dist/google-ads-FTWL772L.js +195 -0
  179. package/dist/gsc-SDDHGTZK.js +30 -0
  180. package/dist/history-DGHMJ2XF.js +67 -0
  181. package/dist/history-WKJYKDMG.js +133 -0
  182. package/dist/hubspot-EPHVEPOO.js +779 -0
  183. package/dist/icon-MYPDC6FM.js +137 -0
  184. package/dist/ideas-3PBH7VEX.js +40 -0
  185. package/dist/images-J35C3WG4.js +92 -0
  186. package/dist/ingest-5QOPUKFE.js +107 -0
  187. package/dist/ingest-OKUYP632.js +23 -0
  188. package/dist/insights-EU45J56U.js +122 -0
  189. package/dist/inspect-PMNCP6MV.js +189 -0
  190. package/dist/inspiration-QAL7NS7G.js +53 -0
  191. package/dist/intent-FUGWRUSW.js +95 -0
  192. package/dist/keyword-gap-DXTKZLV2.js +130 -0
  193. package/dist/keyword-metrics-R752SJIT.js +197 -0
  194. package/dist/keywords-for-site-7UWPJYQF.js +128 -0
  195. package/dist/landing-CBVIOGJ5.js +28 -0
  196. package/dist/languages-XRTTEJ5P.js +40 -0
  197. package/dist/leads-LIJS6Y5W.js +90 -0
  198. package/dist/leads-LIJS6Y5W.js.map +1 -0
  199. package/dist/learn-N6QV7GXA.js +204 -0
  200. package/dist/line-item-writes-3WPJXKIL.js +208 -0
  201. package/dist/line-items-ZOFKOGAA.js +103 -0
  202. package/dist/link-DDRQKOUL.js +64 -0
  203. package/dist/linkedin-UWZCF66X.js +1057 -0
  204. package/dist/linkedin-UWZCF66X.js.map +1 -0
  205. package/dist/list-5PLXVPLB.js +151 -0
  206. package/dist/list-VSJISE7U.js +303 -0
  207. package/dist/list-WTVOBQYX.js +64 -0
  208. package/dist/locations-PCZPKH47.js +40 -0
  209. package/dist/locations-TGJH3URF.js +67 -0
  210. package/dist/log-YKKPROLZ.js +92 -0
  211. package/dist/logo-WE2UELX6.js +18 -0
  212. package/dist/make-RNOWBLZQ.js +1353 -0
  213. package/dist/map-WTDPQLVO.js +433 -0
  214. package/dist/mcp-XJNSCPP3.js +714 -0
  215. package/dist/media-sources-JGBDDXZ5.js +32 -0
  216. package/dist/members-O3BTMRXX.js +44 -0
  217. package/dist/metrics-PYPCW7FJ.js +152 -0
  218. package/dist/models-IAGO5GIH.js +155 -0
  219. package/dist/normalize-R5AYLA2J.js +141 -0
  220. package/dist/options-AILRY7JY.js +122 -0
  221. package/dist/organization-KJJXZLVK.js +946 -0
  222. package/dist/performance-7YU4HOGH.js +24 -0
  223. package/dist/pixels-R4MOLWAR.js +60 -0
  224. package/dist/promoted-tweet-writes-TNELWPVG.js +180 -0
  225. package/dist/promoted-tweets-76WKUFJQ.js +119 -0
  226. package/dist/publish-BKLHCKHB.js +341 -0
  227. package/dist/query-XDHZMGLX.js +61 -0
  228. package/dist/reddit-YK3YUZEI.js +26 -0
  229. package/dist/refresh-WIII7KXB.js +94 -0
  230. package/dist/release-ZHXYQI7G.js +60 -0
  231. package/dist/relevant-pages-CTG72PBR.js +99 -0
  232. package/dist/remove-NOX4BXWK.js +50 -0
  233. package/dist/reopen-NLWKK5HB.js +63 -0
  234. package/dist/rerun-DZWQNMZQ.js +90 -0
  235. package/dist/research-Q3P76RHN.js +62 -0
  236. package/dist/research-UDZBCDNX.js +262 -0
  237. package/dist/reset-5UHFX7QY.js +54 -0
  238. package/dist/reset-MTRJQUP7.js +54 -0
  239. package/dist/resolve-DA72VT7Q.js +121 -0
  240. package/dist/retry-LQUBX5TK.js +62 -0
  241. package/dist/retry-U6F4CS6O.js +60 -0
  242. package/dist/rules-VS5PZ7VO.js +96 -0
  243. package/dist/rules-add-LMVZYDXE.js +462 -0
  244. package/dist/run-6PRA2YSD.js +65 -0
  245. package/dist/run-R6COFNOR.js +66 -0
  246. package/dist/scaffold-ad-3OVJ7VZQ.js +1511 -0
  247. package/dist/scaffold-static-ad-DDRA3Q5I.js +1005 -0
  248. package/dist/scaffold-video-3JZYFYFU.js +883 -0
  249. package/dist/schedule-ED2YDUPY.js +61 -0
  250. package/dist/scheduled-agents-5P67MVGX.js +50 -0
  251. package/dist/schema-4XVKERSA.js +132 -0
  252. package/dist/search-Y2UMIQ57.js +174 -0
  253. package/dist/select-OZ4E6VLF.js +101 -0
  254. package/dist/set-prompt-O4YAE4CE.js +193 -0
  255. package/dist/setup-links-2GJYCV2A.js +141 -0
  256. package/dist/site-47B6V2UX.js +177 -0
  257. package/dist/sources-DXPZAPQ7.js +454 -0
  258. package/dist/sources-NDXYTASG.js +30 -0
  259. package/dist/stale-VLVBO2L6.js +71 -0
  260. package/dist/stats-37OFAMPW.js +34 -0
  261. package/dist/status-4ODD46XY.js +62 -0
  262. package/dist/stock-6R5E7MJX.js +179 -0
  263. package/dist/studio-LEIGL3Q7.js +49 -0
  264. package/dist/sync-TKNVBUDM.js +54 -0
  265. package/dist/sync-definition-M5R3H3TP.js +64 -0
  266. package/dist/tag-manager-3Q55PBEW.js +43 -0
  267. package/dist/tags-4N5UUUN6.js +26 -0
  268. package/dist/tags-5NHIAD5A.js +20 -0
  269. package/dist/tags-UUKWSWCN.js +20 -0
  270. package/dist/tags-VK7B5DJF.js +20 -0
  271. package/dist/tags-XAHIB3WA.js +224 -0
  272. package/dist/targeting-criteria-AVARWV2G.js +113 -0
  273. package/dist/targets-6RYLQRID.js +103 -0
  274. package/dist/testimonials-6TF6BOFN.js +32 -0
  275. package/dist/themes-JZ3DPE7L.js +94 -0
  276. package/dist/top-companies-45EHRCJD.js +108 -0
  277. package/dist/translate-VHLBACCE.js +604 -0
  278. package/dist/triggers-ERQONJNO.js +142 -0
  279. package/dist/unlink-TPDO6JNF.js +67 -0
  280. package/dist/unstage-YKKQQ7LW.js +85 -0
  281. package/dist/update-43WU6X7R.js +63 -0
  282. package/dist/update-CAHLAXWO.js +98 -0
  283. package/dist/update-NGH6YADN.js +152 -0
  284. package/dist/update-SPJIHHLE.js +188 -0
  285. package/dist/upload-ACESIZIZ.js +126 -0
  286. package/dist/url-options-VNX5KYUQ.js +130 -0
  287. package/dist/url-params-MIXEDBF7.js +98 -0
  288. package/dist/validate-XJJA7ULE.js +117 -0
  289. package/dist/videos-LBXPG7WC.js +39 -0
  290. package/dist/viewer-check-7VJ3GUZX.js +80 -0
  291. package/dist/web-EWQJC2SD.js +140 -0
  292. package/dist/winning-ads-SAOJAKEQ.js +86 -0
  293. package/dist/write-commands-QPDE4GWW.js +1024 -0
  294. package/dist/write-commands-QPDE4GWW.js.map +1 -0
  295. package/dist/x-LXOJPCRF.js +47 -0
  296. package/package.json +1 -1
  297. package/dist/account-CJGLH2OL.js +0 -80
  298. package/dist/account-UTFFCFNW.js +0 -79
  299. package/dist/account-reads-SOTNVUM6.js +0 -218
  300. package/dist/account-users-FUJVP4UG.js +0 -61
  301. package/dist/account-users-FUJVP4UG.js.map +0 -1
  302. package/dist/account-writes-OE5FKALN.js +0 -66
  303. package/dist/accounts-OY4DII7M.js +0 -611
  304. package/dist/accounts-XUMRFVLY.js +0 -77
  305. package/dist/actions-KYKLFVUI.js +0 -55
  306. package/dist/activecampaign-P6RO7B2Q.js +0 -935
  307. package/dist/ad-group-writes-343HA4ZG.js +0 -170
  308. package/dist/ad-groups-YMU6ATTW.js +0 -68
  309. package/dist/ad-writes-MINKG33L.js +0 -174
  310. package/dist/add-34QTAS7S.js +0 -104
  311. package/dist/add-3IZ3Z2PX.js +0 -302
  312. package/dist/ads-JRZVJFXS.js +0 -40
  313. package/dist/ads-QOXCMKZ2.js +0 -77
  314. package/dist/advertisers-G2UUCWA7.js +0 -120
  315. package/dist/analytics-CKF7HTWT.js +0 -433
  316. package/dist/analytics-FO4EDDQW.js +0 -1976
  317. package/dist/animate-K3MJ3GW4.js +0 -480
  318. package/dist/assign-76E76PJY.js +0 -77
  319. package/dist/audience-size-IGDEX4XR.js +0 -73
  320. package/dist/audiences-4GRCVFZN.js +0 -268
  321. package/dist/audit-LPSYEY4S.js +0 -151
  322. package/dist/autocomplete-G7MSIJQL.js +0 -111
  323. package/dist/avatars-BF7VWGPH.js +0 -38
  324. package/dist/bid-pricing-EAZHVAMJ.js +0 -100
  325. package/dist/brand-WQI4NV3H.js +0 -22
  326. package/dist/brief-DVFCPBR3.js +0 -538
  327. package/dist/campaign-groups-LCTAUXTU.js +0 -96
  328. package/dist/campaign-groups-LCTAUXTU.js.map +0 -1
  329. package/dist/campaign-writes-ECPSPFAB.js +0 -165
  330. package/dist/campaign-writes-EZEJNO3O.js +0 -170
  331. package/dist/campaigns-7S35PC44.js +0 -76
  332. package/dist/campaigns-MVLKQWX2.js +0 -110
  333. package/dist/campaigns-MVLKQWX2.js.map +0 -1
  334. package/dist/campaigns-R3EUC5Y2.js +0 -107
  335. package/dist/canvas-Y3DKVETP.js +0 -46
  336. package/dist/capabilities-OBP5PDRK.js +0 -144
  337. package/dist/catalog-SZS2JCLN.js +0 -65
  338. package/dist/catalogs-LEABW6AS.js +0 -128
  339. package/dist/changes-4EDY3RNX.js +0 -135
  340. package/dist/chatgpt-JOAEGWCB.js +0 -47
  341. package/dist/chats-KE7FNWKF.js +0 -276
  342. package/dist/check-XHK2HVD2.js +0 -104
  343. package/dist/chunk-22HH46DF.js +0 -122
  344. package/dist/chunk-2VWWLUDJ.js +0 -23
  345. package/dist/chunk-2WBRRYSS.js +0 -197
  346. package/dist/chunk-2XH7GKCO.js +0 -156
  347. package/dist/chunk-3LMAPV6P.js +0 -942
  348. package/dist/chunk-3LZM5MWM.js +0 -57
  349. package/dist/chunk-4ARHIC23.js +0 -392
  350. package/dist/chunk-5KEQXSCN.js +0 -1919
  351. package/dist/chunk-5PMEMWKS.js +0 -665
  352. package/dist/chunk-64BRPYJD.js +0 -225
  353. package/dist/chunk-6DQDZIBL.js +0 -363
  354. package/dist/chunk-6H64SENZ.js +0 -285
  355. package/dist/chunk-6KGLAMPV.js +0 -167
  356. package/dist/chunk-6OIKNJ7G.js +0 -26
  357. package/dist/chunk-6VIHWBOD.js +0 -1606
  358. package/dist/chunk-74BP3JIV.js +0 -275
  359. package/dist/chunk-7AWSJ6Z5.js +0 -66
  360. package/dist/chunk-7IVY55AU.js +0 -903
  361. package/dist/chunk-7POQSUPH.js +0 -455
  362. package/dist/chunk-7RCNWRKK.js +0 -206
  363. package/dist/chunk-ABEIEHOV.js +0 -131
  364. package/dist/chunk-AREUZGX7.js +0 -344
  365. package/dist/chunk-CNFFNE4L.js +0 -274
  366. package/dist/chunk-CORXHFKY.js +0 -433
  367. package/dist/chunk-D3SHD4KA.js +0 -399
  368. package/dist/chunk-DD3C6TSW.js +0 -61
  369. package/dist/chunk-DQU2GVU7.js +0 -51
  370. package/dist/chunk-ECHVJII5.js +0 -97
  371. package/dist/chunk-EFWXYUSK.js +0 -139
  372. package/dist/chunk-F3CZFUXZ.js +0 -3187
  373. package/dist/chunk-F3CZFUXZ.js.map +0 -1
  374. package/dist/chunk-F4KWLFCC.js +0 -103
  375. package/dist/chunk-FL2KIDPV.js +0 -494
  376. package/dist/chunk-FT7RYWOL.js +0 -160
  377. package/dist/chunk-HPIKZPTU.js +0 -297
  378. package/dist/chunk-HUPHZ35H.js +0 -547
  379. package/dist/chunk-JGM4WGC2.js +0 -6704
  380. package/dist/chunk-JGM4WGC2.js.map +0 -1
  381. package/dist/chunk-JMW3AVN7.js +0 -346
  382. package/dist/chunk-JMW3AVN7.js.map +0 -1
  383. package/dist/chunk-JQHLF74O.js +0 -8939
  384. package/dist/chunk-K2TOE6XL.js +0 -142
  385. package/dist/chunk-KI6TENTW.js +0 -5368
  386. package/dist/chunk-LMYCLUY2.js +0 -8914
  387. package/dist/chunk-LQR4CKYW.js +0 -191
  388. package/dist/chunk-LRFNUCHV.js +0 -89
  389. package/dist/chunk-M2D7ZWEU.js +0 -150
  390. package/dist/chunk-ML7GGHTU.js +0 -592
  391. package/dist/chunk-MMUGSEF4.js +0 -23992
  392. package/dist/chunk-MMUGSEF4.js.map +0 -1
  393. package/dist/chunk-MYSLMKTG.js +0 -604
  394. package/dist/chunk-NAA4CKZZ.js +0 -4249
  395. package/dist/chunk-NAA4CKZZ.js.map +0 -1
  396. package/dist/chunk-NDKLPDZ3.js +0 -1079
  397. package/dist/chunk-OUQSDUVI.js +0 -831
  398. package/dist/chunk-PFPUPR3H.js +0 -91
  399. package/dist/chunk-PGD7USOH.js +0 -207
  400. package/dist/chunk-QKT7W5JP.js +0 -98
  401. package/dist/chunk-QU4XX5Z7.js +0 -169
  402. package/dist/chunk-R3OXH3ML.js +0 -148
  403. package/dist/chunk-RNQMXS7G.js +0 -172
  404. package/dist/chunk-SEMNRIOR.js +0 -19
  405. package/dist/chunk-SHBFBQYT.js +0 -846
  406. package/dist/chunk-SIKCVWM3.js +0 -76
  407. package/dist/chunk-UJPURLUZ.js +0 -3868
  408. package/dist/chunk-UM7NJIOU.js +0 -64
  409. package/dist/chunk-V57TZQPI.js +0 -228
  410. package/dist/chunk-WXKSUL4U.js +0 -224
  411. package/dist/chunk-YJRZVGES.js +0 -1518
  412. package/dist/chunk-YQICNXIA.js +0 -249
  413. package/dist/chunk-YTF2MI3E.js +0 -627
  414. package/dist/chunk-YYPWVQZQ.js +0 -843
  415. package/dist/chunk-Z7BQGWKG.js +0 -46
  416. package/dist/chunk-ZXSXRSFX.js +0 -159
  417. package/dist/claim-W2ZV4SH3.js +0 -197
  418. package/dist/companies-ITK3W3H6.js +0 -195
  419. package/dist/complete-RYEVEF3S.js +0 -81
  420. package/dist/connect-FFFNSJ2O.js +0 -42
  421. package/dist/conversation-KKJNQRFB.js +0 -93
  422. package/dist/conversion-report-PLQ4MVJR.js +0 -125
  423. package/dist/conversion-upload-command-Z7F6NQH4.js +0 -438
  424. package/dist/conversion-writes-VNOXZ4NR.js +0 -120
  425. package/dist/conversions-KHAXFD3Z.js +0 -137
  426. package/dist/conversions-KHAXFD3Z.js.map +0 -1
  427. package/dist/conversions-KPIFDO2R.js +0 -76
  428. package/dist/create-3R6Q2E2M.js +0 -59
  429. package/dist/create-A3R7YRT3.js +0 -235
  430. package/dist/create-TYWQP57A.js +0 -207
  431. package/dist/create-UUEWQUPT.js +0 -132
  432. package/dist/creatives-EEDDL3VG.js +0 -220
  433. package/dist/creatives-EEDDL3VG.js.map +0 -1
  434. package/dist/creatives-UK4VITNW.js +0 -58
  435. package/dist/credentials-A65GYH4D.js +0 -287
  436. package/dist/critique-46O4VVPM.js +0 -1458
  437. package/dist/critique-RPRMG2ZC.js +0 -227
  438. package/dist/crm-2WYW3D22.js +0 -224
  439. package/dist/crm-PQ24MNIU.js +0 -318
  440. package/dist/currency-Q3HCK447.js +0 -88
  441. package/dist/customers-YTQ7IQ5C.js +0 -56
  442. package/dist/delete-BBISJTFG.js +0 -54
  443. package/dist/delete-PQ4NUNLX.js +0 -66
  444. package/dist/delete-TBW6TJ6A.js +0 -64
  445. package/dist/demographics-EVP55FT3.js +0 -138
  446. package/dist/discard-LPJA4DEY.js +0 -66
  447. package/dist/discover-3G6CE7X3.js +0 -172
  448. package/dist/domain-5MM7V7JD.js +0 -98
  449. package/dist/draft-34D5MOKA.js +0 -217
  450. package/dist/draft-A6M562M4.js +0 -307
  451. package/dist/draft-A6M562M4.js.map +0 -1
  452. package/dist/draft-EGS7UFF3.js +0 -281
  453. package/dist/draft-J6GJXZRX.js +0 -307
  454. package/dist/draft-K3O7Q3A5.js +0 -332
  455. package/dist/experiment-7RJ5X2LL.js +0 -1397
  456. package/dist/experiments-HERTVBYK.js +0 -233
  457. package/dist/experiments-HERTVBYK.js.map +0 -1
  458. package/dist/facets-RUZKALF3.js +0 -114
  459. package/dist/feedback-S5LHJYZD.js +0 -106
  460. package/dist/feedback-record-GAM2R5GG.js +0 -260
  461. package/dist/fetch-FA6TR66Y.js +0 -176
  462. package/dist/find-2EPXK5RF.js +0 -134
  463. package/dist/fit-MOMO4AXL.js +0 -62
  464. package/dist/flows-DMMCSBWY.js +0 -247
  465. package/dist/fonts-G4JLXWX2.js +0 -36
  466. package/dist/forecast-OOP4K5DE.js +0 -118
  467. package/dist/forecast-V65WS5QG.js +0 -168
  468. package/dist/funnel-SEQPUM3X.js +0 -394
  469. package/dist/ga4-6EIQC2TG.js +0 -55
  470. package/dist/generate-IDDQD5FU.js +0 -263
  471. package/dist/get-DEOZMGOQ.js +0 -56
  472. package/dist/get-SEJINVOS.js +0 -79
  473. package/dist/google-7L3FWKPJ.js +0 -3265
  474. package/dist/google-O5OI6QFU.js +0 -136
  475. package/dist/google-ads-MIGWMCWY.js +0 -195
  476. package/dist/gsc-BM3T2GDL.js +0 -30
  477. package/dist/history-IBWXCDCB.js +0 -133
  478. package/dist/history-Z5577FPQ.js +0 -67
  479. package/dist/hubspot-6AZKUX72.js +0 -779
  480. package/dist/icon-B7DG53S5.js +0 -137
  481. package/dist/ideas-AX7S3NCG.js +0 -40
  482. package/dist/images-632SXTB5.js +0 -92
  483. package/dist/ingest-HS55RVKH.js +0 -23
  484. package/dist/ingest-T3OK3DRG.js +0 -107
  485. package/dist/insights-UDX66IMV.js +0 -122
  486. package/dist/inspect-D6ZIUBH3.js +0 -189
  487. package/dist/inspiration-TCCKM4R7.js +0 -53
  488. package/dist/intent-3WTKKTUX.js +0 -95
  489. package/dist/keyword-gap-7GESZXY2.js +0 -130
  490. package/dist/keyword-metrics-J43MV3RQ.js +0 -197
  491. package/dist/keywords-for-site-6YKCTFJZ.js +0 -128
  492. package/dist/landing-Y7DI2FUT.js +0 -28
  493. package/dist/languages-LSKNZI2A.js +0 -40
  494. package/dist/leads-R3WBKADF.js +0 -112
  495. package/dist/leads-R3WBKADF.js.map +0 -1
  496. package/dist/learn-M4UHA476.js +0 -204
  497. package/dist/line-item-writes-F2OPBMIE.js +0 -208
  498. package/dist/line-items-YJ3DLV2U.js +0 -103
  499. package/dist/link-RZKYW22K.js +0 -64
  500. package/dist/linkedin-JYZOPU7A.js +0 -1299
  501. package/dist/linkedin-JYZOPU7A.js.map +0 -1
  502. package/dist/list-NPJ34244.js +0 -151
  503. package/dist/list-WTVBOTA4.js +0 -64
  504. package/dist/list-XK5CHKYJ.js +0 -303
  505. package/dist/locations-DSDCNP5Z.js +0 -40
  506. package/dist/locations-SFZN4MYW.js +0 -67
  507. package/dist/log-K4FWHXIM.js +0 -92
  508. package/dist/logo-QTSBKP2J.js +0 -18
  509. package/dist/make-VQDUKVPB.js +0 -1353
  510. package/dist/map-Z3MEM6QX.js +0 -433
  511. package/dist/mcp-KJOSR534.js +0 -714
  512. package/dist/media-sources-44HTWIY3.js +0 -32
  513. package/dist/members-HGU22NL3.js +0 -44
  514. package/dist/metrics-OV2EKPJ6.js +0 -152
  515. package/dist/models-NGAUD6QJ.js +0 -155
  516. package/dist/normalize-IUPOHEZJ.js +0 -141
  517. package/dist/options-TL5TPGHK.js +0 -122
  518. package/dist/organization-3ORT4474.js +0 -946
  519. package/dist/performance-PCZHQCZ5.js +0 -24
  520. package/dist/pixels-GHEAK62X.js +0 -60
  521. package/dist/promoted-tweet-writes-O4RTZFSI.js +0 -180
  522. package/dist/promoted-tweets-AWP6MGJI.js +0 -119
  523. package/dist/publish-PODZKJHW.js +0 -341
  524. package/dist/query-FUSR27T4.js +0 -61
  525. package/dist/reddit-UNUNWSNR.js +0 -26
  526. package/dist/refresh-34UO2LXY.js +0 -94
  527. package/dist/release-BD3EAD75.js +0 -60
  528. package/dist/relevant-pages-FNKYR2OG.js +0 -99
  529. package/dist/remove-YQYSQCWI.js +0 -50
  530. package/dist/reopen-MULNJOR5.js +0 -63
  531. package/dist/rerun-6YGYJPM7.js +0 -90
  532. package/dist/research-6WEL3USW.js +0 -62
  533. package/dist/research-OBECRSPL.js +0 -262
  534. package/dist/reset-5TTLZ43U.js +0 -54
  535. package/dist/reset-PRTK6YUD.js +0 -54
  536. package/dist/resolve-6RM63T55.js +0 -121
  537. package/dist/retry-XYTVP7BV.js +0 -60
  538. package/dist/retry-Z3C624JW.js +0 -62
  539. package/dist/revenue-VSH6KXCV.js +0 -88
  540. package/dist/revenue-VSH6KXCV.js.map +0 -1
  541. package/dist/rules-AUAJUM2T.js +0 -96
  542. package/dist/rules-add-7VFGPGZ7.js +0 -462
  543. package/dist/run-S3SVCTIB.js +0 -65
  544. package/dist/run-YA5RCRIX.js +0 -66
  545. package/dist/scaffold-ad-2KQULVJU.js +0 -1511
  546. package/dist/scaffold-static-ad-S46QADGV.js +0 -1005
  547. package/dist/scaffold-video-ZMHI2JDU.js +0 -883
  548. package/dist/schedule-FT6P3EKG.js +0 -61
  549. package/dist/scheduled-agents-L7K4QWMD.js +0 -50
  550. package/dist/schema-CH654RZB.js +0 -132
  551. package/dist/search-YKYB2P2M.js +0 -174
  552. package/dist/select-PM7JUDQY.js +0 -101
  553. package/dist/set-prompt-VATAT7H6.js +0 -193
  554. package/dist/setup-links-TM3NCVU7.js +0 -141
  555. package/dist/site-ATAXCWXS.js +0 -177
  556. package/dist/sources-N5RKYKFS.js +0 -30
  557. package/dist/sources-V544MB26.js +0 -454
  558. package/dist/stale-RNEYXKFX.js +0 -71
  559. package/dist/stats-CVF6AC7R.js +0 -34
  560. package/dist/status-DPTFOJVV.js +0 -62
  561. package/dist/stock-4LPQ6SM7.js +0 -179
  562. package/dist/studio-NZ3NA4L4.js +0 -49
  563. package/dist/sync-UBLCCOQZ.js +0 -54
  564. package/dist/sync-definition-RXRSI2LT.js +0 -64
  565. package/dist/tag-manager-FLXXLNKP.js +0 -43
  566. package/dist/tags-2D4AN2QB.js +0 -224
  567. package/dist/tags-5OM2VN3Q.js +0 -26
  568. package/dist/tags-CJWSUBCD.js +0 -20
  569. package/dist/tags-MHKZW2JN.js +0 -20
  570. package/dist/tags-Z6AH7FDT.js +0 -20
  571. package/dist/targeting-criteria-RSAN4KW5.js +0 -113
  572. package/dist/targets-EER2G4WH.js +0 -103
  573. package/dist/testimonials-4WJKAZ5S.js +0 -32
  574. package/dist/themes-XUALHDHR.js +0 -94
  575. package/dist/top-companies-BSOYGMIB.js +0 -108
  576. package/dist/translate-2XRHDWSC.js +0 -604
  577. package/dist/triggers-NU6BQ5NJ.js +0 -142
  578. package/dist/unlink-LQGPZND2.js +0 -67
  579. package/dist/unstage-GDKW56MH.js +0 -85
  580. package/dist/update-43QN723C.js +0 -63
  581. package/dist/update-6CAZKFTC.js +0 -188
  582. package/dist/update-EGOWYBEH.js +0 -152
  583. package/dist/update-QRGEMNBY.js +0 -98
  584. package/dist/upload-LIHRXWUY.js +0 -126
  585. package/dist/url-options-JXL4W7TB.js +0 -130
  586. package/dist/url-params-YXRZ4TUD.js +0 -98
  587. package/dist/validate-KO3MEJUZ.js +0 -117
  588. package/dist/videos-BPJ34YZL.js +0 -39
  589. package/dist/viewer-check-SA5AUQ26.js +0 -80
  590. package/dist/web-KS47ZHXX.js +0 -140
  591. package/dist/winning-ads-LE2ALICG.js +0 -86
  592. package/dist/write-commands-PPR7G4UN.js +0 -1453
  593. package/dist/write-commands-PPR7G4UN.js.map +0 -1
  594. package/dist/x-DZGRJQ7Y.js +0 -47
  595. /package/dist/{account-CJGLH2OL.js.map → account-EF6OPUJT.js.map} +0 -0
  596. /package/dist/{account-UTFFCFNW.js.map → account-UHNR5KTE.js.map} +0 -0
  597. /package/dist/{account-reads-SOTNVUM6.js.map → account-reads-CDZ3EL5D.js.map} +0 -0
  598. /package/dist/{account-writes-OE5FKALN.js.map → account-writes-VWU4FRGQ.js.map} +0 -0
  599. /package/dist/{accounts-XUMRFVLY.js.map → accounts-KMLXHADA.js.map} +0 -0
  600. /package/dist/{accounts-OY4DII7M.js.map → accounts-QDGNTSTV.js.map} +0 -0
  601. /package/dist/{actions-KYKLFVUI.js.map → actions-QL5UD2W4.js.map} +0 -0
  602. /package/dist/{activecampaign-P6RO7B2Q.js.map → activecampaign-5OD45ROS.js.map} +0 -0
  603. /package/dist/{ad-group-writes-343HA4ZG.js.map → ad-group-writes-ID6I3QUZ.js.map} +0 -0
  604. /package/dist/{ad-groups-YMU6ATTW.js.map → ad-groups-M7CV6NTH.js.map} +0 -0
  605. /package/dist/{ad-writes-MINKG33L.js.map → ad-writes-TSOAZYRE.js.map} +0 -0
  606. /package/dist/{add-34QTAS7S.js.map → add-6K6LO7CM.js.map} +0 -0
  607. /package/dist/{add-3IZ3Z2PX.js.map → add-LYDJZDGO.js.map} +0 -0
  608. /package/dist/{ads-QOXCMKZ2.js.map → ads-CGLO73MH.js.map} +0 -0
  609. /package/dist/{ads-JRZVJFXS.js.map → ads-DHPJFU52.js.map} +0 -0
  610. /package/dist/{advertisers-G2UUCWA7.js.map → advertisers-23LU7GTV.js.map} +0 -0
  611. /package/dist/{analytics-FO4EDDQW.js.map → analytics-DVD4OBBR.js.map} +0 -0
  612. /package/dist/{analytics-CKF7HTWT.js.map → analytics-HO2SLL4W.js.map} +0 -0
  613. /package/dist/{animate-K3MJ3GW4.js.map → animate-RGZWDZG2.js.map} +0 -0
  614. /package/dist/{assign-76E76PJY.js.map → assign-CLKJKH2B.js.map} +0 -0
  615. /package/dist/{audience-size-IGDEX4XR.js.map → audience-size-NNYYXODL.js.map} +0 -0
  616. /package/dist/{audiences-4GRCVFZN.js.map → audiences-WXIP5PJH.js.map} +0 -0
  617. /package/dist/{audit-LPSYEY4S.js.map → audit-KB4P2XGS.js.map} +0 -0
  618. /package/dist/{autocomplete-G7MSIJQL.js.map → autocomplete-VZD2SMTE.js.map} +0 -0
  619. /package/dist/{avatars-BF7VWGPH.js.map → avatars-FKOO6VZ2.js.map} +0 -0
  620. /package/dist/{bid-pricing-EAZHVAMJ.js.map → bid-pricing-6LLXOLLI.js.map} +0 -0
  621. /package/dist/{brand-WQI4NV3H.js.map → brand-NNWHBIAX.js.map} +0 -0
  622. /package/dist/{brief-DVFCPBR3.js.map → brief-CPJQWT6W.js.map} +0 -0
  623. /package/dist/{campaign-writes-ECPSPFAB.js.map → campaign-writes-UJ4L2O6G.js.map} +0 -0
  624. /package/dist/{campaign-writes-EZEJNO3O.js.map → campaign-writes-W5IL6ZGB.js.map} +0 -0
  625. /package/dist/{campaigns-7S35PC44.js.map → campaigns-FLTPD66X.js.map} +0 -0
  626. /package/dist/{campaigns-R3EUC5Y2.js.map → campaigns-HLBZRH5A.js.map} +0 -0
  627. /package/dist/{canvas-Y3DKVETP.js.map → canvas-D64GLWUO.js.map} +0 -0
  628. /package/dist/{capabilities-OBP5PDRK.js.map → capabilities-LWXCWMIY.js.map} +0 -0
  629. /package/dist/{catalog-SZS2JCLN.js.map → catalog-ZDLQAODO.js.map} +0 -0
  630. /package/dist/{catalogs-LEABW6AS.js.map → catalogs-26VXVUST.js.map} +0 -0
  631. /package/dist/{changes-4EDY3RNX.js.map → changes-SX2N5KIO.js.map} +0 -0
  632. /package/dist/{chatgpt-JOAEGWCB.js.map → chatgpt-YI6YNACI.js.map} +0 -0
  633. /package/dist/{chats-KE7FNWKF.js.map → chats-7WGC2CVW.js.map} +0 -0
  634. /package/dist/{check-XHK2HVD2.js.map → check-EH6BXWWL.js.map} +0 -0
  635. /package/dist/{chunk-QU4XX5Z7.js.map → chunk-2B772ZEA.js.map} +0 -0
  636. /package/dist/{chunk-DQU2GVU7.js.map → chunk-2KRK667G.js.map} +0 -0
  637. /package/dist/{chunk-F4KWLFCC.js.map → chunk-2TVXJPGR.js.map} +0 -0
  638. /package/dist/{chunk-4ARHIC23.js.map → chunk-3AMLOCXY.js.map} +0 -0
  639. /package/dist/{chunk-22HH46DF.js.map → chunk-3N5A44NQ.js.map} +0 -0
  640. /package/dist/{chunk-ABEIEHOV.js.map → chunk-3S274625.js.map} +0 -0
  641. /package/dist/{chunk-DD3C6TSW.js.map → chunk-3WAYZQNV.js.map} +0 -0
  642. /package/dist/{chunk-FT7RYWOL.js.map → chunk-5A257KJA.js.map} +0 -0
  643. /package/dist/{chunk-6DQDZIBL.js.map → chunk-6QGS3RQP.js.map} +0 -0
  644. /package/dist/{chunk-YJRZVGES.js.map → chunk-7KHTJQGV.js.map} +0 -0
  645. /package/dist/{chunk-6VIHWBOD.js.map → chunk-A3DKSAEL.js.map} +0 -0
  646. /package/dist/{chunk-5PMEMWKS.js.map → chunk-A4DZ5L3T.js.map} +0 -0
  647. /package/dist/{chunk-FL2KIDPV.js.map → chunk-AFD32O4A.js.map} +0 -0
  648. /package/dist/{chunk-CORXHFKY.js.map → chunk-AW2GKIGS.js.map} +0 -0
  649. /package/dist/{chunk-LMYCLUY2.js.map → chunk-B7GF34FU.js.map} +0 -0
  650. /package/dist/{chunk-M2D7ZWEU.js.map → chunk-BDYLILMW.js.map} +0 -0
  651. /package/dist/{chunk-6H64SENZ.js.map → chunk-EJ4QCMM6.js.map} +0 -0
  652. /package/dist/{chunk-3LMAPV6P.js.map → chunk-EMQUW6JB.js.map} +0 -0
  653. /package/dist/{chunk-EFWXYUSK.js.map → chunk-EW3JEKIV.js.map} +0 -0
  654. /package/dist/{chunk-CNFFNE4L.js.map → chunk-F377KYIM.js.map} +0 -0
  655. /package/dist/{chunk-SEMNRIOR.js.map → chunk-FBFWMTOP.js.map} +0 -0
  656. /package/dist/{chunk-QKT7W5JP.js.map → chunk-FCM6VPFP.js.map} +0 -0
  657. /package/dist/{chunk-5KEQXSCN.js.map → chunk-FKYPAGKK.js.map} +0 -0
  658. /package/dist/{chunk-JQHLF74O.js.map → chunk-GXGYTFZA.js.map} +0 -0
  659. /package/dist/{chunk-K2TOE6XL.js.map → chunk-I7J7YQXZ.js.map} +0 -0
  660. /package/dist/{chunk-NDKLPDZ3.js.map → chunk-IBY44U2M.js.map} +0 -0
  661. /package/dist/{chunk-HPIKZPTU.js.map → chunk-IFXGCI33.js.map} +0 -0
  662. /package/dist/{chunk-PFPUPR3H.js.map → chunk-IKLHXGMF.js.map} +0 -0
  663. /package/dist/{chunk-MYSLMKTG.js.map → chunk-IYTPWAN3.js.map} +0 -0
  664. /package/dist/{chunk-UJPURLUZ.js.map → chunk-J3CWAERS.js.map} +0 -0
  665. /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
  666. /package/dist/{chunk-7RCNWRKK.js.map → chunk-JH2L5CQD.js.map} +0 -0
  667. /package/dist/{chunk-ECHVJII5.js.map → chunk-JUVVCA7B.js.map} +0 -0
  668. /package/dist/{chunk-2WBRRYSS.js.map → chunk-MK6XJUCQ.js.map} +0 -0
  669. /package/dist/{chunk-R3OXH3ML.js.map → chunk-MOFMOYUA.js.map} +0 -0
  670. /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
  671. /package/dist/{chunk-7AWSJ6Z5.js.map → chunk-N3I6ZXR7.js.map} +0 -0
  672. /package/dist/{chunk-ML7GGHTU.js.map → chunk-NBO2NSAW.js.map} +0 -0
  673. /package/dist/{chunk-YQICNXIA.js.map → chunk-NEU5QD2C.js.map} +0 -0
  674. /package/dist/{chunk-AREUZGX7.js.map → chunk-NKIBXOHT.js.map} +0 -0
  675. /package/dist/{chunk-SHBFBQYT.js.map → chunk-NZKBW4YB.js.map} +0 -0
  676. /package/dist/{chunk-HUPHZ35H.js.map → chunk-OE3MIV4F.js.map} +0 -0
  677. /package/dist/{chunk-KI6TENTW.js.map → chunk-OL7JS4NG.js.map} +0 -0
  678. /package/dist/{chunk-7IVY55AU.js.map → chunk-P2MFWJR3.js.map} +0 -0
  679. /package/dist/{chunk-LRFNUCHV.js.map → chunk-PHCIFBP3.js.map} +0 -0
  680. /package/dist/{chunk-WXKSUL4U.js.map → chunk-PTUXBO5O.js.map} +0 -0
  681. /package/dist/{chunk-74BP3JIV.js.map → chunk-Q3LXLWZY.js.map} +0 -0
  682. /package/dist/{chunk-7POQSUPH.js.map → chunk-Q5WBTVA7.js.map} +0 -0
  683. /package/dist/{chunk-Z7BQGWKG.js.map → chunk-QMOYQJIN.js.map} +0 -0
  684. /package/dist/{chunk-6KGLAMPV.js.map → chunk-QRLTVJ6F.js.map} +0 -0
  685. /package/dist/{chunk-D3SHD4KA.js.map → chunk-RDEAVCMF.js.map} +0 -0
  686. /package/dist/{chunk-2VWWLUDJ.js.map → chunk-RGMKXNQP.js.map} +0 -0
  687. /package/dist/{chunk-UM7NJIOU.js.map → chunk-RJZS4XDJ.js.map} +0 -0
  688. /package/dist/{chunk-OUQSDUVI.js.map → chunk-RZTKCCUL.js.map} +0 -0
  689. /package/dist/{chunk-YYPWVQZQ.js.map → chunk-S4VLLGTW.js.map} +0 -0
  690. /package/dist/{chunk-V57TZQPI.js.map → chunk-SVM3DGAQ.js.map} +0 -0
  691. /package/dist/{chunk-2XH7GKCO.js.map → chunk-TTKBNBQF.js.map} +0 -0
  692. /package/dist/{chunk-PGD7USOH.js.map → chunk-VB3XUR6A.js.map} +0 -0
  693. /package/dist/{chunk-3LZM5MWM.js.map → chunk-XCKINS7K.js.map} +0 -0
  694. /package/dist/{chunk-YTF2MI3E.js.map → chunk-Y46FE75E.js.map} +0 -0
  695. /package/dist/{chunk-ZXSXRSFX.js.map → chunk-Z2GQREJY.js.map} +0 -0
  696. /package/dist/{chunk-64BRPYJD.js.map → chunk-ZA7OQLDJ.js.map} +0 -0
  697. /package/dist/{chunk-RNQMXS7G.js.map → chunk-ZDAVSTEE.js.map} +0 -0
  698. /package/dist/{chunk-LQR4CKYW.js.map → chunk-ZXCSOVS5.js.map} +0 -0
  699. /package/dist/{claim-W2ZV4SH3.js.map → claim-SVDCQ2AI.js.map} +0 -0
  700. /package/dist/{companies-ITK3W3H6.js.map → companies-BYMYQK6A.js.map} +0 -0
  701. /package/dist/{complete-RYEVEF3S.js.map → complete-NEH3MWRI.js.map} +0 -0
  702. /package/dist/{connect-FFFNSJ2O.js.map → connect-5PGL7ZOM.js.map} +0 -0
  703. /package/dist/{conversation-KKJNQRFB.js.map → conversation-CSOKJXDW.js.map} +0 -0
  704. /package/dist/{conversion-report-PLQ4MVJR.js.map → conversion-report-7JJ5L6WH.js.map} +0 -0
  705. /package/dist/{conversion-upload-command-Z7F6NQH4.js.map → conversion-upload-command-UO2QWG3J.js.map} +0 -0
  706. /package/dist/{conversion-writes-VNOXZ4NR.js.map → conversion-writes-GIGAZT4T.js.map} +0 -0
  707. /package/dist/{conversions-KPIFDO2R.js.map → conversions-CIJZLGII.js.map} +0 -0
  708. /package/dist/{create-TYWQP57A.js.map → create-2XYMBULY.js.map} +0 -0
  709. /package/dist/{create-A3R7YRT3.js.map → create-56PTZABQ.js.map} +0 -0
  710. /package/dist/{create-3R6Q2E2M.js.map → create-D6S6TGWY.js.map} +0 -0
  711. /package/dist/{create-UUEWQUPT.js.map → create-SMW4O5PC.js.map} +0 -0
  712. /package/dist/{creatives-UK4VITNW.js.map → creatives-OO76DAFS.js.map} +0 -0
  713. /package/dist/{credentials-A65GYH4D.js.map → credentials-2ONYUJW6.js.map} +0 -0
  714. /package/dist/{critique-46O4VVPM.js.map → critique-NDDFSGPE.js.map} +0 -0
  715. /package/dist/{critique-RPRMG2ZC.js.map → critique-YXZVMLZ4.js.map} +0 -0
  716. /package/dist/{crm-2WYW3D22.js.map → crm-Q6CEP5XV.js.map} +0 -0
  717. /package/dist/{crm-PQ24MNIU.js.map → crm-WRONZYDH.js.map} +0 -0
  718. /package/dist/{currency-Q3HCK447.js.map → currency-TAEJVMVK.js.map} +0 -0
  719. /package/dist/{customers-YTQ7IQ5C.js.map → customers-2EFYSCU2.js.map} +0 -0
  720. /package/dist/{delete-PQ4NUNLX.js.map → delete-7WEVC3FS.js.map} +0 -0
  721. /package/dist/{delete-BBISJTFG.js.map → delete-RBWK255M.js.map} +0 -0
  722. /package/dist/{delete-TBW6TJ6A.js.map → delete-VN4WWMQF.js.map} +0 -0
  723. /package/dist/{demographics-EVP55FT3.js.map → demographics-I5XZ435C.js.map} +0 -0
  724. /package/dist/{discard-LPJA4DEY.js.map → discard-XJLIXTNM.js.map} +0 -0
  725. /package/dist/{discover-3G6CE7X3.js.map → discover-5Z253HXF.js.map} +0 -0
  726. /package/dist/{domain-5MM7V7JD.js.map → domain-M7AEGAYI.js.map} +0 -0
  727. /package/dist/{draft-EGS7UFF3.js.map → draft-7DWRFCXW.js.map} +0 -0
  728. /package/dist/{draft-K3O7Q3A5.js.map → draft-7IIYHSY2.js.map} +0 -0
  729. /package/dist/{draft-34D5MOKA.js.map → draft-CN6GKVBF.js.map} +0 -0
  730. /package/dist/{draft-J6GJXZRX.js.map → draft-MNEM4N5W.js.map} +0 -0
  731. /package/dist/{experiment-7RJ5X2LL.js.map → experiment-IDDWRCJ7.js.map} +0 -0
  732. /package/dist/{facets-RUZKALF3.js.map → facets-ZLZ6LIHN.js.map} +0 -0
  733. /package/dist/{feedback-S5LHJYZD.js.map → feedback-7LEX2P5Q.js.map} +0 -0
  734. /package/dist/{feedback-record-GAM2R5GG.js.map → feedback-record-P4JJ63KA.js.map} +0 -0
  735. /package/dist/{fetch-FA6TR66Y.js.map → fetch-MIVCEHXZ.js.map} +0 -0
  736. /package/dist/{find-2EPXK5RF.js.map → find-VHN34MWL.js.map} +0 -0
  737. /package/dist/{fit-MOMO4AXL.js.map → fit-SS6HSZPU.js.map} +0 -0
  738. /package/dist/{flows-DMMCSBWY.js.map → flows-UTIIHDNE.js.map} +0 -0
  739. /package/dist/{fonts-G4JLXWX2.js.map → fonts-YPNN7ZJP.js.map} +0 -0
  740. /package/dist/{forecast-OOP4K5DE.js.map → forecast-OBSHG2GJ.js.map} +0 -0
  741. /package/dist/{forecast-V65WS5QG.js.map → forecast-W7Z5TVQX.js.map} +0 -0
  742. /package/dist/{funnel-SEQPUM3X.js.map → funnel-Z2VLXUEQ.js.map} +0 -0
  743. /package/dist/{ga4-6EIQC2TG.js.map → ga4-ZPAEF2G2.js.map} +0 -0
  744. /package/dist/{generate-IDDQD5FU.js.map → generate-Y76WU7M7.js.map} +0 -0
  745. /package/dist/{get-DEOZMGOQ.js.map → get-MDAO6I7T.js.map} +0 -0
  746. /package/dist/{get-SEJINVOS.js.map → get-ZB553BSH.js.map} +0 -0
  747. /package/dist/{google-O5OI6QFU.js.map → google-C3X7O2UO.js.map} +0 -0
  748. /package/dist/{google-7L3FWKPJ.js.map → google-WYXDMH2N.js.map} +0 -0
  749. /package/dist/{google-ads-MIGWMCWY.js.map → google-ads-FTWL772L.js.map} +0 -0
  750. /package/dist/{gsc-BM3T2GDL.js.map → gsc-SDDHGTZK.js.map} +0 -0
  751. /package/dist/{history-Z5577FPQ.js.map → history-DGHMJ2XF.js.map} +0 -0
  752. /package/dist/{history-IBWXCDCB.js.map → history-WKJYKDMG.js.map} +0 -0
  753. /package/dist/{hubspot-6AZKUX72.js.map → hubspot-EPHVEPOO.js.map} +0 -0
  754. /package/dist/{icon-B7DG53S5.js.map → icon-MYPDC6FM.js.map} +0 -0
  755. /package/dist/{ideas-AX7S3NCG.js.map → ideas-3PBH7VEX.js.map} +0 -0
  756. /package/dist/{images-632SXTB5.js.map → images-J35C3WG4.js.map} +0 -0
  757. /package/dist/{ingest-T3OK3DRG.js.map → ingest-5QOPUKFE.js.map} +0 -0
  758. /package/dist/{ingest-HS55RVKH.js.map → ingest-OKUYP632.js.map} +0 -0
  759. /package/dist/{insights-UDX66IMV.js.map → insights-EU45J56U.js.map} +0 -0
  760. /package/dist/{inspect-D6ZIUBH3.js.map → inspect-PMNCP6MV.js.map} +0 -0
  761. /package/dist/{inspiration-TCCKM4R7.js.map → inspiration-QAL7NS7G.js.map} +0 -0
  762. /package/dist/{intent-3WTKKTUX.js.map → intent-FUGWRUSW.js.map} +0 -0
  763. /package/dist/{keyword-gap-7GESZXY2.js.map → keyword-gap-DXTKZLV2.js.map} +0 -0
  764. /package/dist/{keyword-metrics-J43MV3RQ.js.map → keyword-metrics-R752SJIT.js.map} +0 -0
  765. /package/dist/{keywords-for-site-6YKCTFJZ.js.map → keywords-for-site-7UWPJYQF.js.map} +0 -0
  766. /package/dist/{landing-Y7DI2FUT.js.map → landing-CBVIOGJ5.js.map} +0 -0
  767. /package/dist/{languages-LSKNZI2A.js.map → languages-XRTTEJ5P.js.map} +0 -0
  768. /package/dist/{learn-M4UHA476.js.map → learn-N6QV7GXA.js.map} +0 -0
  769. /package/dist/{line-item-writes-F2OPBMIE.js.map → line-item-writes-3WPJXKIL.js.map} +0 -0
  770. /package/dist/{line-items-YJ3DLV2U.js.map → line-items-ZOFKOGAA.js.map} +0 -0
  771. /package/dist/{link-RZKYW22K.js.map → link-DDRQKOUL.js.map} +0 -0
  772. /package/dist/{list-NPJ34244.js.map → list-5PLXVPLB.js.map} +0 -0
  773. /package/dist/{list-XK5CHKYJ.js.map → list-VSJISE7U.js.map} +0 -0
  774. /package/dist/{list-WTVBOTA4.js.map → list-WTVOBQYX.js.map} +0 -0
  775. /package/dist/{locations-DSDCNP5Z.js.map → locations-PCZPKH47.js.map} +0 -0
  776. /package/dist/{locations-SFZN4MYW.js.map → locations-TGJH3URF.js.map} +0 -0
  777. /package/dist/{log-K4FWHXIM.js.map → log-YKKPROLZ.js.map} +0 -0
  778. /package/dist/{logo-QTSBKP2J.js.map → logo-WE2UELX6.js.map} +0 -0
  779. /package/dist/{make-VQDUKVPB.js.map → make-RNOWBLZQ.js.map} +0 -0
  780. /package/dist/{map-Z3MEM6QX.js.map → map-WTDPQLVO.js.map} +0 -0
  781. /package/dist/{mcp-KJOSR534.js.map → mcp-XJNSCPP3.js.map} +0 -0
  782. /package/dist/{media-sources-44HTWIY3.js.map → media-sources-JGBDDXZ5.js.map} +0 -0
  783. /package/dist/{members-HGU22NL3.js.map → members-O3BTMRXX.js.map} +0 -0
  784. /package/dist/{metrics-OV2EKPJ6.js.map → metrics-PYPCW7FJ.js.map} +0 -0
  785. /package/dist/{models-NGAUD6QJ.js.map → models-IAGO5GIH.js.map} +0 -0
  786. /package/dist/{normalize-IUPOHEZJ.js.map → normalize-R5AYLA2J.js.map} +0 -0
  787. /package/dist/{options-TL5TPGHK.js.map → options-AILRY7JY.js.map} +0 -0
  788. /package/dist/{organization-3ORT4474.js.map → organization-KJJXZLVK.js.map} +0 -0
  789. /package/dist/{performance-PCZHQCZ5.js.map → performance-7YU4HOGH.js.map} +0 -0
  790. /package/dist/{pixels-GHEAK62X.js.map → pixels-R4MOLWAR.js.map} +0 -0
  791. /package/dist/{promoted-tweet-writes-O4RTZFSI.js.map → promoted-tweet-writes-TNELWPVG.js.map} +0 -0
  792. /package/dist/{promoted-tweets-AWP6MGJI.js.map → promoted-tweets-76WKUFJQ.js.map} +0 -0
  793. /package/dist/{publish-PODZKJHW.js.map → publish-BKLHCKHB.js.map} +0 -0
  794. /package/dist/{query-FUSR27T4.js.map → query-XDHZMGLX.js.map} +0 -0
  795. /package/dist/{reddit-UNUNWSNR.js.map → reddit-YK3YUZEI.js.map} +0 -0
  796. /package/dist/{refresh-34UO2LXY.js.map → refresh-WIII7KXB.js.map} +0 -0
  797. /package/dist/{release-BD3EAD75.js.map → release-ZHXYQI7G.js.map} +0 -0
  798. /package/dist/{relevant-pages-FNKYR2OG.js.map → relevant-pages-CTG72PBR.js.map} +0 -0
  799. /package/dist/{remove-YQYSQCWI.js.map → remove-NOX4BXWK.js.map} +0 -0
  800. /package/dist/{reopen-MULNJOR5.js.map → reopen-NLWKK5HB.js.map} +0 -0
  801. /package/dist/{rerun-6YGYJPM7.js.map → rerun-DZWQNMZQ.js.map} +0 -0
  802. /package/dist/{research-6WEL3USW.js.map → research-Q3P76RHN.js.map} +0 -0
  803. /package/dist/{research-OBECRSPL.js.map → research-UDZBCDNX.js.map} +0 -0
  804. /package/dist/{reset-5TTLZ43U.js.map → reset-5UHFX7QY.js.map} +0 -0
  805. /package/dist/{reset-PRTK6YUD.js.map → reset-MTRJQUP7.js.map} +0 -0
  806. /package/dist/{resolve-6RM63T55.js.map → resolve-DA72VT7Q.js.map} +0 -0
  807. /package/dist/{retry-Z3C624JW.js.map → retry-LQUBX5TK.js.map} +0 -0
  808. /package/dist/{retry-XYTVP7BV.js.map → retry-U6F4CS6O.js.map} +0 -0
  809. /package/dist/{rules-AUAJUM2T.js.map → rules-VS5PZ7VO.js.map} +0 -0
  810. /package/dist/{rules-add-7VFGPGZ7.js.map → rules-add-LMVZYDXE.js.map} +0 -0
  811. /package/dist/{run-S3SVCTIB.js.map → run-6PRA2YSD.js.map} +0 -0
  812. /package/dist/{run-YA5RCRIX.js.map → run-R6COFNOR.js.map} +0 -0
  813. /package/dist/{scaffold-ad-2KQULVJU.js.map → scaffold-ad-3OVJ7VZQ.js.map} +0 -0
  814. /package/dist/{scaffold-static-ad-S46QADGV.js.map → scaffold-static-ad-DDRA3Q5I.js.map} +0 -0
  815. /package/dist/{scaffold-video-ZMHI2JDU.js.map → scaffold-video-3JZYFYFU.js.map} +0 -0
  816. /package/dist/{schedule-FT6P3EKG.js.map → schedule-ED2YDUPY.js.map} +0 -0
  817. /package/dist/{scheduled-agents-L7K4QWMD.js.map → scheduled-agents-5P67MVGX.js.map} +0 -0
  818. /package/dist/{schema-CH654RZB.js.map → schema-4XVKERSA.js.map} +0 -0
  819. /package/dist/{search-YKYB2P2M.js.map → search-Y2UMIQ57.js.map} +0 -0
  820. /package/dist/{select-PM7JUDQY.js.map → select-OZ4E6VLF.js.map} +0 -0
  821. /package/dist/{set-prompt-VATAT7H6.js.map → set-prompt-O4YAE4CE.js.map} +0 -0
  822. /package/dist/{setup-links-TM3NCVU7.js.map → setup-links-2GJYCV2A.js.map} +0 -0
  823. /package/dist/{site-ATAXCWXS.js.map → site-47B6V2UX.js.map} +0 -0
  824. /package/dist/{sources-V544MB26.js.map → sources-DXPZAPQ7.js.map} +0 -0
  825. /package/dist/{sources-N5RKYKFS.js.map → sources-NDXYTASG.js.map} +0 -0
  826. /package/dist/{stale-RNEYXKFX.js.map → stale-VLVBO2L6.js.map} +0 -0
  827. /package/dist/{stats-CVF6AC7R.js.map → stats-37OFAMPW.js.map} +0 -0
  828. /package/dist/{status-DPTFOJVV.js.map → status-4ODD46XY.js.map} +0 -0
  829. /package/dist/{stock-4LPQ6SM7.js.map → stock-6R5E7MJX.js.map} +0 -0
  830. /package/dist/{studio-NZ3NA4L4.js.map → studio-LEIGL3Q7.js.map} +0 -0
  831. /package/dist/{sync-UBLCCOQZ.js.map → sync-TKNVBUDM.js.map} +0 -0
  832. /package/dist/{sync-definition-RXRSI2LT.js.map → sync-definition-M5R3H3TP.js.map} +0 -0
  833. /package/dist/{tag-manager-FLXXLNKP.js.map → tag-manager-3Q55PBEW.js.map} +0 -0
  834. /package/dist/{tags-5OM2VN3Q.js.map → tags-4N5UUUN6.js.map} +0 -0
  835. /package/dist/{tags-MHKZW2JN.js.map → tags-5NHIAD5A.js.map} +0 -0
  836. /package/dist/{tags-Z6AH7FDT.js.map → tags-UUKWSWCN.js.map} +0 -0
  837. /package/dist/{tags-CJWSUBCD.js.map → tags-VK7B5DJF.js.map} +0 -0
  838. /package/dist/{tags-2D4AN2QB.js.map → tags-XAHIB3WA.js.map} +0 -0
  839. /package/dist/{targeting-criteria-RSAN4KW5.js.map → targeting-criteria-AVARWV2G.js.map} +0 -0
  840. /package/dist/{targets-EER2G4WH.js.map → targets-6RYLQRID.js.map} +0 -0
  841. /package/dist/{testimonials-4WJKAZ5S.js.map → testimonials-6TF6BOFN.js.map} +0 -0
  842. /package/dist/{themes-XUALHDHR.js.map → themes-JZ3DPE7L.js.map} +0 -0
  843. /package/dist/{top-companies-BSOYGMIB.js.map → top-companies-45EHRCJD.js.map} +0 -0
  844. /package/dist/{translate-2XRHDWSC.js.map → translate-VHLBACCE.js.map} +0 -0
  845. /package/dist/{triggers-NU6BQ5NJ.js.map → triggers-ERQONJNO.js.map} +0 -0
  846. /package/dist/{unlink-LQGPZND2.js.map → unlink-TPDO6JNF.js.map} +0 -0
  847. /package/dist/{unstage-GDKW56MH.js.map → unstage-YKKQQ7LW.js.map} +0 -0
  848. /package/dist/{update-43QN723C.js.map → update-43WU6X7R.js.map} +0 -0
  849. /package/dist/{update-QRGEMNBY.js.map → update-CAHLAXWO.js.map} +0 -0
  850. /package/dist/{update-EGOWYBEH.js.map → update-NGH6YADN.js.map} +0 -0
  851. /package/dist/{update-6CAZKFTC.js.map → update-SPJIHHLE.js.map} +0 -0
  852. /package/dist/{upload-LIHRXWUY.js.map → upload-ACESIZIZ.js.map} +0 -0
  853. /package/dist/{url-options-JXL4W7TB.js.map → url-options-VNX5KYUQ.js.map} +0 -0
  854. /package/dist/{url-params-YXRZ4TUD.js.map → url-params-MIXEDBF7.js.map} +0 -0
  855. /package/dist/{validate-KO3MEJUZ.js.map → validate-XJJA7ULE.js.map} +0 -0
  856. /package/dist/{videos-BPJ34YZL.js.map → videos-LBXPG7WC.js.map} +0 -0
  857. /package/dist/{viewer-check-SA5AUQ26.js.map → viewer-check-7VJ3GUZX.js.map} +0 -0
  858. /package/dist/{web-KS47ZHXX.js.map → web-EWQJC2SD.js.map} +0 -0
  859. /package/dist/{winning-ads-LE2ALICG.js.map → winning-ads-SAOJAKEQ.js.map} +0 -0
  860. /package/dist/{x-DZGRJQ7Y.js.map → x-LXOJPCRF.js.map} +0 -0
@@ -0,0 +1,455 @@
1
+ import {
2
+ parseBrandTokens
3
+ } from "./chunk-NEU5QD2C.js";
4
+
5
+ // src/engine/brand/fonts.ts
6
+ import { posix } from "path";
7
+ var GOOGLE_CSS2 = "https://fonts.googleapis.com/css2";
8
+ function parseGoogleFontFaces(css) {
9
+ const faces = [];
10
+ const re = /\/\*\s*([\w-]+)\s*\*\/\s*@font-face\s*\{([^}]*)\}/g;
11
+ for (const match of String(css).matchAll(re)) {
12
+ const subset = match[1] ?? "";
13
+ const body = match[2] ?? "";
14
+ const family = body.match(/font-family\s*:\s*['"]?([^'";]+)['"]?\s*;/i)?.[1]?.trim();
15
+ const url = body.match(/src\s*:\s*url\(\s*['"]?([^'")]+)['"]?\s*\)/i)?.[1]?.trim();
16
+ const weight = body.match(/font-weight\s*:\s*(\d{3})\s*;/i)?.[1];
17
+ if (!family || !url || !weight) continue;
18
+ faces.push({
19
+ subset,
20
+ family,
21
+ style: body.match(/font-style\s*:\s*([\w-]+)\s*;/i)?.[1]?.trim() ?? "normal",
22
+ weight: Number(weight),
23
+ url,
24
+ unicodeRange: body.match(/unicode-range\s*:\s*([^;]+);/i)?.[1]?.trim() ?? ""
25
+ });
26
+ }
27
+ return faces;
28
+ }
29
+ function fontFileName(face) {
30
+ const family = face.family.replace(/[^A-Za-z0-9]/g, "");
31
+ const style = face.style === "italic" ? "italic" : "";
32
+ return `${family}-${face.weight}${style}-${face.subset}.woff2`;
33
+ }
34
+ function fontFaceHref(face) {
35
+ return `../brand/fonts/${fontFileName(face)}`;
36
+ }
37
+ function renderFontFaceCss(faces) {
38
+ return faces.map(
39
+ (face) => [
40
+ "@font-face {",
41
+ ` font-family: '${face.family}';`,
42
+ ` font-style: ${face.style};`,
43
+ ` font-weight: ${face.weight};`,
44
+ " font-display: swap;",
45
+ ` src: url('${fontFaceHref(face)}') format('woff2');`,
46
+ ...face.unicodeRange ? [` unicode-range: ${face.unicodeRange};`] : [],
47
+ "}"
48
+ ].join("\n")
49
+ ).join("\n");
50
+ }
51
+ var FONT_PROVIDERS = ["google", "fontsource"];
52
+ var FONTSOURCE_API = "https://api.fontsource.org/v1";
53
+ var FONT_STYLES = ["normal", "italic"];
54
+ var ITAL_AXIS = { normal: 0, italic: 1 };
55
+ function fontsourceId(family) {
56
+ return family.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
57
+ }
58
+ function fontsourceFaces(meta, weights, subsets, styles = ["normal"]) {
59
+ const faces = [];
60
+ for (const subset of subsets.filter((s) => meta.subsets.includes(s))) {
61
+ for (const weight of weights.filter((w) => meta.weights.includes(w))) {
62
+ for (const style of styles.filter((style2) => meta.styles.includes(style2))) {
63
+ const url = meta.variants[String(weight)]?.[style]?.[subset]?.url?.woff2;
64
+ if (!url) continue;
65
+ faces.push({
66
+ subset,
67
+ family: meta.family,
68
+ style,
69
+ weight,
70
+ url,
71
+ unicodeRange: meta.unicodeRange?.[subset] ?? "",
72
+ provider: "fontsource"
73
+ });
74
+ }
75
+ }
76
+ }
77
+ return faces;
78
+ }
79
+ function undisambiguatedSubsets(faces) {
80
+ if (new Set(faces.map((face) => face.subset)).size < 2) return [];
81
+ return [...new Set(faces.filter((face) => !face.unicodeRange).map((face) => face.subset))];
82
+ }
83
+ function suggestFamilies(wanted, catalogue, limit = 5) {
84
+ const key = (s) => s.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
85
+ const target = key(wanted);
86
+ if (!target) return [];
87
+ const words = target.split(" ");
88
+ const scored = catalogue.map((family) => {
89
+ const candidate = key(family);
90
+ if (candidate === target) return { family, score: 0 };
91
+ if (candidate.startsWith(target)) return { family, score: 1 };
92
+ if (candidate.includes(target)) return { family, score: 2 };
93
+ const shared = words.filter((w) => w.length > 2 && candidate.includes(w)).length;
94
+ return { family, score: shared > 0 ? 3 + (words.length - shared) : Number.POSITIVE_INFINITY };
95
+ }).filter((c) => Number.isFinite(c.score)).sort((a, b) => a.score - b.score || a.family.localeCompare(b.family));
96
+ return scored.slice(0, limit).map((c) => c.family);
97
+ }
98
+ function asFontsourceMeta(body) {
99
+ if (typeof body !== "object" || body === null) return null;
100
+ const meta = body;
101
+ const ok = typeof meta.family === "string" && Array.isArray(meta.weights) && Array.isArray(meta.styles) && Array.isArray(meta.subsets) && typeof meta.variants === "object" && meta.variants !== null;
102
+ return ok ? meta : null;
103
+ }
104
+ async function probeGoogleFaces(family, lookup) {
105
+ const got = await lookup(googleFontCssUrl(family, STANDARD_WEIGHTS, FONT_STYLES));
106
+ if (got.status === "unreachable") return null;
107
+ return got.status === "served" ? parseGoogleFontFaces(got.css) : [];
108
+ }
109
+ async function resolveFromGoogle(family, weights, subsets, styles, deps) {
110
+ const google = await deps.lookupGoogleCss(googleFontCssUrl(family, weights, FONT_STYLES));
111
+ if (google.status === "unreachable") return { ok: false, reason: "unreachable", provider: "google" };
112
+ if (google.status === "absent") {
113
+ const served2 = await probeGoogleFaces(family, deps.lookupGoogleCss);
114
+ if (served2 === null) return { ok: false, reason: "unreachable", provider: "google" };
115
+ const available = [...new Set(served2.map((face) => face.weight))].sort((a, b) => a - b);
116
+ return available.length > 0 ? { ok: false, reason: "weight", provider: "google", available } : null;
117
+ }
118
+ const served = parseGoogleFontFaces(google.css);
119
+ if (served.length === 0) return null;
120
+ const availableStyles = [...new Set(served.map((face) => face.style))].sort();
121
+ const inSubset = served.filter((face) => subsets.includes(face.subset));
122
+ const faces = inSubset.filter((face) => styles.includes(face.style)).map((face) => ({ ...face, provider: "google" }));
123
+ if (faces.length > 0) return { ok: true, provider: "google", faces, availableStyles };
124
+ return { ok: false, reason: "subset", provider: "google", available: [...new Set(served.map((f) => f.subset))] };
125
+ }
126
+ async function resolveBrandFaces(family, weights, subsets, deps, styles = ["normal"]) {
127
+ const google = await resolveFromGoogle(family, weights, subsets, styles, deps);
128
+ if (google) return google;
129
+ let body;
130
+ try {
131
+ body = await deps.fetchJson(`${FONTSOURCE_API}/fonts/${fontsourceId(family)}`);
132
+ } catch {
133
+ return { ok: false, reason: "unreachable", provider: "fontsource" };
134
+ }
135
+ const meta = asFontsourceMeta(body);
136
+ if (meta) {
137
+ const faces = fontsourceFaces(meta, weights, subsets, styles);
138
+ const ambiguous = undisambiguatedSubsets(faces);
139
+ if (ambiguous.length > 0) {
140
+ return { ok: false, reason: "ambiguous-subsets", provider: "fontsource", available: meta.subsets };
141
+ }
142
+ if (faces.length > 0) return { ok: true, provider: "fontsource", faces, availableStyles: [...meta.styles].sort() };
143
+ if (!subsets.some((subset) => meta.subsets.includes(subset))) {
144
+ return { ok: false, reason: "subset", provider: "fontsource", available: meta.subsets };
145
+ }
146
+ return { ok: false, reason: "weight", provider: "fontsource", available: meta.weights };
147
+ }
148
+ return { ok: false, reason: "unknown-family" };
149
+ }
150
+ function rebaseFontFaceSrc(block, fromDir, toDir = "src/styles") {
151
+ return block.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi, (whole, _quote, href) => {
152
+ if (!isRepoFontHref(href)) return whole;
153
+ const target = posix.normalize(posix.join(fromDir, href));
154
+ return `url('${posix.relative(toDir, target)}')`;
155
+ });
156
+ }
157
+ function declaredFontFaces(source) {
158
+ const out = [];
159
+ for (const rule of stripCssComments(source).matchAll(/@font-face\s*\{[^}]*\}/gi)) {
160
+ const family = rule[0].match(/font-family\s*:\s*([^;]+)/i)?.[1];
161
+ if (!family || rule.index === void 0) continue;
162
+ out.push({ family: normalizeFamily(family), block: source.slice(rule.index, rule.index + rule[0].length) });
163
+ }
164
+ return out;
165
+ }
166
+ function isRepoFontHref(href) {
167
+ return !/^(?:data:|https?:|\/)/i.test(href);
168
+ }
169
+ function missingFontFiles(urls, available) {
170
+ return urls.filter(isRepoFontHref).map((url) => posix.basename(url.split("?")[0] ?? "")).filter((file) => !available.has(file));
171
+ }
172
+ function planFontAdoption(sources, families) {
173
+ const wanted = new Map(families.map((family) => [normalizeFamily(family), family]));
174
+ const byFamily = /* @__PURE__ */ new Map();
175
+ for (const { path, source } of sources) {
176
+ const dir = posix.dirname(path);
177
+ for (const face of declaredFontFaces(source)) {
178
+ if (!wanted.has(face.family)) continue;
179
+ const perFile = byFamily.get(face.family) ?? /* @__PURE__ */ new Map();
180
+ perFile.set(path, [...perFile.get(path) ?? [], rebaseFontFaceSrc(face.block, dir)]);
181
+ byFamily.set(face.family, perFile);
182
+ }
183
+ }
184
+ const plans = [];
185
+ const conflicts = [];
186
+ for (const [family, perFile] of byFamily) {
187
+ const display = wanted.get(family) ?? family;
188
+ const files = [...perFile.keys()];
189
+ const shapes = new Set([...perFile.values()].map((blocks2) => blocks2.join("\n")));
190
+ if (shapes.size > 1) {
191
+ conflicts.push({ family: display, files });
192
+ continue;
193
+ }
194
+ const blocks = perFile.get(files[0] ?? "") ?? [];
195
+ const urls = blocks.flatMap(
196
+ (block) => [...block.matchAll(/url\(\s*['"]?([^'")]+)['"]?\s*\)/gi)].map((m) => m[1] ?? "")
197
+ );
198
+ plans.push({ family: display, blocks, files, urls });
199
+ }
200
+ return { plans, conflicts };
201
+ }
202
+ async function fontsourceCatalogue(deps) {
203
+ const body = await deps.fetchJson(`${FONTSOURCE_API}/fonts`).catch(() => null);
204
+ if (!Array.isArray(body)) return [];
205
+ return body.map((entry) => typeof entry === "object" && entry !== null ? entry.family : null).filter((family) => typeof family === "string");
206
+ }
207
+ function parseWeightAxis(spec) {
208
+ const axis = spec.match(/wght@([^&]+)/i)?.[1] ?? "";
209
+ const weights = /* @__PURE__ */ new Set();
210
+ for (const tuple of axis.split(";")) {
211
+ const last = tuple.split(",").pop()?.trim() ?? "";
212
+ const range = last.match(/^(\d{3})\.\.(\d{3})$/);
213
+ if (range) {
214
+ for (let w = Number(range[1]); w <= Number(range[2]); w += 100) weights.add(w);
215
+ } else if (/^\d{3}$/.test(last)) {
216
+ weights.add(Number(last));
217
+ }
218
+ }
219
+ return [...weights].sort((a, b) => a - b);
220
+ }
221
+ function googleFontRequests(css) {
222
+ const out = [];
223
+ for (const link of String(css).matchAll(/fonts\.googleapis\.com\/[^\s"')]+/gi)) {
224
+ for (const param of link[0].matchAll(/[?&]family=([^&]+)/gi)) {
225
+ const [namePart, ...specParts] = (param[1] ?? "").split(":");
226
+ const family = decodeURIComponent((namePart ?? "").replaceAll("+", " ")).trim();
227
+ if (!family) continue;
228
+ out.push({ family, weights: parseWeightAxis(specParts.join(":")) });
229
+ }
230
+ }
231
+ return out;
232
+ }
233
+ function resolveFetchWeights(flag, declared) {
234
+ if (flag) {
235
+ return String(flag).split(",").map((w) => Number(w.trim())).filter((w) => Number.isInteger(w) && w >= 100 && w <= 900);
236
+ }
237
+ return declared?.length ? declared : [400];
238
+ }
239
+ var DEFAULT_SUBSETS = ["latin"];
240
+ function resolveFetchSubsets(flag, selfHosted) {
241
+ const asked = String(flag ?? "").split(",").map((subset) => subset.trim()).filter(Boolean);
242
+ const named = flag ? [...new Set(asked)] : selfHosted;
243
+ return named.length > 0 ? named : [...DEFAULT_SUBSETS];
244
+ }
245
+ function resolveFetchStyles(italic, selfHosted) {
246
+ return italic || selfHosted.includes("italic") ? ["normal", "italic"] : ["normal"];
247
+ }
248
+ function googleFontCssUrl(family, weights, styles = ["normal"]) {
249
+ const name = family.trim().split(/\s+/).map(encodeURIComponent).join("+");
250
+ const sorted = [...new Set(weights)].sort((a, b) => a - b);
251
+ if (sorted.length === 0) return `${GOOGLE_CSS2}?family=${name}&display=swap`;
252
+ const wanted = FONT_STYLES.filter((style) => styles.includes(style));
253
+ const spec = wanted.length > 1 ? `${name}:ital,wght@${wanted.flatMap((style) => sorted.map((w) => `${ITAL_AXIS[style]},${w}`)).join(";")}` : `${name}:wght@${sorted.join(";")}`;
254
+ return `${GOOGLE_CSS2}?family=${spec}&display=swap`;
255
+ }
256
+ var STANDARD_WEIGHTS = [100, 200, 300, 400, 500, 600, 700, 800, 900];
257
+ async function probeServedWeights(family, fetchCss) {
258
+ const css = await fetchCss(googleFontCssUrl(family, STANDARD_WEIGHTS));
259
+ if (css === null) return [];
260
+ return [...new Set(parseGoogleFontFaces(css).map((face) => face.weight))].sort((a, b) => a - b);
261
+ }
262
+ async function checkFontRequests(requests, fetchCss) {
263
+ const results = [];
264
+ for (const request of requests) {
265
+ const css = await fetchCss(googleFontCssUrl(request.family, request.weights));
266
+ if (css === null) {
267
+ const served2 = await probeServedWeights(request.family, fetchCss);
268
+ results.push({
269
+ family: request.family,
270
+ requested: request.weights,
271
+ served: served2,
272
+ missing: request.weights.filter((w) => !served2.includes(w)),
273
+ subsets: [],
274
+ cause: served2.length === 0 ? "unknown-family" : "unavailable-weight"
275
+ });
276
+ continue;
277
+ }
278
+ const faces = parseGoogleFontFaces(css);
279
+ const served = [...new Set(faces.map((f) => f.weight))].sort((a, b) => a - b);
280
+ results.push({
281
+ family: request.family,
282
+ requested: request.weights,
283
+ served,
284
+ missing: request.weights.filter((w) => !served.includes(w)),
285
+ subsets: [...new Set(faces.map((f) => f.subset))]
286
+ });
287
+ }
288
+ return results;
289
+ }
290
+ var GENERIC_FAMILIES = /* @__PURE__ */ new Set([
291
+ "sans-serif",
292
+ "serif",
293
+ "monospace",
294
+ "cursive",
295
+ "fantasy",
296
+ "system-ui",
297
+ "ui-sans-serif",
298
+ "ui-serif",
299
+ "ui-monospace",
300
+ "ui-rounded",
301
+ "arial",
302
+ "helvetica",
303
+ "georgia",
304
+ "times",
305
+ "courier",
306
+ "inherit",
307
+ "initial",
308
+ "unset"
309
+ ]);
310
+ function stripCssComments(css) {
311
+ return css.replace(/\/\*[\s\S]*?\*\//g, (block) => block.replace(/[^\n]/g, " "));
312
+ }
313
+ function normalizeFamily(raw) {
314
+ return raw.trim().replace(/^['"]|['"]$/g, "").trim().toLowerCase();
315
+ }
316
+ function fontFaceFamilies(css) {
317
+ const out = /* @__PURE__ */ new Set();
318
+ for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
319
+ const family = (rule[1] ?? "").match(/font-family\s*:\s*([^;]+)/i)?.[1];
320
+ if (family) out.add(normalizeFamily(family));
321
+ }
322
+ return out;
323
+ }
324
+ function declaredWeights(body) {
325
+ const spec = (body.match(/font-weight\s*:\s*([^;}]+)/i)?.[1] ?? "").match(/\d{3}/g) ?? [];
326
+ if (spec.length !== 2) return spec.map(Number);
327
+ const range = [];
328
+ for (let w = Number(spec[0]); w <= Number(spec[1]); w += 100) range.push(w);
329
+ return range;
330
+ }
331
+ function selfHostedWeights(css, family) {
332
+ const target = normalizeFamily(family);
333
+ const weights = /* @__PURE__ */ new Set();
334
+ for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
335
+ const body = rule[1] ?? "";
336
+ const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
337
+ if (!declared || normalizeFamily(declared) !== target) continue;
338
+ for (const weight of declaredWeights(body)) weights.add(weight);
339
+ }
340
+ return [...weights].sort((a, b) => a - b);
341
+ }
342
+ function fontFileSubset(href) {
343
+ const file = posix.basename((href.split("?")[0] ?? "").split("#")[0] ?? "");
344
+ return /^[A-Za-z0-9]+-[1-9]00(?:italic)?-([\w-]+)\.woff2$/.exec(file)?.[1] ?? null;
345
+ }
346
+ function selfHostedSubsets(css, family) {
347
+ const target = normalizeFamily(family);
348
+ const subsets = /* @__PURE__ */ new Set();
349
+ for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
350
+ const body = rule[1] ?? "";
351
+ const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
352
+ if (!declared || normalizeFamily(declared) !== target) continue;
353
+ for (const url of body.matchAll(/url\(\s*['"]?([^'")]+)['"]?\s*\)/gi)) {
354
+ const subset = fontFileSubset(url[1] ?? "");
355
+ if (subset) subsets.add(subset);
356
+ }
357
+ }
358
+ return [...subsets].sort();
359
+ }
360
+ function selfHostedStyles(css, family) {
361
+ const target = normalizeFamily(family);
362
+ const styles = /* @__PURE__ */ new Set();
363
+ for (const rule of stripCssComments(css).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
364
+ const body = rule[1] ?? "";
365
+ const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
366
+ if (declared && normalizeFamily(declared) === target) styles.add(faceStyle(body));
367
+ }
368
+ return [...styles].sort();
369
+ }
370
+ function fontsourceFamilies(css) {
371
+ const out = /* @__PURE__ */ new Set();
372
+ for (const imported of stripCssComments(css).matchAll(/@fontsource(-variable)?\/([\w-]+)/gi)) {
373
+ const slug = imported[2];
374
+ if (!slug) continue;
375
+ out.add(`${slug.replaceAll("-", " ")}${imported[1] ? " variable" : ""}`.toLowerCase());
376
+ }
377
+ return out;
378
+ }
379
+ function asAuthored(css, normalized) {
380
+ const escaped = normalized.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
381
+ const text = stripCssComments(css);
382
+ return text.match(new RegExp(`["']${escaped}["']`, "i"))?.[0]?.slice(1, -1) ?? text.match(new RegExp(`(?<![\\w-])${escaped}(?![\\w-])`, "i"))?.[0] ?? normalized;
383
+ }
384
+ function unresolvedBrandFamilies(css) {
385
+ const declared = [...parseBrandTokens(css).fonts].filter((family) => !GENERIC_FAMILIES.has(family));
386
+ const loaded = fontFaceFamilies(css);
387
+ return declared.filter((family) => !loaded.has(family)).map((family) => asAuthored(css, family));
388
+ }
389
+ function stripFontFaceBlocks(source, family, styles) {
390
+ const target = normalizeFamily(family);
391
+ const ranges = [];
392
+ for (const rule of stripCssComments(source).matchAll(/@font-face\s*\{([^}]*)\}/gi)) {
393
+ const body = rule[1] ?? "";
394
+ const declared = body.match(/font-family\s*:\s*([^;]+)/i)?.[1];
395
+ if (!declared || normalizeFamily(declared) !== target || rule.index === void 0) continue;
396
+ if (styles && !styles.has(faceStyle(body))) continue;
397
+ ranges.push([rule.index, rule.index + rule[0].length]);
398
+ }
399
+ let out = source;
400
+ for (const [start, end] of ranges.reverse()) out = `${out.slice(0, start)}${out.slice(end)}`;
401
+ return out.replace(/\n{3,}/g, "\n\n");
402
+ }
403
+ function faceStyle(body) {
404
+ return body.match(/font-style\s*:\s*([\w-]+)/i)?.[1]?.trim().toLowerCase() ?? "normal";
405
+ }
406
+ function declaredStyles(block) {
407
+ const styles = /* @__PURE__ */ new Set();
408
+ for (const rule of stripCssComments(block).matchAll(/@font-face\s*\{([^}]*)\}/gi))
409
+ styles.add(faceStyle(rule[1] ?? ""));
410
+ return styles;
411
+ }
412
+ function upsertFontFaceCss(css, family, block) {
413
+ const styles = declaredStyles(block);
414
+ const out = stripFontFaceBlocks(css, family, styles.size > 0 ? styles : void 0);
415
+ const themeAt = stripCssComments(out).search(/@theme\b/);
416
+ if (themeAt < 0) return `${out.trimEnd()}
417
+
418
+ ${block}
419
+ `;
420
+ const head = out.slice(0, themeAt).trimEnd();
421
+ const tail = out.slice(themeAt);
422
+ return head ? `${head}
423
+
424
+ ${block}
425
+
426
+ ${tail}` : `${block}
427
+
428
+ ${tail}`;
429
+ }
430
+
431
+ export {
432
+ fontFileName,
433
+ renderFontFaceCss,
434
+ FONT_PROVIDERS,
435
+ suggestFamilies,
436
+ resolveBrandFaces,
437
+ missingFontFiles,
438
+ planFontAdoption,
439
+ fontsourceCatalogue,
440
+ googleFontRequests,
441
+ resolveFetchWeights,
442
+ DEFAULT_SUBSETS,
443
+ resolveFetchSubsets,
444
+ resolveFetchStyles,
445
+ checkFontRequests,
446
+ GENERIC_FAMILIES,
447
+ selfHostedWeights,
448
+ selfHostedSubsets,
449
+ selfHostedStyles,
450
+ fontsourceFamilies,
451
+ unresolvedBrandFamilies,
452
+ stripFontFaceBlocks,
453
+ upsertFontFaceCss
454
+ };
455
+ //# sourceMappingURL=chunk-Q5WBTVA7.js.map
@@ -0,0 +1,46 @@
1
+ import {
2
+ RENDER_REVIEW_MODEL,
3
+ askAboutImages,
4
+ buildRulesReviewPrompt,
5
+ classifyRuleFindings,
6
+ reviewedRules,
7
+ rulesSystem
8
+ } from "./chunk-S4VLLGTW.js";
9
+
10
+ // src/engine/nodes/local/lib/confirm-blocking.ts
11
+ var cutByFrame = (f) => f.kind?.defect === "cut";
12
+ async function confirmBlocking(findings, stills, formats, ask) {
13
+ const claims = findings.filter((f) => f.severity === "blocking" && !cutByFrame(f));
14
+ if (claims.length === 0 || stills.length === 0) return [...findings];
15
+ const prompt = [
16
+ `These are the finished sizes of one ad, in order: ${formats.map((f, i) => `Image ${i + 1} is the ${f}`).join("; ")}.`,
17
+ "A reviewer reported each claim below. Look again at the size each one names (and, for a claim comparing sizes, at the others) and answer true only when the defect is plainly there for someone looking at it on a phone.",
18
+ "Answer false when the thing is not there, when it is an ordinary part of the scene (a second house, a neighbour's roof, a reflection), or when the sizes it compares show the same thing.",
19
+ ...claims.map((c, i) => `${i + 1}. ${c.what}`),
20
+ `Reply with only this JSON: {"answers":[true|false, ...]}, one answer per claim, in order.`
21
+ ].join("\n");
22
+ const answer = await ask([...stills], prompt).catch(() => null);
23
+ const answers = answer?.answers;
24
+ if (!Array.isArray(answers) || answers.length !== claims.length) return [...findings];
25
+ const unconfirmed = new Set(claims.filter((_, i) => answers[i] === false));
26
+ return findings.map((f) => unconfirmed.has(f) ? { ...f, severity: "warning" } : f);
27
+ }
28
+
29
+ // src/engine/nodes/local/lib/rules-review.ts
30
+ var RULES_REVIEW_TIMEOUT_MS = 12e4;
31
+ async function reviewAgainstRules(opts) {
32
+ const rules = reviewedRules(opts.rules);
33
+ if (rules.length === 0 || opts.stills.length === 0) return [];
34
+ const system = rulesSystem(rules);
35
+ const ask = (images, prompt) => askAboutImages(RENDER_REVIEW_MODEL, images, prompt, opts.onSpend, RULES_REVIEW_TIMEOUT_MS, void 0, system);
36
+ const answer = await ask([...opts.stills], buildRulesReviewPrompt({ formats: opts.formats, rules }));
37
+ if (answer === null) return null;
38
+ return await confirmBlocking(classifyRuleFindings(answer, rules), opts.stills, opts.formats, ask);
39
+ }
40
+
41
+ export {
42
+ cutByFrame,
43
+ confirmBlocking,
44
+ reviewAgainstRules
45
+ };
46
+ //# sourceMappingURL=chunk-QMOYQJIN.js.map
@@ -0,0 +1,167 @@
1
+ import {
2
+ parseRefExpr
3
+ } from "./chunk-OL7JS4NG.js";
4
+ import {
5
+ collectAssetRefLikes,
6
+ isPersistedAssetRef
7
+ } from "./chunk-U7YR5CZL.js";
8
+
9
+ // src/commands/canvas/run-record.ts
10
+ import path from "path";
11
+ var MAX_RUN_NODES = 200;
12
+ var MAX_OUTPUTS_PER_NODE = 10;
13
+ var MAX_FINAL_OUTPUTS = 10;
14
+ var MAX_NODE_FACTS_CHARS = 4096;
15
+ var MAX_CREATIVE_SLUG_LENGTH = 100;
16
+ function creativeSlugFromCanvasPath(filePath) {
17
+ const normalized = filePath.split(path.sep).join("/");
18
+ const match = normalized.match(/(?:^|\/)src\/creatives\/([a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\//);
19
+ const slug = match?.[1] ?? null;
20
+ return slug && slug.length <= MAX_CREATIVE_SLUG_LENGTH ? slug : null;
21
+ }
22
+ function finalOutputLabelsFromCanvas(parsed) {
23
+ const canvas = parsed;
24
+ const outputNodeId = canvas?.output?.node;
25
+ if (typeof outputNodeId !== "string" || !Array.isArray(canvas?.nodes)) return null;
26
+ const node = canvas.nodes.find((n) => n?.id === outputNodeId);
27
+ if (node?.type !== "collect") return null;
28
+ const explicit = node.params?.labels;
29
+ if (Array.isArray(explicit) && explicit.every((l) => typeof l === "string")) {
30
+ return { nodeId: outputNodeId, labels: explicit };
31
+ }
32
+ const images = node.inputs?.images;
33
+ if (!Array.isArray(images)) return null;
34
+ const labels = images.map((entry) => {
35
+ if (typeof entry !== "string") return void 0;
36
+ return parseRefExpr(entry)?.nodeId;
37
+ });
38
+ return { nodeId: outputNodeId, labels };
39
+ }
40
+ var OUTPUT_KINDS = /* @__PURE__ */ new Set(["image", "video", "audio", "json", "text", "font"]);
41
+ function toRecordOutput(slot, value, label) {
42
+ const refs = collectAssetRefLikes(value);
43
+ const ref = refs.length === 1 ? refs[0] : null;
44
+ if (!ref || !isPersistedAssetRef(ref)) return null;
45
+ const kind = typeof ref.kind === "string" && OUTPUT_KINDS.has(ref.kind) ? ref.kind : null;
46
+ if (!kind) return null;
47
+ return {
48
+ slot,
49
+ label,
50
+ kind,
51
+ sha256: ref.sha256,
52
+ url: ref.url,
53
+ mime: ref.mime,
54
+ width: typeof ref.width === "number" ? ref.width : void 0,
55
+ height: typeof ref.height === "number" ? ref.height : void 0,
56
+ durationMs: typeof ref.duration_ms === "number" ? ref.duration_ms : void 0
57
+ };
58
+ }
59
+ function nodeOutputsToRecord(nodeOutputs, labels) {
60
+ const out = [];
61
+ for (const [slot, value] of Object.entries(nodeOutputs)) {
62
+ if (Array.isArray(value)) {
63
+ value.forEach((item, i) => {
64
+ const rec = toRecordOutput(`${slot}#${i}`, item, labels?.[i]);
65
+ if (rec) out.push(rec);
66
+ });
67
+ } else {
68
+ const rec = toRecordOutput(slot, value);
69
+ if (rec) out.push(rec);
70
+ }
71
+ }
72
+ return out.slice(0, MAX_OUTPUTS_PER_NODE);
73
+ }
74
+ function finalOutputsToRecord(output, labels) {
75
+ if (Array.isArray(output)) {
76
+ return output.map((item, i) => toRecordOutput(`final#${i}`, item, labels?.[i])).filter((rec2) => rec2 !== null).slice(0, MAX_FINAL_OUTPUTS);
77
+ }
78
+ const rec = toRecordOutput("final", output);
79
+ return rec ? [rec] : [];
80
+ }
81
+ function finalFiles(output, labels) {
82
+ const items = Array.isArray(output) ? output : [output];
83
+ const files = {};
84
+ items.forEach((item, i) => {
85
+ const ref = collectAssetRefLikes(item)[0];
86
+ if (ref && typeof ref.path === "string") files[labels?.[i] ?? `final#${i}`] = ref.path;
87
+ });
88
+ return files;
89
+ }
90
+ function withFacts(nodeOutputs) {
91
+ const facts = nodeOutputs.facts;
92
+ if (facts === void 0 || facts === null) return {};
93
+ const json = JSON.stringify(facts);
94
+ return json.length <= MAX_NODE_FACTS_CHARS ? { facts: json } : {};
95
+ }
96
+ function buildRunRecord(result, meta, plan, finalLabels) {
97
+ const nodes = result.node_runs.slice(0, MAX_RUN_NODES).map((run) => {
98
+ const planned = plan?.get(run.node_id);
99
+ return {
100
+ nodeId: run.node_id,
101
+ nodeType: run.node_type,
102
+ cached: run.cached,
103
+ credits: run.credits,
104
+ durationMs: run.duration_ms,
105
+ outputs: nodeOutputsToRecord(
106
+ result.outputs_by_node[run.node_id] ?? {},
107
+ run.node_id === finalLabels?.nodeId ? finalLabels.labels : void 0
108
+ ),
109
+ deps: planned?.deps,
110
+ status: plan ? "completed" : void 0,
111
+ paramsPreview: planned?.paramsPreview,
112
+ ...planned?.role !== void 0 ? { role: planned.role } : {},
113
+ ...withFacts(result.outputs_by_node[run.node_id] ?? {})
114
+ };
115
+ });
116
+ const finalOutputs = finalOutputsToRecord(result.output, finalLabels?.labels);
117
+ return {
118
+ runId: result.run_id,
119
+ ...meta,
120
+ status: "completed",
121
+ stats: {
122
+ totalNodes: result.stats.total_nodes,
123
+ cachedNodes: result.stats.cached_nodes,
124
+ totalCredits: result.stats.total_credits,
125
+ durationMs: result.stats.duration_ms
126
+ },
127
+ nodes,
128
+ finalOutputs: finalOutputs.length > 0 ? finalOutputs : void 0,
129
+ // Sent whenever the review RAN, empty list included. Sending it only when there
130
+ // were findings makes a clean render and an unreviewed one look identical in the
131
+ // record — which is the exact ambiguity this field was added to remove: proving a
132
+ // review had happened once meant re-running a cached canvas and reading raw JSON.
133
+ // Only the fields the backend keeps: a static review's typed fields (`kind`) stay in the CLI.
134
+ ...meta.review ? { review: meta.review.slice(0, 40).map(({ severity, what, scene }) => ({ severity, what, ...scene ? { scene } : {} })) } : {}
135
+ };
136
+ }
137
+ function buildInitialRunRecord(runId, meta) {
138
+ return {
139
+ runId,
140
+ ...meta,
141
+ status: "running",
142
+ stats: { totalNodes: 0, cachedNodes: 0, totalCredits: 0, durationMs: 0 },
143
+ nodes: []
144
+ };
145
+ }
146
+ function buildFailedRunRecord(runId, errorMessage, meta) {
147
+ return {
148
+ runId,
149
+ ...meta,
150
+ status: "failed",
151
+ errorMessage: errorMessage.slice(0, 2e3),
152
+ stats: { totalNodes: 0, cachedNodes: 0, totalCredits: 0, durationMs: 0 },
153
+ nodes: []
154
+ };
155
+ }
156
+
157
+ export {
158
+ creativeSlugFromCanvasPath,
159
+ finalOutputLabelsFromCanvas,
160
+ nodeOutputsToRecord,
161
+ finalFiles,
162
+ withFacts,
163
+ buildRunRecord,
164
+ buildInitialRunRecord,
165
+ buildFailedRunRecord
166
+ };
167
+ //# sourceMappingURL=chunk-QRLTVJ6F.js.map