@nuxt/scripts 0.9.5 → 0.10.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 (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/66990e06-bd43-4fcc-a366-b9ec546b2f39.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 +3 -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 +5 -3
  252. package/dist/runtime/components/ScriptYouTubePlayer.vue +42 -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.0",
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
  >
@@ -6,11 +6,12 @@ import { withQuery } from 'ufo'
6
6
  import type { QueryObject } from 'ufo'
7
7
  import { defu } from 'defu'
8
8
  import { hash } from 'ohash'
9
+ import { useHead } from '@unhead/vue'
9
10
  import type { ElementScriptTrigger } from '../types'
10
11
  import { scriptRuntimeConfig } from '../utils'
11
12
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
12
13
  import { useScriptGoogleMaps } from '../registry/google-maps'
13
- import { resolveComponent, useHead } from '#imports'
14
+ import ScriptAriaLoadingIndicator from './ScriptAriaLoadingIndicator.vue'
14
15
 
15
16
  interface PlaceholderOptions {
16
17
  width?: string | number
@@ -440,8 +441,6 @@ const rootAttrs = computed(() => {
440
441
  }) as HTMLAttributes
441
442
  })
442
443
 
443
- const ScriptLoadingIndicator = resolveComponent('ScriptLoadingIndicator')
444
-
445
444
  onBeforeUnmount(async () => {
446
445
  await Promise.all([...mapMarkers.value.entries()].map(([,marker]) => resetMapMarkerMap(marker)))
447
446
  mapMarkers.value.clear()
@@ -458,7 +457,7 @@ onBeforeUnmount(async () => {
458
457
  <img v-bind="placeholderAttrs">
459
458
  </slot>
460
459
  <slot v-if="status !== 'awaitingLoad' && !ready" name="loading">
461
- <ScriptLoadingIndicator color="black" />
460
+ <ScriptAriaLoadingIndicator />
462
461
  </slot>
463
462
  <slot v-if="status === 'awaitingLoad'" name="awaitingLoad" />
464
463
  <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
@@ -3,10 +3,12 @@
3
3
  import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'
4
4
  import type { HTMLAttributes, ImgHTMLAttributes } from 'vue'
5
5
  import { defu } from 'defu'
6
+ import { useAsyncData } from 'nuxt/app'
7
+ import { useHead } from '@unhead/vue'
6
8
  import type { ElementScriptTrigger } from '../types'
7
9
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
8
10
  import { useScriptVimeoPlayer } from '../registry/vimeo-player'
9
- import { useAsyncData, useHead } from '#imports'
11
+ import ScriptAriaLoadingIndicator from './ScriptAriaLoadingIndicator.vue'
10
12
 
11
13
  interface VimeoOptions {
12
14
  // copied from @types/vimeo__player
@@ -237,7 +239,7 @@ const rootAttrs = computed(() => {
237
239
  'role': 'application',
238
240
  'style': {
239
241
  maxWidth: '100%',
240
- width: `${width.value}px`,
242
+ width: `auto`,
241
243
  height: 'auto',
242
244
  aspectRatio: `16/9`,
243
245
  position: 'relative',
@@ -273,7 +275,7 @@ onBeforeUnmount(() => player?.unload())
273
275
  <img v-if="placeholder" v-bind="placeholderAttrs">
274
276
  </slot>
275
277
  <slot v-if="status === 'loading'" name="loading">
276
- <ScriptLoadingIndicator color="white" />
278
+ <ScriptAriaLoadingIndicator color="white" />
277
279
  </slot>
278
280
  <slot v-if="status === 'awaitingLoad'" name="awaitingLoad" />
279
281
  <slot v-else-if="status === 'error'" name="error" />
@@ -3,10 +3,25 @@
3
3
  import { computed, onMounted, ref, watch } from 'vue'
4
4
  import type { HTMLAttributes, ImgHTMLAttributes, Ref } from 'vue'
5
5
  import { defu } from 'defu'
6
+ import { useHead } from '@unhead/vue'
6
7
  import type { ElementScriptTrigger } from '../types'
7
8
  import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
8
9
  import { useScriptYouTubePlayer } from '../registry/youtube-player'
9
- import { useHead } from '#imports'
10
+ import ScriptAriaLoadingIndicator from './ScriptAriaLoadingIndicator.vue'
11
+
12
+ export type YoutubeThumbnailSize =
13
+ // 120x90
14
+ '1' | '2' | '3' | 'default' |
15
+ // 320x180
16
+ 'mq1' | 'mq2' | 'mq3' | 'mqdefault' |
17
+ // 480x360
18
+ '0' | 'hq1' | 'hq2' | 'hq3' | 'hqdefault' |
19
+ // 640x480
20
+ 'sd1' | 'sd2' | 'sd3' | 'sddefault' |
21
+ // 1280x720
22
+ 'hq720' |
23
+ // 1920x1080
24
+ 'maxresdefault'
10
25
 
11
26
  const props = withDefaults(defineProps<{
12
27
  placeholderAttrs?: ImgHTMLAttributes
@@ -17,12 +32,24 @@ const props = withDefaults(defineProps<{
17
32
  playerVars?: YT.PlayerVars
18
33
  width?: number
19
34
  height?: number
35
+ /**
36
+ * Whether to use youtube-nocookie.com for embedding.
37
+ *
38
+ * @default false
39
+ */
40
+ cookies?: boolean
41
+ playerOptions?: YT.PlayerOptions
42
+ thumbnailSize?: YoutubeThumbnailSize
43
+ webp?: boolean
20
44
  }>(), {
45
+ cookies: false,
21
46
  trigger: 'mousedown',
47
+ thumbnailSize: 'hq720',
48
+ webp: true,
22
49
  // @ts-expect-error untyped
23
50
  playerVars: { autoplay: 0, playsinline: 1 },
24
51
  width: 640,
25
- height: 480,
52
+ height: 360,
26
53
  })
27
54
 
28
55
  const emits = defineEmits<{
@@ -70,7 +97,9 @@ onMounted(() => {
70
97
  resolve()
71
98
  })
72
99
  player.value = new YT.Player(youtubeEl.value, {
100
+ host: !props.cookies ? 'https://www.youtube-nocookie.com' : 'https://www.youtube.com',
73
101
  ...props,
102
+ ...props.playerOptions,
74
103
  events: Object.fromEntries(events.map(event => [event, (e: any) => {
75
104
  const emitEventName = event.replace(/([A-Z])/g, '-$1').replace('on-', '').toLowerCase()
76
105
  // @ts-expect-error untyped
@@ -115,15 +144,15 @@ const rootAttrs = computed(() => {
115
144
  position: 'relative',
116
145
  backgroundColor: 'black',
117
146
  maxWidth: '100%',
118
- width: `${props.width}px`,
119
- height: 'auto',
120
147
  aspectRatio: `${props.width}/${props.height}`,
121
148
  },
122
149
  ...(trigger instanceof Promise ? trigger.ssrAttrs || {} : {}),
123
150
  }) as HTMLAttributes
124
151
  })
125
152
 
126
- const placeholder = computed(() => `https://i.ytimg.com/vi_webp/${props.videoId}/sddefault.webp`)
153
+ const fallbackPlaceHolder = computed(() => `https://i.ytimg.com/vi/${props.videoId}/hqdefault.jpg`)
154
+ const placeholder = computed(() => `https://i.ytimg.com/${props.webp ? 'vi_webp' : 'vi'}/${props.videoId}/${props.thumbnailSize}.${props.webp ? 'webp' : 'jpg'}`)
155
+ const isFallbackPlaceHolder = ref(false)
127
156
 
128
157
  if (import.meta.server) {
129
158
  // dns-prefetch https://i.vimeocdn.com
@@ -149,7 +178,7 @@ if (import.meta.server) {
149
178
 
150
179
  const placeholderAttrs = computed(() => {
151
180
  return defu(props.placeholderAttrs, {
152
- src: placeholder.value,
181
+ src: isFallbackPlaceHolder.value ? fallbackPlaceHolder.value : placeholder.value,
153
182
  alt: '',
154
183
  loading: props.aboveTheFold ? 'eager' : 'lazy',
155
184
  style: {
@@ -157,6 +186,12 @@ const placeholderAttrs = computed(() => {
157
186
  objectFit: 'contain',
158
187
  height: '100%',
159
188
  },
189
+ onLoad(payload) {
190
+ const img = payload.target as HTMLImageElement
191
+ if (img.naturalWidth === 120 && img.naturalHeight === 90) {
192
+ isFallbackPlaceHolder.value = true
193
+ }
194
+ },
160
195
  } satisfies ImgHTMLAttributes)
161
196
  })
162
197
  </script>
@@ -168,7 +203,7 @@ const placeholderAttrs = computed(() => {
168
203
  <img v-bind="placeholderAttrs">
169
204
  </slot>
170
205
  <slot v-if="status === 'loading'" name="loading">
171
- <ScriptLoadingIndicator />
206
+ <ScriptAriaLoadingIndicator />
172
207
  </slot>
173
208
  <slot v-if="status === 'awaitingLoad'" name="awaitingLoad" />
174
209
  <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();
@@ -1,4 +1,5 @@
1
- import { isRef, onNuxtReady, ref, requestIdleCallback, toValue, tryUseNuxtApp, watch } from "#imports";
1
+ import { isRef, ref, toValue, watch } from "vue";
2
+ import { tryUseNuxtApp, onNuxtReady, requestIdleCallback } from "nuxt/app";
2
3
  export function useScriptTriggerConsent(options) {
3
4
  if (import.meta.server)
4
5
  return new Promise(() => {