@nuxt/scripts 0.9.5 → 0.10.1

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 (471) hide show
  1. package/README.md +4 -6
  2. package/dist/client/200.html +232 -224
  3. package/dist/client/404.html +232 -224
  4. package/dist/client/_nuxt/-71hrkjd.js +1 -0
  5. package/dist/client/_nuxt/0BrjI7ue.js +1 -0
  6. package/dist/client/_nuxt/2V0Ap-uE.js +1 -0
  7. package/dist/client/_nuxt/3xVqZejG.js +1 -0
  8. package/dist/client/_nuxt/{CrOfvjVs.js → 5LuOXUq_.js} +1 -1
  9. package/dist/client/_nuxt/727ZlQH0.js +1 -0
  10. package/dist/client/_nuxt/8jXJkYXT.js +1 -0
  11. package/dist/client/_nuxt/9C6ErRqt.js +1 -0
  12. package/dist/client/_nuxt/B-_AxZdj.js +1 -0
  13. package/dist/client/_nuxt/B0XVJmRM.js +1 -0
  14. package/dist/client/_nuxt/B14Poo8t.js +1 -0
  15. package/dist/client/_nuxt/B1bQXN8T.js +1 -0
  16. package/dist/client/_nuxt/B3ZDOciz.js +1 -0
  17. package/dist/client/_nuxt/B430Bg39.js +1 -0
  18. package/dist/client/_nuxt/B48N-Iqd.js +1 -0
  19. package/dist/client/_nuxt/B5lbUyaz.js +1 -0
  20. package/dist/client/_nuxt/B6U2uXNT.js +1 -0
  21. package/dist/client/_nuxt/B6W0miNI.js +1 -0
  22. package/dist/client/_nuxt/B7mTdjB0.js +1 -0
  23. package/dist/client/_nuxt/B9wLZaAG.js +1 -0
  24. package/dist/client/_nuxt/BAng5TT0.js +1 -0
  25. package/dist/client/_nuxt/BAxNRJcx.js +1 -0
  26. package/dist/client/_nuxt/BBT0u3iQ.js +1 -0
  27. package/dist/client/_nuxt/BCMa2Tx6.js +1 -0
  28. package/dist/client/_nuxt/BDiHrqA7.js +1 -0
  29. package/dist/client/_nuxt/{C8pgRvQH.js → BFOHcciG.js} +1 -1
  30. package/dist/client/_nuxt/BHyGnp0Z.js +1 -0
  31. package/dist/client/_nuxt/BLCLeV30.js +1 -0
  32. package/dist/client/_nuxt/BLmoVg8f.js +1 -0
  33. package/dist/client/_nuxt/{C0hdQUNN.js → BMR_PYu6.js} +1 -1
  34. package/dist/client/_nuxt/BMj5Y0dO.js +1 -0
  35. package/dist/client/_nuxt/BNioltXt.js +1 -0
  36. package/dist/client/_nuxt/BPhBrDlE.js +1 -0
  37. package/dist/client/_nuxt/BR4n0CG2.js +1 -0
  38. package/dist/client/_nuxt/BSxZ-RaX.js +1 -0
  39. package/dist/client/_nuxt/{B6NdQBKR.js → BWx0ALLs.js} +1 -1
  40. package/dist/client/_nuxt/{CMz7PuSU.js → BX77sIaO.js} +1 -1
  41. package/dist/client/_nuxt/BXW1EomU.js +1 -0
  42. package/dist/client/_nuxt/{CHcC_Ka1.js → BXZ5z1bG.js} +1 -1
  43. package/dist/client/_nuxt/BXl-Qilg.js +1 -0
  44. package/dist/client/_nuxt/BY-TUvya.js +1 -0
  45. package/dist/client/_nuxt/BZ4qjH1z.js +1 -0
  46. package/dist/client/_nuxt/B_7mSSNY.js +1 -0
  47. package/dist/client/_nuxt/{B9hcNGex.js → Ba6QCfRf.js} +1 -1
  48. package/dist/client/_nuxt/Bbt-fWo2.js +1 -0
  49. package/dist/client/_nuxt/BcOcwvcX.js +1 -0
  50. package/dist/client/_nuxt/{B66eQrDP.js → BceOnUsB.js} +1 -1
  51. package/dist/client/_nuxt/BekpkmYp.js +1 -0
  52. package/dist/client/_nuxt/{8zCoLDY8.js → BepIKhab.js} +1 -1
  53. package/dist/client/_nuxt/{CpRrwcwt.js → BfivnA6A.js} +1 -1
  54. package/dist/client/_nuxt/Bg-kzb6g.js +1 -0
  55. package/dist/client/_nuxt/Bi2Xjx-o.js +1 -0
  56. package/dist/client/_nuxt/Bid6LQhH.js +1 -0
  57. package/dist/client/_nuxt/BixDBq5F.js +1 -0
  58. package/dist/client/_nuxt/Bjjh7dxw.js +1 -0
  59. package/dist/client/_nuxt/BkR1g5rb.js +1 -0
  60. package/dist/client/_nuxt/{D-RymO5g.js → BknIz3MU.js} +1 -1
  61. package/dist/client/_nuxt/{D3CL8VSI.js → Bl1h29GH.js} +1 -1
  62. package/dist/client/_nuxt/Blx2zv3z.js +1 -0
  63. package/dist/client/_nuxt/BnLMxUhr.js +1 -0
  64. package/dist/client/_nuxt/BnZ6J9ez.js +1 -0
  65. package/dist/client/_nuxt/BoXegm-a.js +1 -0
  66. package/dist/client/_nuxt/BpWG_bgh.js +1 -0
  67. package/dist/client/_nuxt/{DNDvMORL.js → Bvotw-X0.js} +1 -1
  68. package/dist/client/_nuxt/Bw1r3vCz.js +1 -0
  69. package/dist/client/_nuxt/BxugDVxS.js +1 -0
  70. package/dist/client/_nuxt/BzEH12SI.js +1 -0
  71. package/dist/client/_nuxt/C-_shW-Y.js +1 -0
  72. package/dist/client/_nuxt/C1XDQQGZ.js +1 -0
  73. package/dist/client/_nuxt/C1YtDkjL.js +1 -0
  74. package/dist/client/_nuxt/{DymQr0nX.js → C1w2a3ep.js} +1 -1
  75. package/dist/client/_nuxt/C39BiMTA.js +1 -0
  76. package/dist/client/_nuxt/C3FkfJm5.js +1 -0
  77. package/dist/client/_nuxt/C3TFZlTA.js +1 -0
  78. package/dist/client/_nuxt/C3mMm8J8.js +1 -0
  79. package/dist/client/_nuxt/C3t2pwGQ.js +1 -0
  80. package/dist/client/_nuxt/C4-SGcC-.js +1 -0
  81. package/dist/client/_nuxt/C5AohmeQ.js +1 -0
  82. package/dist/client/_nuxt/C5wWYbrZ.js +1 -0
  83. package/dist/client/_nuxt/C7L56vO4.js +1 -0
  84. package/dist/client/_nuxt/C7gG9l05.js +1 -0
  85. package/dist/client/_nuxt/C8E1IXHE.js +1 -0
  86. package/dist/client/_nuxt/C9e09xm7.js +1 -0
  87. package/dist/client/_nuxt/CAQ2eGtk.js +1 -0
  88. package/dist/client/_nuxt/CCQEdssC.js +1 -0
  89. package/dist/client/_nuxt/CCbUEAxs.js +1 -0
  90. package/dist/client/_nuxt/CD_QflpE.js +1 -0
  91. package/dist/client/_nuxt/CGzGISHo.js +32 -0
  92. package/dist/client/_nuxt/CHVitPdg.js +1 -0
  93. package/dist/client/_nuxt/CJaU5se_.js +1 -0
  94. package/dist/client/_nuxt/CLEBXJYW.js +1 -0
  95. package/dist/client/_nuxt/{CmWLV2bY.js → CM8KxXT1.js} +1 -1
  96. package/dist/client/_nuxt/COJ4H7py.js +1 -0
  97. package/dist/client/_nuxt/COl1u60l.js +1 -0
  98. package/dist/client/_nuxt/{CbUnruJU.js → COyJrUc7.js} +1 -1
  99. package/dist/client/_nuxt/CQ5q8R2W.js +1 -0
  100. package/dist/client/_nuxt/CQPZbkWf.js +1 -0
  101. package/dist/client/_nuxt/CR_dl2Bk.js +1 -0
  102. package/dist/client/_nuxt/CSHBycmS.js +1 -0
  103. package/dist/client/_nuxt/CSHvh9SD.js +1 -0
  104. package/dist/client/_nuxt/CUnW07Te.js +1 -0
  105. package/dist/client/_nuxt/{CIiI48o2.js → CVw76BM1.js} +1 -1
  106. package/dist/client/_nuxt/CWGUrYGm.js +1 -0
  107. package/dist/client/_nuxt/CWgbWrzg.js +1 -0
  108. package/dist/client/_nuxt/CX-D33aM.js +1 -0
  109. package/dist/client/_nuxt/CXkZqcqC.js +1 -0
  110. package/dist/client/_nuxt/Cbu_jgUK.js +1 -0
  111. package/dist/client/_nuxt/Cc5clBb7.js +1 -0
  112. package/dist/client/_nuxt/{Bv-mwDEg.js → CdO5JTpU.js} +1 -1
  113. package/dist/client/_nuxt/CeaQPKDP.js +1 -0
  114. package/dist/client/_nuxt/CfQXZHmo.js +1 -0
  115. package/dist/client/_nuxt/Cg69lM4A.js +1 -0
  116. package/dist/client/_nuxt/{BTbGKmhu.js → CiNAsHKU.js} +1 -1
  117. package/dist/client/_nuxt/CjDtw9vr.js +1 -0
  118. package/dist/client/_nuxt/CjTSRSzG.js +1 -0
  119. package/dist/client/_nuxt/CkXjmgJE.js +1 -0
  120. package/dist/client/_nuxt/Cksrkzhi.js +1 -0
  121. package/dist/client/_nuxt/Cl11rDh_.js +1 -0
  122. package/dist/client/_nuxt/{IqKf4WGj.js → ClJifeiK.js} +1 -1
  123. package/dist/client/_nuxt/CmCqftbK.js +1 -0
  124. package/dist/client/_nuxt/CsSk9TLD.js +1 -0
  125. package/dist/client/_nuxt/CsiB4_CF.js +1 -0
  126. package/dist/client/_nuxt/CucaAMjX.js +1 -0
  127. package/dist/client/_nuxt/{Cqv5JV-q.js → CwjWoCRV.js} +1 -1
  128. package/dist/client/_nuxt/CyZx4btO.js +1 -0
  129. package/dist/client/_nuxt/CzouJOBO.js +1 -0
  130. package/dist/client/_nuxt/D08_rs9c.js +1 -0
  131. package/dist/client/_nuxt/D33VVPhb.js +1 -0
  132. package/dist/client/_nuxt/D3T736Ml.js +1 -0
  133. package/dist/client/_nuxt/{CQWsIgnU.js → D4h5O-jR.js} +1 -1
  134. package/dist/client/_nuxt/D8P4R8x9.js +1 -0
  135. package/dist/client/_nuxt/DBPt_AfP.js +1 -0
  136. package/dist/client/_nuxt/DBtIRQT_.js +1 -0
  137. package/dist/client/_nuxt/DCE3LsBG.js +1 -0
  138. package/dist/client/_nuxt/DDhM2Lry.js +1 -0
  139. package/dist/client/_nuxt/DEEqWFGm.js +1 -0
  140. package/dist/client/_nuxt/DERFIACx.js +1 -0
  141. package/dist/client/_nuxt/{D44NvAEk.js → DFAwn6Qs.js} +1 -1
  142. package/dist/client/_nuxt/DFERiEu9.js +1 -0
  143. package/dist/client/_nuxt/DHo0CJ0O.js +1 -0
  144. package/dist/client/_nuxt/{Dzwn3p-3.js → DJlmqQ1C.js} +1 -1
  145. package/dist/client/_nuxt/DKOGybHv.js +1 -0
  146. package/dist/client/_nuxt/DLdrzW0n.js +1 -0
  147. package/dist/client/_nuxt/DNTbO5Kf.js +1 -0
  148. package/dist/client/_nuxt/DPWDxuKt.js +1 -0
  149. package/dist/client/_nuxt/DPvbFsQx.js +1 -0
  150. package/dist/client/_nuxt/DRW-0cLl.js +1 -0
  151. package/dist/client/_nuxt/DSrUkfvF.js +1 -0
  152. package/dist/client/_nuxt/DTAJTTim.js +1 -0
  153. package/dist/client/_nuxt/DVMEJ2y_.js +1 -0
  154. package/dist/client/_nuxt/DWedfzmr.js +1 -0
  155. package/dist/client/_nuxt/{CmY0Y6Yh.js → DXbdFlpD.js} +1 -1
  156. package/dist/client/_nuxt/DYoNaHQp.js +1 -0
  157. package/dist/client/_nuxt/{yA8e6OR-.js → D_iqerNF.js} +1 -1
  158. package/dist/client/_nuxt/DaDNKYhP.js +1 -0
  159. package/dist/client/_nuxt/{CNRQ974Q.js → Dayu4EKP.js} +1 -1
  160. package/dist/client/_nuxt/DbcauaCG.js +1 -0
  161. package/dist/client/_nuxt/Dbxjm_CC.js +1 -0
  162. package/dist/client/_nuxt/Ddn3lr0y.js +1 -0
  163. package/dist/client/_nuxt/Dhn9LcZ4.js +1 -0
  164. package/dist/client/_nuxt/Dj6nwHGl.js +1 -0
  165. package/dist/client/_nuxt/DjCbjd0V.js +1 -0
  166. package/dist/client/_nuxt/DjP-tqRL.js +1 -0
  167. package/dist/client/_nuxt/DlaVQbPD.js +1 -0
  168. package/dist/client/_nuxt/DlqU7Mzb.js +1 -0
  169. package/dist/client/_nuxt/DnAB7knh.js +1 -0
  170. package/dist/client/_nuxt/Dp08fnRF.js +1 -0
  171. package/dist/client/_nuxt/DpGQfXhQ.js +1 -0
  172. package/dist/client/_nuxt/{s1PdnzAn.js → DqDt7uUl.js} +1 -1
  173. package/dist/client/_nuxt/Ds-gbosJ.js +1 -0
  174. package/dist/client/_nuxt/DsBKuouk.js +1 -0
  175. package/dist/client/_nuxt/DtFQj3wx.js +1 -0
  176. package/dist/client/_nuxt/Dtn5OO9k.js +1 -0
  177. package/dist/client/_nuxt/Du268qiB.js +1 -0
  178. package/dist/client/_nuxt/Du5NY7AG.js +1 -0
  179. package/dist/client/_nuxt/DxSadP1t.js +1 -0
  180. package/dist/client/_nuxt/{Da_8ueAw.js → DyGSH8sA.js} +1 -1
  181. package/dist/client/_nuxt/ISJeQQUc.js +1 -0
  182. package/dist/client/_nuxt/{Dtn98rcr.js → IuBKFhSY.js} +1 -1
  183. package/dist/client/_nuxt/{DZQMDcrx.js → L9t79GZl.js} +1 -1
  184. package/dist/client/_nuxt/LGGdnPYs.js +1 -0
  185. package/dist/client/_nuxt/MxEea5SM.js +1 -0
  186. package/dist/client/_nuxt/Olw6fvns.js +1 -0
  187. package/dist/client/_nuxt/R5DMG1SI.js +1 -0
  188. package/dist/client/_nuxt/RJ4jLoVH.js +1 -0
  189. package/dist/client/_nuxt/RvZl2ZSs.js +1 -0
  190. package/dist/client/_nuxt/{BSHf-0eb.js → SKMF96pI.js} +1 -1
  191. package/dist/client/_nuxt/SPD3sf1n.js +1 -0
  192. package/dist/client/_nuxt/{D9Bn7OQI.js → T-Tgc4AT.js} +1 -1
  193. package/dist/client/_nuxt/UP2u2qKn.js +1 -0
  194. package/dist/client/_nuxt/WlOKAcJ7.js +1 -0
  195. package/dist/client/_nuxt/XBlWyCtg.js +1 -0
  196. package/dist/client/_nuxt/{L9-HYnaW.js → YJb9dmdj.js} +1 -1
  197. package/dist/client/_nuxt/YSxxb8je.js +1 -0
  198. package/dist/client/_nuxt/a8RH-YUw.js +1 -0
  199. package/dist/client/_nuxt/aBZrgJR0.js +1 -0
  200. package/dist/client/_nuxt/{Bnbw1zOw.js → ahYVQIuB.js} +1 -1
  201. package/dist/client/_nuxt/{DJEtsjbi.js → ajMbGru0.js} +1 -1
  202. package/dist/client/_nuxt/{dZn0vQkf.js → bCA53EVm.js} +1 -1
  203. package/dist/client/_nuxt/bN70gL4F.js +1 -0
  204. package/dist/client/_nuxt/builds/latest.json +1 -1
  205. package/dist/client/_nuxt/builds/meta/644a29ec-ed48-4da6-aa17-f90507068c28.json +1 -0
  206. package/dist/client/_nuxt/{CkqQx3Va.js → cPjAOO0u.js} +1 -1
  207. package/dist/client/_nuxt/eHy1PpK4.js +1 -0
  208. package/dist/client/_nuxt/{BINKOAKH.js → eg146-Ew.js} +1 -1
  209. package/dist/client/_nuxt/entry.8G-dVB4s.css +1 -0
  210. package/dist/client/_nuxt/error-404.BuAnUH8b.css +1 -0
  211. package/dist/client/_nuxt/error-500.DrCOIGHy.css +1 -0
  212. package/dist/client/_nuxt/fje9CFhw.js +1 -0
  213. package/dist/client/_nuxt/hegEt444.js +1 -0
  214. package/dist/client/_nuxt/ifBTmRxC.js +1 -0
  215. package/dist/client/_nuxt/jOnvO7K6.js +1 -0
  216. package/dist/client/_nuxt/jY9aw0fr.js +1 -0
  217. package/dist/client/_nuxt/{Bt50SWsh.js → kP2iUUCn.js} +1 -1
  218. package/dist/client/_nuxt/k_46elR7.js +1 -0
  219. package/dist/client/_nuxt/m4uW47V2.js +1 -0
  220. package/dist/client/_nuxt/mD5xMClh.js +1 -0
  221. package/dist/client/_nuxt/o8ODhS4a.js +1 -0
  222. package/dist/client/_nuxt/otdIdbsQ.js +1 -0
  223. package/dist/client/_nuxt/qVXJnTkO.js +1 -0
  224. package/dist/client/_nuxt/qmhIZ77x.js +1 -0
  225. package/dist/client/_nuxt/rAlqSFiP.js +1 -0
  226. package/dist/client/_nuxt/s0gpj0oJ.js +1 -0
  227. package/dist/client/_nuxt/sY1Cc3Se.js +1 -0
  228. package/dist/client/_nuxt/{DwFwdhDE.js → sdHcTMYB.js} +1 -1
  229. package/dist/client/_nuxt/tpHetfZQ.js +1 -0
  230. package/dist/client/_nuxt/ulE5f4OK.js +1 -0
  231. package/dist/client/_nuxt/xI-RfyKK.js +1 -0
  232. package/dist/client/_nuxt/{CpWBKVjh.js → xW4inM5L.js} +1 -1
  233. package/dist/client/_nuxt/ySlJ1b_l.js +1 -0
  234. package/dist/client/_nuxt/z307i-ZX.js +1 -0
  235. package/dist/client/_nuxt/{hdsyEllQ.js → zocC4JxJ.js} +1 -1
  236. package/dist/client/index.html +232 -224
  237. package/dist/module.d.mts +5 -0
  238. package/dist/module.d.ts +5 -0
  239. package/dist/module.json +1 -1
  240. package/dist/module.mjs +26 -21
  241. package/dist/registry.mjs +21 -11
  242. package/dist/runtime/components/ScriptAriaLoadingIndicator.vue +7 -0
  243. package/dist/runtime/components/ScriptCarbonAds.vue +12 -7
  244. package/dist/runtime/components/ScriptCrisp.vue +2 -2
  245. package/dist/runtime/components/ScriptGoogleAdsense.vue +15 -5
  246. package/dist/runtime/components/ScriptGoogleMaps.vue +6 -4
  247. package/dist/runtime/components/ScriptIntercom.vue +2 -2
  248. package/dist/runtime/components/ScriptLemonSqueezy.vue +1 -1
  249. package/dist/runtime/components/ScriptLoadingIndicator.vue +1 -1
  250. package/dist/runtime/components/ScriptStripePricingTable.vue +1 -2
  251. package/dist/runtime/components/ScriptVimeoPlayer.vue +8 -3
  252. package/dist/runtime/components/ScriptYouTubePlayer.vue +45 -7
  253. package/dist/runtime/composables/useScript.d.ts +1 -1
  254. package/dist/runtime/composables/useScript.js +3 -2
  255. package/dist/runtime/composables/useScriptEventPage.d.ts +1 -1
  256. package/dist/runtime/composables/useScriptEventPage.js +3 -1
  257. package/dist/runtime/composables/useScriptTriggerConsent.js +2 -1
  258. package/dist/runtime/registry/clarity.d.ts +2 -2
  259. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +3 -3
  260. package/dist/runtime/registry/crisp.d.ts +7 -7
  261. package/dist/runtime/registry/fathom-analytics.d.ts +6 -6
  262. package/dist/runtime/registry/google-adsense.d.ts +7 -3
  263. package/dist/runtime/registry/google-adsense.js +21 -5
  264. package/dist/runtime/registry/google-analytics.d.ts +16 -6
  265. package/dist/runtime/registry/google-analytics.js +18 -20
  266. package/dist/runtime/registry/google-maps.d.ts +6 -6
  267. package/dist/runtime/registry/google-tag-manager.d.ts +28 -7
  268. package/dist/runtime/registry/google-tag-manager.js +7 -10
  269. package/dist/runtime/registry/hotjar.d.ts +3 -3
  270. package/dist/runtime/registry/intercom.d.ts +9 -9
  271. package/dist/runtime/registry/lemon-squeezy.d.ts +2 -2
  272. package/dist/runtime/registry/matomo-analytics.d.ts +9 -9
  273. package/dist/runtime/registry/meta-pixel.d.ts +2 -2
  274. package/dist/runtime/registry/npm.d.ts +5 -5
  275. package/dist/runtime/registry/npm.js +24 -8
  276. package/dist/runtime/registry/plausible-analytics.d.ts +3 -3
  277. package/dist/runtime/registry/segment.d.ts +3 -3
  278. package/dist/runtime/registry/snapchat-pixel.d.ts +71 -0
  279. package/dist/runtime/registry/snapchat-pixel.js +55 -0
  280. package/dist/runtime/registry/stripe.d.ts +3 -3
  281. package/dist/runtime/registry/umami-analytics.d.ts +37 -0
  282. package/dist/runtime/registry/umami-analytics.js +49 -0
  283. package/dist/runtime/registry/vimeo-player.d.ts +1 -1
  284. package/dist/runtime/registry/vimeo-player.js +1 -1
  285. package/dist/runtime/registry/x-pixel.d.ts +3 -3
  286. package/dist/runtime/registry/youtube-player.d.ts +1 -1
  287. package/dist/runtime/registry/youtube-player.js +1 -1
  288. package/dist/runtime/types.d.ts +4 -0
  289. package/dist/runtime/utils.d.ts +2 -2
  290. package/dist/runtime/utils.js +1 -1
  291. package/package.json +82 -72
  292. package/dist/client/_nuxt/-ALZ4IvE.js +0 -1
  293. package/dist/client/_nuxt/0e7srHXh.js +0 -1
  294. package/dist/client/_nuxt/2pWuV6-S.js +0 -1
  295. package/dist/client/_nuxt/35JD59R_.js +0 -1
  296. package/dist/client/_nuxt/4NJYcRSJ.js +0 -1
  297. package/dist/client/_nuxt/6UYsA25C.js +0 -32
  298. package/dist/client/_nuxt/8Uu6eIa-.js +0 -1
  299. package/dist/client/_nuxt/9xzcv9xf.js +0 -1
  300. package/dist/client/_nuxt/A13Lx_ye.js +0 -1
  301. package/dist/client/_nuxt/B-GI89LT.js +0 -1
  302. package/dist/client/_nuxt/B2bjgU-v.js +0 -1
  303. package/dist/client/_nuxt/B3Z_eaxm.js +0 -1
  304. package/dist/client/_nuxt/B4_rEpOs.js +0 -1
  305. package/dist/client/_nuxt/B5L7zzq-.js +0 -1
  306. package/dist/client/_nuxt/B74Y8nHz.js +0 -1
  307. package/dist/client/_nuxt/B8E-_56i.js +0 -1
  308. package/dist/client/_nuxt/B8E_5cfo.js +0 -1
  309. package/dist/client/_nuxt/B9Vj0mJK.js +0 -1
  310. package/dist/client/_nuxt/BDjtpMT8.js +0 -1
  311. package/dist/client/_nuxt/BFLt1xDp.js +0 -1
  312. package/dist/client/_nuxt/BGct0Hx7.js +0 -1
  313. package/dist/client/_nuxt/BGdveAQA.js +0 -1
  314. package/dist/client/_nuxt/BHpzmqOf.js +0 -1
  315. package/dist/client/_nuxt/BJNXdUBN.js +0 -1
  316. package/dist/client/_nuxt/BKbjiiqg.js +0 -1
  317. package/dist/client/_nuxt/BMwgFBEQ.js +0 -1
  318. package/dist/client/_nuxt/BN40hmum.js +0 -1
  319. package/dist/client/_nuxt/BNxDCkIA.js +0 -1
  320. package/dist/client/_nuxt/BSPpinrx.js +0 -1
  321. package/dist/client/_nuxt/BStEqDGx.js +0 -1
  322. package/dist/client/_nuxt/BT8b6B_-.js +0 -1
  323. package/dist/client/_nuxt/BTo9ix6S.js +0 -1
  324. package/dist/client/_nuxt/BVLG6Y-w.js +0 -1
  325. package/dist/client/_nuxt/BWgb8Pxw.js +0 -1
  326. package/dist/client/_nuxt/BWkuYGGO.js +0 -1
  327. package/dist/client/_nuxt/BWslPs4p.js +0 -1
  328. package/dist/client/_nuxt/BZRbnyjI.js +0 -1
  329. package/dist/client/_nuxt/B_R80ZlN.js +0 -1
  330. package/dist/client/_nuxt/BaLI2h1d.js +0 -1
  331. package/dist/client/_nuxt/BbccZ3y2.js +0 -1
  332. package/dist/client/_nuxt/BbzkbZ9e.js +0 -1
  333. package/dist/client/_nuxt/Bdprqoiu.js +0 -1
  334. package/dist/client/_nuxt/BeSffZBD.js +0 -1
  335. package/dist/client/_nuxt/Begb3drz.js +0 -1
  336. package/dist/client/_nuxt/Bexp5DGn.js +0 -1
  337. package/dist/client/_nuxt/BgqZeg96.js +0 -1
  338. package/dist/client/_nuxt/BhLNiG9c.js +0 -1
  339. package/dist/client/_nuxt/BhsLqr-4.js +0 -1
  340. package/dist/client/_nuxt/BjE2mIY4.js +0 -1
  341. package/dist/client/_nuxt/BjXeLqNd.js +0 -1
  342. package/dist/client/_nuxt/Bjs2cL5p.js +0 -1
  343. package/dist/client/_nuxt/BkG9CdHo.js +0 -1
  344. package/dist/client/_nuxt/Bpo8LMpD.js +0 -1
  345. package/dist/client/_nuxt/BrbOHqWv.js +0 -1
  346. package/dist/client/_nuxt/BwojPDJW.js +0 -1
  347. package/dist/client/_nuxt/BxJadH_W.js +0 -1
  348. package/dist/client/_nuxt/ByY1Guvr.js +0 -1
  349. package/dist/client/_nuxt/BzAMEn9Z.js +0 -1
  350. package/dist/client/_nuxt/BzaEo2Du.js +0 -1
  351. package/dist/client/_nuxt/BzwtH5UL.js +0 -1
  352. package/dist/client/_nuxt/C30t_gpS.js +0 -1
  353. package/dist/client/_nuxt/C3t61SNw.js +0 -1
  354. package/dist/client/_nuxt/C6J8XiCD.js +0 -1
  355. package/dist/client/_nuxt/CE0v8NN9.js +0 -1
  356. package/dist/client/_nuxt/CEjiMJLT.js +0 -1
  357. package/dist/client/_nuxt/CHZeBJpW.js +0 -1
  358. package/dist/client/_nuxt/CIxipgmy.js +0 -1
  359. package/dist/client/_nuxt/CJrM-UL-.js +0 -1
  360. package/dist/client/_nuxt/CJxt7p29.js +0 -1
  361. package/dist/client/_nuxt/CK56Z9cH.js +0 -1
  362. package/dist/client/_nuxt/CLmbwNS9.js +0 -1
  363. package/dist/client/_nuxt/CMOi41r9.js +0 -1
  364. package/dist/client/_nuxt/CN6rGqjK.js +0 -1
  365. package/dist/client/_nuxt/CNXuF1yM.js +0 -1
  366. package/dist/client/_nuxt/COtMjVi7.js +0 -1
  367. package/dist/client/_nuxt/CQO4gZEw.js +0 -1
  368. package/dist/client/_nuxt/CQzXS8_C.js +0 -1
  369. package/dist/client/_nuxt/CRR3mLlZ.js +0 -1
  370. package/dist/client/_nuxt/CSoQzgif.js +0 -1
  371. package/dist/client/_nuxt/CXmV_HiI.js +0 -1
  372. package/dist/client/_nuxt/CYyBA3kJ.js +0 -1
  373. package/dist/client/_nuxt/C_OO3DVV.js +0 -1
  374. package/dist/client/_nuxt/CcPoRNJz.js +0 -1
  375. package/dist/client/_nuxt/CcSEeikT.js +0 -1
  376. package/dist/client/_nuxt/ChDww4um.js +0 -1
  377. package/dist/client/_nuxt/ChEme8PX.js +0 -1
  378. package/dist/client/_nuxt/Ci-La1BS.js +0 -1
  379. package/dist/client/_nuxt/CiXlrwC7.js +0 -1
  380. package/dist/client/_nuxt/Ckz-YMxz.js +0 -1
  381. package/dist/client/_nuxt/Cn_j0ne6.js +0 -1
  382. package/dist/client/_nuxt/CwIbMU3B.js +0 -1
  383. package/dist/client/_nuxt/Cztwc-HH.js +0 -1
  384. package/dist/client/_nuxt/D0xWnrgR.js +0 -1
  385. package/dist/client/_nuxt/D0ybgVpa.js +0 -1
  386. package/dist/client/_nuxt/D2TqM893.js +0 -1
  387. package/dist/client/_nuxt/D4O64OTH.js +0 -1
  388. package/dist/client/_nuxt/D5gt1ch3.js +0 -1
  389. package/dist/client/_nuxt/D6HQHXJE.js +0 -1
  390. package/dist/client/_nuxt/D7v6OrNy.js +0 -1
  391. package/dist/client/_nuxt/D7z58M2W.js +0 -1
  392. package/dist/client/_nuxt/D8nBeWSR.js +0 -1
  393. package/dist/client/_nuxt/D9Icd2YK.js +0 -1
  394. package/dist/client/_nuxt/D9W_gRNE.js +0 -1
  395. package/dist/client/_nuxt/DA0ESIWO.js +0 -1
  396. package/dist/client/_nuxt/DBQeEorK.js +0 -1
  397. package/dist/client/_nuxt/DBxrVw_D.js +0 -1
  398. package/dist/client/_nuxt/DCRAZVCM.js +0 -1
  399. package/dist/client/_nuxt/DCcCncrU.js +0 -1
  400. package/dist/client/_nuxt/DDUKAZWS.js +0 -1
  401. package/dist/client/_nuxt/DES0gjzB.js +0 -1
  402. package/dist/client/_nuxt/DFIOpqzz.js +0 -1
  403. package/dist/client/_nuxt/DFW6HATB.js +0 -1
  404. package/dist/client/_nuxt/DH4N8IuU.js +0 -1
  405. package/dist/client/_nuxt/DIt9OTko.js +0 -1
  406. package/dist/client/_nuxt/DIvA8ll9.js +0 -1
  407. package/dist/client/_nuxt/DOAn35dn.js +0 -1
  408. package/dist/client/_nuxt/DPTZissz.js +0 -1
  409. package/dist/client/_nuxt/DQJjjPvk.js +0 -1
  410. package/dist/client/_nuxt/DQxx3LPD.js +0 -1
  411. package/dist/client/_nuxt/DVWcdiGS.js +0 -1
  412. package/dist/client/_nuxt/DWMP3yrW.js +0 -1
  413. package/dist/client/_nuxt/DWmkr0yC.js +0 -1
  414. package/dist/client/_nuxt/DWt6wkI-.js +0 -1
  415. package/dist/client/_nuxt/DZ4hUExO.js +0 -1
  416. package/dist/client/_nuxt/D_QQB6Yv.js +0 -1
  417. package/dist/client/_nuxt/DanlQboj.js +0 -1
  418. package/dist/client/_nuxt/DbXoA79R.js +0 -1
  419. package/dist/client/_nuxt/DfpIq38s.js +0 -1
  420. package/dist/client/_nuxt/Dk1rBueR.js +0 -1
  421. package/dist/client/_nuxt/DkpUthgY.js +0 -1
  422. package/dist/client/_nuxt/DlYXzDlu.js +0 -1
  423. package/dist/client/_nuxt/DmF4-xLG.js +0 -1
  424. package/dist/client/_nuxt/DmZ-uG0V.js +0 -1
  425. package/dist/client/_nuxt/Dnfm4U7b.js +0 -1
  426. package/dist/client/_nuxt/DnyWjya5.js +0 -1
  427. package/dist/client/_nuxt/DoiKbUTj.js +0 -1
  428. package/dist/client/_nuxt/DpVQgTom.js +0 -1
  429. package/dist/client/_nuxt/DsCg8CPl.js +0 -1
  430. package/dist/client/_nuxt/Dt1_zKdO.js +0 -1
  431. package/dist/client/_nuxt/DvQyZZSe.js +0 -1
  432. package/dist/client/_nuxt/DwU8c_yx.js +0 -1
  433. package/dist/client/_nuxt/Dwo6uFCY.js +0 -1
  434. package/dist/client/_nuxt/DzaHHFTY.js +0 -1
  435. package/dist/client/_nuxt/EZUUsui8.js +0 -1
  436. package/dist/client/_nuxt/F89DG-fP.js +0 -1
  437. package/dist/client/_nuxt/HNM5thJl.js +0 -1
  438. package/dist/client/_nuxt/I1uqSxRv.js +0 -1
  439. package/dist/client/_nuxt/IBB5Tl9j.js +0 -1
  440. package/dist/client/_nuxt/JbneklYT.js +0 -1
  441. package/dist/client/_nuxt/Jwd9j1ay.js +0 -1
  442. package/dist/client/_nuxt/Kxp7UmFj.js +0 -1
  443. package/dist/client/_nuxt/NKd-Y1zG.js +0 -1
  444. package/dist/client/_nuxt/NUI3YrRW.js +0 -1
  445. package/dist/client/_nuxt/NfFGm2lL.js +0 -1
  446. package/dist/client/_nuxt/NgWrSVUg.js +0 -1
  447. package/dist/client/_nuxt/OiuHoWY5.js +0 -1
  448. package/dist/client/_nuxt/S_yhxdK1.js +0 -1
  449. package/dist/client/_nuxt/Xse1gjxk.js +0 -1
  450. package/dist/client/_nuxt/ZJvK9Z2N.js +0 -1
  451. package/dist/client/_nuxt/aeT0-ak7.js +0 -1
  452. package/dist/client/_nuxt/bGS5FTDY.js +0 -1
  453. package/dist/client/_nuxt/builds/meta/fa3e7320-a292-4ebb-9b7b-648efbb081ed.json +0 -1
  454. package/dist/client/_nuxt/eCoydtrh.js +0 -1
  455. package/dist/client/_nuxt/entry.CZkCC1VG.css +0 -1
  456. package/dist/client/_nuxt/error-404.Cpz2uRRd.css +0 -1
  457. package/dist/client/_nuxt/error-500.fQnjp2ZY.css +0 -1
  458. package/dist/client/_nuxt/g_GSZ1hr.js +0 -1
  459. package/dist/client/_nuxt/i5HCB2tm.js +0 -1
  460. package/dist/client/_nuxt/j_FrBdja.js +0 -1
  461. package/dist/client/_nuxt/keK8bHwS.js +0 -1
  462. package/dist/client/_nuxt/mLcCfA0-.js +0 -1
  463. package/dist/client/_nuxt/nkNqggyT.js +0 -1
  464. package/dist/client/_nuxt/p-youoOz.js +0 -1
  465. package/dist/client/_nuxt/plSVBvJQ.js +0 -1
  466. package/dist/client/_nuxt/rAPcFIiw.js +0 -1
  467. package/dist/client/_nuxt/rf8nNrOk.js +0 -1
  468. package/dist/client/_nuxt/sH2JAGjN.js +0 -1
  469. package/dist/client/_nuxt/vFtNXPBc.js +0 -1
  470. package/dist/client/_nuxt/w1el_4yc.js +0 -1
  471. package/dist/client/_nuxt/yLioyJ2E.js +0 -1
