@nuxt/scripts 0.0.0 → 0.1.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 (256) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +255 -0
  3. package/dist/client/200.html +238 -0
  4. package/dist/client/404.html +238 -0
  5. package/dist/client/_nuxt/-7WWnkdy.js +517 -0
  6. package/dist/client/_nuxt/1Je9_Reo.js +136 -0
  7. package/dist/client/_nuxt/37ic6j3l.js +1 -0
  8. package/dist/client/_nuxt/3ghuYFLd.js +1 -0
  9. package/dist/client/_nuxt/6Kuza3Wr.js +1 -0
  10. package/dist/client/_nuxt/6XBPEST2.js +1 -0
  11. package/dist/client/_nuxt/7fd6vGzb.js +1 -0
  12. package/dist/client/_nuxt/8t4jSAMm.js +1 -0
  13. package/dist/client/_nuxt/9B1nZgL-.js +1 -0
  14. package/dist/client/_nuxt/9ZOzOPqN.js +1 -0
  15. package/dist/client/_nuxt/A1WiD9SJ.js +1 -0
  16. package/dist/client/_nuxt/AgnqFTPX.js +13 -0
  17. package/dist/client/_nuxt/B1nm99XP.js +2 -0
  18. package/dist/client/_nuxt/B2BuIiKK.js +1 -0
  19. package/dist/client/_nuxt/B2DkETJQ.js +1 -0
  20. package/dist/client/_nuxt/B4yE-MfL.js +38 -0
  21. package/dist/client/_nuxt/B6nY7VDA.js +25 -0
  22. package/dist/client/_nuxt/B9CT-1u6.js +7 -0
  23. package/dist/client/_nuxt/B9E_xdxs.js +666 -0
  24. package/dist/client/_nuxt/B9S9BZZh.js +1 -0
  25. package/dist/client/_nuxt/BBDuFDsq.js +1 -0
  26. package/dist/client/_nuxt/BBJYjQ0k.js +1 -0
  27. package/dist/client/_nuxt/BBv1LFm6.js +6 -0
  28. package/dist/client/_nuxt/BF6G6X0H.js +1 -0
  29. package/dist/client/_nuxt/BH1M7C1g.js +1 -0
  30. package/dist/client/_nuxt/BH_RS3WO.js +1 -0
  31. package/dist/client/_nuxt/BICIrM8O.js +1 -0
  32. package/dist/client/_nuxt/BILqrcpa.js +1 -0
  33. package/dist/client/_nuxt/BIMuYTWL.js +3 -0
  34. package/dist/client/_nuxt/BITGhEdf.js +1 -0
  35. package/dist/client/_nuxt/BIxS-Weu.js +1 -0
  36. package/dist/client/_nuxt/BLluXI4E.js +1 -0
  37. package/dist/client/_nuxt/BN4LRXf6.js +4 -0
  38. package/dist/client/_nuxt/BOnd8D4O.js +186 -0
  39. package/dist/client/_nuxt/BOpLLL-w.js +1 -0
  40. package/dist/client/_nuxt/BPiaQZfK.js +1 -0
  41. package/dist/client/_nuxt/BR6CMsBL.js +1 -0
  42. package/dist/client/_nuxt/BSB_bK09.js +1 -0
  43. package/dist/client/_nuxt/BSyl5yf0.js +1 -0
  44. package/dist/client/_nuxt/BT9ZzGyQ.js +69 -0
  45. package/dist/client/_nuxt/BTtaZsq5.js +1 -0
  46. package/dist/client/_nuxt/BUpeXbsf.js +25 -0
  47. package/dist/client/_nuxt/BWKJ1FCf.js +239 -0
  48. package/dist/client/_nuxt/BXF7Vm5l.js +1 -0
  49. package/dist/client/_nuxt/BXfENWL6.js +1 -0
  50. package/dist/client/_nuxt/BZz1Hhek.js +1 -0
  51. package/dist/client/_nuxt/B_SUYfiV.js +1 -0
  52. package/dist/client/_nuxt/BaNxgKSR.js +17 -0
  53. package/dist/client/_nuxt/BaWyeHV_.js +1 -0
  54. package/dist/client/_nuxt/BaedD2tq.js +1 -0
  55. package/dist/client/_nuxt/BbJj1K1w.js +1 -0
  56. package/dist/client/_nuxt/Bbv8ARUV.js +13 -0
  57. package/dist/client/_nuxt/Bd7iooY8.js +8 -0
  58. package/dist/client/_nuxt/Bdb36Id5.js +1 -0
  59. package/dist/client/_nuxt/BeX7Iu5M.js +90 -0
  60. package/dist/client/_nuxt/BeocmOPF.js +1 -0
  61. package/dist/client/_nuxt/Bg0wAK5a.js +100 -0
  62. package/dist/client/_nuxt/BgBwMnrY.js +76 -0
  63. package/dist/client/_nuxt/Bgpqy2XC.js +1 -0
  64. package/dist/client/_nuxt/Bh8mriwU.js +17 -0
  65. package/dist/client/_nuxt/BiDE021q.js +1 -0
  66. package/dist/client/_nuxt/Bj5xdiaE.js +1 -0
  67. package/dist/client/_nuxt/BlxWTfDV.js +699 -0
  68. package/dist/client/_nuxt/BmCW-tYz.js +86 -0
  69. package/dist/client/_nuxt/Bn5gmY5k.js +1 -0
  70. package/dist/client/_nuxt/BrGg7AAd.js +1 -0
  71. package/dist/client/_nuxt/BsfQk1vf.js +1 -0
  72. package/dist/client/_nuxt/Bsp1M94H.js +1 -0
  73. package/dist/client/_nuxt/BsvsQ1iS.js +1 -0
  74. package/dist/client/_nuxt/BswfO-CF.js +1 -0
  75. package/dist/client/_nuxt/Btshr8M_.js +70 -0
  76. package/dist/client/_nuxt/BxwAa5i0.js +1 -0
  77. package/dist/client/_nuxt/ByMv4Xf1.js +1 -0
  78. package/dist/client/_nuxt/Bz4xi2rU.js +1 -0
  79. package/dist/client/_nuxt/C15OxdQ5.js +1 -0
  80. package/dist/client/_nuxt/C1DVX8_8.js +831 -0
  81. package/dist/client/_nuxt/C2TBxDwV.js +1 -0
  82. package/dist/client/_nuxt/C3YqBJkQ.js +1 -0
  83. package/dist/client/_nuxt/C5gCGmDW.js +200 -0
  84. package/dist/client/_nuxt/C6Aznpr-.js +1 -0
  85. package/dist/client/_nuxt/C7oZ9nno.js +1 -0
  86. package/dist/client/_nuxt/C86elO-m.js +1 -0
  87. package/dist/client/_nuxt/C9d3aiqh.js +1 -0
  88. package/dist/client/_nuxt/CApMHEaB.js +1 -0
  89. package/dist/client/_nuxt/CBL0qBdF.js +1 -0
  90. package/dist/client/_nuxt/CBPJd_fO.js +1 -0
  91. package/dist/client/_nuxt/CG4fK2Nq.js +21 -0
  92. package/dist/client/_nuxt/CGQbO34C.js +1 -0
  93. package/dist/client/_nuxt/CIekO_uJ.js +1 -0
  94. package/dist/client/_nuxt/CJQrLysU.js +1 -0
  95. package/dist/client/_nuxt/CJxX2Ta8.js +1 -0
  96. package/dist/client/_nuxt/CL7Ixq1B.js +1 -0
  97. package/dist/client/_nuxt/CMDmr8et.js +2 -0
  98. package/dist/client/_nuxt/CPHkTjfH.js +1 -0
  99. package/dist/client/_nuxt/CQTpvb7m.js +1 -0
  100. package/dist/client/_nuxt/CQUCfALx.js +13 -0
  101. package/dist/client/_nuxt/CRDKj6ck.js +1 -0
  102. package/dist/client/_nuxt/CRWwmX0L.js +1 -0
  103. package/dist/client/_nuxt/CRlnGVMD.js +1 -0
  104. package/dist/client/_nuxt/CThH5sBG.js +1 -0
  105. package/dist/client/_nuxt/CUVblut_.js +1 -0
  106. package/dist/client/_nuxt/CX_FIdg1.js +1 -0
  107. package/dist/client/_nuxt/CZZ6oYdA.js +1 -0
  108. package/dist/client/_nuxt/C_8Fx7bH.js +1 -0
  109. package/dist/client/_nuxt/CbViG2Xw.js +74 -0
  110. package/dist/client/_nuxt/CbYhyuC0.js +505 -0
  111. package/dist/client/_nuxt/Cda-MJFk.js +1 -0
  112. package/dist/client/_nuxt/CdedUr_-.js +1 -0
  113. package/dist/client/_nuxt/CfPQhs6g.js +7 -0
  114. package/dist/client/_nuxt/Cicx_DS6.js +1 -0
  115. package/dist/client/_nuxt/CkMwVfOK.js +1 -0
  116. package/dist/client/_nuxt/ClXEvkw9.js +68 -0
  117. package/dist/client/_nuxt/CoEqzGFw.js +44 -0
  118. package/dist/client/_nuxt/CowR2XfX.js +1 -0
  119. package/dist/client/_nuxt/CrhH3_Og.js +1 -0
  120. package/dist/client/_nuxt/CrjQeCwm.js +1 -0
  121. package/dist/client/_nuxt/CsTmP73Z.js +1 -0
  122. package/dist/client/_nuxt/CsYA0RN7.js +1 -0
  123. package/dist/client/_nuxt/CsyjKwr8.js +1 -0
  124. package/dist/client/_nuxt/CsyrCbsw.js +699 -0
  125. package/dist/client/_nuxt/Cthz8VOO.js +771 -0
  126. package/dist/client/_nuxt/CupVZNk8.js +25 -0
  127. package/dist/client/_nuxt/CxrokwfH.js +1 -0
  128. package/dist/client/_nuxt/CzPA46E-.js +1 -0
  129. package/dist/client/_nuxt/D-pQtGOP.js +1 -0
  130. package/dist/client/_nuxt/D384ylkT.js +1 -0
  131. package/dist/client/_nuxt/D3VXSfF0.js +1 -0
  132. package/dist/client/_nuxt/D4LaosRr.js +1 -0
  133. package/dist/client/_nuxt/D4LhxNOI.js +1 -0
  134. package/dist/client/_nuxt/D4k753MY.js +1 -0
  135. package/dist/client/_nuxt/D6NljDpC.js +1 -0
  136. package/dist/client/_nuxt/D6pmzCqS.js +1 -0
  137. package/dist/client/_nuxt/D7gg1Usp.js +1 -0
  138. package/dist/client/_nuxt/DAGYewaG.js +559 -0
  139. package/dist/client/_nuxt/DAVo6uMX.js +1 -0
  140. package/dist/client/_nuxt/DBxHOdLe.js +1 -0
  141. package/dist/client/_nuxt/DC4hdoM9.js +87 -0
  142. package/dist/client/_nuxt/DC8MraHL.js +666 -0
  143. package/dist/client/_nuxt/DCAtC51B.js +80 -0
  144. package/dist/client/_nuxt/DCdPDLy4.js +40 -0
  145. package/dist/client/_nuxt/DCj4DH6i.js +1 -0
  146. package/dist/client/_nuxt/DCk2z-Tu.js +129 -0
  147. package/dist/client/_nuxt/DDRuGeQH.js +1 -0
  148. package/dist/client/_nuxt/DGO8GyiP.js +1 -0
  149. package/dist/client/_nuxt/DHmGyzbM.js +109 -0
  150. package/dist/client/_nuxt/DISxKEhY.js +756 -0
  151. package/dist/client/_nuxt/DIr-ordK.js +1 -0
  152. package/dist/client/_nuxt/DJZWsvj0.js +1 -0
  153. package/dist/client/_nuxt/DLP9ZvWb.js +3 -0
  154. package/dist/client/_nuxt/DNR26wTC.js +1 -0
  155. package/dist/client/_nuxt/DOtRmeXT.js +1 -0
  156. package/dist/client/_nuxt/DSrLtGYv.js +15 -0
  157. package/dist/client/_nuxt/DSsji4Hu.js +1 -0
  158. package/dist/client/_nuxt/DUdlC5k_.js +1 -0
  159. package/dist/client/_nuxt/DVfdqzEq.js +1 -0
  160. package/dist/client/_nuxt/DXFkqnOI.js +816 -0
  161. package/dist/client/_nuxt/DXT9h7v2.js +1 -0
  162. package/dist/client/_nuxt/DXZpi2gR.js +1 -0
  163. package/dist/client/_nuxt/DXpYegZJ.js +1 -0
  164. package/dist/client/_nuxt/DY7_9Ga-.js +1 -0
  165. package/dist/client/_nuxt/DYI1rfmx.js +25 -0
  166. package/dist/client/_nuxt/DZ3fVoEH.js +1 -0
  167. package/dist/client/_nuxt/DZqG9GXz.js +50 -0
  168. package/dist/client/_nuxt/DbK06e1c.js +21 -0
  169. package/dist/client/_nuxt/Dble9ECP.js +1 -0
  170. package/dist/client/_nuxt/Dch3xQiY.js +699 -0
  171. package/dist/client/_nuxt/DdacRhvC.js +1 -0
  172. package/dist/client/_nuxt/DeBxnUN1.js +1 -0
  173. package/dist/client/_nuxt/DeVv6D4_.js +1 -0
  174. package/dist/client/_nuxt/Dez-Qvcc.js +544 -0
  175. package/dist/client/_nuxt/DfUNg_8t.js +1 -0
  176. package/dist/client/_nuxt/DfeQjIbs.js +5 -0
  177. package/dist/client/_nuxt/Dg0DGYq4.js +14 -0
  178. package/dist/client/_nuxt/DggdVF2v.js +1 -0
  179. package/dist/client/_nuxt/DhFF74a2.js +1 -0
  180. package/dist/client/_nuxt/DjTlIhuc.js +1 -0
  181. package/dist/client/_nuxt/DmDrTTlz.js +1 -0
  182. package/dist/client/_nuxt/DnhXxWz-.js +1 -0
  183. package/dist/client/_nuxt/DouzTJIq.js +1 -0
  184. package/dist/client/_nuxt/DsfXcHUZ.js +29 -0
  185. package/dist/client/_nuxt/DsudziMp.js +16 -0
  186. package/dist/client/_nuxt/Dszwcx0o.js +1 -0
  187. package/dist/client/_nuxt/Due3_iNp.js +36 -0
  188. package/dist/client/_nuxt/DvyTQcux.js +1 -0
  189. package/dist/client/_nuxt/Dwo2i-71.js +1 -0
  190. package/dist/client/_nuxt/DwuVtWc2.js +518 -0
  191. package/dist/client/_nuxt/DywwDckn.js +159 -0
  192. package/dist/client/_nuxt/Dz2Ca8U2.js +1 -0
  193. package/dist/client/_nuxt/DzPyIVdT.js +9 -0
  194. package/dist/client/_nuxt/DzwdaLuO.js +223 -0
  195. package/dist/client/_nuxt/Eh5U-gDp.js +52 -0
  196. package/dist/client/_nuxt/I4qd5QHW.js +10 -0
  197. package/dist/client/_nuxt/IHMnEr_d.js +1 -0
  198. package/dist/client/_nuxt/KEYLhlmT.js +1 -0
  199. package/dist/client/_nuxt/NL97_oaV.js +1 -0
  200. package/dist/client/_nuxt/PWN5J14X.js +1 -0
  201. package/dist/client/_nuxt/PifQWv0n.js +1 -0
  202. package/dist/client/_nuxt/QZ3jNtnE.js +515 -0
  203. package/dist/client/_nuxt/RCJZWN-0.js +81 -0
  204. package/dist/client/_nuxt/RE3ujT-k.js +1 -0
  205. package/dist/client/_nuxt/RgJsN3zu.js +1 -0
  206. package/dist/client/_nuxt/RqY_Nz63.js +1 -0
  207. package/dist/client/_nuxt/Sfo2eW0G.js +274 -0
  208. package/dist/client/_nuxt/T9ysyp6P.js +62 -0
  209. package/dist/client/_nuxt/TQ9oWRfF.js +1 -0
  210. package/dist/client/_nuxt/UREJT2Bw.js +1 -0
  211. package/dist/client/_nuxt/Urb1RsFe.js +1 -0
  212. package/dist/client/_nuxt/WoBtJUue.js +1 -0
  213. package/dist/client/_nuxt/YxQm0tCS.js +1 -0
  214. package/dist/client/_nuxt/ZQC2c-5V.js +9 -0
  215. package/dist/client/_nuxt/beD-FUib.js +1 -0
  216. package/dist/client/_nuxt/bmJ2objS.js +1 -0
  217. package/dist/client/_nuxt/builds/latest.json +1 -0
  218. package/dist/client/_nuxt/builds/meta/40295b3c-3eb9-4043-bd2e-dac38ac5d90a.json +1 -0
  219. package/dist/client/_nuxt/doGI2cFk.js +1 -0
  220. package/dist/client/_nuxt/eJfcURhx.js +1 -0
  221. package/dist/client/_nuxt/entry.D91GVkD7.css +1 -0
  222. package/dist/client/_nuxt/error-404.ORekjfyJ.css +1 -0
  223. package/dist/client/_nuxt/error-500.BIuFL0tW.css +1 -0
  224. package/dist/client/_nuxt/hXH8Gyq8.js +1 -0
  225. package/dist/client/_nuxt/i0IPvypD.js +1 -0
  226. package/dist/client/_nuxt/iSbrOpM4.js +1 -0
  227. package/dist/client/_nuxt/ithNYyXa.js +1 -0
  228. package/dist/client/_nuxt/j8KhMG0x.js +1 -0
  229. package/dist/client/_nuxt/jaXbsbtS.js +1 -0
  230. package/dist/client/_nuxt/nclm9rTJ.js +266 -0
  231. package/dist/client/_nuxt/o-cPXEvd.js +575 -0
  232. package/dist/client/_nuxt/rS0jd3Ly.js +1 -0
  233. package/dist/client/_nuxt/sMI-pExk.js +1 -0
  234. package/dist/client/_nuxt/sQpxpyUs.js +1 -0
  235. package/dist/client/_nuxt/vMsNTMhM.js +5 -0
  236. package/dist/client/_nuxt/wChcbJ1V.js +37 -0
  237. package/dist/client/_nuxt/wORFcijT.js +32 -0
  238. package/dist/client/_nuxt/wPLeKH6q.js +40 -0
  239. package/dist/client/_nuxt/xPNGhBYe.js +1 -0
  240. package/dist/client/index.html +238 -0
  241. package/dist/module.cjs +5 -0
  242. package/dist/module.d.mts +67 -0
  243. package/dist/module.d.ts +67 -0
  244. package/dist/module.json +9 -0
  245. package/dist/module.mjs +289 -0
  246. package/dist/runtime/composables/createScriptConsentTrigger.d.ts +6 -0
  247. package/dist/runtime/composables/createScriptConsentTrigger.mjs +36 -0
  248. package/dist/runtime/composables/useAnalyticsPageEvent.d.ts +2 -0
  249. package/dist/runtime/composables/useAnalyticsPageEvent.mjs +35 -0
  250. package/dist/runtime/composables/useScript.d.ts +5 -0
  251. package/dist/runtime/composables/useScript.mjs +57 -0
  252. package/dist/runtime/types.d.ts +35 -0
  253. package/dist/types.d.mts +18 -0
  254. package/dist/types.d.ts +18 -0
  255. package/package.json +83 -3
  256. /package/dist/{.gitkeep → runtime/types.mjs} +0 -0
