mirror of
https://github.com/ArthurDanjou/spanish-learner.git
synced 2026-01-14 12:14:39 +01:00
Init project
This commit is contained in:
@@ -1 +0,0 @@
|
||||
NUXT_SESSION_PASSWORD=
|
||||
48
app/app.vue
48
app/app.vue
@@ -2,51 +2,15 @@
|
||||
useHead({
|
||||
link: [{ rel: 'icon', type: 'image/png', href: '/favicon.ico' }],
|
||||
})
|
||||
|
||||
const head = useLocaleHead({
|
||||
addDirAttribute: true,
|
||||
identifierAttribute: 'id',
|
||||
addSeoAttributes: true,
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Html
|
||||
:dir="head.htmlAttrs.dir"
|
||||
:lang="head.htmlAttrs.lang"
|
||||
>
|
||||
<Head>
|
||||
<template
|
||||
v-for="link in head.link"
|
||||
:key="link.id"
|
||||
>
|
||||
<Link
|
||||
:id="link.id"
|
||||
:href="link.href"
|
||||
:hreflang="link.hreflang"
|
||||
:rel="link.rel"
|
||||
/>
|
||||
</template>
|
||||
<template
|
||||
v-for="meta in head.meta"
|
||||
:key="meta.id"
|
||||
>
|
||||
<Meta
|
||||
:id="meta.id"
|
||||
:content="meta.content"
|
||||
:property="meta.property"
|
||||
/>
|
||||
</template>
|
||||
</Head>
|
||||
<Body>
|
||||
<div>
|
||||
<NuxtLoadingIndicator color="#808080" />
|
||||
<UContainer>
|
||||
<NuxtPage />
|
||||
</UContainer>
|
||||
</div>
|
||||
</Body>
|
||||
</Html>
|
||||
<div>
|
||||
<NuxtLoadingIndicator color="#808080" />
|
||||
<UContainer>
|
||||
<NuxtPage />
|
||||
</UContainer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
|
||||
@@ -20,16 +20,11 @@ export default defineNuxtConfig({
|
||||
'@nuxtjs/google-fonts',
|
||||
'@nuxthq/studio',
|
||||
'@nuxt/image',
|
||||
'@nuxtjs/i18n',
|
||||
'@pinia/nuxt',
|
||||
'@pinia-plugin-persistedstate/nuxt',
|
||||
'nuxt-auth-utils',
|
||||
],
|
||||
|
||||
// Nuxt Hub
|
||||
hub: {
|
||||
cache: true,
|
||||
kv: true,
|
||||
database: true,
|
||||
analytics: true,
|
||||
},
|
||||
@@ -53,24 +48,6 @@ export default defineNuxtConfig({
|
||||
timeline: { enabled: true },
|
||||
},
|
||||
|
||||
// Nuxt I18N
|
||||
i18n: {
|
||||
strategy: 'no_prefix',
|
||||
locales: [
|
||||
{
|
||||
code: 'en',
|
||||
iso: 'en-EN',
|
||||
icon: 'i-twemoji-flag-united-kingdom',
|
||||
},
|
||||
{
|
||||
code: 'fr',
|
||||
iso: 'fr-FR',
|
||||
icon: 'i-twemoji-flag-france',
|
||||
},
|
||||
],
|
||||
defaultLocale: 'en',
|
||||
},
|
||||
|
||||
// Nuxt Google Fonts
|
||||
googleFonts: {
|
||||
display: 'swap',
|
||||
@@ -87,12 +64,5 @@ export default defineNuxtConfig({
|
||||
},
|
||||
},
|
||||
|
||||
// Nuxt Env
|
||||
runtimeConfig: {
|
||||
public: {
|
||||
test: '',
|
||||
},
|
||||
},
|
||||
|
||||
compatibilityDate: '2024-07-23',
|
||||
})
|
||||
|
||||
@@ -21,20 +21,15 @@
|
||||
"@nuxthq/studio": "^2.0.3",
|
||||
"@nuxthub/core": "^0.7.1",
|
||||
"@nuxtjs/google-fonts": "^3.2.0",
|
||||
"@nuxtjs/i18n": "^8.3.1",
|
||||
"@pinia/nuxt": "^0.5.1",
|
||||
"drizzle-orm": "^0.32.1",
|
||||
"h3-zod": "^0.5.3",
|
||||
"nuxt": "^3.12.4",
|
||||
"nuxt-auth-utils": "^0.2.0",
|
||||
"pinia": "^2.1.7",
|
||||
"zod": "^3.23.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^2.23.2",
|
||||
"@nuxt/devtools": "^1.3.9",
|
||||
"@nuxt/ui": "^2.17.0",
|
||||
"@pinia-plugin-persistedstate/nuxt": "^1.2.1",
|
||||
"@types/node": "^20.14.11",
|
||||
"@vueuse/core": "^10.11.0",
|
||||
"@vueuse/nuxt": "^10.11.0",
|
||||
|
||||
311
pnpm-lock.yaml
generated
311
pnpm-lock.yaml
generated
@@ -29,12 +29,6 @@ importers:
|
||||
'@nuxtjs/google-fonts':
|
||||
specifier: ^3.2.0
|
||||
version: 3.2.0(magicast@0.3.4)(rollup@4.19.0)
|
||||
'@nuxtjs/i18n':
|
||||
specifier: ^8.3.1
|
||||
version: 8.3.1(magicast@0.3.4)(rollup@4.19.0)(vue@3.4.33(typescript@5.5.4))
|
||||
'@pinia/nuxt':
|
||||
specifier: ^0.5.1
|
||||
version: 0.5.1(magicast@0.3.4)(rollup@4.19.0)(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4))
|
||||
drizzle-orm:
|
||||
specifier: ^0.32.1
|
||||
version: 0.32.1(@cloudflare/workers-types@4.20240722.0)
|
||||
@@ -44,12 +38,6 @@ importers:
|
||||
nuxt:
|
||||
specifier: ^3.12.4
|
||||
version: 3.12.4(@parcel/watcher@2.4.1)(@types/node@20.14.11)(drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240722.0))(eslint@9.7.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.19.0)(terser@5.31.3)(typescript@5.5.4)(vite@5.3.4(@types/node@20.14.11)(terser@5.31.3))(vue-tsc@2.0.28(typescript@5.5.4))
|
||||
nuxt-auth-utils:
|
||||
specifier: ^0.2.0
|
||||
version: 0.2.0(magicast@0.3.4)(rollup@4.19.0)
|
||||
pinia:
|
||||
specifier: ^2.1.7
|
||||
version: 2.1.7(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4))
|
||||
zod:
|
||||
specifier: ^3.23.8
|
||||
version: 3.23.8
|
||||
@@ -60,9 +48,6 @@ importers:
|
||||
'@nuxt/devtools':
|
||||
specifier: ^1.3.9
|
||||
version: 1.3.9(rollup@4.19.0)(vite@5.3.4(@types/node@20.14.11)(terser@5.31.3))
|
||||
'@pinia-plugin-persistedstate/nuxt':
|
||||
specifier: ^1.2.1
|
||||
version: 1.2.1(@pinia/nuxt@0.5.1(magicast@0.3.4)(rollup@4.19.0)(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4)))(magicast@0.3.4)(pinia@2.1.7(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4)))(rollup@4.19.0)
|
||||
'@types/node':
|
||||
specifier: ^20.14.11
|
||||
version: 20.14.11
|
||||
@@ -1307,57 +1292,6 @@ packages:
|
||||
peerDependencies:
|
||||
vue: '>=3'
|
||||
|
||||
'@intlify/bundle-utils@7.5.1':
|
||||
resolution: {integrity: sha512-UovJl10oBIlmYEcWw+VIHdKY5Uv5sdPG0b/b6bOYxGLln3UwB75+2dlc0F3Fsa0RhoznQ5Rp589/BZpABpE4Xw==}
|
||||
engines: {node: '>= 14.16'}
|
||||
peerDependencies:
|
||||
petite-vue-i18n: '*'
|
||||
vue-i18n: '*'
|
||||
peerDependenciesMeta:
|
||||
petite-vue-i18n:
|
||||
optional: true
|
||||
vue-i18n:
|
||||
optional: true
|
||||
|
||||
'@intlify/core-base@9.13.1':
|
||||
resolution: {integrity: sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==}
|
||||
engines: {node: '>= 16'}
|
||||
|
||||
'@intlify/core@9.13.1':
|
||||
resolution: {integrity: sha512-R+l9DRqzfK0yT9UgaCq3sl24NJAP4f/djAu4z9zLknAUBEal2q/tXFV+oGzcGpvi3uXWNvF9Gctj+IsuPwJjoA==}
|
||||
engines: {node: '>= 16'}
|
||||
|
||||
'@intlify/h3@0.5.0':
|
||||
resolution: {integrity: sha512-cgfrtD3qu3BPJ47gfZ35J2LJpI64Riic0K8NGgid5ilyPXRQTNY7mXlT/B+HZYQg1hmBxKa5G5HJXyAZ4R2H5A==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@intlify/message-compiler@9.13.1':
|
||||
resolution: {integrity: sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==}
|
||||
engines: {node: '>= 16'}
|
||||
|
||||
'@intlify/shared@9.13.1':
|
||||
resolution: {integrity: sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==}
|
||||
engines: {node: '>= 16'}
|
||||
|
||||
'@intlify/unplugin-vue-i18n@3.0.1':
|
||||
resolution: {integrity: sha512-q1zJhA/WpoLBzAAuKA5/AEp0e+bMOM10ll/HxT4g1VAw/9JhC4TTobP9KobKH90JMZ4U2daLFlYQfKNd29lpqw==}
|
||||
engines: {node: '>= 14.16'}
|
||||
peerDependencies:
|
||||
petite-vue-i18n: '*'
|
||||
vue-i18n: '*'
|
||||
vue-i18n-bridge: '*'
|
||||
peerDependenciesMeta:
|
||||
petite-vue-i18n:
|
||||
optional: true
|
||||
vue-i18n:
|
||||
optional: true
|
||||
vue-i18n-bridge:
|
||||
optional: true
|
||||
|
||||
'@intlify/utils@0.12.0':
|
||||
resolution: {integrity: sha512-yCBNcuZQ49iInqmWC2xfW0rgEQyNtCM8C8KcWKTXxyscgUE1+48gjLgZZqP75MjhlApxwph7ZMWLqyABkSgxQA==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@ioredis/commands@1.2.0':
|
||||
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
|
||||
|
||||
@@ -1407,11 +1341,6 @@ packages:
|
||||
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
|
||||
hasBin: true
|
||||
|
||||
'@miyaneee/rollup-plugin-json5@1.2.0':
|
||||
resolution: {integrity: sha512-JjTIaXZp9WzhUHpElrqPnl1AzBi/rvRs065F71+aTmlqvTMVkdbjZ8vfFl4nRlgJy+TPBw69ZK4pwFdmOAt4aA==}
|
||||
peerDependencies:
|
||||
rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
|
||||
|
||||
'@netlify/functions@2.8.1':
|
||||
resolution: {integrity: sha512-+6wtYdoz0yE06dSa9XkP47tw5zm6g13QMeCwM3MmHx1vn8hzwFa51JtmfraprdkL7amvb7gaNM+OOhQU1h6T8A==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
@@ -1495,10 +1424,6 @@ packages:
|
||||
'@nuxtjs/google-fonts@3.2.0':
|
||||
resolution: {integrity: sha512-cGAjDJoeQ2jm6VJCo4AtSmKO6KjsbO9RSLj8q261fD0lMVNMZCxkCxBkg8L0/2Vfgp+5QBHWVXL71p1tiybJFw==}
|
||||
|
||||
'@nuxtjs/i18n@8.3.1':
|
||||
resolution: {integrity: sha512-VHnnjFTTep2oC5++61WY06y4c/h943NyHQh1CRUJQvjsdbGSMX3WQjMGk+X05a3pyPFN70aq0YbgtsEoEoTEjQ==}
|
||||
engines: {node: ^14.16.0 || >=16.11.0}
|
||||
|
||||
'@nuxtjs/mdc@0.8.3':
|
||||
resolution: {integrity: sha512-FqvJFWkBN9u2FeWog+7+C0aIOx0WIu61TYgAXPmmIOVVua6s2mXQsMyF3fXY2M56QBIaYJzK/SYN+5FGr5GNTQ==}
|
||||
|
||||
@@ -1587,14 +1512,6 @@ packages:
|
||||
resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
|
||||
'@pinia-plugin-persistedstate/nuxt@1.2.1':
|
||||
resolution: {integrity: sha512-q8s+4aQW/AjBMyeqLL48/qzBR5lcgnvvf1525ovNuKf6Wl9CsoLjPKh/5X8vNoKGwSow4gP7lVmdYPQRypgjgg==}
|
||||
peerDependencies:
|
||||
'@pinia/nuxt': ^0.5.0
|
||||
|
||||
'@pinia/nuxt@0.5.1':
|
||||
resolution: {integrity: sha512-6wT6TqY81n+7/x3Yhf0yfaJVKkZU42AGqOR0T3+UvChcaOJhSma7OWPN64v+ptYlznat+fS1VTwNAcbi2lzHnw==}
|
||||
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||
engines: {node: '>=14'}
|
||||
@@ -1672,15 +1589,6 @@ packages:
|
||||
rollup:
|
||||
optional: true
|
||||
|
||||
'@rollup/plugin-yaml@4.1.2':
|
||||
resolution: {integrity: sha512-RpupciIeZMUqhgFE97ba0s98mOFS7CWzN3EJNhJkqSv9XLlWYtwVdtE6cDw6ASOF/sZVFS7kRJXftaqM2Vakdw==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
|
||||
peerDependenciesMeta:
|
||||
rollup:
|
||||
optional: true
|
||||
|
||||
'@rollup/pluginutils@4.2.1':
|
||||
resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
|
||||
engines: {node: '>= 8.0.0'}
|
||||
@@ -3129,11 +3037,6 @@ packages:
|
||||
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
escodegen@2.1.0:
|
||||
resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
|
||||
engines: {node: '>=6.0'}
|
||||
hasBin: true
|
||||
|
||||
eslint-compat-utils@0.5.1:
|
||||
resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -3320,11 +3223,6 @@ packages:
|
||||
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
esprima@4.0.1:
|
||||
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
|
||||
esquery@1.6.0:
|
||||
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
|
||||
engines: {node: '>=0.10'}
|
||||
@@ -3838,9 +3736,6 @@ packages:
|
||||
is-hexadecimal@2.0.1:
|
||||
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
|
||||
|
||||
is-https@4.0.0:
|
||||
resolution: {integrity: sha512-FeMLiqf8E5g6SdiVJsPcNZX8k4h2fBs1wp5Bb6uaNxn58ufK1axBqQZdmAQsqh0t9BuwFObybrdVJh6MKyPlyg==}
|
||||
|
||||
is-inside-container@1.0.0:
|
||||
resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
|
||||
engines: {node: '>=14.16'}
|
||||
@@ -4490,9 +4385,6 @@ packages:
|
||||
engines: {node: ^16.10.0 || >=18.0.0}
|
||||
hasBin: true
|
||||
|
||||
nuxt-auth-utils@0.2.0:
|
||||
resolution: {integrity: sha512-tfGqKAZmoD3Fs1t/+5QVkXZxPY6JU76zttOpyFmaKpNTUE8uFK/t2pyPHwPV4HGuh140c0Zi6HHnZ8tMeI4VwA==}
|
||||
|
||||
nuxt-component-meta@0.6.6:
|
||||
resolution: {integrity: sha512-Y5/tuZuZOlD4GluAjcTU6JlhtEeg7/92VEfoV814t2uTuZK+b9RokJeGtrMotXuCJ4vuT1Is7M+pkPm+vY/tXA==}
|
||||
hasBin: true
|
||||
@@ -4690,23 +4582,6 @@ packages:
|
||||
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
pinia-plugin-persistedstate@3.2.1:
|
||||
resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==}
|
||||
peerDependencies:
|
||||
pinia: ^2.0.0
|
||||
|
||||
pinia@2.1.7:
|
||||
resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==}
|
||||
peerDependencies:
|
||||
'@vue/composition-api': ^1.4.0
|
||||
typescript: '>=4.4.4'
|
||||
vue: ^2.6.14 || ^3.3.0
|
||||
peerDependenciesMeta:
|
||||
'@vue/composition-api':
|
||||
optional: true
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
pirates@4.0.6:
|
||||
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -5540,10 +5415,6 @@ packages:
|
||||
resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
tosource@2.0.0-alpha.3:
|
||||
resolution: {integrity: sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
totalist@3.0.1:
|
||||
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -5926,12 +5797,6 @@ packages:
|
||||
peerDependencies:
|
||||
eslint: '>=6.0.0'
|
||||
|
||||
vue-i18n@9.13.1:
|
||||
resolution: {integrity: sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==}
|
||||
engines: {node: '>= 16'}
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
|
||||
vue-router@4.4.0:
|
||||
resolution: {integrity: sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==}
|
||||
peerDependencies:
|
||||
@@ -6980,65 +6845,6 @@ snapshots:
|
||||
'@iconify/types': 2.0.0
|
||||
vue: 3.4.33(typescript@5.5.4)
|
||||
|
||||
'@intlify/bundle-utils@7.5.1(vue-i18n@9.13.1(vue@3.4.33(typescript@5.5.4)))':
|
||||
dependencies:
|
||||
'@intlify/message-compiler': 9.13.1
|
||||
'@intlify/shared': 9.13.1
|
||||
acorn: 8.12.1
|
||||
escodegen: 2.1.0
|
||||
estree-walker: 2.0.2
|
||||
jsonc-eslint-parser: 2.4.0
|
||||
magic-string: 0.30.10
|
||||
mlly: 1.7.1
|
||||
source-map-js: 1.2.0
|
||||
yaml-eslint-parser: 1.2.3
|
||||
optionalDependencies:
|
||||
vue-i18n: 9.13.1(vue@3.4.33(typescript@5.5.4))
|
||||
|
||||
'@intlify/core-base@9.13.1':
|
||||
dependencies:
|
||||
'@intlify/message-compiler': 9.13.1
|
||||
'@intlify/shared': 9.13.1
|
||||
|
||||
'@intlify/core@9.13.1':
|
||||
dependencies:
|
||||
'@intlify/core-base': 9.13.1
|
||||
'@intlify/shared': 9.13.1
|
||||
|
||||
'@intlify/h3@0.5.0':
|
||||
dependencies:
|
||||
'@intlify/core': 9.13.1
|
||||
'@intlify/utils': 0.12.0
|
||||
|
||||
'@intlify/message-compiler@9.13.1':
|
||||
dependencies:
|
||||
'@intlify/shared': 9.13.1
|
||||
source-map-js: 1.2.0
|
||||
|
||||
'@intlify/shared@9.13.1': {}
|
||||
|
||||
'@intlify/unplugin-vue-i18n@3.0.1(rollup@4.19.0)(vue-i18n@9.13.1(vue@3.4.33(typescript@5.5.4)))':
|
||||
dependencies:
|
||||
'@intlify/bundle-utils': 7.5.1(vue-i18n@9.13.1(vue@3.4.33(typescript@5.5.4)))
|
||||
'@intlify/shared': 9.13.1
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.19.0)
|
||||
'@vue/compiler-sfc': 3.4.33
|
||||
debug: 4.3.5
|
||||
fast-glob: 3.3.2
|
||||
js-yaml: 4.1.0
|
||||
json5: 2.2.3
|
||||
pathe: 1.1.2
|
||||
picocolors: 1.0.1
|
||||
source-map-js: 1.2.0
|
||||
unplugin: 1.12.0
|
||||
optionalDependencies:
|
||||
vue-i18n: 9.13.1(vue@3.4.33(typescript@5.5.4))
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
'@intlify/utils@0.12.0': {}
|
||||
|
||||
'@ioredis/commands@1.2.0': {}
|
||||
|
||||
'@isaacs/cliui@8.0.2':
|
||||
@@ -7117,12 +6923,6 @@ snapshots:
|
||||
- encoding
|
||||
- supports-color
|
||||
|
||||
'@miyaneee/rollup-plugin-json5@1.2.0(rollup@4.19.0)':
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.19.0)
|
||||
json5: 2.2.3
|
||||
rollup: 4.19.0
|
||||
|
||||
'@netlify/functions@2.8.1':
|
||||
dependencies:
|
||||
'@netlify/serverless-functions-api': 1.19.1
|
||||
@@ -7556,38 +7356,6 @@ snapshots:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
'@nuxtjs/i18n@8.3.1(magicast@0.3.4)(rollup@4.19.0)(vue@3.4.33(typescript@5.5.4))':
|
||||
dependencies:
|
||||
'@intlify/h3': 0.5.0
|
||||
'@intlify/shared': 9.13.1
|
||||
'@intlify/unplugin-vue-i18n': 3.0.1(rollup@4.19.0)(vue-i18n@9.13.1(vue@3.4.33(typescript@5.5.4)))
|
||||
'@intlify/utils': 0.12.0
|
||||
'@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.19.0)
|
||||
'@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.19.0)
|
||||
'@rollup/plugin-yaml': 4.1.2(rollup@4.19.0)
|
||||
'@vue/compiler-sfc': 3.4.33
|
||||
debug: 4.3.5
|
||||
defu: 6.1.4
|
||||
estree-walker: 3.0.3
|
||||
is-https: 4.0.0
|
||||
knitwork: 1.1.0
|
||||
magic-string: 0.30.10
|
||||
mlly: 1.7.1
|
||||
pathe: 1.1.2
|
||||
scule: 1.3.0
|
||||
sucrase: 3.35.0
|
||||
ufo: 1.5.4
|
||||
unplugin: 1.12.0
|
||||
vue-i18n: 9.13.1(vue@3.4.33(typescript@5.5.4))
|
||||
vue-router: 4.4.0(vue@3.4.33(typescript@5.5.4))
|
||||
transitivePeerDependencies:
|
||||
- magicast
|
||||
- petite-vue-i18n
|
||||
- rollup
|
||||
- supports-color
|
||||
- vue
|
||||
- vue-i18n-bridge
|
||||
|
||||
'@nuxtjs/mdc@0.8.3(magicast@0.3.4)(rollup@4.19.0)':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.19.0)
|
||||
@@ -7712,30 +7480,6 @@ snapshots:
|
||||
'@parcel/watcher-win32-ia32': 2.4.1
|
||||
'@parcel/watcher-win32-x64': 2.4.1
|
||||
|
||||
'@pinia-plugin-persistedstate/nuxt@1.2.1(@pinia/nuxt@0.5.1(magicast@0.3.4)(rollup@4.19.0)(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4)))(magicast@0.3.4)(pinia@2.1.7(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4)))(rollup@4.19.0)':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.19.0)
|
||||
'@pinia/nuxt': 0.5.1(magicast@0.3.4)(rollup@4.19.0)(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4))
|
||||
defu: 6.1.4
|
||||
pinia-plugin-persistedstate: 3.2.1(pinia@2.1.7(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4)))
|
||||
transitivePeerDependencies:
|
||||
- magicast
|
||||
- pinia
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
'@pinia/nuxt@0.5.1(magicast@0.3.4)(rollup@4.19.0)(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4))':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.19.0)
|
||||
pinia: 2.1.7(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- magicast
|
||||
- rollup
|
||||
- supports-color
|
||||
- typescript
|
||||
- vue
|
||||
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
optional: true
|
||||
|
||||
@@ -7802,14 +7546,6 @@ snapshots:
|
||||
optionalDependencies:
|
||||
rollup: 4.19.0
|
||||
|
||||
'@rollup/plugin-yaml@4.1.2(rollup@4.19.0)':
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.19.0)
|
||||
js-yaml: 4.1.0
|
||||
tosource: 2.0.0-alpha.3
|
||||
optionalDependencies:
|
||||
rollup: 4.19.0
|
||||
|
||||
'@rollup/pluginutils@4.2.1':
|
||||
dependencies:
|
||||
estree-walker: 2.0.2
|
||||
@@ -9368,14 +9104,6 @@ snapshots:
|
||||
|
||||
escape-string-regexp@5.0.0: {}
|
||||
|
||||
escodegen@2.1.0:
|
||||
dependencies:
|
||||
esprima: 4.0.1
|
||||
estraverse: 5.3.0
|
||||
esutils: 2.0.3
|
||||
optionalDependencies:
|
||||
source-map: 0.6.1
|
||||
|
||||
eslint-compat-utils@0.5.1(eslint@9.7.0):
|
||||
dependencies:
|
||||
eslint: 9.7.0
|
||||
@@ -9660,8 +9388,6 @@ snapshots:
|
||||
acorn-jsx: 5.3.2(acorn@8.12.1)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
esprima@4.0.1: {}
|
||||
|
||||
esquery@1.6.0:
|
||||
dependencies:
|
||||
estraverse: 5.3.0
|
||||
@@ -10260,8 +9986,6 @@ snapshots:
|
||||
|
||||
is-hexadecimal@2.0.1: {}
|
||||
|
||||
is-https@4.0.0: {}
|
||||
|
||||
is-inside-container@1.0.0:
|
||||
dependencies:
|
||||
is-docker: 3.0.0
|
||||
@@ -11156,20 +10880,6 @@ snapshots:
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
|
||||
nuxt-auth-utils@0.2.0(magicast@0.3.4)(rollup@4.19.0):
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.19.0)
|
||||
defu: 6.1.4
|
||||
hookable: 5.5.3
|
||||
ofetch: 1.3.4
|
||||
ohash: 1.1.3
|
||||
pathe: 1.1.2
|
||||
uncrypto: 0.1.3
|
||||
transitivePeerDependencies:
|
||||
- magicast
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
nuxt-component-meta@0.6.6(magicast@0.3.4)(rollup@4.19.0):
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.19.0)
|
||||
@@ -11488,18 +11198,6 @@ snapshots:
|
||||
|
||||
pify@2.3.0: {}
|
||||
|
||||
pinia-plugin-persistedstate@3.2.1(pinia@2.1.7(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4))):
|
||||
dependencies:
|
||||
pinia: 2.1.7(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4))
|
||||
|
||||
pinia@2.1.7(typescript@5.5.4)(vue@3.4.33(typescript@5.5.4)):
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.6.3
|
||||
vue: 3.4.33(typescript@5.5.4)
|
||||
vue-demi: 0.14.9(vue@3.4.33(typescript@5.5.4))
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
|
||||
pirates@4.0.6: {}
|
||||
|
||||
pkg-types@1.1.3:
|
||||
@@ -12488,8 +12186,6 @@ snapshots:
|
||||
dependencies:
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
tosource@2.0.0-alpha.3: {}
|
||||
|
||||
totalist@3.0.1: {}
|
||||
|
||||
tr46@0.0.3: {}
|
||||
@@ -12899,13 +12595,6 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vue-i18n@9.13.1(vue@3.4.33(typescript@5.5.4)):
|
||||
dependencies:
|
||||
'@intlify/core-base': 9.13.1
|
||||
'@intlify/shared': 9.13.1
|
||||
'@vue/devtools-api': 6.6.3
|
||||
vue: 3.4.33(typescript@5.5.4)
|
||||
|
||||
vue-router@4.4.0(vue@3.4.33(typescript@5.5.4)):
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.6.3
|
||||
|
||||
11
server/database/migrations/0001_conscious_plazm.sql
Normal file
11
server/database/migrations/0001_conscious_plazm.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
CREATE TABLE `words` (
|
||||
`id` integer PRIMARY KEY NOT NULL,
|
||||
`word` text DEFAULT '',
|
||||
`translation` text DEFAULT '',
|
||||
`created_at` text DEFAULT (CURRENT_DATE)
|
||||
);
|
||||
--> statement-breakpoint
|
||||
ALTER TABLE `users` RENAME TO `verbs`;--> statement-breakpoint
|
||||
ALTER TABLE `verbs` RENAME COLUMN `name` TO `verb`;--> statement-breakpoint
|
||||
ALTER TABLE `verbs` ADD `translation` text DEFAULT '';--> statement-breakpoint
|
||||
ALTER TABLE `verbs` ADD `type` text;
|
||||
108
server/database/migrations/meta/0001_snapshot.json
Normal file
108
server/database/migrations/meta/0001_snapshot.json
Normal file
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"version": "6",
|
||||
"dialect": "sqlite",
|
||||
"id": "b47037ef-03cc-45d7-b297-e1d1b8dbf3fe",
|
||||
"prevId": "ef8e28cd-73a1-4801-9a0b-7e80169a57c0",
|
||||
"tables": {
|
||||
"verbs": {
|
||||
"name": "verbs",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "integer",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"verb": {
|
||||
"name": "verb",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false,
|
||||
"default": "''"
|
||||
},
|
||||
"translation": {
|
||||
"name": "translation",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false,
|
||||
"default": "''"
|
||||
},
|
||||
"type": {
|
||||
"name": "type",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"created_at": {
|
||||
"name": "created_at",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false,
|
||||
"default": "(CURRENT_DATE)"
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
},
|
||||
"words": {
|
||||
"name": "words",
|
||||
"columns": {
|
||||
"id": {
|
||||
"name": "id",
|
||||
"type": "integer",
|
||||
"primaryKey": true,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"word": {
|
||||
"name": "word",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false,
|
||||
"default": "''"
|
||||
},
|
||||
"translation": {
|
||||
"name": "translation",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false,
|
||||
"default": "''"
|
||||
},
|
||||
"created_at": {
|
||||
"name": "created_at",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false,
|
||||
"default": "(CURRENT_DATE)"
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
}
|
||||
},
|
||||
"enums": {},
|
||||
"_meta": {
|
||||
"schemas": {},
|
||||
"tables": {
|
||||
"\"users\"": "\"verbs\""
|
||||
},
|
||||
"columns": {
|
||||
"\"verbs\".\"name\"": "\"verbs\".\"verb\""
|
||||
}
|
||||
},
|
||||
"internal": {
|
||||
"indexes": {}
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,13 @@
|
||||
"when": 1721758030188,
|
||||
"tag": "0000_hot_thunderball",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"version": "6",
|
||||
"when": 1721924389034,
|
||||
"tag": "0001_conscious_plazm",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,17 @@
|
||||
import { integer, sqliteTable, text } from 'drizzle-orm/sqlite-core'
|
||||
import { sql } from 'drizzle-orm'
|
||||
|
||||
export const users = sqliteTable('users', {
|
||||
export const verbs = sqliteTable('verbs', {
|
||||
id: integer('id').primaryKey(),
|
||||
name: text('name').default(''),
|
||||
verb: text('verb').default(''),
|
||||
translation: text('translation').default(''),
|
||||
type: text('type', { enum: ['-ar', '-er', '-ir'] }),
|
||||
createdAt: text('created_at').default(sql`(CURRENT_DATE)`),
|
||||
})
|
||||
|
||||
export const words = sqliteTable('words', {
|
||||
id: integer('id').primaryKey(),
|
||||
word: text('word').default(''),
|
||||
translation: text('translation').default(''),
|
||||
createdAt: text('created_at').default(sql`(CURRENT_DATE)`),
|
||||
})
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
export default oauth.githubEventHandler({
|
||||
config: {
|
||||
emailRequired: true,
|
||||
},
|
||||
async onSuccess(event, { user }) {
|
||||
await setUserSession(event, {
|
||||
user: {
|
||||
name: user.name,
|
||||
imageUrl: user.avatar_url,
|
||||
email: user.email,
|
||||
},
|
||||
})
|
||||
return sendRedirect(event, '/')
|
||||
},
|
||||
onError(event, error) {
|
||||
console.error('GitHub OAuth error:', error)
|
||||
return sendRedirect(event, '/')
|
||||
},
|
||||
})
|
||||
@@ -1,23 +0,0 @@
|
||||
export default oauth.googleEventHandler({
|
||||
config: {
|
||||
authorizationParams: {
|
||||
access_type: 'offline',
|
||||
},
|
||||
},
|
||||
async onSuccess(event, { user }) {
|
||||
await setUserSession(event, {
|
||||
user: {
|
||||
name: user.name,
|
||||
imageUrl: user.picture,
|
||||
email: user.email,
|
||||
},
|
||||
})
|
||||
|
||||
return sendRedirect(event, '/')
|
||||
},
|
||||
// Optional, will return a json error and 401 status code by default
|
||||
onError(event, error) {
|
||||
console.error('Google OAuth error:', error)
|
||||
return sendRedirect(event, '/')
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user