package/dist/module.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
+ import { FetchOptions } from 'ofetch';
2
3
  import { NuxtConfigScriptRegistry, NuxtUseScriptOptionsSerializable, NuxtUseScriptInput, RegistryScripts } from '../dist/runtime/types.js';
3
4
 
4
5
  interface ModuleOptions {
@@ -33,6 +34,10 @@ interface ModuleOptions {
33
34
  * @default false
34
35
  */
35
36
  fallbackOnSrcOnBundleFail?: boolean;
37
+ /**
38
+ * Configure the fetch options used for downloading scripts.
39
+ */
40
+ fetchOptions?: FetchOptions;
36
41
  };
37
42
  /**
38
43
  * Whether the module is enabled.
package/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "nuxt": ">=3",
6
6
  "bridge": false
7
7
  },
8
- "version": "0.9.5",
8
+ "version": "0.10.1",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "0.8.4",
11
11
  "unbuild": "2.0.0"
package/dist/module.mjs CHANGED
@@ -1,7 +1,6 @@
1
- import { useNuxt, useLogger, addDevServerHandler, tryUseNuxt, createResolver, addTemplate, logger as logger$1, defineNuxtModule, addImportsDir, addComponentsDir, addImports, addPluginTemplate, addBuildPlugin, hasNuxtModule } from '@nuxt/kit';
1
+ import { useNuxt, useLogger, addDevServerHandler, tryUseNuxt, createResolver, addTemplate, logger as logger$1, defineNuxtModule, resolvePath, addImportsDir, addComponentsDir, addImports, addPluginTemplate, addBuildPlugin, hasNuxtModule } from '@nuxt/kit';
2
2
  import { resolvePackageJSON, readPackageJSON } from 'pkg-types';
3
3
  import { lt } from 'semver';
4
- import { resolvePath } from 'mlly';
5
4
  import { join, resolve, relative } from 'pathe';
6
5
  import { existsSync } from 'node:fs';
7
6
  import fsp from 'node:fs/promises';
@@ -11,15 +10,14 @@ import { asyncWalk, walk } from 'estree-walker';
11
10
  import { joinURL, parseURL, parseQuery, hasProtocol } from 'ufo';
12
11
  import { hash } from 'ohash';
13
12
  import { colors } from 'consola/utils';
13
+ import { fetch, $fetch } from 'ofetch';
14
14
  import { lazyEventHandler, eventHandler, createError } from 'h3';
15
- import { fetch as fetch$1 } from 'ofetch';
16
15
  import { defu } from 'defu';
17
16
  import { createStorage } from 'unstorage';
18
17
  import fsDriver from 'unstorage/drivers/fs-lite';
19
18
  import { pathToFileURL } from 'node:url';
20
19
  import { isCI, provider } from 'std-env';
21
20
  import { registry } from './registry.mjs';
22
- import 'third-party-capital';
23
21
 
24
22
  const DEVTOOLS_UI_ROUTE = "/__nuxt-scripts";
25
23
  const DEVTOOLS_UI_LOCAL_PORT = 3300;
@@ -91,7 +89,7 @@ function setupPublicAssetStrategy(options = {}) {
91
89
  const key = `bundle:${filename}`;
92
90
  let res = await storage.getItemRaw(key);
93
91
  if (!res) {
94
- res = await fetch$1(scriptDescriptor.src).then((r) => r.arrayBuffer()).then((r) => Buffer.from(r));
92
+ res = await fetch(scriptDescriptor.src).then((r) => r.arrayBuffer()).then((r) => Buffer.from(r));
95
93
  await storage.setItemRaw(key, res);
96
94
  }
97
95
  return res;
@@ -164,7 +162,7 @@ function normalizeScriptData(src, assetsBaseURL = "/_scripts") {
164
162
  }
165
163
  return { url: src };
166
164
  }
167
- async function downloadScript(opts, renderedScript) {
165
+ async function downloadScript(opts, renderedScript, fetchOptions) {
168
166
  const { src, url, filename } = opts;
169
167
  if (src === url || !filename) {
170
168
  return;
@@ -186,15 +184,15 @@ async function downloadScript(opts, renderedScript) {
186
184
  }
187
185
  let encoding;
188
186
  let size = 0;
189
- res = await fetch(src).then((r) => {
187
+ res = await $fetch.raw(src, { ...fetchOptions, responseType: "arrayBuffer" }).then(async (r) => {
190
188
  if (!r.ok) {
191
189
  throw new Error(`Failed to fetch ${src}`);
192
190
  }
193
191
  encoding = r.headers.get("content-encoding");
194
192
  const contentLength = r.headers.get("content-length");
195
193
  size = contentLength ? Number(contentLength) / 1024 : 0;
196
- return r.arrayBuffer();
197
- }).then((r) => Buffer.from(r));
194
+ return Buffer.from(r._data || await r.arrayBuffer());
195
+ });
198
196
  await storage.setItemRaw(`bundle:${filename}`, res);
199
197
  size = size || res.length / 1024;
200
198
  logger.info(`Downloading script ${colors.gray(`${src} \u2192 ${filename} (${size.toFixed(2)} kB ${encoding})`)}`);
@@ -325,7 +323,7 @@ function NuxtScriptBundleTransformer(options = {
325
323
  const { url: _url, filename } = normalizeScriptData(src, options.assetsBaseURL);
326
324
  let url = _url;
327
325
  try {
328
- await downloadScript({ src, url, filename }, renderedScript);
326
+ await downloadScript({ src, url, filename }, renderedScript, options.fetchOptions);
329
327
  } catch (e) {
330
328
  if (options.fallbackOnSrcOnBundleFail) {
331
329
  logger.warn(`[Nuxt Scripts: Bundle Transformer] Failed to bundle ${src}. Fallback to remote loading.`);
@@ -336,9 +334,9 @@ function NuxtScriptBundleTransformer(options = {
336
334
  }
337
335
  if (src === url) {
338
336
  if (src && src.startsWith("/"))
339
- console.warn(`[Nuxt Scripts: Bundle Transformer] Relative scripts are already bundled. Skipping bundling for \`${src}\`.`);
337
+ logger.warn(`[Nuxt Scripts: Bundle Transformer] Relative scripts are already bundled. Skipping bundling for \`${src}\`.`);
340
338
  else
341
- console.warn(`[Nuxt Scripts: Bundle Transformer] Failed to bundle ${src}.`);
339
+ logger.warn(`[Nuxt Scripts: Bundle Transformer] Failed to bundle ${src}.`);
342
340
  }
343
341
  if (scriptSrcNode) {
344
342
  s.overwrite(scriptSrcNode.start, scriptSrcNode.end, `'${url}'`);
@@ -546,6 +544,16 @@ const module = defineNuxtModule({
546
544
  defaultScriptOptions: {
547
545
  trigger: "onNuxtReady"
548
546
  },
547
+ assets: {
548
+ fetchOptions: {
549
+ retry: 3,
550
+ // Specifies the number of retry attempts for failed fetches.
551
+ retryDelay: 2e3,
552
+ // Specifies the delay (in milliseconds) between retry attempts.
553
+ timeout: 15e3
554
+ // Configures the maximum time (in milliseconds) allowed for each fetch attempt.
555
+ }
556
+ },
549
557
  enabled: true,
550
558
  debug: false
551
559
  },
@@ -553,8 +561,7 @@ const module = defineNuxtModule({
553
561
  const { resolve } = createResolver(import.meta.url);
554
562
  const { version, name } = await readPackageJSON(resolve("../package.json"));
555
563
  nuxt.options.alias["#nuxt-scripts-validator"] = resolve(`./runtime/validation/${nuxt.options.dev || nuxt.options._prepare ? "valibot" : "mock"}`);
556
- nuxt.options.alias["#nuxt-scripts"] = resolve("./runtime/types");
557
- nuxt.options.alias["#nuxt-scripts-utils"] = resolve("./runtime/utils");
564
+ nuxt.options.alias["#nuxt-scripts"] = resolve("./runtime");
558
565
  logger.level = config.debug || nuxt.options.debug ? 4 : 3;
559
566
  if (!config.enabled) {
560
567
  logger.debug("The module is disabled, skipping setup.");
@@ -569,9 +576,6 @@ const module = defineNuxtModule({
569
576
  logger.warn(`Nuxt Scripts recommends Unhead >= 1.11.5, you are using v${unheadVersion}. Please run \`nuxi upgrade --clean\` to upgrade...`);
570
577
  }
571
578
  }
572
- nuxt.options.alias["#nuxt-scripts-validator"] = resolve(`./runtime/validation/${nuxt.options.dev || nuxt.options._prepare ? "valibot" : "mock"}`);
573
- nuxt.options.alias["#nuxt-scripts"] = resolve("./runtime/types");
574
- nuxt.options.alias["#nuxt-scripts-utils"] = resolve("./runtime/utils");
575
579
  nuxt.options.runtimeConfig["nuxt-scripts"] = { version };
576
580
  nuxt.options.runtimeConfig.public["nuxt-scripts"] = {
577
581
  // expose for devtools
@@ -603,17 +607,17 @@ const module = defineNuxtModule({
603
607
  let types = `
604
608
  declare module '#app' {
605
609
  interface NuxtApp {
606
- $scripts: Record<${[...Object.keys(config.globals || {}), ...Object.keys(config.registry || {})].map((k) => `'${k}'`).concat(["string"]).join(" | ")}, Pick<(import('#nuxt-scripts').NuxtAppScript), '$script'> & Record<string, any>>
607
- _scripts: Record<string, (import('#nuxt-scripts').NuxtAppScript)>
610
+ $scripts: Record<${[...Object.keys(config.globals || {}), ...Object.keys(config.registry || {})].map((k) => `'${k}'`).concat(["string"]).join(" | ")}, (import('#nuxt-scripts/types').UseScriptContext<any>)>
611
+ _scripts: Record<string, (import('#nuxt-scripts/types').UseScriptContext<any>)>
608
612
  }
609
613
  interface RuntimeNuxtHooks {
610
- 'scripts:updated': (ctx: { scripts: Record<string, (import('#nuxt-scripts').NuxtAppScript)> }) => void | Promise<void>
614
+ 'scripts:updated': (ctx: { scripts: Record<string, (import('#nuxt-scripts/types').UseScriptContext<any>)> }) => void | Promise<void>
611
615
  }
612
616
  }
613
617
  `;
614
618
  if (newScripts.length) {
615
619
  types = `${types}
616
- declare module '#nuxt-scripts' {
620
+ declare module '#nuxt-scripts/types' {
617
621
  type NuxtUseScriptOptions = Omit<import('${typesPath}').NuxtUseScriptOptions, 'use' | 'beforeInit'>
618
622
  interface ScriptRegistry {
619
623
  ${newScripts.map((i) => {
@@ -649,6 +653,7 @@ ${newScripts.map((i) => {
649
653
  },
650
654
  assetsBaseURL: config.assets?.prefix,
651
655
  fallbackOnSrcOnBundleFail: config.assets?.fallbackOnSrcOnBundleFail,
656
+ fetchOptions: config.assets?.fetchOptions,
652
657
  renderedScript
653
658
  }));
654
659
  nuxt.hooks.hook("build:done", async () => {
package/dist/registry.mjs CHANGED
@@ -1,5 +1,4 @@
1
1
  import { joinURL, withQuery, withBase } from 'ufo';
2
- import { GoogleTagManager, GoogleAnalytics } from 'third-party-capital';
3
2
 
4
3
  const registry = (resolve) => {
5
4
  resolve = resolve || ((s) => s);
@@ -84,6 +83,16 @@ const registry = (resolve) => {
84
83
  from: resolve("./runtime/registry/x-pixel")
85
84
  }
86
85
  },
86
+ {
87
+ label: "Snapchat Pixel",
88
+ src: "https://sc-static.net/scevent.min.js",
89
+ category: "tracking",
90
+ logo: '<svg width="50" height="50" viewBox="147.353 39.286 514.631 514.631" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"><path style="fill:#FFFC00;" d="M147.553,423.021v0.023c0.308,11.424,0.403,22.914,2.33,34.268 c2.042,12.012,4.961,23.725,10.53,34.627c7.529,14.756,17.869,27.217,30.921,37.396c9.371,7.309,19.608,13.111,30.94,16.771 c16.524,5.33,33.571,7.373,50.867,7.473c10.791,0.068,21.575,0.338,32.37,0.293c78.395-0.33,156.792,0.566,235.189-0.484 c10.403-0.141,20.636-1.41,30.846-3.277c19.569-3.582,36.864-11.932,51.661-25.133c17.245-15.381,28.88-34.205,34.132-56.924 c3.437-14.85,4.297-29.916,4.444-45.035v-3.016c0-1.17-0.445-256.892-0.486-260.272c-0.115-9.285-0.799-18.5-2.54-27.636 c-2.117-11.133-5.108-21.981-10.439-32.053c-5.629-10.641-12.68-20.209-21.401-28.57c-13.359-12.81-28.775-21.869-46.722-26.661 c-16.21-4.327-32.747-5.285-49.405-5.27c-0.027-0.004-0.09-0.173-0.094-0.255H278.56c-0.005,0.086-0.008,0.172-0.014,0.255 c-9.454,0.173-18.922,0.102-28.328,1.268c-10.304,1.281-20.509,3.21-30.262,6.812c-15.362,5.682-28.709,14.532-40.11,26.347 c-12.917,13.386-22.022,28.867-26.853,46.894c-4.31,16.084-5.248,32.488-5.271,49.008"/><path style="fill:#FFFFFF;" d="M407.001,473.488c-1.068,0-2.087-0.039-2.862-0.076c-0.615,0.053-1.25,0.076-1.886,0.076 c-22.437,0-37.439-10.607-50.678-19.973c-9.489-6.703-18.438-13.031-28.922-14.775c-5.149-0.854-10.271-1.287-15.22-1.287 c-8.917,0-15.964,1.383-21.109,2.389c-3.166,0.617-5.896,1.148-8.006,1.148c-2.21,0-4.895-0.49-6.014-4.311 c-0.887-3.014-1.523-5.934-2.137-8.746c-1.536-7.027-2.65-11.316-5.281-11.723c-28.141-4.342-44.768-10.738-48.08-18.484 c-0.347-0.814-0.541-1.633-0.584-2.443c-0.129-2.309,1.501-4.334,3.777-4.711c22.348-3.68,42.219-15.492,59.064-35.119 c13.049-15.195,19.457-29.713,20.145-31.316c0.03-0.072,0.065-0.148,0.101-0.217c3.247-6.588,3.893-12.281,1.926-16.916 c-3.626-8.551-15.635-12.361-23.58-14.882c-1.976-0.625-3.845-1.217-5.334-1.808c-7.043-2.782-18.626-8.66-17.083-16.773 c1.124-5.916,8.949-10.036,15.273-10.036c1.756,0,3.312,0.308,4.622,0.923c7.146,3.348,13.575,5.045,19.104,5.045 c6.876,0,10.197-2.618,11-3.362c-0.198-3.668-0.44-7.546-0.674-11.214c0-0.004-0.005-0.048-0.005-0.048 c-1.614-25.675-3.627-57.627,4.546-75.95c24.462-54.847,76.339-59.112,91.651-59.112c0.408,0,6.674-0.062,6.674-0.062 c0.283-0.005,0.59-0.009,0.908-0.009c15.354,0,67.339,4.27,91.816,59.15c8.173,18.335,6.158,50.314,4.539,76.016l-0.076,1.23 c-0.222,3.49-0.427,6.793-0.6,9.995c0.756,0.696,3.795,3.096,9.978,3.339c5.271-0.202,11.328-1.891,17.998-5.014 c2.062-0.968,4.345-1.169,5.895-1.169c2.343,0,4.727,0.456,6.714,1.285l0.106,0.041c5.66,2.009,9.367,6.024,9.447,10.242 c0.071,3.932-2.851,9.809-17.223,15.485c-1.472,0.583-3.35,1.179-5.334,1.808c-7.952,2.524-19.951,6.332-23.577,14.878 c-1.97,4.635-1.322,10.326,1.926,16.912c0.036,0.072,0.067,0.145,0.102,0.221c1,2.344,25.205,57.535,79.209,66.432 c2.275,0.379,3.908,2.406,3.778,4.711c-0.048,0.828-0.248,1.656-0.598,2.465c-3.289,7.703-19.915,14.09-48.064,18.438 c-2.642,0.408-3.755,4.678-5.277,11.668c-0.63,2.887-1.271,5.717-2.146,8.691c-0.819,2.797-2.641,4.164-5.567,4.164h-0.441 c-1.905,0-4.604-0.346-8.008-1.012c-5.95-1.158-12.623-2.236-21.109-2.236c-4.948,0-10.069,0.434-15.224,1.287 c-10.473,1.744-19.421,8.062-28.893,14.758C444.443,462.88,429.436,473.488,407.001,473.488"/><path style="fill:#020202;" d="M408.336,124.235c14.455,0,64.231,3.883,87.688,56.472c7.724,17.317,5.744,48.686,4.156,73.885 c-0.248,3.999-0.494,7.875-0.694,11.576l-0.084,1.591l1.062,1.185c0.429,0.476,4.444,4.672,13.374,5.017l0.144,0.008l0.15-0.003 c5.904-0.225,12.554-2.059,19.776-5.442c1.064-0.498,2.48-0.741,3.978-0.741c1.707,0,3.521,0.321,5.017,0.951l0.226,0.09 c3.787,1.327,6.464,3.829,6.505,6.093c0.022,1.28-0.935,5.891-14.359,11.194c-1.312,0.518-3.039,1.069-5.041,1.7 c-8.736,2.774-21.934,6.96-26.376,17.427c-2.501,5.896-1.816,12.854,2.034,20.678c1.584,3.697,26.52,59.865,82.631,69.111 c-0.011,0.266-0.079,0.557-0.229,0.9c-0.951,2.24-6.996,9.979-44.612,15.783c-5.886,0.902-7.328,7.5-9,15.17 c-0.604,2.746-1.218,5.518-2.062,8.381c-0.258,0.865-0.306,0.914-1.233,0.914c-0.128,0-0.278,0-0.442,0 c-1.668,0-4.2-0.346-7.135-0.922c-5.345-1.041-12.647-2.318-21.982-2.318c-5.21,0-10.577,0.453-15.962,1.352 c-11.511,1.914-20.872,8.535-30.786,15.543c-13.314,9.408-27.075,19.143-48.071,19.143c-0.917,0-1.812-0.031-2.709-0.076 l-0.236-0.01l-0.237,0.018c-0.515,0.045-1.034,0.068-1.564,0.068c-20.993,0-34.76-9.732-48.068-19.143 c-9.916-7.008-19.282-13.629-30.791-15.543c-5.38-0.896-10.752-1.352-15.959-1.352c-9.333,0-16.644,1.428-21.978,2.471 c-2.935,0.574-5.476,1.066-7.139,1.066c-1.362,0-1.388-0.08-1.676-1.064c-0.844-2.865-1.461-5.703-2.062-8.445 c-1.676-7.678-3.119-14.312-9.002-15.215c-37.613-5.809-43.659-13.561-44.613-15.795c-0.149-0.352-0.216-0.652-0.231-0.918 c56.11-9.238,81.041-65.408,82.63-69.119c3.857-7.818,4.541-14.775,2.032-20.678c-4.442-10.461-17.638-14.653-26.368-17.422 c-2.007-0.635-3.735-1.187-5.048-1.705c-11.336-4.479-14.823-8.991-14.305-11.725c0.601-3.153,6.067-6.359,10.837-6.359 c1.072,0,2.012,0.173,2.707,0.498c7.747,3.631,14.819,5.472,21.022,5.472c9.751,0,14.091-4.537,14.557-5.055l1.057-1.182 l-0.085-1.583c-0.197-3.699-0.44-7.574-0.696-11.565c-1.583-25.205-3.563-56.553,4.158-73.871 c23.37-52.396,72.903-56.435,87.525-56.435c0.36,0,6.717-0.065,6.717-0.065C407.744,124.239,408.033,124.235,408.336,124.235 M408.336,115.197h-0.017c-0.333,0-0.646,0-0.944,0.004c-2.376,0.024-6.282,0.062-6.633,0.066c-8.566,0-25.705,1.21-44.115,9.336 c-10.526,4.643-19.994,10.921-28.14,18.66c-9.712,9.221-17.624,20.59-23.512,33.796c-8.623,19.336-6.576,51.905-4.932,78.078 l0.006,0.041c0.176,2.803,0.361,5.73,0.53,8.582c-1.265,0.581-3.316,1.194-6.339,1.194c-4.864,0-10.648-1.555-17.187-4.619 c-1.924-0.896-4.12-1.349-6.543-1.349c-3.893,0-7.997,1.146-11.557,3.239c-4.479,2.63-7.373,6.347-8.159,10.468 c-0.518,2.726-0.493,8.114,5.492,13.578c3.292,3.008,8.128,5.782,14.37,8.249c1.638,0.645,3.582,1.261,5.641,1.914 c7.145,2.271,17.959,5.702,20.779,12.339c1.429,3.365,0.814,7.793-1.823,13.145c-0.069,0.146-0.138,0.289-0.201,0.439 c-0.659,1.539-6.807,15.465-19.418,30.152c-7.166,8.352-15.059,15.332-23.447,20.752c-10.238,6.617-21.316,10.943-32.923,12.855 c-4.558,0.748-7.813,4.809-7.559,9.424c0.078,1.33,0.39,2.656,0.931,3.939c0.004,0.008,0.009,0.016,0.013,0.023 c1.843,4.311,6.116,7.973,13.063,11.203c8.489,3.943,21.185,7.26,37.732,9.855c0.836,1.59,1.704,5.586,2.305,8.322 c0.629,2.908,1.285,5.898,2.22,9.074c1.009,3.441,3.626,7.553,10.349,7.553c2.548,0,5.478-0.574,8.871-1.232 c4.969-0.975,11.764-2.305,20.245-2.305c4.702,0,9.575,0.414,14.48,1.229c9.455,1.574,17.606,7.332,27.037,14 c13.804,9.758,29.429,20.803,53.302,20.803c0.651,0,1.304-0.021,1.949-0.066c0.789,0.037,1.767,0.066,2.799,0.066 c23.88,0,39.501-11.049,53.29-20.799l0.022-0.02c9.433-6.66,17.575-12.41,27.027-13.984c4.903-0.814,9.775-1.229,14.479-1.229 c8.102,0,14.517,1.033,20.245,2.15c3.738,0.736,6.643,1.09,8.872,1.09l0.218,0.004h0.226c4.917,0,8.53-2.699,9.909-7.422 c0.916-3.109,1.57-6.029,2.215-8.986c0.562-2.564,1.46-6.674,2.296-8.281c16.558-2.6,29.249-5.91,37.739-9.852 c6.931-3.215,11.199-6.873,13.053-11.166c0.556-1.287,0.881-2.621,0.954-3.979c0.261-4.607-2.999-8.676-7.56-9.424 c-51.585-8.502-74.824-61.506-75.785-63.758c-0.062-0.148-0.132-0.295-0.205-0.438c-2.637-5.354-3.246-9.777-1.816-13.148 c2.814-6.631,13.621-10.062,20.771-12.332c2.07-0.652,4.021-1.272,5.646-1.914c7.039-2.78,12.07-5.796,15.389-9.221 c3.964-4.083,4.736-7.995,4.688-10.555c-0.121-6.194-4.856-11.698-12.388-14.393c-2.544-1.052-5.445-1.607-8.399-1.607 c-2.011,0-4.989,0.276-7.808,1.592c-6.035,2.824-11.441,4.368-16.082,4.588c-2.468-0.125-4.199-0.66-5.32-1.171 c0.141-2.416,0.297-4.898,0.458-7.486l0.067-1.108c1.653-26.19,3.707-58.784-4.92-78.134c-5.913-13.253-13.853-24.651-23.604-33.892 c-8.178-7.744-17.678-14.021-28.242-18.661C434.052,116.402,416.914,115.197,408.336,115.197"/><rect x="147.553" y="39.443" style="fill:none;" width="514.231" height="514.23"/></svg>',
91
+ import: {
92
+ name: "useScriptSnapchatPixel",
93
+ from: resolve("./runtime/registry/snapchat-pixel")
94
+ }
95
+ },
87
96
  // ads
88
97
  {
89
98
  label: "Google Adsense",
@@ -230,11 +239,7 @@ const registry = (resolve) => {
230
239
  },
231
240
  logo: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><path fill="#8AB4F8" d="m150.262 245.516l-44.437-43.331l95.433-97.454l46.007 45.091z"/><path fill="#4285F4" d="M150.45 53.938L106.176 8.731L9.36 104.629c-12.48 12.48-12.48 32.713 0 45.207l95.36 95.986l45.09-42.182l-72.654-76.407z"/><path fill="#8AB4F8" d="m246.625 105.37l-96-96c-12.494-12.494-32.756-12.494-45.25 0c-12.495 12.495-12.495 32.757 0 45.252l96 96c12.494 12.494 32.756 12.494 45.25 0c12.495-12.495 12.495-32.757 0-45.251"/><circle cx="127.265" cy="224.731" r="31.273" fill="#246FDB"/></svg>`,
232
241
  scriptBundling(options) {
233
- const data = GoogleTagManager(options);
234
- const mainScript = data.scripts?.find(({ key }) => key === "gtag");
235
- if (mainScript && "url" in mainScript && mainScript.url)
236
- return mainScript.url;
237
- return false;
242
+ return withQuery("https://www.googletagmanager.com/gtag/js", { id: options?.id, l: options?.l });
238
243
  }
239
244
  },
240
245
  {
@@ -246,11 +251,16 @@ const registry = (resolve) => {
246
251
  },
247
252
  logo: `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="192px" height="192px" viewBox="0 0 192 192" enable-background="new 0 0 192 192" xml:space="preserve"><rect x="0" y="0" fill="none" width="192" height="192"/><g><g><path fill="#F9AB00" d="M130,29v132c0,14.77,10.19,23,21,23c10,0,21-7,21-23V30c0-13.54-10-22-21-22S130,17.33,130,29z"/></g><g><path fill="#E37400" d="M75,96v65c0,14.77,10.19,23,21,23c10,0,21-7,21-23V97c0-13.54-10-22-21-22S75,84.33,75,96z"/></g><g><circle fill="#E37400" cx="41" cy="163" r="21"/></g></g></svg>`,
248
253
  scriptBundling(options) {
249
- const data = GoogleAnalytics(options);
250
- const mainScript = data.scripts?.find(({ key }) => key === "gtag");
251
- if (mainScript && "url" in mainScript && mainScript.url)
252
- return mainScript.url;
253
- return false;
254
+ return withQuery("https://www.googletagmanager.com/gtag/js", { id: options?.id, l: options?.l });
255
+ }
256
+ },
257
+ {
258
+ label: "Umami Analytics",
259
+ category: "analytics",
260
+ logo: `<svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 24 24"><path fill="currentColor" d="M2.203 8.611H.857a.845.845 0 0 0-.841.841v.858a13 13 0 0 0-.016.6c0 6.627 5.373 12 12 12c6.527 0 11.837-5.212 11.996-11.701c0-.025.004-.05.004-.075V9.452a.845.845 0 0 0-.841-.841h-1.346c-1.159-4.329-5.112-7.521-9.805-7.521S3.363 4.282 2.203 8.611m18.444 0H3.37c1.127-3.702 4.57-6.399 8.638-6.399c4.069 0 7.512 2.697 8.639 6.399"/></svg>`,
261
+ import: {
262
+ name: "useScriptUmamiAnalytics",
263
+ from: resolve("./runtime/registry/umami-analytics")
254
264
  }
255
265
  }
256
266
  ];
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <div class="sr-only" aria-label="Loading..." role="status" />
3
+ </template>
4
+
5
+ <style scoped>
6
+ .sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0}
7
+ </style>
@@ -1,12 +1,13 @@
1
1
  <script setup lang="ts">
2
2
  import { withQuery } from 'ufo'
3
+ import { computed, onBeforeUnmount, onMounted, ref } from 'vue'
3
4
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
4
- import { computed, onBeforeUnmount, onMounted, ref } from '#imports'
5
- import type { ElementScriptTrigger } from '#nuxt-scripts'
5
+ import type { ElementScriptTrigger } from '#nuxt-scripts/types'
6
6
 
7
7
  const props = defineProps<{
8
8
  serve: string
9
9
  placement: string
10
+ format: string
10
11
  /**
11
12
  * Defines the trigger event to load the script.
12
13
  */
@@ -29,19 +30,23 @@ function loadCarbon() {
29
30
  }
30
31
  status.value = 'loading'
31
32
  const script = document.createElement('script')
32
- script.setAttribute('type', 'text/javascript')
33
33
  script.setAttribute('src', withQuery('https://cdn.carbonads.com/carbon.js', {
34
34
  serve: props.serve,
35
35
  placement: props.placement,
36
+ format: props.format,
36
37
  }))
37
38
  script.setAttribute('id', attrId)
38
39
  script.onerror = (err) => {
39
- status.value = 'error'
40
- emit('error', err)
40
+ if (status.value !== 'error') {
41
+ status.value = 'error'
42
+ emit('error', err)
43
+ }
41
44
  }
42
45
  script.onload = () => {
43
- status.value = 'loaded'
44
- emit('ready', script)
46
+ if (status.value !== 'loaded') {
47
+ status.value = 'loaded'
48
+ emit('ready', script)
49
+ }
45
50
  }
46
51
  carbonadsEl.value.appendChild(script)
47
52
  }
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
+ import { ref, onMounted, onBeforeUnmount, watch, computed } from 'vue'
2
3
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
3
4
  import { useScriptCrisp } from '../registry/crisp'
