Skip to content

Commit 3a2d74d

Browse files
committed
fix: type errors
1 parent da75bb4 commit 3a2d74d

File tree

8 files changed

+25
-25
lines changed

8 files changed

+25
-25
lines changed

src/runtime/components/NUsersGoogleLoginButton.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup lang="ts">
22
import { ref, computed } from 'vue'
3-
import type { ModuleOptions } from 'nuxt-users/utils'
3+
import type { RuntimeModuleOptions } from 'nuxt-users/utils'
44
import { useRuntimeConfig, navigateTo } from '#imports'
55
import { useNuxtUsersLocale } from '../composables/useNuxtUsersLocale'
66
@@ -42,7 +42,7 @@ const props = withDefaults(defineProps<Props>(), {
4242
const emit = defineEmits<Emits>()
4343
4444
const { public: { nuxtUsers } } = useRuntimeConfig()
45-
const { apiBasePath } = nuxtUsers as ModuleOptions
45+
const { apiBasePath } = nuxtUsers as RuntimeModuleOptions
4646
4747
const isLoading = ref(false)
4848

src/runtime/components/NUsersLoginForm.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<script setup lang="ts">
22
import { ref, computed } from 'vue'
33
import { navigateTo } from '#app'
4-
import type { LoginFormData, UserWithoutPassword, ModuleOptions } from 'nuxt-users/utils'
4+
import type { LoginFormData, UserWithoutPassword, RuntimeModuleOptions } from 'nuxt-users/utils'
55
import { useRuntimeConfig } from '#imports'
66
import { useNuxtUsersLocale } from '../composables/useNuxtUsersLocale'
77
88
const { public: { nuxtUsers } } = useRuntimeConfig()
9-
const { passwordValidation } = nuxtUsers as ModuleOptions
9+
const { passwordValidation } = nuxtUsers as RuntimeModuleOptions
1010
const { t } = useNuxtUsersLocale()
1111
1212
// Note: We define Props interface inline instead of importing LoginFormProps from 'nuxt-users/utils'
@@ -170,7 +170,7 @@ const handleForgotPassword = async () => {
170170
name="password"
171171
:placeholder="props.passwordPlaceholder || t('login.passwordPlaceholder')"
172172
required
173-
:minlength="passwordValidation.minLength"
173+
:minlength="passwordValidation?.minLength || 8"
174174
>
175175
</div>
176176
</slot>

src/runtime/components/NUsersPasswordStrengthIndicator.vue

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
import { computed } from 'vue'
33
import { useRuntimeConfig } from '#app'
4-
import type { PasswordValidationResult, ModuleOptions } from 'nuxt-users/utils'
4+
import type { PasswordValidationResult, RuntimeModuleOptions } from 'nuxt-users/utils'
55
import { useNuxtUsersLocale } from '../composables/useNuxtUsersLocale'
66
77
const { t } = useNuxtUsersLocale()
@@ -27,7 +27,7 @@ const props = withDefaults(defineProps<Props>(), {
2727
})
2828
2929
const { public: { nuxtUsers } } = useRuntimeConfig()
30-
const moduleOptions = nuxtUsers as ModuleOptions
30+
const moduleOptions = nuxtUsers as RuntimeModuleOptions
3131
3232
const hasErrors = computed(() => (props.validationResult?.errors?.length || 0) > 0)
3333
const hasHints = computed(() => (props.validationResult?.hints?.length || 0) > 0)
@@ -39,39 +39,39 @@ const validationRules = computed(() => {
3939
4040
const rules = []
4141
42-
if (moduleOptions.passwordValidation.minLength) {
42+
if (moduleOptions.passwordValidation?.minLength) {
4343
const hasMinLength = props.password.length >= moduleOptions.passwordValidation.minLength
4444
rules.push({
4545
text: t('passwordStrength.minLength', [moduleOptions.passwordValidation.minLength]),
4646
passed: hasMinLength
4747
})
4848
}
4949
50-
if (moduleOptions.passwordValidation.requireUppercase) {
50+
if (moduleOptions.passwordValidation?.requireUppercase) {
5151
const hasUppercase = /[A-Z]/.test(props.password)
5252
rules.push({
5353
text: t('passwordStrength.uppercase'),
5454
passed: hasUppercase
5555
})
5656
}
5757
58-
if (moduleOptions.passwordValidation.requireLowercase) {
58+
if (moduleOptions.passwordValidation?.requireLowercase) {
5959
const hasLowercase = /[a-z]/.test(props.password)
6060
rules.push({
6161
text: t('passwordStrength.lowercase'),
6262
passed: hasLowercase
6363
})
6464
}
6565
66-
if (moduleOptions.passwordValidation.requireNumbers) {
66+
if (moduleOptions.passwordValidation?.requireNumbers) {
6767
const hasNumbers = /\d/.test(props.password)
6868
rules.push({
6969
text: t('passwordStrength.number'),
7070
passed: hasNumbers
7171
})
7272
}
7373
74-
if (moduleOptions.passwordValidation.requireSpecialChars) {
74+
if (moduleOptions.passwordValidation?.requireSpecialChars) {
7575
const hasSpecialChars = /[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/.test(props.password)
7676
rules.push({
7777
text: t('passwordStrength.specialChar'),

src/runtime/components/NUsersRegisterForm.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<script setup lang="ts">
22
import { ref, computed, watch } from 'vue'
33
import { navigateTo } from '#app'
4-
import type { UserWithoutPassword, ModuleOptions, PasswordValidationResult } from 'nuxt-users/utils'
4+
import type { UserWithoutPassword, RuntimeModuleOptions, PasswordValidationResult } from 'nuxt-users/utils'
55
import { useRuntimeConfig } from '#imports'
66
import { validatePassword } from 'nuxt-users/utils'
77
import { useNuxtUsersLocale } from '../composables/useNuxtUsersLocale'
88
99
const { public: { nuxtUsers } } = useRuntimeConfig()
10-
const { passwordValidation } = nuxtUsers as ModuleOptions
10+
const { passwordValidation } = nuxtUsers as RuntimeModuleOptions
1111
const { t } = useNuxtUsersLocale()
1212
1313
// Props interface
@@ -200,7 +200,7 @@ const handleSubmit = async () => {
200200
name="password"
201201
:placeholder="props.passwordPlaceholder || t('register.passwordPlaceholder')"
202202
required
203-
:minlength="passwordValidation.minLength"
203+
:minlength="passwordValidation?.minLength || 8"
204204
>
205205
</div>
206206
</slot>

src/runtime/components/NUsersResetPasswordForm.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* For password change: requires user to be logged in and provide current password
1212
*/
1313
import { ref, watch, computed } from 'vue'
14-
import type { UserWithoutPassword, ModuleOptions } from 'nuxt-users/utils'
14+
import type { UserWithoutPassword, RuntimeModuleOptions } from 'nuxt-users/utils'
1515
import { usePasswordValidation } from '../composables/usePasswordValidation'
1616
import { useRuntimeConfig, useRoute, useRouter } from '#imports'
1717
import NUsersPasswordStrengthIndicator from './NUsersPasswordStrengthIndicator.vue'
@@ -44,7 +44,7 @@ interface Emits {
4444
}
4545
4646
const { public: { nuxtUsers } } = useRuntimeConfig()
47-
const moduleOptions = nuxtUsers as ModuleOptions
47+
const moduleOptions = nuxtUsers as RuntimeModuleOptions
4848
4949
const props = defineProps<Props>()
5050
const emit = defineEmits<Emits>()

src/runtime/composables/useNuxtUsersLocale.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { computed } from 'vue'
22
import { useRuntimeConfig } from '#app'
3-
import type { ModuleOptions } from '../../types'
3+
import type { RuntimeModuleOptions } from '../../types'
44
import { getTranslation } from '../utils/locale'
55

66
/**
@@ -15,7 +15,7 @@ import { getTranslation } from '../utils/locale'
1515
*/
1616
export const useNuxtUsersLocale = () => {
1717
const { public: { nuxtUsers } } = useRuntimeConfig()
18-
const moduleOptions = nuxtUsers as ModuleOptions
18+
const moduleOptions = nuxtUsers as RuntimeModuleOptions
1919

2020
// Get current locale from module config
2121
const currentLocale = computed(() => {

src/runtime/composables/usePublicPaths.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import { useRuntimeConfig } from '#app'
22
import { PUBLIC_PAGES, PUBLIC_API_ENDPOINTS, AUTHENTICATED_AUTO_ACCESS_ENDPOINTS } from '../constants'
33
import { hasPermission, isWhitelisted } from '../utils/permissions'
44
import { useAuthentication } from './useAuthentication'
5-
import type { ModuleOptions } from 'nuxt-users/utils'
5+
import type { RuntimeModuleOptions } from 'nuxt-users/utils'
66

77
/**
88
* Composable to get public paths and accessible paths for current user
99
* @returns Object containing different categories of accessible paths
1010
*/
1111
export const usePublicPaths = () => {
1212
const { public: { nuxtUsers } } = useRuntimeConfig()
13-
const config = nuxtUsers as ModuleOptions
13+
const config = nuxtUsers as RuntimeModuleOptions
1414
const apiBasePath = config.apiBasePath || '/api/nuxt-users'
1515
const { user } = useAuthentication()
1616

src/runtime/middleware/authorization.client.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { defineNuxtRouteMiddleware, navigateTo, useRuntimeConfig } from '#app'
22
import { useAuthentication } from '../composables/useAuthentication'
33
import { hasPermission, isWhitelisted } from '../utils/permissions'
44
import { PUBLIC_PAGES, AUTHENTICATED_AUTO_ACCESS_ENDPOINTS } from '../constants'
5-
import type { ModuleOptions } from 'nuxt-users/utils'
5+
import type { RuntimeModuleOptions } from 'nuxt-users/utils'
66

77
export default defineNuxtRouteMiddleware(async (to) => {
88
const { public: { nuxtUsers: publicNuxtUsers } } = useRuntimeConfig()
9-
const publicOptions = publicNuxtUsers as ModuleOptions
9+
const publicOptions = publicNuxtUsers as RuntimeModuleOptions
1010
const base = publicOptions.apiBasePath || '/api/nuxt-users'
1111

1212
// internal no-auth paths (e.g., /login)
@@ -22,7 +22,7 @@ export default defineNuxtRouteMiddleware(async (to) => {
2222
}
2323

2424
// whitelisted paths are allowed to access without authentication
25-
if (isWhitelisted(to.path, publicOptions.auth.whitelist)) {
25+
if (isWhitelisted(to.path, publicOptions.auth?.whitelist || [])) {
2626
console.log(`[Nuxt Users] client.middleware.auth.global: Whitelisted: ${to.path}`)
2727
return
2828
}
@@ -53,7 +53,7 @@ export default defineNuxtRouteMiddleware(async (to) => {
5353
}
5454

5555
// Check role-based permissions
56-
if (!user.value || !hasPermission(user.value.role, to.path, 'GET', publicOptions.auth.permissions)) {
56+
if (!user.value || !hasPermission(user.value.role, to.path, 'GET', publicOptions.auth?.permissions || {})) {
5757
console.log(`[Nuxt Users] client.middleware.auth.global: User with role ${user.value?.role} denied access to ${to.path}`)
5858
return navigateTo('/login')
5959
}

0 commit comments

Comments
 (0)