nuxt-users 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cli.mjs +1 -1
  3. package/dist/module.d.mts +1 -1
  4. package/dist/module.d.ts +1 -1
  5. package/dist/module.json +2 -2
  6. package/dist/module.mjs +25 -21
  7. package/dist/runtime/components/LoginForm.vue +3 -2
  8. package/dist/runtime/components/ResetPasswordForm.vue +6 -5
  9. package/dist/runtime/composables/useAuthentication.js +5 -7
  10. package/dist/runtime/constants.d.ts +1 -0
  11. package/dist/runtime/constants.js +2 -1
  12. package/dist/runtime/middleware/authorization.client.js +6 -1
  13. package/dist/runtime/server/api/{auth/forgot-password.post.js → nuxt-users/password/forgot.post.js} +1 -1
  14. package/dist/runtime/server/api/{auth/update-password.post.js → nuxt-users/password/index.patch.js} +2 -2
  15. package/dist/runtime/server/api/{auth/reset-password.post.js → nuxt-users/password/reset.post.js} +2 -2
  16. package/dist/runtime/server/api/{auth/logout.get.js → nuxt-users/session/index.delete.js} +1 -1
  17. package/dist/runtime/server/api/{auth/login.post.js → nuxt-users/session/index.post.js} +1 -1
  18. package/dist/runtime/server/middleware/authorization.server.js +6 -1
  19. package/dist/shared/{nuxt-users.CXezgQLO.d.mts → nuxt-users.C7T1DKBV.d.mts} +7 -1
  20. package/dist/shared/{nuxt-users.CXezgQLO.d.ts → nuxt-users.C7T1DKBV.d.ts} +7 -1
  21. package/dist/utils.d.mts +1 -1
  22. package/dist/utils.d.ts +1 -1
  23. package/package.json +2 -2
  24. /package/dist/runtime/server/api/nuxt-users/{profile.get.d.ts → me.get.d.ts} +0 -0
  25. /package/dist/runtime/server/api/nuxt-users/{profile.get.js → me.get.js} +0 -0
  26. /package/dist/runtime/server/api/{auth/forgot-password.post.d.ts → nuxt-users/password/forgot.post.d.ts} +0 -0
  27. /package/dist/runtime/server/api/{auth/logout.get.d.ts → nuxt-users/password/index.patch.d.ts} +0 -0
  28. /package/dist/runtime/server/api/{auth/reset-password.post.d.ts → nuxt-users/password/reset.post.d.ts} +0 -0
  29. /package/dist/runtime/server/api/{auth/update-password.post.d.ts → nuxt-users/session/index.delete.d.ts} +0 -0
  30. /package/dist/runtime/server/api/{auth/login.post.d.ts → nuxt-users/session/index.post.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,31 @@
1
1
  # Changelog
2
2
 
3
3
 
4
+ ## v1.11.0
5
+
6
+ [compare changes](https://github.com/rrd108/nuxt-users/compare/v1.9.0...v1.11.0)
7
+
8
+ ### 🚀 Enhancements
9
+
10
+ - Add user CRUD API endpoints ([8cf5e0a](https://github.com/rrd108/nuxt-users/commit/8cf5e0a))
11
+ - Add user API endpoints ([05f326e](https://github.com/rrd108/nuxt-users/commit/05f326e))
12
+
13
+ ### 💅 Refactors
14
+
15
+ - API endpoints ([784dca4](https://github.com/rrd108/nuxt-users/commit/784dca4))
16
+
17
+ ### 🏡 Chore
18
+
19
+ - **release:** V1.10.0 ([d6100db](https://github.com/rrd108/nuxt-users/commit/d6100db))
20
+
21
+ ### ✅ Tests
22
+
23
+ - Skip for jiti error ([ce562c5](https://github.com/rrd108/nuxt-users/commit/ce562c5))
24
+
25
+ ### ❤️ Contributors
26
+
27
+ - Rrd108 ([@rrd108](https://github.com/rrd108))
28
+
4
29
  ## v1.10.0
5
30
 
6
31
  [compare changes](https://github.com/rrd108/nuxt-users/compare/v1.9.0...v1.10.0)
package/dist/cli.mjs CHANGED
@@ -248,7 +248,7 @@ const main = defineCommand({
248
248
  meta: {
249
249
  name: "nuxt-users",
250
250
  description: "CLI for Nuxt Users Module - Manage users, migrations, and database operations",
251
- version: "1.9.0"
251
+ version: "1.10.0"
252
252
  },
253
253
  subCommands: {
254
254
  migrate,
package/dist/module.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import { R as RuntimeModuleOptions, M as ModuleOptions } from './shared/nuxt-users.CXezgQLO.mjs';
2
+ import { R as RuntimeModuleOptions, M as ModuleOptions } from './shared/nuxt-users.C7T1DKBV.mjs';
3
3
  export * from '../dist/runtime/server/utils/index.js';
4
4
 
5
5
  declare const defaultOptions: ModuleOptions;
package/dist/module.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import { R as RuntimeModuleOptions, M as ModuleOptions } from './shared/nuxt-users.CXezgQLO.js';
2
+ import { R as RuntimeModuleOptions, M as ModuleOptions } from './shared/nuxt-users.C7T1DKBV.js';
3
3
  export * from '../dist/runtime/server/utils/index.js';
4
4
 
5
5
  declare const defaultOptions: ModuleOptions;
package/dist/module.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "nuxt-users",
3
3
  "configKey": "nuxtUsers",
4
- "version": "1.10.0",
4
+ "version": "1.11.0",
5
5
  "builder": {
6
- "@nuxt/module-builder": "1.0.1",
6
+ "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.0"
8
8
  }
9
9
  }
package/dist/module.mjs CHANGED
@@ -9,6 +9,7 @@ const defaultOptions = {
9
9
  path: "./data/users.sqlite3"
10
10
  }
11
11
  },
12
+ apiBasePath: "/api/nuxt-users",
12
13
  tables: {
13
14
  migrations: "migrations",
14
15
  users: "users",
@@ -59,6 +60,7 @@ const module = defineNuxtModule({
59
60
  const runtimeConfigOptions = defu(options, nuxt.options.runtimeConfig.nuxtUsers || {}, defaultOptions);
60
61
  nuxt.options.runtimeConfig.nuxtUsers = {
61
62
  ...runtimeConfigOptions,
63
+ apiBasePath: options.apiBasePath || defaultOptions.apiBasePath,
62
64
  tables: {
63
65
  migrations: options.tables?.migrations || defaultOptions.tables.migrations,
64
66
  users: options.tables?.users || defaultOptions.tables.users,
@@ -84,7 +86,8 @@ const module = defineNuxtModule({
84
86
  auth: {
85
87
  whitelist: [...defaultOptions.auth?.whitelist || [], ...options.auth?.whitelist || []],
86
88
  permissions: options.auth?.permissions || defaultOptions.auth.permissions
87
- }
89
+ },
90
+ apiBasePath: options.apiBasePath || defaultOptions.apiBasePath
88
91
  };
89
92
  addPlugin({
90
93
  src: resolver.resolve("./runtime/plugin"),
@@ -96,53 +99,54 @@ const module = defineNuxtModule({
96
99
  path: resolver.resolve("./runtime/middleware/authorization.client"),
97
100
  global: true
98
101
  });
102
+ const base = nuxt.options.runtimeConfig.nuxtUsers.apiBasePath || defaultOptions.apiBasePath;
99
103
  addServerHandler({
100
- route: "/api/auth/login",
104
+ route: `${base}/session`,
101
105
  method: "post",
102
- handler: resolver.resolve("./runtime/server/api/auth/login.post")
106
+ handler: resolver.resolve("./runtime/server/api/nuxt-users/session/index.post")
103
107
  });
104
108
  addServerHandler({
105
- route: "/api/auth/forgot-password",
106
- method: "post",
107
- handler: resolver.resolve("./runtime/server/api/auth/forgot-password.post")
109
+ route: `${base}/session`,
110
+ method: "delete",
111
+ handler: resolver.resolve("./runtime/server/api/nuxt-users/session/index.delete")
108
112
  });
109
113
  addServerHandler({
110
- route: "/api/auth/reset-password",
111
- method: "post",
112
- handler: resolver.resolve("./runtime/server/api/auth/reset-password.post")
114
+ route: `${base}/me`,
115
+ method: "get",
116
+ handler: resolver.resolve("./runtime/server/api/nuxt-users/me.get")
113
117
  });
114
118
  addServerHandler({
115
- route: "/api/auth/logout",
116
- method: "get",
117
- handler: resolver.resolve("./runtime/server/api/auth/logout.get")
119
+ route: `${base}/password`,
120
+ method: "patch",
121
+ handler: resolver.resolve("./runtime/server/api/nuxt-users/password/index.patch")
118
122
  });
119
123
  addServerHandler({
120
- route: "/api/nuxt-users/profile",
121
- method: "get",
122
- handler: resolver.resolve("./runtime/server/api/nuxt-users/profile.get")
124
+ route: `${base}/password/forgot`,
125
+ method: "post",
126
+ handler: resolver.resolve("./runtime/server/api/nuxt-users/password/forgot.post")
123
127
  });
124
128
  addServerHandler({
125
- route: "/api/auth/update-password",
129
+ route: `${base}/password/reset`,
126
130
  method: "post",
127
- handler: resolver.resolve("./runtime/server/api/auth/update-password.post")
131
+ handler: resolver.resolve("./runtime/server/api/nuxt-users/password/reset.post")
128
132
  });
129
133
  addServerHandler({
130
- route: "/api/nuxt-users",
134
+ route: `${base}`,
131
135
  method: "post",
132
136
  handler: resolver.resolve("./runtime/server/api/nuxt-users/index.post")
133
137
  });
134
138
  addServerHandler({
135
- route: "/api/nuxt-users/:id",
139
+ route: `${base}/:id`,
136
140
  method: "get",
137
141
  handler: resolver.resolve("./runtime/server/api/nuxt-users/[id].get")
138
142
  });
139
143
  addServerHandler({
140
- route: "/api/nuxt-users/:id",
144
+ route: `${base}/:id`,
141
145
  method: "patch",
142
146
  handler: resolver.resolve("./runtime/server/api/nuxt-users/[id].patch")
143
147
  });
144
148
  addServerHandler({
145
- route: "/api/nuxt-users/:id",
149
+ route: `${base}/:id`,
146
150
  method: "delete",
147
151
  handler: resolver.resolve("./runtime/server/api/nuxt-users/[id].delete")
148
152
  });
@@ -4,10 +4,11 @@ import { navigateTo } from "#app";
4
4
  import { useRuntimeConfig } from "#imports";
5
5
  const { public: { nuxtUsers } } = useRuntimeConfig();
6
6
  const { passwordValidation } = nuxtUsers;
7
+ const apiBasePath = nuxtUsers?.apiBasePath;
7
8
  const props = defineProps({
8
- apiEndpoint: { type: String, required: false, default: "/api/auth/login" },
9
+ apiEndpoint: { type: String, required: false, default: `${apiBasePath}/session` },
9
10
  redirectTo: { type: String, required: false, default: "/" },
10
- forgotPasswordEndpoint: { type: String, required: false, default: "/api/auth/forgot-password" }
11
+ forgotPasswordEndpoint: { type: String, required: false, default: `${apiBasePath}/password/forgot` }
11
12
  });
12
13
  const emit = defineEmits(["success", "error", "forgot-password-error", "submit", "forgot-password-success"]);
13
14
  const isLoading = ref(false);
@@ -3,9 +3,12 @@ import { ref, watch } from "vue";
3
3
  import { usePasswordValidation } from "../composables/usePasswordValidation";
4
4
  import { useRuntimeConfig } from "#imports";
5
5
  import PasswordStrengthIndicator from "./PasswordStrengthIndicator.vue";
6
+ const { public: { nuxtUsers } } = useRuntimeConfig();
7
+ const apiBasePath = nuxtUsers?.apiBasePath;
8
+ const moduleOptions = nuxtUsers;
6
9
  const props = defineProps({
7
- apiEndpoint: { type: String, required: false, default: "/api/user/profile" },
8
- updatePasswordEndpoint: { type: String, required: false, default: "/api/auth/update-password" }
10
+ apiEndpoint: { type: String, required: false, default: `${apiBasePath}/me` },
11
+ updatePasswordEndpoint: { type: String, required: false, default: `${apiBasePath}/password` }
9
12
  });
10
13
  const emit = defineEmits(["success", "error", "password-error", "password-updated"]);
11
14
  const isPasswordLoading = ref(false);
@@ -16,8 +19,6 @@ const passwordForm = ref({
16
19
  newPassword: "",
17
20
  newPasswordConfirmation: ""
18
21
  });
19
- const { public: { nuxtUsers } } = useRuntimeConfig();
20
- const moduleOptions = nuxtUsers;
21
22
  const passwordValidation = usePasswordValidation(moduleOptions);
22
23
  watch(() => passwordForm.value.newPassword, (newPassword) => {
23
24
  if (newPassword) {
@@ -32,7 +33,7 @@ const updatePassword = async () => {
32
33
  passwordSuccess.value = "";
33
34
  try {
34
35
  await $fetch(props.updatePasswordEndpoint, {
35
- method: "POST",
36
+ method: "PATCH",
36
37
  body: passwordForm.value
37
38
  });
38
39
  passwordSuccess.value = "Password updated successfully";
@@ -1,7 +1,9 @@
1
- import { useState } from "#app";
1
+ import { useState, useRuntimeConfig } from "#app";
2
2
  import { computed, readonly } from "vue";
3
3
  export const useAuthentication = () => {
4
4
  const user = useState("user", () => null);
5
+ const { public: { nuxtUsers } } = useRuntimeConfig();
6
+ const apiBasePath = nuxtUsers?.apiBasePath;
5
7
  const isAuthenticated = computed(() => !!user.value);
6
8
  const login = (userData) => {
7
9
  const { password: _, ...userWithoutPassword } = userData;
@@ -12,9 +14,7 @@ export const useAuthentication = () => {
12
14
  };
13
15
  const logout = async () => {
14
16
  try {
15
- await $fetch("/api/auth/logout", {
16
- method: "GET"
17
- });
17
+ await $fetch(`${apiBasePath}/session`, { method: "DELETE" });
18
18
  user.value = null;
19
19
  if (import.meta.client) {
20
20
  localStorage.removeItem("user");
@@ -26,9 +26,7 @@ export const useAuthentication = () => {
26
26
  };
27
27
  const fetchUser = async () => {
28
28
  try {
29
- const response = await $fetch("/api/user/profile", {
30
- method: "GET"
31
- });
29
+ const response = await $fetch(`${apiBasePath}/me`, { method: "GET" });
32
30
  user.value = response.user;
33
31
  if (import.meta.client) {
34
32
  localStorage.setItem("user", JSON.stringify(response.user));
@@ -1 +1,2 @@
1
1
  export declare const NO_AUTH_PATHS: string[];
2
+ export declare const NO_AUTH_API_PATHS: string[];
@@ -1 +1,2 @@
1
- export const NO_AUTH_PATHS = ["/login", "/api/auth/login", "/api/auth/forgot-password"];
1
+ export const NO_AUTH_PATHS = ["/login"];
2
+ export const NO_AUTH_API_PATHS = ["/session", "/password/forgot", "/password/reset"];
@@ -1,14 +1,19 @@
1
1
  import { defineNuxtRouteMiddleware, navigateTo, useRuntimeConfig } from "#app";
2
2
  import { useAuthentication } from "../composables/useAuthentication.js";
3
3
  import { hasPermission, isWhitelisted } from "../utils/permissions.js";
4
- import { NO_AUTH_PATHS } from "../constants.js";
4
+ import { NO_AUTH_PATHS, NO_AUTH_API_PATHS } from "../constants.js";
5
5
  export default defineNuxtRouteMiddleware((to) => {
6
6
  const { public: { nuxtUsers: publicNuxtUsers } } = useRuntimeConfig();
7
7
  const publicOptions = publicNuxtUsers;
8
+ const base = publicOptions.apiBasePath || "/api/nuxt-users";
8
9
  if (NO_AUTH_PATHS.includes(to.path)) {
9
10
  console.log(`[Nuxt Users] client.middleware.auth.global: ${to.path}`);
10
11
  return;
11
12
  }
13
+ const openApiPaths = NO_AUTH_API_PATHS.map((path) => `${base}${path}`);
14
+ if (openApiPaths.includes(to.path)) {
15
+ return;
16
+ }
12
17
  if (isWhitelisted(to.path, publicOptions.auth.whitelist)) {
13
18
  console.log(`[Nuxt Users] client.middleware.auth.global: Whitelisted: ${to.path}`);
14
19
  return;
@@ -1,5 +1,5 @@
1
1
  import { defineEventHandler, readBody, createError } from "h3";
2
- import { sendPasswordResetLink } from "../../services/password.js";
2
+ import { sendPasswordResetLink } from "../../../services/password.js";
3
3
  export default defineEventHandler(async (event) => {
4
4
  const body = await readBody(event);
5
5
  const { email } = body;
@@ -1,8 +1,8 @@
1
1
  import { createError, defineEventHandler, getCookie, readBody } from "h3";
2
2
  import bcrypt from "bcrypt";
3
3
  import { useRuntimeConfig } from "#imports";
4
- import { getCurrentUserFromToken, updateUserPassword } from "../../utils/index.js";
5
- import { validatePassword, getPasswordValidationOptions } from "../../../../utils.js";
4
+ import { getCurrentUserFromToken, updateUserPassword } from "../../../utils/index.js";
5
+ import { validatePassword, getPasswordValidationOptions } from "../../../../../utils.js";
6
6
  export default defineEventHandler(async (event) => {
7
7
  const { nuxtUsers } = useRuntimeConfig();
8
8
  const options = nuxtUsers;
@@ -1,7 +1,7 @@
1
1
  import { defineEventHandler, readBody, createError, H3Error } from "h3";
2
- import { resetPassword } from "../../services/password.js";
2
+ import { resetPassword } from "../../../services/password.js";
3
3
  import { useRuntimeConfig } from "#imports";
4
- import { validatePassword, getPasswordValidationOptions } from "../../../../utils.js";
4
+ import { validatePassword, getPasswordValidationOptions } from "../../../../../utils.js";
5
5
  export default defineEventHandler(async (event) => {
6
6
  const body = await readBody(event);
7
7
  const { token, email, password, password_confirmation } = body;
@@ -1,6 +1,6 @@
1
1
  import { defineEventHandler, getCookie, setCookie } from "h3";
2
2
  import { useRuntimeConfig } from "#imports";
3
- import { useDb } from "../../utils/index.js";
3
+ import { useDb } from "../../../utils/index.js";
4
4
  export default defineEventHandler(async (event) => {
5
5
  const { nuxtUsers } = useRuntimeConfig();
6
6
  const options = nuxtUsers;
@@ -2,7 +2,7 @@ import { createError, defineEventHandler, readBody, setCookie } from "h3";
2
2
  import bcrypt from "bcrypt";
3
3
  import crypto from "node:crypto";
4
4
  import { useRuntimeConfig } from "#imports";
5
- import { useDb } from "../../utils/index.js";
5
+ import { useDb } from "../../../utils/index.js";
6
6
  export default defineEventHandler(async (event) => {
7
7
  const body = await readBody(event);
8
8
  const { email, password } = body;
@@ -2,10 +2,11 @@ import { defineEventHandler, getCookie, sendRedirect } from "h3";
2
2
  import { useRuntimeConfig } from "#imports";
3
3
  import { getCurrentUserFromToken } from "../utils/index.js";
4
4
  import { hasPermission, isWhitelisted } from "../../utils/permissions.js";
5
- import { NO_AUTH_PATHS } from "../../constants.js";
5
+ import { NO_AUTH_PATHS, NO_AUTH_API_PATHS } from "../../constants.js";
6
6
  export default defineEventHandler(async (event) => {
7
7
  const { nuxtUsers } = useRuntimeConfig();
8
8
  const options = nuxtUsers;
9
+ const base = options.apiBasePath || "/api/nuxt-users";
9
10
  const isPageOrApiRoute = !event.path.includes(".") && (event.path === "/" || event.path.startsWith("/api/") || !event.path.startsWith("/_"));
10
11
  if (!isPageOrApiRoute) {
11
12
  return;
@@ -14,6 +15,10 @@ export default defineEventHandler(async (event) => {
14
15
  console.log("[Nuxt Users] server.middleware.auth.global: /login");
15
16
  return;
16
17
  }
18
+ const openApiPaths = NO_AUTH_API_PATHS.map((path) => `${base}${path}`);
19
+ if (openApiPaths.includes(event.path)) {
20
+ return;
21
+ }
17
22
  if (isWhitelisted(event.path, options.auth.whitelist)) {
18
23
  console.log(`[Nuxt Users] server.middleware.auth.global: whitelisted: ${event.path}`);
19
24
  return;
@@ -12,6 +12,11 @@ interface RuntimeModuleOptions {
12
12
  name: DatabaseType;
13
13
  options: DatabaseConfig;
14
14
  };
15
+ /**
16
+ * Base path for all module API endpoints
17
+ * @default '/api/nuxt-users'
18
+ */
19
+ apiBasePath?: string;
15
20
  tables?: {
16
21
  migrations?: string;
17
22
  users?: string;
@@ -49,7 +54,7 @@ interface RuntimeModuleOptions {
49
54
  * @default {}
50
55
  * @example {
51
56
  * admin: ['*'], // admin can access everything
52
- * user: ['/profile', '/api/user/profile'],
57
+ * user: ['/profile', '/api/nuxt-users/me'],
53
58
  * moderator: ['/admin/*', '/api/admin/*']
54
59
  * }
55
60
  */
@@ -96,6 +101,7 @@ interface ModuleOptions {
96
101
  name: DatabaseType;
97
102
  options: DatabaseConfig;
98
103
  };
104
+ apiBasePath: string;
99
105
  tables: {
100
106
  migrations: string;
101
107
  users: string;
@@ -12,6 +12,11 @@ interface RuntimeModuleOptions {
12
12
  name: DatabaseType;
13
13
  options: DatabaseConfig;
14
14
  };
15
+ /**
16
+ * Base path for all module API endpoints
17
+ * @default '/api/nuxt-users'
18
+ */
19
+ apiBasePath?: string;
15
20
  tables?: {
16
21
  migrations?: string;
17
22
  users?: string;
@@ -49,7 +54,7 @@ interface RuntimeModuleOptions {
49
54
  * @default {}
50
55
  * @example {
51
56
  * admin: ['*'], // admin can access everything
52
- * user: ['/profile', '/api/user/profile'],
57
+ * user: ['/profile', '/api/nuxt-users/me'],
53
58
  * moderator: ['/admin/*', '/api/admin/*']
54
59
  * }
55
60
  */
@@ -96,6 +101,7 @@ interface ModuleOptions {
96
101
  name: DatabaseType;
97
102
  options: DatabaseConfig;
98
103
  };
104
+ apiBasePath: string;
99
105
  tables: {
100
106
  migrations: string;
101
107
  users: string;
package/dist/utils.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- export { L as LoginFormData, M as ModuleOptions, b as PasswordResetToken, P as PersonalAccessToken, U as User, a as UserWithoutPassword } from './shared/nuxt-users.CXezgQLO.mjs';
1
+ export { L as LoginFormData, M as ModuleOptions, b as PasswordResetToken, P as PersonalAccessToken, U as User, a as UserWithoutPassword } from './shared/nuxt-users.C7T1DKBV.mjs';
2
2
  export { findUserByEmail, getCurrentUserFromToken, getLastLoginTime } from '../dist/runtime/server/utils/user.js';
3
3
 
4
4
  interface PasswordValidationResult {
package/dist/utils.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { L as LoginFormData, M as ModuleOptions, b as PasswordResetToken, P as PersonalAccessToken, U as User, a as UserWithoutPassword } from './shared/nuxt-users.CXezgQLO.js';
1
+ export { L as LoginFormData, M as ModuleOptions, b as PasswordResetToken, P as PersonalAccessToken, U as User, a as UserWithoutPassword } from './shared/nuxt-users.C7T1DKBV.js';
2
2
  export { findUserByEmail, getCurrentUserFromToken, getLastLoginTime } from '../dist/runtime/server/utils/user.js';
3
3
 
4
4
  interface PasswordValidationResult {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxt-users",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "description": "A comprehensive user management module for Nuxt 3 and Nuxt 4 applications with authentication, authorization, database support, and CLI tools",
5
5
  "keywords": [
6
6
  "nuxt",
@@ -111,7 +111,7 @@
111
111
  "@nuxt/devtools": "^2.6.2",
112
112
  "@nuxt/eslint-config": "^1.5.2",
113
113
  "@nuxt/kit": "^3.17.6",
114
- "@nuxt/module-builder": "^1.0.1",
114
+ "@nuxt/module-builder": "^1.0.2",
115
115
  "@nuxt/schema": "^3.17.6",
116
116
  "@nuxt/test-utils": "^3.19.2",
117
117
  "@types/bcrypt": "^6.0.0",