4
- import { ref, onMounted, onBeforeUnmount, watch, computed } from '#imports'
5
- import type { ElementScriptTrigger } from '#nuxt-scripts'
5
+ import type { ElementScriptTrigger } from '#nuxt-scripts/types'
6
6
 
7
7
  const props = withDefaults(defineProps<{
8
8
  /**
@@ -1,13 +1,16 @@
1
1
  <script setup lang="ts">
2
+ import { computed, onMounted, ref, watch } from 'vue'
3
+ import { callOnce } from 'nuxt/app'
2
4
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
3
5
  import { useScriptGoogleAdsense } from '../registry/google-adsense'
4
- import { callOnce, computed, onMounted, ref, watch } from '#imports'
5
- import type { ElementScriptTrigger } from '#nuxt-scripts'
6
+ import { scriptRuntimeConfig } from '../utils'
7
+ import type { ElementScriptTrigger } from '#nuxt-scripts/types'
6
8
 
7
9
  const props = withDefaults(defineProps<{
8
10
  dataAdClient: string
9
11
  dataAdSlot: string
10
- dataAdFormat?: 'auto'
12
+ dataAdFormat?: 'auto' | 'rectangle' | 'vertical' | 'horizontal' | 'fluid' | 'autorelaxed'
13
+ dataAdLayout?: 'in-article' | 'in-feed' | 'fixed'
11
14
  dataFullWidthResponsive?: boolean
12
15
  /**
13
16
  * Defines the trigger event to load the script.
@@ -15,6 +18,7 @@ const props = withDefaults(defineProps<{
15
18
  trigger?: ElementScriptTrigger
16
19
  }>(), {
17
20
  dataFullWidthResponsive: true,
21
+ dataAdFormat: undefined, // Preserve previous behavior
18
22
  })
19
23
 
20
24
  const emits = defineEmits<{
@@ -26,8 +30,13 @@ const emits = defineEmits<{
26
30
  const rootEl = ref(null)
27
31
  const trigger = useScriptTriggerElement({ trigger: props.trigger, el: rootEl })
28
32
 
33
+ const scriptConfig = scriptRuntimeConfig('googleAdsense')
34
+ const addClient = computed(() => {
35
+ return props.dataAdClient || scriptConfig?.client
36
+ })
37
+
29
38
  const instance = useScriptGoogleAdsense({
30
- client: props.dataAdClient,
39
+ client: addClient.value,
31
40
  scriptOptions: {
32
41
  trigger,
33
42
  },
@@ -69,9 +78,10 @@ const rootAttrs = computed(() => {
69
78
  ref="rootEl"
70
79
  class="adsbygoogle"
71
80
  style="display: block;"
72
- :data-ad-client="dataAdClient"
81
+ :data-ad-client="addClient"
73
82
  :data-ad-slot="dataAdSlot"
74
83
  :data-ad-format="dataAdFormat"
84
+ :data-ad-layout="dataAdLayout"
75
85
  :data-full-width-responsive="dataFullWidthResponsive"
76
86
  v-bind="rootAttrs"
77
87
  >
@@ -1,4 +1,7 @@
1
1
  <script lang="ts" setup>
2
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
+ // @ts-nocheck
4
+
2
5
  /// <reference types="google.maps" />
3
6
  import { computed, onBeforeUnmount, onMounted, ref, watch, toRaw } from 'vue'
4
7
  import type { HTMLAttributes, ImgHTMLAttributes, Ref, ReservedProps } from 'vue'
@@ -6,11 +9,12 @@ import { withQuery } from 'ufo'
6
9
  import type { QueryObject } from 'ufo'
7
10
  import { defu } from 'defu'
8
11
  import { hash } from 'ohash'
12
+ import { useHead } from '@unhead/vue'
9
13
  import type { ElementScriptTrigger } from '../types'
10
14
  import { scriptRuntimeConfig } from '../utils'
11
15
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
12
16
  import { useScriptGoogleMaps } from '../registry/google-maps'
13
- import { resolveComponent, useHead } from '#imports'
17
+ import ScriptAriaLoadingIndicator from './ScriptAriaLoadingIndicator.vue'
14
18
 
15
19
  interface PlaceholderOptions {
16
20
  width?: string | number
@@ -440,8 +444,6 @@ const rootAttrs = computed(() => {
440
444
  }) as HTMLAttributes
441
445
  })
442
446
 
443
- const ScriptLoadingIndicator = resolveComponent('ScriptLoadingIndicator')
444
-
445
447
  onBeforeUnmount(async () => {
446
448
  await Promise.all([...mapMarkers.value.entries()].map(([,marker]) => resetMapMarkerMap(marker)))
447
449
  mapMarkers.value.clear()
@@ -458,7 +460,7 @@ onBeforeUnmount(async () => {
458
460
  <img v-bind="placeholderAttrs">
459
461
  </slot>
460
462
  <slot v-if="status !== 'awaitingLoad' && !ready" name="loading">
461
- <ScriptLoadingIndicator color="black" />
463
+ <ScriptAriaLoadingIndicator />
462
464
  </slot>
463
465
  <slot v-if="status === 'awaitingLoad'" name="awaitingLoad" />
464
466
  <slot v-else-if="status === 'error'" name="error" />
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
+ import { ref, onMounted, watch, onBeforeUnmount, computed } from 'vue'
2
3
  import { useScriptIntercom } from '../registry/intercom'
3
4
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
4
- import { ref, onMounted, watch, onBeforeUnmount, computed } from '#imports'
5
- import type { ElementScriptTrigger } from '#nuxt-scripts'
5
+ import type { ElementScriptTrigger } from '#nuxt-scripts/types'
6
6
 
7
7
  const props = withDefaults(defineProps<{
8
8
  appId: string
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" setup>
2
+ import { computed, onMounted, ref } from 'vue'
2
3
  import type { ElementScriptTrigger } from '../types'
3
4
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
4
5
  import { useScriptLemonSqueezy } from '../registry/lemon-squeezy'
5
6
  import type { LemonSqueezyEventPayload } from '../registry/lemon-squeezy'
6
- import { computed, onMounted, ref } from '#imports'
7
7
 
8
8
  const props = withDefaults(defineProps<{
9
9
  trigger?: ElementScriptTrigger
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { computed } from '#imports'
2
+ import { computed } from 'vue'
3
3
 
4
4
  const props = withDefaults(defineProps<{
5
5
  color?: string
@@ -1,9 +1,8 @@
1
1
  <script setup lang="ts">
2
- import { ref } from 'vue'
2
+ import { ref, computed, onBeforeUnmount, onMounted, watch } from 'vue'
3
3
  import type { ElementScriptTrigger } from '../types'
4
4
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
5
5
  import { useScript } from '../composables/useScript'
6
- import { computed, onBeforeUnmount, onMounted, watch } from '#imports'
7
6
 
8
7
  const props = withDefaults(defineProps<{
9
8
  trigger?: ElementScriptTrigger
@@ -1,12 +1,17 @@
1
1
  <script setup lang="ts">
2
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
+ // @ts-nocheck
4
+
2
5
  /// <reference types="vimeo__player" />
3
6
  import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'
4
7
  import type { HTMLAttributes, ImgHTMLAttributes } from 'vue'
5
8
  import { defu } from 'defu'
9
+ import { useAsyncData } from 'nuxt/app'
10
+ import { useHead } from '@unhead/vue'
6
11
  import type { ElementScriptTrigger } from '../types'
7
12
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
8
13
  import { useScriptVimeoPlayer } from '../registry/vimeo-player'
9
- import { useAsyncData, useHead } from '#imports'
14
+ import ScriptAriaLoadingIndicator from './ScriptAriaLoadingIndicator.vue'
10
15
 
11
16
  interface VimeoOptions {
12
17
  // copied from @types/vimeo__player
@@ -237,7 +242,7 @@ const rootAttrs = computed(() => {
237
242
  'role': 'application',
238
243
  'style': {
239
244
  maxWidth: '100%',
240
- width: `${width.value}px`,
245
+ width: `auto`,
241
246
  height: 'auto',
242
247
  aspectRatio: `16/9`,
243
248
  position: 'relative',
@@ -273,7 +278,7 @@ onBeforeUnmount(() => player?.unload())
273
278
  <img v-if="placeholder" v-bind="placeholderAttrs">
274
279
  </slot>
275
280
  <slot v-if="status === 'loading'" name="loading">
276
- <ScriptLoadingIndicator color="white" />
281
+ <ScriptAriaLoadingIndicator color="white" />
277
282
  </slot>
278
283
  <slot v-if="status === 'awaitingLoad'" name="awaitingLoad" />
279
284
  <slot v-else-if="status === 'error'" name="error" />
@@ -1,12 +1,30 @@
1
1
  <script setup lang="ts">
2
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
+ // @ts-nocheck
4
+
2
5
  /// <reference types="youtube" />
3
6
  import { computed, onMounted, ref, watch } from 'vue'
4
7
  import type { HTMLAttributes, ImgHTMLAttributes, Ref } from 'vue'
5
8
  import { defu } from 'defu'
9
+ import { useHead } from '@unhead/vue'
6
10
  import type { ElementScriptTrigger } from '../types'
7
11
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
8
12
  import { useScriptYouTubePlayer } from '../registry/youtube-player'
9
- import { useHead } from '#imports'
13
+ import ScriptAriaLoadingIndicator from './ScriptAriaLoadingIndicator.vue'
14
+
15
+ export type YoutubeThumbnailSize =
16
+ // 120x90
17
+ '1' | '2' | '3' | 'default' |
18
+ // 320x180
19
+ 'mq1' | 'mq2' | 'mq3' | 'mqdefault' |
20
+ // 480x360
21
+ '0' | 'hq1' | 'hq2' | 'hq3' | 'hqdefault' |
22
+ // 640x480
23
+ 'sd1' | 'sd2' | 'sd3' | 'sddefault' |
24
+ // 1280x720
25
+ 'hq720' |
26
+ // 1920x1080
27
+ 'maxresdefault'
10
28
 
11
29
  const props = withDefaults(defineProps<{
12
30
  placeholderAttrs?: ImgHTMLAttributes
@@ -17,12 +35,24 @@ const props = withDefaults(defineProps<{
17
35
  playerVars?: YT.PlayerVars
18
36
  width?: number
19
37
  height?: number
38
+ /**
39
+ * Whether to use youtube-nocookie.com for embedding.
40
+ *
41
+ * @default false
42
+ */
43
+ cookies?: boolean
44
+ playerOptions?: YT.PlayerOptions
45
+ thumbnailSize?: YoutubeThumbnailSize
46
+ webp?: boolean
20
47
  }>(), {
48
+ cookies: false,
21
49
  trigger: 'mousedown',
50
+ thumbnailSize: 'hq720',
51
+ webp: true,
22
52
  // @ts-expect-error untyped
23
53
  playerVars: { autoplay: 0, playsinline: 1 },
24
54
  width: 640,
25
- height: 480,
55
+ height: 360,
26
56
  })
