Init project

This commit is contained in:
2024-07-25 23:44:32 +02:00
parent 426cbe8777
commit 5092005816
11 changed files with 144 additions and 434 deletions

View File

@@ -1 +0,0 @@
NUXT_SESSION_PASSWORD=

View File

@@ -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>

View File

@@ -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',
})

View File

@@ -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
View File

@@ -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

View 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;

View 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": {}
}
}

View File

@@ -8,6 +8,13 @@
"when": 1721758030188,
"tag": "0000_hot_thunderball",
"breakpoints": true
},
{
"idx": 1,
"version": "6",
"when": 1721924389034,
"tag": "0001_conscious_plazm",
"breakpoints": true
}
]
}
}

View File

@@ -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)`),
})

View File

@@ -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, '/')
},
})

View File

@@ -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, '/')
},
})