sidebarItem belum fix
This commit is contained in:
@@ -1,6 +1,18 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
const { $encodeBase64 } = useNuxtApp();
|
||||
const checkbox = ref(true);
|
||||
const cookies = useCookie('user_token_profile');
|
||||
// const keycloak = async () => {
|
||||
// const response = await $fetch(`/api/auth/login`, { method: 'POST', mode: 'no-cors' }).then((response) => {
|
||||
// console.log(response)
|
||||
// cookies.value = $encodeBase64('ini_token')
|
||||
// window.location.href = response.callbackURL
|
||||
// })
|
||||
// }
|
||||
|
||||
const { signIn, getProviders } = useAuth()
|
||||
const providers = await getProviders()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -11,22 +23,26 @@ const checkbox = ref(true);
|
||||
</v-col>
|
||||
<v-col cols="12">
|
||||
<v-label class="font-weight-bold mb-1">Password</v-label>
|
||||
<v-text-field variant="outlined" density="compact" type="password" hide-details color="primary"></v-text-field>
|
||||
<v-text-field variant="outlined" density="compact" type="password" hide-details
|
||||
color="primary"></v-text-field>
|
||||
</v-col>
|
||||
<v-col cols="12" class="pt-0">
|
||||
<div class="d-flex flex-wrap align-center">
|
||||
<v-checkbox v-model="checkbox" color="primary" hide-details>
|
||||
<v-checkbox v-model="checkbox" color="primary" hide-details>
|
||||
<template v-slot:label class="text-body-1">Remeber this Device</template>
|
||||
</v-checkbox>
|
||||
<div class="ml-sm-auto">
|
||||
<NuxtLink to="/"
|
||||
class="text-primary text-decoration-none text-body-1 opacity-1 font-weight-medium">Forgot
|
||||
<NuxtLink to="/" class="text-primary text-decoration-none text-body-1 opacity-1 font-weight-medium">
|
||||
Forgot
|
||||
Password ?</NuxtLink>
|
||||
</div>
|
||||
</div>
|
||||
</v-col>
|
||||
<v-col cols="12" class="pt-0">
|
||||
<v-btn to="/" color="primary" size="large" block flat>Sign in</v-btn>
|
||||
<button v-for="provider in providers" :key="provider.id" class="login-button" @click="signIn('keycloak')">
|
||||
Sign in with {{ provider.name }}
|
||||
</button>
|
||||
<!-- <v-btn @click="keycloak()" color="primary" size="large" block flat>Sign in</v-btn> -->
|
||||
</v-col>
|
||||
</v-row>
|
||||
</template>
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
<script setup lang="ts">
|
||||
import { UserIcon, MailIcon, ListCheckIcon } from 'vue-tabler-icons';
|
||||
const runtimeConfig = useRuntimeConfig();
|
||||
const user_profile = useCookie('user_token_profile');
|
||||
// const user_token = useCookie('user_token');
|
||||
const logout = async () => {
|
||||
console.log('Logging out...');
|
||||
window.location.href = `${runtimeConfig.public.keycloakUrl}/realms/${runtimeConfig.public.keycloakRealm}/protocol/openid-connect/logout?client_id=${runtimeConfig.public.keycloakClient}&post_logout_redirect_uri=http://localhost:3000`;
|
||||
// user_token.value = null;
|
||||
user_profile.value = null;
|
||||
navigateTo('/auth/login')
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -16,27 +26,27 @@ import { UserIcon, MailIcon, ListCheckIcon } from 'vue-tabler-icons';
|
||||
</template>
|
||||
<v-sheet rounded="md" width="200" elevation="10" class="mt-2">
|
||||
<v-list class="py-0" lines="one" density="compact">
|
||||
<v-list-item value="item1" active-color="primary" >
|
||||
<v-list-item value="item1" active-color="primary">
|
||||
<template v-slot:prepend>
|
||||
<UserIcon stroke-width="1.5" size="20"/>
|
||||
<UserIcon stroke-width="1.5" size="20" />
|
||||
</template>
|
||||
<v-list-item-title class="pl-4 text-body-1">My Profile</v-list-item-title>
|
||||
</v-list-item>
|
||||
<v-list-item value="item2" active-color="primary">
|
||||
<template v-slot:prepend>
|
||||
<MailIcon stroke-width="1.5" size="20"/>
|
||||
<MailIcon stroke-width="1.5" size="20" />
|
||||
</template>
|
||||
<v-list-item-title class="pl-4 text-body-1">My Account</v-list-item-title>
|
||||
<v-list-item-title class="pl-4 text-body-1">My Account</v-list-item-title>
|
||||
</v-list-item>
|
||||
<v-list-item value="item3" active-color="primary">
|
||||
<v-list-item value="item3" active-color="primary">
|
||||
<template v-slot:prepend>
|
||||
<ListCheckIcon stroke-width="1.5" size="20"/>
|
||||
<ListCheckIcon stroke-width="1.5" size="20" />
|
||||
</template>
|
||||
<v-list-item-title class="pl-4 text-body-1">My Task</v-list-item-title>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
<div class="pt-4 pb-4 px-5 text-center">
|
||||
<v-btn to="/auth/login" color="primary" variant="outlined" block>Logout</v-btn>
|
||||
<v-btn @click="logout" color="primary" variant="outlined" block>Logout</v-btn>
|
||||
</div>
|
||||
</v-sheet>
|
||||
</v-menu>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
const { $decodeBase64 } = useNuxtApp();
|
||||
|
||||
export interface menu {
|
||||
header?: string;
|
||||
title?: string;
|
||||
@@ -14,6 +16,7 @@ export interface menu {
|
||||
type?: string;
|
||||
subCaption?: string;
|
||||
external?: boolean;
|
||||
requiredGroups?: string[];
|
||||
}
|
||||
|
||||
const sidebarItem: menu[] = [
|
||||
@@ -27,16 +30,19 @@ const sidebarItem: menu[] = [
|
||||
title: "Front Pages",
|
||||
icon: "home-angle-linear",
|
||||
to: "/front",
|
||||
requiredGroups: ["/Bidang Pelayanan Medik"],
|
||||
children: [
|
||||
{
|
||||
title: "Coba VueForm",
|
||||
to: "/coba",
|
||||
external: false,
|
||||
requiredGroups: ["/Bidang Pelayanan Medik"]
|
||||
},
|
||||
{
|
||||
title: "Coba VueForm2",
|
||||
to: "/coba2",
|
||||
external: false,
|
||||
requiredGroups: ["/Bidang Diklit/Staff"]
|
||||
},
|
||||
{
|
||||
title: "Homepage",
|
||||
@@ -51,6 +57,8 @@ const sidebarItem: menu[] = [
|
||||
title: "Typography",
|
||||
icon: "text-circle-outline",
|
||||
to: "/ui/typography",
|
||||
requiredGroups: ['/Instalasi Bedah Sentral', '/Instalasi Rawat Jalan'],
|
||||
|
||||
},
|
||||
{
|
||||
title: "Shadow",
|
||||
@@ -107,4 +115,7 @@ const sidebarItem: menu[] = [
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
export default sidebarItem;
|
||||
|
||||
@@ -26,7 +26,41 @@ export default defineNuxtConfig({
|
||||
},
|
||||
modules: [
|
||||
'@vueform/nuxt',
|
||||
'@sidebase/nuxt-auth'
|
||||
],
|
||||
// auth: {
|
||||
// isEnabled: true,
|
||||
// originEnvKey: 'AUTH_ORIGIN',
|
||||
// baseURL: process.env.AUTH_ORIGIN || "http://localhost:3000",
|
||||
// provider: {
|
||||
// type: 'authjs',
|
||||
// },
|
||||
// sessionRefresh: {
|
||||
// enablePeriodically: true,
|
||||
// enableOnWindowFocus: true,
|
||||
// },
|
||||
// // disableServerSideAuth: false,
|
||||
|
||||
// // globalAppMiddleware: {
|
||||
// // isEnabled: true,
|
||||
// // },
|
||||
// },
|
||||
|
||||
runtimeConfig: {
|
||||
auth: {
|
||||
origin: process.env.NUXT_AUTH_ORIGIN || 'http://localhost:3000'
|
||||
},
|
||||
public: {
|
||||
keycloakUrl: 'https://auth.rssa.top',
|
||||
keycloakRealm: 'sandbox',
|
||||
keycloakClient: 'coba-pendaftaran',
|
||||
keycloakSecretKey: '32HslhZ8Hn97SsbxcmowhXvmNZ9cPGNE',
|
||||
keycloakRedirectURI: 'http://localhost:3000',
|
||||
|
||||
SIMRS_API: 'http://10.10.150.131:8084/api' // local Ahdan
|
||||
// SIMRS_API: 'http://10.10.123.140:8084/api'
|
||||
},
|
||||
},
|
||||
|
||||
compatibilityDate: "2024-10-23",
|
||||
})
|
||||
+6
-2
@@ -11,6 +11,9 @@
|
||||
"postinstall": "nuxt prepare"
|
||||
},
|
||||
"dependencies": {
|
||||
"openid-client": "^5.7.1",
|
||||
"nuxt-auth-utils": "^0.5.16",
|
||||
"cors": "^2.8.5",
|
||||
"@iconify/vue": "^4.1.1",
|
||||
"@mdi/font": "7.4.47",
|
||||
"@nuxt/vite-builder": "3.16.2",
|
||||
@@ -24,9 +27,10 @@
|
||||
"vuetify": "3.7.18"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nuxt": "3.16.2"
|
||||
"nuxt": "3.16.2",
|
||||
"@sidebase/nuxt-auth": "^0.10.1"
|
||||
},
|
||||
"overrides": {
|
||||
"nth-check": "2.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
+162
-28
@@ -1,31 +1,165 @@
|
||||
<script setup lang="ts">
|
||||
/*-For Set Blank Layout-*/
|
||||
definePageMeta({
|
||||
layout: "blank",
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
<div class="authentication">
|
||||
<v-container fluid class="pa-3">
|
||||
<v-row class="h-100vh d-flex justify-center align-center">
|
||||
<v-col cols="12" lg="4" xl="3" class="d-flex align-center">
|
||||
<v-card rounded="md" elevation="10" class="px-sm-1 px-0 withbg mx-auto" max-width="500">
|
||||
<v-card-item class="pa-sm-8">
|
||||
<div class="d-flex justify-center py-4">
|
||||
<LayoutFullLogo />
|
||||
</div>
|
||||
<div class="text-body-1 text-muted text-center mb-3">Your Social Campaigns</div>
|
||||
<AuthLoginForm />
|
||||
<h6 class="text-h6 text-muted font-weight-medium d-flex justify-center align-center mt-3">
|
||||
New to Matdash?
|
||||
<NuxtLink to="/auth/register"
|
||||
class="text-primary text-decoration-none text-body-1 opacity-1 font-weight-medium pl-2">
|
||||
Create an account</NuxtLink>
|
||||
</h6>
|
||||
</v-card-item>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
<div class="login-container">
|
||||
<!-- Static gradient background with CSS animations instead of using directives -->
|
||||
<div class="background-animation"></div>
|
||||
|
||||
<!-- Simple layout without nested component issues -->
|
||||
<div class="login-wrapper">
|
||||
<div class="login-card">
|
||||
<div class="card-header">
|
||||
<h2 class="title">SIMRS</h2>
|
||||
<p class="subtitle">Sistem Informasi Manajemen Rumah Sakit</p>
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<button v-for="provider in providers" :key="provider.id" class="login-button" @click="signIn(provider.id)">
|
||||
Sign in with {{ provider.name }}
|
||||
</button>
|
||||
|
||||
<div class="footer">
|
||||
<p>© {{ new Date().getFullYear() }} SIMRS. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
definePageMeta({
|
||||
layout: 'auth',
|
||||
auth: {
|
||||
unauthenticatedOnly: false,
|
||||
navigateAuthenticatedTo: '/coba2',
|
||||
},
|
||||
})
|
||||
|
||||
const { signIn, getProviders } = useAuth()
|
||||
const providers = await getProviders()
|
||||
console.log(providers)
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.login-container {
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: linear-gradient(135deg, #0072ff 0%, #00c6ff 100%);
|
||||
}
|
||||
|
||||
/* Background animation using CSS only - no SVG or complex animations */
|
||||
.background-animation {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(135deg,
|
||||
rgba(0, 114, 255, 0.8) 0%,
|
||||
rgba(0, 198, 255, 0.8) 100%);
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.background-animation::before,
|
||||
.background-animation::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -50%;
|
||||
top: -50%;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
border-radius: 40%;
|
||||
z-index: 1;
|
||||
animation: rotate 25s linear infinite;
|
||||
}
|
||||
|
||||
.background-animation::after {
|
||||
border-radius: 35%;
|
||||
background-color: rgba(255, 255, 255, 0.15);
|
||||
animation: rotate 30s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.login-wrapper {
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
width: 100%;
|
||||
max-width: 440px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.login-card {
|
||||
background-color: rgba(255, 255, 255, 0.9);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.login-card:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
.card-header {
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.title {
|
||||
margin: 0;
|
||||
color: #0072ff;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
margin: 5px 0 0;
|
||||
color: #555;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.card-content {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.login-button {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 12px 16px;
|
||||
margin-bottom: 16px;
|
||||
background-color: #0072ff;
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.login-button:hover {
|
||||
background-color: #005fd6;
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-top: 20px;
|
||||
text-align: center;
|
||||
color: #666;
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<script setup lang="ts">
|
||||
/*-For Set Blank Layout-*/
|
||||
definePageMeta({
|
||||
layout: "blank",
|
||||
auth: {
|
||||
unauthenticatedOnly: true,
|
||||
navigateAuthenticatedTo: '/homepage',
|
||||
},
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
<div class="authentication">
|
||||
<v-container fluid class="pa-3">
|
||||
<v-row class="h-100vh d-flex justify-center align-center">
|
||||
<v-col cols="12" lg="4" xl="3" class="d-flex align-center">
|
||||
<v-card rounded="md" elevation="10" class="px-sm-1 px-0 withbg mx-auto" max-width="500">
|
||||
<v-card-item class="pa-sm-8">
|
||||
<div class="d-flex justify-center py-4">
|
||||
<LayoutFullLogo />
|
||||
</div>
|
||||
<div class="text-body-1 text-muted text-center mb-3">Your Social Campaigns</div>
|
||||
<AuthLoginForm />
|
||||
<h6 class="text-h6 text-muted font-weight-medium d-flex justify-center align-center mt-3">
|
||||
New to Matdash?
|
||||
<NuxtLink to="/auth/register"
|
||||
class="text-primary text-decoration-none text-body-1 opacity-1 font-weight-medium pl-2">
|
||||
Create an account</NuxtLink>
|
||||
</h6>
|
||||
</v-card-item>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</div>
|
||||
</template>
|
||||
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<div>
|
||||
<p>User Profil: </p>
|
||||
<pre>{{ tokenUser }}</pre>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, onMounted } from 'vue';
|
||||
|
||||
const tokenUser = useCookie('user_token_profile');
|
||||
const runtimeconfig = useRuntimeConfig();
|
||||
|
||||
|
||||
const sessionState = ref('');
|
||||
const issuer = ref('');
|
||||
const code = ref('');
|
||||
onMounted(async () => {
|
||||
const url = window.location.href;
|
||||
const urlParams = new URL(url).searchParams;
|
||||
|
||||
// Ambil parameter yang diperlukan
|
||||
sessionState.value = urlParams.get('session_state') || '';
|
||||
issuer.value = urlParams.get('iss') || '';
|
||||
code.value = urlParams.get('code') || '';
|
||||
|
||||
if (code.value) {
|
||||
try {
|
||||
const tokenUrl = `${issuer.value}/protocol/openid-connect/token`;
|
||||
const response = await $fetch(tokenUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
},
|
||||
body: new URLSearchParams({
|
||||
grant_type: 'authorization_code',
|
||||
client_id: runtimeconfig.public.keycloakClient, // Ganti dengan client ID Anda
|
||||
client_secret: runtimeconfig.public.keycloakSecretKey, // Ganti dengan client secret Anda
|
||||
code: urlParams.get('code'),
|
||||
redirect_uri: `${runtimeconfig.public.keycloakRedirectURI}/callback`, // Ganti dengan redirect URI Anda
|
||||
}),
|
||||
});
|
||||
const accessToken = response.access_token;
|
||||
tokenUser.value = accessToken;
|
||||
// Ambil informasi pengguna
|
||||
const userInfoUrl = `${issuer.value}/protocol/openid-connect/userinfo`;
|
||||
const userInfoResponse = await $fetch(userInfoUrl, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${accessToken}`,
|
||||
},
|
||||
});
|
||||
tokenUser.value = JSON.stringify(userInfoResponse);
|
||||
} catch (error) {
|
||||
console.error('Error during token exchange or user info fetch:', error);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
@@ -3,6 +3,7 @@
|
||||
<Vueform ref="data" validate-on="change|step" method="post" :endpoint="onSubmit">
|
||||
<FormLibIdentifier />
|
||||
<FormLibHumanName />
|
||||
<FormLibHumanName />
|
||||
<ButtonElement name="submit" button-label="Simpan" :submits="true" align="center" size="lg" />
|
||||
</Vueform>
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,24 @@
|
||||
function encodeBase64(value: string): string {
|
||||
if (process.client) {
|
||||
return window.btoa(unescape(encodeURIComponent(value)))
|
||||
} else {
|
||||
return Buffer.from(value, 'ascii').toString('base64')
|
||||
}
|
||||
}
|
||||
|
||||
function decodeBase64(value: string): string {
|
||||
if (process.client) {
|
||||
return decodeURIComponent(escape(window.atob(value)))
|
||||
} else {
|
||||
return Buffer.from(value, 'base64').toString('ascii')
|
||||
}
|
||||
}
|
||||
|
||||
export default defineNuxtPlugin(() => {
|
||||
return {
|
||||
provide: {
|
||||
encodeBase64,
|
||||
decodeBase64
|
||||
}
|
||||
}
|
||||
})
|
||||
Generated
+530
-6
@@ -20,6 +20,15 @@ dependencies:
|
||||
apexcharts:
|
||||
specifier: 4.5.0
|
||||
version: 4.5.0
|
||||
cors:
|
||||
specifier: ^2.8.5
|
||||
version: 2.8.5
|
||||
nuxt-auth-utils:
|
||||
specifier: ^0.5.16
|
||||
version: 0.5.20
|
||||
openid-client:
|
||||
specifier: ^5.7.1
|
||||
version: 5.7.1
|
||||
sass:
|
||||
specifier: 1.70.0
|
||||
version: 1.70.0
|
||||
@@ -40,12 +49,31 @@ dependencies:
|
||||
version: 3.7.18(typescript@5.8.3)(vue@3.5.13)
|
||||
|
||||
devDependencies:
|
||||
'@sidebase/nuxt-auth':
|
||||
specifier: ^0.10.1
|
||||
version: 0.10.1(next-auth@4.21.1)
|
||||
nuxt:
|
||||
specifier: 3.16.2
|
||||
version: 3.16.2(sass@1.70.0)(typescript@5.8.3)(vite@6.3.5)
|
||||
|
||||
packages:
|
||||
|
||||
/@adonisjs/hash@9.1.1:
|
||||
resolution: {integrity: sha512-ZkRguwjAp4skKvKDdRAfdJ2oqQ0N7p9l3sioyXO1E8o0WcsyDgEpsTQtuVNoIdMiw4sn4gJlmL3nyF4BcK1ZDQ==}
|
||||
engines: {node: '>=20.6.0'}
|
||||
peerDependencies:
|
||||
argon2: ^0.31.2 || ^0.41.0 || ^0.43.0
|
||||
bcrypt: ^5.1.1 || ^6.0.0
|
||||
peerDependenciesMeta:
|
||||
argon2:
|
||||
optional: true
|
||||
bcrypt:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@phc/format': 1.0.0
|
||||
'@poppinss/utils': 6.9.4
|
||||
dev: false
|
||||
|
||||
/@ampproject/remapping@2.3.0:
|
||||
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
@@ -252,6 +280,11 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@babel/runtime@7.27.1:
|
||||
resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/@babel/template@7.27.2:
|
||||
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -618,6 +651,11 @@ packages:
|
||||
resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==}
|
||||
dev: true
|
||||
|
||||
/@lukeed/ms@2.0.2:
|
||||
resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/@mapbox/node-pre-gyp@1.0.11:
|
||||
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
|
||||
hasBin: true
|
||||
@@ -778,6 +816,91 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@next/env@13.5.11:
|
||||
resolution: {integrity: sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==}
|
||||
dev: true
|
||||
|
||||
/@next/swc-darwin-arm64@13.5.9:
|
||||
resolution: {integrity: sha512-pVyd8/1y1l5atQRvOaLOvfbmRwefxLhqQOzYo/M7FQ5eaRwA1+wuCn7t39VwEgDd7Aw1+AIWwd+MURXUeXhwDw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@next/swc-darwin-x64@13.5.9:
|
||||
resolution: {integrity: sha512-DwdeJqP7v8wmoyTWPbPVodTwCybBZa02xjSJ6YQFIFZFZ7dFgrieKW4Eo0GoIcOJq5+JxkQyejmI+8zwDp3pwA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-gnu@13.5.9:
|
||||
resolution: {integrity: sha512-wdQsKsIsGSNdFojvjW3Ozrh8Q00+GqL3wTaMjDkQxVtRbAqfFBtrLPO0IuWChVUP2UeuQcHpVeUvu0YgOP00+g==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-musl@13.5.9:
|
||||
resolution: {integrity: sha512-6VpS+bodQqzOeCwGxoimlRoosiWlSc0C224I7SQWJZoyJuT1ChNCo+45QQH+/GtbR/s7nhaUqmiHdzZC9TXnXA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-gnu@13.5.9:
|
||||
resolution: {integrity: sha512-XxG3yj61WDd28NA8gFASIR+2viQaYZEFQagEodhI/R49gXWnYhiflTeeEmCn7Vgnxa/OfK81h1gvhUZ66lozpw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-musl@13.5.9:
|
||||
resolution: {integrity: sha512-/dnscWqfO3+U8asd+Fc6dwL2l9AZDl7eKtPNKW8mKLh4Y4wOpjJiamhe8Dx+D+Oq0GYVjuW0WwjIxYWVozt2bA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-arm64-msvc@13.5.9:
|
||||
resolution: {integrity: sha512-T/iPnyurOK5a4HRUcxAlss8uzoEf5h9tkd+W2dSWAfzxv8WLKlUgbfk+DH43JY3Gc2xK5URLuXrxDZ2mGfk/jw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-ia32-msvc@13.5.9:
|
||||
resolution: {integrity: sha512-BLiPKJomaPrTAb7ykjA0LPcuuNMLDVK177Z1xe0nAem33+9FIayU4k/OWrtSn9SAJW/U60+1hoey5z+KCHdRLQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-x64-msvc@13.5.9:
|
||||
resolution: {integrity: sha512-/72/dZfjXXNY/u+n8gqZDjI6rxKMpYsgBBYNZKWOQw0BpBF7WCnPflRy3ZtvQ2+IYI3ZH2bPyj7K+6a6wNk90Q==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@nodelib/fs.scandir@2.1.5:
|
||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -1177,6 +1300,10 @@ packages:
|
||||
resolution: {integrity: sha512-prhfNnb3ATFHOCv7mzKFfwLij5RzoUz6Y1n525ZhCEqfq5wreCXL+DyVoq3ShukPo7q45ZjYIdjFUgjj+WKzng==}
|
||||
dev: true
|
||||
|
||||
/@panva/hkdf@1.2.1:
|
||||
resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==}
|
||||
dev: true
|
||||
|
||||
/@parcel/watcher-android-arm64@2.5.1:
|
||||
resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
@@ -1315,6 +1442,11 @@ packages:
|
||||
'@parcel/watcher-win32-ia32': 2.5.1
|
||||
'@parcel/watcher-win32-x64': 2.5.1
|
||||
|
||||
/@phc/format@1.0.0:
|
||||
resolution: {integrity: sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
|
||||
/@pkgjs/parseargs@0.11.0:
|
||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||
engines: {node: '>=14'}
|
||||
@@ -1348,7 +1480,36 @@ packages:
|
||||
/@poppinss/exception@1.2.1:
|
||||
resolution: {integrity: sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==}
|
||||
engines: {node: '>=18'}
|
||||
dev: true
|
||||
|
||||
/@poppinss/object-builder@1.1.0:
|
||||
resolution: {integrity: sha512-FOrOq52l7u8goR5yncX14+k+Ewi5djnrt1JwXeS/FvnwAPOiveFhiczCDuvXdssAwamtrV2hp5Rw9v+n2T7hQg==}
|
||||
engines: {node: '>=20.6.0'}
|
||||
dev: false
|
||||
|
||||
/@poppinss/string@1.6.0:
|
||||
resolution: {integrity: sha512-HfAf9VqTvo31BsruwgwEauQ316RNODdryk6QgYZo4qTV50s0h1H9HmIr+QjwwI3u4Sz7r4Q1dd1EVaLB7pWlaw==}
|
||||
dependencies:
|
||||
'@lukeed/ms': 2.0.2
|
||||
'@types/bytes': 3.1.5
|
||||
'@types/pluralize': 0.0.33
|
||||
bytes: 3.1.2
|
||||
case-anything: 3.1.2
|
||||
pluralize: 8.0.0
|
||||
slugify: 1.6.6
|
||||
truncatise: 0.0.8
|
||||
dev: false
|
||||
|
||||
/@poppinss/utils@6.9.4:
|
||||
resolution: {integrity: sha512-KJe9/ebFBqb4fFBdadgN4YgT4bHAKdWhLAFzjaeDqx5vOCtD3C+byN5DrORVNbwAjt+rb8beP8pXaWZWx+WmTA==}
|
||||
engines: {node: '>=18.16.0'}
|
||||
dependencies:
|
||||
'@poppinss/exception': 1.2.1
|
||||
'@poppinss/object-builder': 1.1.0
|
||||
'@poppinss/string': 1.6.0
|
||||
flattie: 1.1.1
|
||||
safe-stable-stringify: 2.5.0
|
||||
secure-json-parse: 4.0.0
|
||||
dev: false
|
||||
|
||||
/@rolldown/pluginutils@1.0.0-beta.9:
|
||||
resolution: {integrity: sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==}
|
||||
@@ -1611,6 +1772,51 @@ packages:
|
||||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/@sidebase/nuxt-auth@0.10.1(next-auth@4.21.1):
|
||||
resolution: {integrity: sha512-fCSDfGl6npVIWrb//NbeKA16ATk1CpjzfRrNAdJ2PRr0BF5aJz6KCvDI8dSzs5VLMJBIRLR39G2rWYq5q+v5iA==}
|
||||
engines: {node: '>=20', pnpm: '>=9.4.0'}
|
||||
peerDependencies:
|
||||
next-auth: ~4.21.1
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.17.4(magicast@0.3.5)
|
||||
defu: 6.1.4
|
||||
h3: 1.15.3
|
||||
knitwork: 1.2.0
|
||||
next-auth: 4.21.1(next@13.5.11)(react-dom@18.3.1)(react@18.3.1)
|
||||
nitropack: 2.11.12
|
||||
requrl: 3.0.2
|
||||
scule: 1.3.0
|
||||
ufo: 1.6.1
|
||||
transitivePeerDependencies:
|
||||
- '@azure/app-configuration'
|
||||
- '@azure/cosmos'
|
||||
- '@azure/data-tables'
|
||||
- '@azure/identity'
|
||||
- '@azure/keyvault-secrets'
|
||||
- '@azure/storage-blob'
|
||||
- '@capacitor/preferences'
|
||||
- '@deno/kv'
|
||||
- '@electric-sql/pglite'
|
||||
- '@libsql/client'
|
||||
- '@netlify/blobs'
|
||||
- '@planetscale/database'
|
||||
- '@upstash/redis'
|
||||
- '@vercel/blob'
|
||||
- '@vercel/kv'
|
||||
- aws4fetch
|
||||
- better-sqlite3
|
||||
- drizzle-orm
|
||||
- encoding
|
||||
- idb-keyval
|
||||
- magicast
|
||||
- mysql2
|
||||
- rolldown
|
||||
- sqlite3
|
||||
- supports-color
|
||||
- uploadthing
|
||||
- xml2js
|
||||
dev: true
|
||||
|
||||
/@sindresorhus/is@7.0.1:
|
||||
resolution: {integrity: sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -1663,6 +1869,12 @@ packages:
|
||||
'@svgdotjs/svg.js': 3.2.4
|
||||
dev: false
|
||||
|
||||
/@swc/helpers@0.5.2:
|
||||
resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
dev: true
|
||||
|
||||
/@trysound/sax@0.2.0:
|
||||
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
@@ -1675,6 +1887,10 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@types/bytes@3.1.5:
|
||||
resolution: {integrity: sha512-VgZkrJckypj85YxEsEavcMmmSOIzkUHqWmM4CCyia5dc54YwsXzJ5uT4fYxBQNEXx+oF1krlhgCbvfubXqZYsQ==}
|
||||
dev: false
|
||||
|
||||
/@types/estree@1.0.7:
|
||||
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
|
||||
|
||||
@@ -1697,6 +1913,10 @@ packages:
|
||||
parse-path: 7.1.0
|
||||
dev: true
|
||||
|
||||
/@types/pluralize@0.0.33:
|
||||
resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==}
|
||||
dev: false
|
||||
|
||||
/@types/resolve@1.20.2:
|
||||
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
|
||||
dev: true
|
||||
@@ -2470,6 +2690,18 @@ packages:
|
||||
run-applescript: 7.0.0
|
||||
dev: true
|
||||
|
||||
/busboy@1.6.0:
|
||||
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
|
||||
engines: {node: '>=10.16.0'}
|
||||
dependencies:
|
||||
streamsearch: 1.1.0
|
||||
dev: true
|
||||
|
||||
/bytes@3.1.2:
|
||||
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/c12@3.0.4(magicast@0.3.5):
|
||||
resolution: {integrity: sha512-t5FaZTYbbCtvxuZq9xxIruYydrAGsJ+8UdP0pZzMiK2xl/gNiSOy0OxhLzHUEEb0m1QXYqfzfvyIFEmz/g9lqg==}
|
||||
peerDependencies:
|
||||
@@ -2526,6 +2758,11 @@ packages:
|
||||
/caniuse-lite@1.0.30001718:
|
||||
resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==}
|
||||
|
||||
/case-anything@3.1.2:
|
||||
resolution: {integrity: sha512-wljhAjDDIv/hM2FzgJnYQg90AWmZMNtESCjTeLH680qTzdo0nErlCxOmgzgX4ZsZAtIvqHyD87ES8QyriXB+BQ==}
|
||||
engines: {node: '>=18'}
|
||||
dev: false
|
||||
|
||||
/chokidar@3.6.0:
|
||||
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
|
||||
engines: {node: '>= 8.10.0'}
|
||||
@@ -2561,6 +2798,10 @@ packages:
|
||||
dependencies:
|
||||
consola: 3.4.2
|
||||
|
||||
/client-only@0.0.1:
|
||||
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
|
||||
dev: true
|
||||
|
||||
/clipboardy@4.0.0:
|
||||
resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -2723,6 +2964,11 @@ packages:
|
||||
resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==}
|
||||
dev: true
|
||||
|
||||
/cookie@0.5.0:
|
||||
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: true
|
||||
|
||||
/cookie@1.0.2:
|
||||
resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -2739,6 +2985,14 @@ packages:
|
||||
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||
dev: true
|
||||
|
||||
/cors@2.8.5:
|
||||
resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
|
||||
engines: {node: '>= 0.10'}
|
||||
dependencies:
|
||||
object-assign: 4.1.1
|
||||
vary: 1.1.2
|
||||
dev: false
|
||||
|
||||
/cp-file@10.0.0:
|
||||
resolution: {integrity: sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==}
|
||||
engines: {node: '>=14.16'}
|
||||
@@ -3591,6 +3845,11 @@ packages:
|
||||
unicorn-magic: 0.1.0
|
||||
dev: true
|
||||
|
||||
/flattie@1.1.1:
|
||||
resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/fn.name@1.1.0:
|
||||
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
|
||||
dev: true
|
||||
@@ -3772,6 +4031,10 @@ packages:
|
||||
dependencies:
|
||||
is-glob: 4.0.3
|
||||
|
||||
/glob-to-regexp@0.4.1:
|
||||
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
|
||||
dev: true
|
||||
|
||||
/glob@10.4.5:
|
||||
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
|
||||
hasBin: true
|
||||
@@ -3900,7 +4163,6 @@ packages:
|
||||
|
||||
/hookable@5.5.3:
|
||||
resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
|
||||
dev: true
|
||||
|
||||
/hosted-git-info@7.0.2:
|
||||
resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
|
||||
@@ -4209,6 +4471,17 @@ packages:
|
||||
resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
|
||||
hasBin: true
|
||||
|
||||
/jose@4.15.9:
|
||||
resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==}
|
||||
|
||||
/jose@5.10.0:
|
||||
resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==}
|
||||
dev: false
|
||||
|
||||
/jose@6.0.11:
|
||||
resolution: {integrity: sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==}
|
||||
dev: false
|
||||
|
||||
/js-tokens@4.0.0:
|
||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||
|
||||
@@ -4381,6 +4654,13 @@ packages:
|
||||
triple-beam: 1.4.1
|
||||
dev: true
|
||||
|
||||
/loose-envify@1.4.0:
|
||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
js-tokens: 4.0.0
|
||||
dev: true
|
||||
|
||||
/lru-cache@10.4.3:
|
||||
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
|
||||
dev: true
|
||||
@@ -4390,6 +4670,12 @@ packages:
|
||||
dependencies:
|
||||
yallist: 3.1.1
|
||||
|
||||
/lru-cache@6.0.0:
|
||||
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
yallist: 4.0.0
|
||||
|
||||
/luxon@3.6.1:
|
||||
resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -4642,6 +4928,71 @@ packages:
|
||||
qs: 6.14.0
|
||||
dev: true
|
||||
|
||||
/next-auth@4.21.1(next@13.5.11)(react-dom@18.3.1)(react@18.3.1):
|
||||
resolution: {integrity: sha512-NYkU4jAPSVxWhCblE8dDFAnKM7kOoO/QEobQ0RoEVP9Wox99A3PKHwOAsWhSg8ahJG/iKIWk2Bo1xHvsS4R39Q==}
|
||||
peerDependencies:
|
||||
next: ^12.2.5 || ^13
|
||||
nodemailer: ^6.6.5
|
||||
react: ^17.0.2 || ^18
|
||||
react-dom: ^17.0.2 || ^18
|
||||
peerDependenciesMeta:
|
||||
nodemailer:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.27.1
|
||||
'@panva/hkdf': 1.2.1
|
||||
cookie: 0.5.0
|
||||
jose: 4.15.9
|
||||
next: 13.5.11(@babel/core@7.27.1)(react-dom@18.3.1)(react@18.3.1)(sass@1.70.0)
|
||||
oauth: 0.9.15
|
||||
openid-client: 5.7.1
|
||||
preact: 10.26.7
|
||||
preact-render-to-string: 5.2.6(preact@10.26.7)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
uuid: 8.3.2
|
||||
dev: true
|
||||
|
||||
/next@13.5.11(@babel/core@7.27.1)(react-dom@18.3.1)(react@18.3.1)(sass@1.70.0):
|
||||
resolution: {integrity: sha512-WUPJ6WbAX9tdC86kGTu92qkrRdgRqVrY++nwM+shmWQwmyxt4zhZfR59moXSI4N8GDYCBY3lIAqhzjDd4rTC8Q==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.1.0
|
||||
react: ^18.2.0
|
||||
react-dom: ^18.2.0
|
||||
sass: ^1.3.0
|
||||
peerDependenciesMeta:
|
||||
'@opentelemetry/api':
|
||||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@next/env': 13.5.11
|
||||
'@swc/helpers': 0.5.2
|
||||
busboy: 1.6.0
|
||||
caniuse-lite: 1.0.30001718
|
||||
postcss: 8.4.31
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
sass: 1.70.0
|
||||
styled-jsx: 5.1.1(@babel/core@7.27.1)(react@18.3.1)
|
||||
watchpack: 2.4.0
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 13.5.9
|
||||
'@next/swc-darwin-x64': 13.5.9
|
||||
'@next/swc-linux-arm64-gnu': 13.5.9
|
||||
'@next/swc-linux-arm64-musl': 13.5.9
|
||||
'@next/swc-linux-x64-gnu': 13.5.9
|
||||
'@next/swc-linux-x64-musl': 13.5.9
|
||||
'@next/swc-win32-arm64-msvc': 13.5.9
|
||||
'@next/swc-win32-ia32-msvc': 13.5.9
|
||||
'@next/swc-win32-x64-msvc': 13.5.9
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
dev: true
|
||||
|
||||
/nitropack@2.11.12:
|
||||
resolution: {integrity: sha512-e2AdQrEY1IVoNTdyjfEQV93xkqz4SQxAMR0xWF8mZUUHxMLm6S4nPzpscjksmT4OdUxl0N8/DCaGjKQ9ghdodA==}
|
||||
engines: {node: ^16.11.0 || >=17.0.0}
|
||||
@@ -4885,6 +5236,40 @@ packages:
|
||||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
|
||||
/nuxt-auth-utils@0.5.20:
|
||||
resolution: {integrity: sha512-hoXopfYeK4Cdu17WxxDWYc66EH7ZYG8JUodPxxef9vjfXOXqz3s1gxi/JWsiqkwN6s7K1RpKEESZGg1EopCgAA==}
|
||||
peerDependencies:
|
||||
'@atproto/api': ^0.13.15
|
||||
'@atproto/oauth-client-node': ^0.2.0
|
||||
'@simplewebauthn/browser': ^11.0.0
|
||||
'@simplewebauthn/server': ^11.0.0
|
||||
peerDependenciesMeta:
|
||||
'@atproto/api':
|
||||
optional: true
|
||||
'@atproto/oauth-client-node':
|
||||
optional: true
|
||||
'@simplewebauthn/browser':
|
||||
optional: true
|
||||
'@simplewebauthn/server':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@adonisjs/hash': 9.1.1
|
||||
'@nuxt/kit': 3.17.4(magicast@0.3.5)
|
||||
defu: 6.1.4
|
||||
h3: 1.15.3
|
||||
hookable: 5.5.3
|
||||
jose: 5.10.0
|
||||
ofetch: 1.4.1
|
||||
openid-client: 6.5.0
|
||||
pathe: 2.0.3
|
||||
scule: 1.3.0
|
||||
uncrypto: 0.1.3
|
||||
transitivePeerDependencies:
|
||||
- argon2
|
||||
- bcrypt
|
||||
- magicast
|
||||
dev: false
|
||||
|
||||
/nuxt@3.16.2(sass@1.70.0)(typescript@5.8.3)(vite@6.3.5):
|
||||
resolution: {integrity: sha512-yjIC/C4HW8Pd+m0ACGliEF0HnimXYGYvUzjOsTiLQKkDDt2T+djyZ+pCl9BfhQBA8rYmnsym2jUI+ubjv1iClw==}
|
||||
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0}
|
||||
@@ -5026,10 +5411,21 @@ packages:
|
||||
pkg-types: 2.1.0
|
||||
tinyexec: 0.3.2
|
||||
|
||||
/oauth4webapi@3.5.1:
|
||||
resolution: {integrity: sha512-txg/jZQwcbaF7PMJgY7aoxc9QuCxHVFMiEkDIJ60DwDz3PbtXPQnrzo+3X4IRYGChIwWLabRBRpf1k9hO9+xrQ==}
|
||||
dev: false
|
||||
|
||||
/oauth@0.9.15:
|
||||
resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==}
|
||||
dev: true
|
||||
|
||||
/object-assign@4.1.1:
|
||||
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/object-hash@2.2.0:
|
||||
resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
/object-inspect@1.13.4:
|
||||
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
|
||||
@@ -5042,11 +5438,14 @@ packages:
|
||||
destr: 2.0.5
|
||||
node-fetch-native: 1.6.6
|
||||
ufo: 1.6.1
|
||||
dev: true
|
||||
|
||||
/ohash@2.0.11:
|
||||
resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
|
||||
|
||||
/oidc-token-hash@5.1.0:
|
||||
resolution: {integrity: sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA==}
|
||||
engines: {node: ^10.13.0 || >=12.0.0}
|
||||
|
||||
/on-change@5.0.1:
|
||||
resolution: {integrity: sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -5096,6 +5495,21 @@ packages:
|
||||
is-docker: 2.2.1
|
||||
is-wsl: 2.2.0
|
||||
|
||||
/openid-client@5.7.1:
|
||||
resolution: {integrity: sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==}
|
||||
dependencies:
|
||||
jose: 4.15.9
|
||||
lru-cache: 6.0.0
|
||||
object-hash: 2.2.0
|
||||
oidc-token-hash: 5.1.0
|
||||
|
||||
/openid-client@6.5.0:
|
||||
resolution: {integrity: sha512-fAfYaTnOYE2kQCqEJGX9KDObW2aw7IQy4jWpU/+3D3WoCFLbix5Hg6qIPQ6Js9r7f8jDUmsnnguRNCSw4wU/IQ==}
|
||||
dependencies:
|
||||
jose: 6.0.11
|
||||
oauth4webapi: 3.5.1
|
||||
dev: false
|
||||
|
||||
/oxc-parser@0.56.5:
|
||||
resolution: {integrity: sha512-MNT32sqiTFeSbQZP2WZIRQ/mlIpNNq4sua+/4hBG4qT5aef2iQe+1/BjezZURPlvucZeSfN1Y6b60l7OgBdyUA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
@@ -5288,6 +5702,11 @@ packages:
|
||||
exsolve: 1.0.5
|
||||
pathe: 2.0.3
|
||||
|
||||
/pluralize@8.0.0:
|
||||
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/postcss-calc@10.1.1(postcss@8.5.3):
|
||||
resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==}
|
||||
engines: {node: ^18.12 || ^20.9 || >=22.0}
|
||||
@@ -5879,6 +6298,15 @@ packages:
|
||||
source-map: 0.6.1
|
||||
dev: false
|
||||
|
||||
/postcss@8.4.31:
|
||||
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
dependencies:
|
||||
nanoid: 3.3.11
|
||||
picocolors: 1.1.1
|
||||
source-map-js: 1.2.1
|
||||
dev: true
|
||||
|
||||
/postcss@8.5.3:
|
||||
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
@@ -5887,6 +6315,19 @@ packages:
|
||||
picocolors: 1.1.1
|
||||
source-map-js: 1.2.1
|
||||
|
||||
/preact-render-to-string@5.2.6(preact@10.26.7):
|
||||
resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==}
|
||||
peerDependencies:
|
||||
preact: '>=10'
|
||||
dependencies:
|
||||
preact: 10.26.7
|
||||
pretty-format: 3.8.0
|
||||
dev: true
|
||||
|
||||
/preact@10.26.7:
|
||||
resolution: {integrity: sha512-43xS+QYc1X1IPbw03faSgY6I6OYWcLrJRv3hU0+qMOfh/XCHcP0MX2CVjNARYR2cC/guu975sta4OcjlczxD7g==}
|
||||
dev: true
|
||||
|
||||
/precinct@11.0.5:
|
||||
resolution: {integrity: sha512-oHSWLC8cL/0znFhvln26D14KfCQFFn4KOLSw6hmLhd+LQ2SKt9Ljm89but76Pc7flM9Ty1TnXyrA2u16MfRV3w==}
|
||||
engines: {node: ^14.14.0 || >=16.0.0}
|
||||
@@ -5913,6 +6354,10 @@ packages:
|
||||
engines: {node: ^14.13.1 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/pretty-format@3.8.0:
|
||||
resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==}
|
||||
dev: true
|
||||
|
||||
/process-nextick-args@2.0.1:
|
||||
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||
dev: true
|
||||
@@ -5982,6 +6427,23 @@ packages:
|
||||
defu: 6.1.4
|
||||
destr: 2.0.5
|
||||
|
||||
/react-dom@18.3.1(react@18.3.1):
|
||||
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
|
||||
peerDependencies:
|
||||
react: ^18.3.1
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
react: 18.3.1
|
||||
scheduler: 0.23.2
|
||||
dev: true
|
||||
|
||||
/react@18.3.1:
|
||||
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
dev: true
|
||||
|
||||
/read-cache@1.0.0:
|
||||
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
|
||||
dependencies:
|
||||
@@ -6080,6 +6542,10 @@ packages:
|
||||
resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==}
|
||||
dev: true
|
||||
|
||||
/requrl@3.0.2:
|
||||
resolution: {integrity: sha512-f3gjR6d8MhOpn46PP+DSJywbmxi95fxQm3coXBFwognjFLla9X6tr8BdNyaIKNOEkaRbRcm0/zYAqN19N1oyhg==}
|
||||
dev: true
|
||||
|
||||
/resolve-from@5.0.0:
|
||||
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -6188,7 +6654,6 @@ packages:
|
||||
/safe-stable-stringify@2.5.0:
|
||||
resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/sass@1.70.0:
|
||||
resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==}
|
||||
@@ -6211,9 +6676,19 @@ packages:
|
||||
'@parcel/watcher': 2.5.1
|
||||
dev: false
|
||||
|
||||
/scheduler@0.23.2:
|
||||
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
dev: true
|
||||
|
||||
/scule@1.3.0:
|
||||
resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
|
||||
|
||||
/secure-json-parse@4.0.0:
|
||||
resolution: {integrity: sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==}
|
||||
dev: false
|
||||
|
||||
/semver@6.3.1:
|
||||
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
|
||||
hasBin: true
|
||||
@@ -6377,6 +6852,11 @@ packages:
|
||||
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
|
||||
engines: {node: '>=14.16'}
|
||||
|
||||
/slugify@1.6.6:
|
||||
resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
dev: false
|
||||
|
||||
/smob@1.5.0:
|
||||
resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
|
||||
dev: true
|
||||
@@ -6448,6 +6928,11 @@ packages:
|
||||
/std-env@3.9.0:
|
||||
resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
|
||||
|
||||
/streamsearch@1.1.0:
|
||||
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
dev: true
|
||||
|
||||
/streamx@2.22.0:
|
||||
resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==}
|
||||
dependencies:
|
||||
@@ -6512,6 +6997,24 @@ packages:
|
||||
resolution: {integrity: sha512-FL8EeKFFyNQv5cMnXI31CIMCsFarSVI2bF0U0ImeNE3g/F1IvJQyqzOXxPBRXiwQfyBTlbNe88jh1jFW0O/jiQ==}
|
||||
dev: true
|
||||
|
||||
/styled-jsx@5.1.1(@babel/core@7.27.1)(react@18.3.1):
|
||||
resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': '*'
|
||||
babel-plugin-macros: '*'
|
||||
react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
|
||||
peerDependenciesMeta:
|
||||
'@babel/core':
|
||||
optional: true
|
||||
babel-plugin-macros:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/core': 7.27.1
|
||||
client-only: 0.0.1
|
||||
react: 18.3.1
|
||||
dev: true
|
||||
|
||||
/stylehacks@5.1.1(postcss@8.5.3):
|
||||
resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
@@ -6719,6 +7222,10 @@ packages:
|
||||
dompurify: 3.2.6
|
||||
dev: false
|
||||
|
||||
/truncatise@0.0.8:
|
||||
resolution: {integrity: sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==}
|
||||
dev: false
|
||||
|
||||
/tslib@1.14.1:
|
||||
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
||||
dev: true
|
||||
@@ -7022,6 +7529,11 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/uuid@8.3.2:
|
||||
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/validate-npm-package-license@3.0.4:
|
||||
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
|
||||
dependencies:
|
||||
@@ -7029,6 +7541,11 @@ packages:
|
||||
spdx-expression-parse: 3.0.1
|
||||
dev: true
|
||||
|
||||
/vary@1.1.2:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/vite-dev-rpc@1.0.7(vite@6.3.5):
|
||||
resolution: {integrity: sha512-FxSTEofDbUi2XXujCA+hdzCDkXFG1PXktMjSk1efq9Qb5lOYaaM9zNSvKvPPF7645Bak79kSp1PTooMW2wktcA==}
|
||||
peerDependencies:
|
||||
@@ -7288,6 +7805,14 @@ packages:
|
||||
vue: 3.5.13(typescript@5.8.3)
|
||||
dev: false
|
||||
|
||||
/watchpack@2.4.0:
|
||||
resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
dependencies:
|
||||
glob-to-regexp: 0.4.1
|
||||
graceful-fs: 4.2.11
|
||||
dev: true
|
||||
|
||||
/web-streams-polyfill@3.3.3:
|
||||
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -7410,7 +7935,6 @@ packages:
|
||||
|
||||
/yallist@4.0.0:
|
||||
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
|
||||
dev: true
|
||||
|
||||
/yallist@5.0.0:
|
||||
resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
// import CredentialsProvider from 'next-auth/providers/credentials'
|
||||
import KeycloakProvider from 'next-auth/providers/keycloak'
|
||||
import { NuxtAuthHandler } from '#auth'
|
||||
console.log(KeycloakProvider)
|
||||
export default NuxtAuthHandler({
|
||||
// TODO: SET A STRONG SECRET, SEE https://sidebase.io/nuxt-auth/configuration/nuxt-auth-handler#secret
|
||||
secret: process.env.AUTH_SECRET || '32HslhZ8Hn97SsbxcmowhXvmNZ9cPGNE',
|
||||
// TODO: ADD YOUR OWN AUTHENTICATION PROVIDER HERE, READ THE DOCS FOR MORE: https://sidebase.io/nuxt-auth
|
||||
providers: [
|
||||
// @ts-expect-error You need to use .default here for it to work during SSR. May be fixed via Vite at some point
|
||||
KeycloakProvider.default({
|
||||
clientId: process.env.KEYCLOAK_ID,
|
||||
clientSecret: process.env.KEYCLOAK_SECRET,
|
||||
issuer: process.env.KEYCLOAK_ISSUER,
|
||||
}),
|
||||
// // @ts-expect-error You need to use .default here for it to work during SSR. May be fixed via Vite at some point
|
||||
// CredentialsProvider.default({
|
||||
// // The name to display on the sign in form (e.g. 'Sign in with...')
|
||||
// name: 'Credentials',
|
||||
// // The credentials is used to generate a suitable form on the sign in page.
|
||||
// // You can specify whatever fields you are expecting to be submitted.
|
||||
// // e.g. domain, username, password, 2FA token, etc.
|
||||
// // You can pass any HTML attribute to the <input> tag through the object.
|
||||
// credentials: {
|
||||
// username: { label: 'Username', type: 'text', placeholder: '(hint: jsmith)' },
|
||||
// password: { label: 'Password', type: 'password', placeholder: '(hint: hunter2)' }
|
||||
// },
|
||||
// authorize (credentials: any) {
|
||||
// console.warn('ATTENTION: You should replace this with your real providers or credential provider logic! The current setup is not safe')
|
||||
// // You need to provide your own logic here that takes the credentials
|
||||
// // submitted and returns either a object representing a user or value
|
||||
// // that is false/null if the credentials are invalid.
|
||||
// // NOTE: THE BELOW LOGIC IS NOT SAFE OR PROPER FOR AUTHENTICATION!
|
||||
|
||||
// const user = { id: '1', name: 'J Smith', username: 'jsmith', password: 'hunter2' }
|
||||
|
||||
// if (credentials?.username === user.username && credentials?.password === user.password) {
|
||||
// // Any object returned will be saved in `user` property of the JWT
|
||||
// return user
|
||||
// } else {
|
||||
// console.error('Warning: Malicious login attempt registered, bad credentials provided')
|
||||
|
||||
// // If you return null then an error will be displayed advising the user to check their details.
|
||||
// return null
|
||||
|
||||
// // You can also Reject this callback with an Error thus the user will be sent to the error page with the error message as a query parameter
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
],
|
||||
pages: {
|
||||
signIn: '/auth/login',
|
||||
// signOut: '/auth/signOut',
|
||||
// error: '/auth/error',
|
||||
// verifyRequest: '/auth/verify-request',
|
||||
// newUser: '/auth/new-user'
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,17 @@
|
||||
import { getServerSession, getToken } from '#auth'
|
||||
|
||||
export default eventHandler(async (event) => {
|
||||
return
|
||||
const session = await getServerSession(event)
|
||||
if (!session) {
|
||||
event.context.auth = false
|
||||
} else {
|
||||
const token = await getToken({ event })
|
||||
event.context.auth = { token }
|
||||
}
|
||||
})
|
||||
// export default defineEventHandler((event) => {
|
||||
// if (!event.node.req.headers.origin) {
|
||||
// event.node.req.headers.origin = process.env.NUXT_AUTH_ORIGIN
|
||||
// }
|
||||
// })
|
||||
Reference in New Issue
Block a user