27
57
 
28
58
  const emits = defineEmits<{
@@ -70,7 +100,9 @@ onMounted(() => {
70
100
  resolve()
71
101
  })
72
102
  player.value = new YT.Player(youtubeEl.value, {
103
+ host: !props.cookies ? 'https://www.youtube-nocookie.com' : 'https://www.youtube.com',
73
104
  ...props,
105
+ ...props.playerOptions,
74
106
  events: Object.fromEntries(events.map(event => [event, (e: any) => {
75
107
  const emitEventName = event.replace(/([A-Z])/g, '-$1').replace('on-', '').toLowerCase()
76
108
  // @ts-expect-error untyped
@@ -115,15 +147,15 @@ const rootAttrs = computed(() => {
115
147
  position: 'relative',
116
148
  backgroundColor: 'black',
117
149
  maxWidth: '100%',
118
- width: `${props.width}px`,
119
- height: 'auto',
120
150
  aspectRatio: `${props.width}/${props.height}`,
121
151
  },
122
152
  ...(trigger instanceof Promise ? trigger.ssrAttrs || {} : {}),
123
153
  }) as HTMLAttributes
124
154
  })
125
155
 
126
- const placeholder = computed(() => `https://i.ytimg.com/vi_webp/${props.videoId}/sddefault.webp`)
156
+ const fallbackPlaceHolder = computed(() => `https://i.ytimg.com/vi/${props.videoId}/hqdefault.jpg`)
157
+ const placeholder = computed(() => `https://i.ytimg.com/${props.webp ? 'vi_webp' : 'vi'}/${props.videoId}/${props.thumbnailSize}.${props.webp ? 'webp' : 'jpg'}`)
158
+ const isFallbackPlaceHolder = ref(false)
127
159
 
128
160
  if (import.meta.server) {
129
161
  // dns-prefetch https://i.vimeocdn.com
@@ -149,7 +181,7 @@ if (import.meta.server) {
149
181
 
150
182
  const placeholderAttrs = computed(() => {
151
183
  return defu(props.placeholderAttrs, {
152
- src: placeholder.value,
184
+ src: isFallbackPlaceHolder.value ? fallbackPlaceHolder.value : placeholder.value,
153
185
  alt: '',
154
186
  loading: props.aboveTheFold ? 'eager' : 'lazy',
155
187
  style: {
@@ -157,6 +189,12 @@ const placeholderAttrs = computed(() => {
157
189
  objectFit: 'contain',
158
190
  height: '100%',
159
191
  },
192
+ onLoad(payload) {
193
+ const img = payload.target as HTMLImageElement
194
+ if (img.naturalWidth === 120 && img.naturalHeight === 90) {
195
+ isFallbackPlaceHolder.value = true
196
+ }
197
+ },
160
198
  } satisfies ImgHTMLAttributes)
161
199
  })
162
200
  </script>
@@ -168,7 +206,7 @@ const placeholderAttrs = computed(() => {
168
206
  <img v-bind="placeholderAttrs">
169
207
  </slot>
170
208
  <slot v-if="status === 'loading'" name="loading">
171
- <ScriptLoadingIndicator />
209
+ <ScriptAriaLoadingIndicator />
172
210
  </slot>
173
211
  <slot v-if="status === 'awaitingLoad'" name="awaitingLoad" />
174
212
  <slot v-else-if="status === 'error'" name="error" />
@@ -1,4 +1,4 @@
1
1
  import type { UseScriptInput } from '@unhead/vue';
2
2
  import type { UseFunctionType } from '@unhead/schema';
3
- import type { NuxtUseScriptOptions, UseScriptContext } from '#nuxt-scripts';
3
+ import type { NuxtUseScriptOptions, UseScriptContext } from '#nuxt-scripts/types';
4
4
  export declare function useScript<T extends Record<symbol | string, any> = Record<symbol | string, any>, U = Record<symbol | string, any>>(input: UseScriptInput, options?: NuxtUseScriptOptions<T, U>): UseScriptContext<UseFunctionType<NuxtUseScriptOptions<T, U>, T>>;
@@ -1,9 +1,10 @@
1
1
  import { resolveScriptKey } from "unhead";
2
2
  import { defu } from "defu";
3
- import { useScript as _useScript } from "@unhead/vue";
3
+ import { useScript as _useScript, injectHead } from "@unhead/vue";
4
4
  import { parseURL } from "ufo";
5
+ import { onNuxtReady, useHead, useNuxtApp, useRuntimeConfig } from "nuxt/app";
6
+ import { reactive } from "vue";
5
7
  import { pick } from "../utils.js";
6
- import { injectHead, onNuxtReady, useHead, useNuxtApp, useRuntimeConfig, reactive } from "#imports";
7
8
  function useNuxtScriptRuntimeConfig() {
8
9
  return useRuntimeConfig().public["nuxt-scripts"];
9
10
  }
@@ -1,4 +1,4 @@
1
- import type { TrackedPage } from '#nuxt-scripts';
1
+ import type { TrackedPage } from '#nuxt-scripts/types';
2
2
  export declare function useScriptEventPage(onChange?: (payload: TrackedPage) => void): import("vue").Ref<{
3
3
  title?: string | undefined;
4
4
  path: string;
@@ -1,4 +1,6 @@
1
- import { injectHead, ref, useNuxtApp, useRoute } from "#imports";
1
+ import { injectHead } from "@unhead/vue";
2
+ import { useNuxtApp, useRoute } from "nuxt/app";
3
+ import { ref } from "vue";
2
4
  export function useScriptEventPage(onChange) {
3
5
  const nuxt = useNuxtApp();
4
6
  const route = useRoute();