@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.
- package/LICENSE.md +9 -0
- package/README.md +255 -0
- package/dist/client/200.html +238 -0
- package/dist/client/404.html +238 -0
- package/dist/client/_nuxt/-7WWnkdy.js +517 -0
- package/dist/client/_nuxt/1Je9_Reo.js +136 -0
- package/dist/client/_nuxt/37ic6j3l.js +1 -0
- package/dist/client/_nuxt/3ghuYFLd.js +1 -0
- package/dist/client/_nuxt/6Kuza3Wr.js +1 -0
- package/dist/client/_nuxt/6XBPEST2.js +1 -0
- package/dist/client/_nuxt/7fd6vGzb.js +1 -0
- package/dist/client/_nuxt/8t4jSAMm.js +1 -0
- package/dist/client/_nuxt/9B1nZgL-.js +1 -0
- package/dist/client/_nuxt/9ZOzOPqN.js +1 -0
- package/dist/client/_nuxt/A1WiD9SJ.js +1 -0
- package/dist/client/_nuxt/AgnqFTPX.js +13 -0
- package/dist/client/_nuxt/B1nm99XP.js +2 -0
- package/dist/client/_nuxt/B2BuIiKK.js +1 -0
- package/dist/client/_nuxt/B2DkETJQ.js +1 -0
- package/dist/client/_nuxt/B4yE-MfL.js +38 -0
- package/dist/client/_nuxt/B6nY7VDA.js +25 -0
- package/dist/client/_nuxt/B9CT-1u6.js +7 -0
- package/dist/client/_nuxt/B9E_xdxs.js +666 -0
- package/dist/client/_nuxt/B9S9BZZh.js +1 -0
- package/dist/client/_nuxt/BBDuFDsq.js +1 -0
- package/dist/client/_nuxt/BBJYjQ0k.js +1 -0
- package/dist/client/_nuxt/BBv1LFm6.js +6 -0
- package/dist/client/_nuxt/BF6G6X0H.js +1 -0
- package/dist/client/_nuxt/BH1M7C1g.js +1 -0
- package/dist/client/_nuxt/BH_RS3WO.js +1 -0
- package/dist/client/_nuxt/BICIrM8O.js +1 -0
- package/dist/client/_nuxt/BILqrcpa.js +1 -0
- package/dist/client/_nuxt/BIMuYTWL.js +3 -0
- package/dist/client/_nuxt/BITGhEdf.js +1 -0
- package/dist/client/_nuxt/BIxS-Weu.js +1 -0
- package/dist/client/_nuxt/BLluXI4E.js +1 -0
- package/dist/client/_nuxt/BN4LRXf6.js +4 -0
- package/dist/client/_nuxt/BOnd8D4O.js +186 -0
- package/dist/client/_nuxt/BOpLLL-w.js +1 -0
- package/dist/client/_nuxt/BPiaQZfK.js +1 -0
- package/dist/client/_nuxt/BR6CMsBL.js +1 -0
- package/dist/client/_nuxt/BSB_bK09.js +1 -0
- package/dist/client/_nuxt/BSyl5yf0.js +1 -0
- package/dist/client/_nuxt/BT9ZzGyQ.js +69 -0
- package/dist/client/_nuxt/BTtaZsq5.js +1 -0
- package/dist/client/_nuxt/BUpeXbsf.js +25 -0
- package/dist/client/_nuxt/BWKJ1FCf.js +239 -0
- package/dist/client/_nuxt/BXF7Vm5l.js +1 -0
- package/dist/client/_nuxt/BXfENWL6.js +1 -0
- package/dist/client/_nuxt/BZz1Hhek.js +1 -0
- package/dist/client/_nuxt/B_SUYfiV.js +1 -0
- package/dist/client/_nuxt/BaNxgKSR.js +17 -0
- package/dist/client/_nuxt/BaWyeHV_.js +1 -0
- package/dist/client/_nuxt/BaedD2tq.js +1 -0
- package/dist/client/_nuxt/BbJj1K1w.js +1 -0
- package/dist/client/_nuxt/Bbv8ARUV.js +13 -0
- package/dist/client/_nuxt/Bd7iooY8.js +8 -0
- package/dist/client/_nuxt/Bdb36Id5.js +1 -0
- package/dist/client/_nuxt/BeX7Iu5M.js +90 -0
- package/dist/client/_nuxt/BeocmOPF.js +1 -0
- package/dist/client/_nuxt/Bg0wAK5a.js +100 -0
- package/dist/client/_nuxt/BgBwMnrY.js +76 -0
- package/dist/client/_nuxt/Bgpqy2XC.js +1 -0
- package/dist/client/_nuxt/Bh8mriwU.js +17 -0
- package/dist/client/_nuxt/BiDE021q.js +1 -0
- package/dist/client/_nuxt/Bj5xdiaE.js +1 -0
- package/dist/client/_nuxt/BlxWTfDV.js +699 -0
- package/dist/client/_nuxt/BmCW-tYz.js +86 -0
- package/dist/client/_nuxt/Bn5gmY5k.js +1 -0
- package/dist/client/_nuxt/BrGg7AAd.js +1 -0
- package/dist/client/_nuxt/BsfQk1vf.js +1 -0
- package/dist/client/_nuxt/Bsp1M94H.js +1 -0
- package/dist/client/_nuxt/BsvsQ1iS.js +1 -0
- package/dist/client/_nuxt/BswfO-CF.js +1 -0
- package/dist/client/_nuxt/Btshr8M_.js +70 -0
- package/dist/client/_nuxt/BxwAa5i0.js +1 -0
- package/dist/client/_nuxt/ByMv4Xf1.js +1 -0
- package/dist/client/_nuxt/Bz4xi2rU.js +1 -0
- package/dist/client/_nuxt/C15OxdQ5.js +1 -0
- package/dist/client/_nuxt/C1DVX8_8.js +831 -0
- package/dist/client/_nuxt/C2TBxDwV.js +1 -0
- package/dist/client/_nuxt/C3YqBJkQ.js +1 -0
- package/dist/client/_nuxt/C5gCGmDW.js +200 -0
- package/dist/client/_nuxt/C6Aznpr-.js +1 -0
- package/dist/client/_nuxt/C7oZ9nno.js +1 -0
- package/dist/client/_nuxt/C86elO-m.js +1 -0
- package/dist/client/_nuxt/C9d3aiqh.js +1 -0
- package/dist/client/_nuxt/CApMHEaB.js +1 -0
- package/dist/client/_nuxt/CBL0qBdF.js +1 -0
- package/dist/client/_nuxt/CBPJd_fO.js +1 -0
- package/dist/client/_nuxt/CG4fK2Nq.js +21 -0
- package/dist/client/_nuxt/CGQbO34C.js +1 -0
- package/dist/client/_nuxt/CIekO_uJ.js +1 -0
- package/dist/client/_nuxt/CJQrLysU.js +1 -0
- package/dist/client/_nuxt/CJxX2Ta8.js +1 -0
- package/dist/client/_nuxt/CL7Ixq1B.js +1 -0
- package/dist/client/_nuxt/CMDmr8et.js +2 -0
- package/dist/client/_nuxt/CPHkTjfH.js +1 -0
- package/dist/client/_nuxt/CQTpvb7m.js +1 -0
- package/dist/client/_nuxt/CQUCfALx.js +13 -0
- package/dist/client/_nuxt/CRDKj6ck.js +1 -0
- package/dist/client/_nuxt/CRWwmX0L.js +1 -0
- package/dist/client/_nuxt/CRlnGVMD.js +1 -0
- package/dist/client/_nuxt/CThH5sBG.js +1 -0
- package/dist/client/_nuxt/CUVblut_.js +1 -0
- package/dist/client/_nuxt/CX_FIdg1.js +1 -0
- package/dist/client/_nuxt/CZZ6oYdA.js +1 -0
- package/dist/client/_nuxt/C_8Fx7bH.js +1 -0
- package/dist/client/_nuxt/CbViG2Xw.js +74 -0
- package/dist/client/_nuxt/CbYhyuC0.js +505 -0
- package/dist/client/_nuxt/Cda-MJFk.js +1 -0
- package/dist/client/_nuxt/CdedUr_-.js +1 -0
- package/dist/client/_nuxt/CfPQhs6g.js +7 -0
- package/dist/client/_nuxt/Cicx_DS6.js +1 -0
- package/dist/client/_nuxt/CkMwVfOK.js +1 -0
- package/dist/client/_nuxt/ClXEvkw9.js +68 -0
- package/dist/client/_nuxt/CoEqzGFw.js +44 -0
- package/dist/client/_nuxt/CowR2XfX.js +1 -0
- package/dist/client/_nuxt/CrhH3_Og.js +1 -0
- package/dist/client/_nuxt/CrjQeCwm.js +1 -0
- package/dist/client/_nuxt/CsTmP73Z.js +1 -0
- package/dist/client/_nuxt/CsYA0RN7.js +1 -0
- package/dist/client/_nuxt/CsyjKwr8.js +1 -0
- package/dist/client/_nuxt/CsyrCbsw.js +699 -0
- package/dist/client/_nuxt/Cthz8VOO.js +771 -0
- package/dist/client/_nuxt/CupVZNk8.js +25 -0
- package/dist/client/_nuxt/CxrokwfH.js +1 -0
- package/dist/client/_nuxt/CzPA46E-.js +1 -0
- package/dist/client/_nuxt/D-pQtGOP.js +1 -0
- package/dist/client/_nuxt/D384ylkT.js +1 -0
- package/dist/client/_nuxt/D3VXSfF0.js +1 -0
- package/dist/client/_nuxt/D4LaosRr.js +1 -0
- package/dist/client/_nuxt/D4LhxNOI.js +1 -0
- package/dist/client/_nuxt/D4k753MY.js +1 -0
- package/dist/client/_nuxt/D6NljDpC.js +1 -0
- package/dist/client/_nuxt/D6pmzCqS.js +1 -0
- package/dist/client/_nuxt/D7gg1Usp.js +1 -0
- package/dist/client/_nuxt/DAGYewaG.js +559 -0
- package/dist/client/_nuxt/DAVo6uMX.js +1 -0
- package/dist/client/_nuxt/DBxHOdLe.js +1 -0
- package/dist/client/_nuxt/DC4hdoM9.js +87 -0
- package/dist/client/_nuxt/DC8MraHL.js +666 -0
- package/dist/client/_nuxt/DCAtC51B.js +80 -0
- package/dist/client/_nuxt/DCdPDLy4.js +40 -0
- package/dist/client/_nuxt/DCj4DH6i.js +1 -0
- package/dist/client/_nuxt/DCk2z-Tu.js +129 -0
- package/dist/client/_nuxt/DDRuGeQH.js +1 -0
- package/dist/client/_nuxt/DGO8GyiP.js +1 -0
- package/dist/client/_nuxt/DHmGyzbM.js +109 -0
- package/dist/client/_nuxt/DISxKEhY.js +756 -0
- package/dist/client/_nuxt/DIr-ordK.js +1 -0
- package/dist/client/_nuxt/DJZWsvj0.js +1 -0
- package/dist/client/_nuxt/DLP9ZvWb.js +3 -0
- package/dist/client/_nuxt/DNR26wTC.js +1 -0
- package/dist/client/_nuxt/DOtRmeXT.js +1 -0
- package/dist/client/_nuxt/DSrLtGYv.js +15 -0
- package/dist/client/_nuxt/DSsji4Hu.js +1 -0
- package/dist/client/_nuxt/DUdlC5k_.js +1 -0
- package/dist/client/_nuxt/DVfdqzEq.js +1 -0
- package/dist/client/_nuxt/DXFkqnOI.js +816 -0
- package/dist/client/_nuxt/DXT9h7v2.js +1 -0
- package/dist/client/_nuxt/DXZpi2gR.js +1 -0
- package/dist/client/_nuxt/DXpYegZJ.js +1 -0
- package/dist/client/_nuxt/DY7_9Ga-.js +1 -0
- package/dist/client/_nuxt/DYI1rfmx.js +25 -0
- package/dist/client/_nuxt/DZ3fVoEH.js +1 -0
- package/dist/client/_nuxt/DZqG9GXz.js +50 -0
- package/dist/client/_nuxt/DbK06e1c.js +21 -0
- package/dist/client/_nuxt/Dble9ECP.js +1 -0
- package/dist/client/_nuxt/Dch3xQiY.js +699 -0
- package/dist/client/_nuxt/DdacRhvC.js +1 -0
- package/dist/client/_nuxt/DeBxnUN1.js +1 -0
- package/dist/client/_nuxt/DeVv6D4_.js +1 -0
- package/dist/client/_nuxt/Dez-Qvcc.js +544 -0
- package/dist/client/_nuxt/DfUNg_8t.js +1 -0
- package/dist/client/_nuxt/DfeQjIbs.js +5 -0
- package/dist/client/_nuxt/Dg0DGYq4.js +14 -0
- package/dist/client/_nuxt/DggdVF2v.js +1 -0
- package/dist/client/_nuxt/DhFF74a2.js +1 -0
- package/dist/client/_nuxt/DjTlIhuc.js +1 -0
- package/dist/client/_nuxt/DmDrTTlz.js +1 -0
- package/dist/client/_nuxt/DnhXxWz-.js +1 -0
- package/dist/client/_nuxt/DouzTJIq.js +1 -0
- package/dist/client/_nuxt/DsfXcHUZ.js +29 -0
- package/dist/client/_nuxt/DsudziMp.js +16 -0
- package/dist/client/_nuxt/Dszwcx0o.js +1 -0
- package/dist/client/_nuxt/Due3_iNp.js +36 -0
- package/dist/client/_nuxt/DvyTQcux.js +1 -0
- package/dist/client/_nuxt/Dwo2i-71.js +1 -0
- package/dist/client/_nuxt/DwuVtWc2.js +518 -0
- package/dist/client/_nuxt/DywwDckn.js +159 -0
- package/dist/client/_nuxt/Dz2Ca8U2.js +1 -0
- package/dist/client/_nuxt/DzPyIVdT.js +9 -0
- package/dist/client/_nuxt/DzwdaLuO.js +223 -0
- package/dist/client/_nuxt/Eh5U-gDp.js +52 -0
- package/dist/client/_nuxt/I4qd5QHW.js +10 -0
- package/dist/client/_nuxt/IHMnEr_d.js +1 -0
- package/dist/client/_nuxt/KEYLhlmT.js +1 -0
- package/dist/client/_nuxt/NL97_oaV.js +1 -0
- package/dist/client/_nuxt/PWN5J14X.js +1 -0
- package/dist/client/_nuxt/PifQWv0n.js +1 -0
- package/dist/client/_nuxt/QZ3jNtnE.js +515 -0
- package/dist/client/_nuxt/RCJZWN-0.js +81 -0
- package/dist/client/_nuxt/RE3ujT-k.js +1 -0
- package/dist/client/_nuxt/RgJsN3zu.js +1 -0
- package/dist/client/_nuxt/RqY_Nz63.js +1 -0
- package/dist/client/_nuxt/Sfo2eW0G.js +274 -0
- package/dist/client/_nuxt/T9ysyp6P.js +62 -0
- package/dist/client/_nuxt/TQ9oWRfF.js +1 -0
- package/dist/client/_nuxt/UREJT2Bw.js +1 -0
- package/dist/client/_nuxt/Urb1RsFe.js +1 -0
- package/dist/client/_nuxt/WoBtJUue.js +1 -0
- package/dist/client/_nuxt/YxQm0tCS.js +1 -0
- package/dist/client/_nuxt/ZQC2c-5V.js +9 -0
- package/dist/client/_nuxt/beD-FUib.js +1 -0
- package/dist/client/_nuxt/bmJ2objS.js +1 -0
- package/dist/client/_nuxt/builds/latest.json +1 -0
- package/dist/client/_nuxt/builds/meta/40295b3c-3eb9-4043-bd2e-dac38ac5d90a.json +1 -0
- package/dist/client/_nuxt/doGI2cFk.js +1 -0
- package/dist/client/_nuxt/eJfcURhx.js +1 -0
- package/dist/client/_nuxt/entry.D91GVkD7.css +1 -0
- package/dist/client/_nuxt/error-404.ORekjfyJ.css +1 -0
- package/dist/client/_nuxt/error-500.BIuFL0tW.css +1 -0
- package/dist/client/_nuxt/hXH8Gyq8.js +1 -0
- package/dist/client/_nuxt/i0IPvypD.js +1 -0
- package/dist/client/_nuxt/iSbrOpM4.js +1 -0
- package/dist/client/_nuxt/ithNYyXa.js +1 -0
- package/dist/client/_nuxt/j8KhMG0x.js +1 -0
- package/dist/client/_nuxt/jaXbsbtS.js +1 -0
- package/dist/client/_nuxt/nclm9rTJ.js +266 -0
- package/dist/client/_nuxt/o-cPXEvd.js +575 -0
- package/dist/client/_nuxt/rS0jd3Ly.js +1 -0
- package/dist/client/_nuxt/sMI-pExk.js +1 -0
- package/dist/client/_nuxt/sQpxpyUs.js +1 -0
- package/dist/client/_nuxt/vMsNTMhM.js +5 -0
- package/dist/client/_nuxt/wChcbJ1V.js +37 -0
- package/dist/client/_nuxt/wORFcijT.js +32 -0
- package/dist/client/_nuxt/wPLeKH6q.js +40 -0
- package/dist/client/_nuxt/xPNGhBYe.js +1 -0
- package/dist/client/index.html +238 -0
- package/dist/module.cjs +5 -0
- package/dist/module.d.mts +67 -0
- package/dist/module.d.ts +67 -0
- package/dist/module.json +9 -0
- package/dist/module.mjs +289 -0
- package/dist/runtime/composables/createScriptConsentTrigger.d.ts +6 -0
- package/dist/runtime/composables/createScriptConsentTrigger.mjs +36 -0
- package/dist/runtime/composables/useAnalyticsPageEvent.d.ts +2 -0
- package/dist/runtime/composables/useAnalyticsPageEvent.mjs +35 -0
- package/dist/runtime/composables/useScript.d.ts +5 -0
- package/dist/runtime/composables/useScript.mjs +57 -0
- package/dist/runtime/types.d.ts +35 -0
- package/dist/types.d.mts +18 -0
- package/dist/types.d.ts +18 -0
- package/package.json +83 -3
- /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>
|