package/LICENSE.md ADDED
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Nuxt Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,255 @@
1
+ [![npm version][npm-version-src]][npm-version-href]
2
+ [![npm downloads][npm-downloads-src]][npm-downloads-href]
3
+ [![License][license-src]][license-href]
4
+ [![Nuxt][nuxt-src]][nuxt-href]
5
+ [![Volta][volta-src]][volta-href]
6
+
7
+ # Nuxt Scripts
8
+
9
+ Better Privacy, Performance, and DX for Third-Party Scripts in Nuxt Apps.
10
+
11
+ - [👾  Playground](https://stackblitz.com/github/nuxt/scripts/tree/main/playground)
12
+
13
+ ## Features
14
+
15
+ - 🪨 [useScript](https://unhead.unjs.io/usage/composables/use-script): Proxy API, fully typed, single instance & more!
16
+ - 🦥 Improve your site performance with better script loading strategies
17
+ - 🎃 Powerful proxy API for SSR handling, lazy loading, and error handling
18
+ - (TODO) Registry for third-party scripts in Nuxt
19
+ - ⏬ Serve scripts from your own server
20
+ - 🕵️ Privacy Features - Trigger scripts loading on consent.
21
+ - 🪵 DevTools integration - View your script with their status and see function logs
22
+
23
+ ## Background
24
+
25
+ Loading third-party IIFE scripts using `useHead` composable is easy. However,
26
+ things start getting more complicated quickly around SSR, lazy loading, and type safety.
27
+
28
+ Nuxt Scripts was created to solve these issues and more with the goal of making third-party scripts more performant,
29
+ have better privacy and be better DX overall.
30
+
31
+ ## Quick Start
32
+
33
+ To get started, simply run:
34
+
35
+ ```bash
36
+ npx nuxi@latest module add @nuxt/scripts
37
+ ```
38
+
39
+ To start using Nuxt Scripts, you can use the [useScript](https://unhead.unjs.io/usage/composables/use-script) composable to load your third-party scripts.
40
+
41
+ ### Confetti Example
42
+
43
+ If you want to get a feel for how the module works, you can load the `js-confetti` library:
44
+
45
+ ```ts
46
+ interface JSConfettiApi { addConfetti: (options?: { emojis: string[] }) => void }
47
+ const { addConfetti } = useScript<JSConfettiApi>('https://cdn.jsdelivr.net/npm/js-confetti@latest/dist/js-confetti.browser.js', {
48
+ trigger: 'onNuxtReady', // load on onNuxtReady
49
+ assetStrategy: 'bundle', // script will be served from your server instead of cdn.jsdelivr.net
50
+ use() {
51
+ return new window.JSConfetti()
52
+ },
53
+ })
54
+ // useScript is non-blocking, this will run once the script loads
55
+ addConfetti({ emojis: ['🌈', '⚡️', '💥', '✨', '💫', '🌸'] })
56
+ ```
57
+
58
+ ## Guides
59
+
60
+ ### Using The Registry (TODO)
61
+
62
+ The registry is a collection of compatible Nuxt Modules that integrate with Nuxt Scripts and one-off composables provided
63
+ by the module.
64
+
65
+ To use a script from the registry, simply use the composable or register them globally using the key. Consult the
66
+ below table for the available scripts.
67
+
68
+ | Key | Description | Composable | Source |
69
+ | --- | --- | --- |
70
+ | `google-analytics` | Google Analytics | `useGoogleAnalytics` | Nuxt Third Party Capital |
71
+ | `google-tag-manager` | Google Tag Manager | `useGoogleTagManager` | Nuxt Third Party Capital |
72
+ | `hotjar` | Hotjar | `useHotjar` | Nuxt Third Party Capital |
73
+ | `cloudflare-turnstile` | CloudFlare Turnstile | `useCloudflareTurnstile` | Nuxt Cloudflare Turnstile |
74
+ | `intercom` | Intercom | `useIntercom` | Nuxt Scripts |
75
+ | `facebook-pixel` | Facebook Pixel | `useFacebookPixel` |
76
+ | `twitter-pixel` | Twitter Pixel | `useTwitterPixel` |
77
+ | `linkedin-insight-tag` | LinkedIn Insight Tag | `useLinkedInInsightTag` |
78
+ | `pinterest-tag` | Pinterest Tag | `usePinterestTag` |
79
+ | `google-ads-conversion-tracking` | Google Ads Conversion Tracking | `useGoogleAdsConversionTracking` |
80
+ | `google-ads-remarketing` | Google Ads Remarketing | `useGoogleAdsRemarketing` |
81
+ | `segment` | Segment | `useSegment` |
82
+ | `fathom-analytics` | Fathom Analytics | `useFathomAnalytics` |
83
+ | `plausible-analytics` | Plausible Analytics | `usePlausibleAnalytics` |
84
+ | `simple-analytics` | Simple Analytics | `useSimpleAnalytics` |
85
+ | `umami-analytics` | Umami Analytics | `useUmamiAnalytics` |
86
+ | `cloudflare-web-analytics` | Cloudflare Web Analytics | `useCloudflareWebAnalytics` |
87
+ | `matomo` | Matomo | `useMatomo` |
88
+
89
+ ### Loading Scripts Globally
90
+
91
+ If you prefer a config based approach, you can load scripts globally by defining them in your `nuxt.config.ts`.
92
+
93
+ ```ts
94
+ export default defineNuxtConfig({
95
+ scripts: {
96
+ globals: [
97
+ 'https://cdn.jsdelivr.net/npm/js-confetti@latest/dist/js-confetti.browser.js',
98
+ {
99
+ assetStrategy: 'bundle'
100
+ }
101
+ ]
102
+ }
103
+ })
104
+ ```
105
+
106
+ ### Bundling Scripts
107
+
108
+ Bundling scripts can allow you to serve them from your own server, improving privacy and performance. It
109
+ can also help to get around ad blockers and other privacy tools when you need a script to load.
110
+
111
+ You can opt-in to have your scripts bundled by using the `assetStrategy` option. As this is
112
+ analyzed at build time, you must define it statically.
113
+
114
+ ```ts
115
+ useScript('https://cdn.jsdelivr.net/npm/js-confetti@latest/dist/js-confetti.browser.js', {
116
+ assetStrategy: 'bundle'
117
+ })
118
+ // js-confetti.browser.js will be downloaded and bundled with your app as a static asset
119
+ ```
120
+
121
+ ### Overriding Scripts
122
+
123
+ When working with modules that use Nuxt Script, you may want to modify the
124
+ behavior of the script. This is especially useful for
125
+ changing the asset strategy of a script as it needs to be defined statically.
126
+
127
+ To do so you can use the `overrides` module option.
128
+
129
+ ```ts
130
+ export default defineNuxtConfig({
131
+ scripts: {
132
+ overrides: {
133
+ // the key is either a specified key or the script src
134
+ confetti: {
135
+ assetStrategy: 'bundle'
136
+ }
137
+ }
138
+ }
139
+ })
140
+ ```
141
+
142
+ ### Privacy and Cookie Consent
143
+
144
+ Nuxt Scripts provides a `createScriptConsentTrigger` composable that allows you to load scripts based on user's consent.
145
+
146
+ You can either use it by providing a resolvable consent (ref, promise) option or by using `accept()`.
147
+
148
+ ```ts
149
+ export const agreedToCookiesScriptConsent = createScriptConsentTrigger()
150
+ // ...
151
+ useScript('https://www.google-analytics.com/analytics.js', {
152
+ trigger: agreedToCookiesScriptConsent
153
+ })
154
+ // ...
155
+ agreedToCookiesScriptConsent.accept()
156
+ ```
157
+
158
+ ```ts
159
+ const agreedToCookies = ref(false)
160
+ useScript('https://www.google-analytics.com/analytics.js', {
161
+ // will be loaded in when the ref is true
162
+ trigger: createScriptConsentTrigger({
163
+ consent: agreedToCookies
164
+ })
165
+ })
166
+ ```
167
+
168
+ ### Sending Page Events
169
+
170
+ When using tracking scripts, it's common to send an event when the page changes. Due to Nuxt's head implementation being
171
+ async, the page title is not always available on route change immediately.
172
+
173
+ `useAnalyticsPageEvent` solves this by providing you with the page title and path when they change.
174
+
175
+ ```ts
176
+ useAnalyticsPageEvent(({ title, path }) => {
177
+ // triggered on route change
178
+ gtag('event', 'page_view', {
179
+ page_title: title,
180
+ page_location: 'https://example.com',
181
+ page_path: path
182
+ })
183
+ })
184
+ ```
185
+
186
+ ## API
187
+
188
+ ### `useScript`
189
+
190
+ Please see the [useScript](https://unhead.unjs.io/usage/composables/use-script) documentation.
191
+
192
+ ### `createScriptConsentTrigger`
193
+
194
+ **(options: ScriptConsentTriggerOptions) => { accept: () => void } & Promise<void>**
195
+
196
+ Creates a consent trigger for a script.
197
+
198
+ #### Arguments
199
+
200
+ - `consent` (optional) - A ref, promise, or boolean that resolves to the user's consent. Defaults to `undefined`.
201
+ - `loadOnNuxtReady` (optional) - If consent is provided before the browser idle, wait for the browser to be idle before loading the script. Defaults to `false`.
202
+
203
+ #### Returns
204
+
205
+ - `accept` - A function that can be called to accept the consent and load the script.
206
+
207
+ ```ts
208
+ const trigger = createScriptConsentTrigger()
209
+ // accept the consent and load the script
210
+ trigger.accept()
211
+ ```
212
+
213
+ ### `useAnalyticsPageEvent`
214
+
215
+ **(callback?: (page: { title: string, path: string }) => void) => Ref<{ title: string, path: string }>**
216
+
217
+ Access the current page title and path and trigger an event when they change.
218
+
219
+ #### Arguments
220
+
221
+ - `callback` (optional) - A function that will be called when the page title or path changes.
222
+
223
+ #### Returns
224
+
225
+ - A ref containing the current page title and path.
226
+
227
+ ```ts
228
+ const pageCtx = useAnalyticsPageEvent()
229
+ // will always be the current page title
230
+ pageCtx.value.title
231
+ ```
232
+
233
+ ## License
234
+
235
+ Licensed under the [MIT license](https://github.com/nuxt/scripts/blob/main/LICENSE.md).
236
+
237
+ ## 📑 License
238
+
239
+ Published under the [MIT License](./LICENSE)
240
+
241
+ <!-- Badges -->
242
+ [npm-version-src]: https://img.shields.io/npm/v/@nuxt/scripts/latest.svg?style=flat&colorA=18181B&colorB=28CF8D
243
+ [npm-version-href]: https://npmjs.com/package/@nuxt/scripts/v/rc
244
+
245
+ [npm-downloads-src]: https://img.shields.io/npm/dm/@nuxt/scripts.svg?style=flat&colorA=18181B&colorB=28CF8D
246
+ [npm-downloads-href]: https://npmjs.com/package/@nuxt/scripts/v/rc
247
+
248
+ [license-src]: https://img.shields.io/npm/l/@nuxt/scripts.svg?style=flat&colorA=18181B&colorB=28CF8D
249
+ [license-href]: https://npmjs.com/package/@nuxt/scripts/v/rc
250
+
251
+ [nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js
252
+ [nuxt-href]: https://nuxt.com
253
+
254
+ [volta-src]: https://user-images.githubusercontent.com/904724/209143798-32345f6c-3cf8-4e06-9659-f4ace4a6acde.svg
255
+ [volta-href]: https://volta.net/nuxt/scripts?utm_source=nuxt_scripts_readme
@@ -0,0 +1,238 @@
1
+ <!DOCTYPE html><html><head><meta charset="utf-8">
2
+ <meta name="viewport" content="width=device-width, initial-scale=1">
3
+ <link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.D91GVkD7.css">
4
+ <link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Due3_iNp.js">
5
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DXFkqnOI.js">
6
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D6NljDpC.js">
7
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CowR2XfX.js">
8
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DsudziMp.js">
9
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CbViG2Xw.js">
10
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dch3xQiY.js">
11
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CbYhyuC0.js">
12
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B9E_xdxs.js">
13
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BeX7Iu5M.js">
14
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/rS0jd3Ly.js">
15
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Sfo2eW0G.js">
16
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DC4hdoM9.js">
17
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CsYA0RN7.js">
18
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/ClXEvkw9.js">
19
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CupVZNk8.js">
20
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B4yE-MfL.js">
21
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CG4fK2Nq.js">
22
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/PWN5J14X.js">
23
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/wORFcijT.js">
24
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DC8MraHL.js">
25
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DSrLtGYv.js">
26
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CMDmr8et.js">
27
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DywwDckn.js">
28
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DXT9h7v2.js">
29
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BlxWTfDV.js">
30
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/i0IPvypD.js">
31
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/T9ysyp6P.js">
32
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BPiaQZfK.js">
33
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Urb1RsFe.js">
34
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CxrokwfH.js">
35
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BaedD2tq.js">
36
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/3ghuYFLd.js">
37
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C1DVX8_8.js">
38
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DbK06e1c.js">
39
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/RCJZWN-0.js">
40
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bgpqy2XC.js">
41
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CIekO_uJ.js">
42
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BF6G6X0H.js">
43
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DXZpi2gR.js">
44
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/TQ9oWRfF.js">
45
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BOpLLL-w.js">
46
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bg0wAK5a.js">
47
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BOnd8D4O.js">
48
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DouzTJIq.js">
49
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B6nY7VDA.js">
50
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D4k753MY.js">
51
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DISxKEhY.js">
52
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B2DkETJQ.js">
53
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C6Aznpr-.js">
54
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/ByMv4Xf1.js">
55
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/PifQWv0n.js">
56
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BswfO-CF.js">
57
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DsfXcHUZ.js">
58
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DvyTQcux.js">
59
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DNR26wTC.js">
60
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Eh5U-gDp.js">
61
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BaNxgKSR.js">
62
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/RE3ujT-k.js">
63
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/RgJsN3zu.js">
64
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DCAtC51B.js">
65
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DnhXxWz-.js">
66
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C3YqBJkQ.js">
67
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DfeQjIbs.js">
68
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/sQpxpyUs.js">
69
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D6pmzCqS.js">
70
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DXpYegZJ.js">
71
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DCk2z-Tu.js">
72
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/NL97_oaV.js">
73
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B_SUYfiV.js">
74
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CoEqzGFw.js">
75
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DjTlIhuc.js">
76
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DAVo6uMX.js">
77
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CPHkTjfH.js">
78
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dz2Ca8U2.js">
79
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bbv8ARUV.js">
80
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CQUCfALx.js">
81
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/nclm9rTJ.js">
82
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/WoBtJUue.js">
83
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BN4LRXf6.js">
84
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CsyrCbsw.js">
85
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/wChcbJ1V.js">
86
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BmCW-tYz.js">
87
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/IHMnEr_d.js">
88
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DUdlC5k_.js">
89
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C5gCGmDW.js">
90
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DAGYewaG.js">
91
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CkMwVfOK.js">
92
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DZqG9GXz.js">
93
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DmDrTTlz.js">
94
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BR6CMsBL.js">
95
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DfUNg_8t.js">
96
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DzwdaLuO.js">
97
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DeVv6D4_.js">
98
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D4LaosRr.js">
99
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DY7_9Ga-.js">
100
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bh8mriwU.js">
101
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DYI1rfmx.js">
102
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BUpeXbsf.js">
103
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C9d3aiqh.js">
104
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dble9ECP.js">
105
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/ZQC2c-5V.js">
106
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DwuVtWc2.js">
107
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BXfENWL6.js">
108
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BIxS-Weu.js">
109
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DIr-ordK.js">
110
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BIMuYTWL.js">
111
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CGQbO34C.js">
112
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/j8KhMG0x.js">
113
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/vMsNTMhM.js">
114
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dg0DGYq4.js">
115
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D4LhxNOI.js">
116
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DdacRhvC.js">
117
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B9S9BZZh.js">
118
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bd7iooY8.js">
119
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Btshr8M_.js">
120
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BgBwMnrY.js">
121
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CBPJd_fO.js">
122
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BSyl5yf0.js">
123
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/-7WWnkdy.js">
124
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/bmJ2objS.js">
125
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B9CT-1u6.js">
126
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DBxHOdLe.js">
127
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CUVblut_.js">
128
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BILqrcpa.js">
129
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dszwcx0o.js">
130
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CL7Ixq1B.js">
131
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DHmGyzbM.js">
132
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BWKJ1FCf.js">
133
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/RqY_Nz63.js">
134
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bz4xi2rU.js">
135
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dwo2i-71.js">
136
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Cthz8VOO.js">
137
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BbJj1K1w.js">
138
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CApMHEaB.js">
139
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/9ZOzOPqN.js">
140
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BBJYjQ0k.js">
141
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BH_RS3WO.js">
142
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DOtRmeXT.js">
143
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DhFF74a2.js">
144
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/37ic6j3l.js">
145
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CfPQhs6g.js">
146
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D384ylkT.js">
147
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/wPLeKH6q.js">
148
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CrhH3_Og.js">
149
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/6Kuza3Wr.js">
150
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/AgnqFTPX.js">
151
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CQTpvb7m.js">
152
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/8t4jSAMm.js">
153
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/1Je9_Reo.js">
154
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BiDE021q.js">
155
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bdb36Id5.js">
156
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DSsji4Hu.js">
157
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CThH5sBG.js">
158
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DJZWsvj0.js">
159
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C15OxdQ5.js">
160
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/6XBPEST2.js">
161
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BH1M7C1g.js">
162
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DLP9ZvWb.js">
163
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/doGI2cFk.js">
164
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Dez-Qvcc.js">
165
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DzPyIVdT.js">
166
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BxwAa5i0.js">
167
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C_8Fx7bH.js">
168
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/7fd6vGzb.js">
169
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BT9ZzGyQ.js">
170
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DCdPDLy4.js">
171
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/I4qd5QHW.js">
172
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C2TBxDwV.js">
173
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/beD-FUib.js">
174
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DVfdqzEq.js">
175
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/QZ3jNtnE.js">
176
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BLluXI4E.js">
177
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BBv1LFm6.js">
178
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CRWwmX0L.js">
179
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/o-cPXEvd.js">
180
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Cicx_DS6.js">
181
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D3VXSfF0.js">
182
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BZz1Hhek.js">
183
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BICIrM8O.js">
184
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CJQrLysU.js">
185
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B1nm99XP.js">
186
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bsp1M94H.js">
187
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CsTmP73Z.js">
188
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/YxQm0tCS.js">
189
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BaWyeHV_.js">
190
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bn5gmY5k.js">
191
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DZ3fVoEH.js">
192
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DCj4DH6i.js">
193
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D-pQtGOP.js">
194
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BsfQk1vf.js">
195
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/KEYLhlmT.js">
196
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DGO8GyiP.js">
197
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/9B1nZgL-.js">
198
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CzPA46E-.js">
199
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BXF7Vm5l.js">
200
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CRDKj6ck.js">
201
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CRlnGVMD.js">
202
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/UREJT2Bw.js">
203
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CZZ6oYdA.js">
204
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BsvsQ1iS.js">
205
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B2BuIiKK.js">
206
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BrGg7AAd.js">
207
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DDRuGeQH.js">
208
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CBL0qBdF.js">
209
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D7gg1Usp.js">
210
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/iSbrOpM4.js">
211
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BITGhEdf.js">
212
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/sMI-pExk.js">
213
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BeocmOPF.js">
214
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CsyjKwr8.js">
215
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BTtaZsq5.js">
216
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Cda-MJFk.js">
217
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/jaXbsbtS.js">
218
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CX_FIdg1.js">
219
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bj5xdiaE.js">
220
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CdedUr_-.js">
221
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C7oZ9nno.js">
222
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/hXH8Gyq8.js">
223
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/C86elO-m.js">
224
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/xPNGhBYe.js">
225
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BBDuFDsq.js">
226
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/eJfcURhx.js">
227
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/BSB_bK09.js">
228
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CrjQeCwm.js">
229
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DggdVF2v.js">
230
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/A1WiD9SJ.js">
231
+ <link rel="prefetch" as="style" href="/__nuxt-scripts/_nuxt/error-404.ORekjfyJ.css">
232
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/ithNYyXa.js">
233
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DeBxnUN1.js">
234
+ <link rel="prefetch" as="style" href="/__nuxt-scripts/_nuxt/error-500.BIuFL0tW.css">
235
+ <link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CJxX2Ta8.js">
236
+ <script type="module" src="/__nuxt-scripts/_nuxt/Due3_iNp.js" crossorigin></script><script>"use strict";(()=>{const a=window,e=document.documentElement,c=window.localStorage,d=["dark","light"],n=c&&c.getItem&&c.getItem("nuxt-color-mode")||"system";let l=n==="system"?f():n;const i=e.getAttribute("data-color-mode-forced");i&&(l=i),r(l),a["__NUXT_COLOR_MODE__"]={preference:n,value:l,getColorScheme:f,addColorScheme:r,removeColorScheme:u};function r(o){const t=""+o+"",s="";e.classList?e.classList.add(t):e.className+=" "+t,s&&e.setAttribute("data-"+s,o)}function u(o){const t=""+o+"",s="";e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(t,"g"),""),s&&e.removeAttribute("data-"+s)}function m(o){return a.matchMedia("(prefers-color-scheme"+o+")")}function f(){if(a.matchMedia&&m("").media!=="not all"){for(const o of d)if(m(":"+o).matches)return o}return"light"}})();
237
+ </script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" id="__NUXT_DATA__" data-ssr="false">[{"_errors":1,"serverRendered":2,"data":3,"state":4,"once":5},{},false,{},{},["Set"]]</script>
238
+ <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-scripts",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>