nuxt-auth-utils 0.5.19 → 0.5.21
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.
- package/README.md +4 -1
- package/dist/module.json +1 -1
- package/dist/runtime/app/composables/session.js +5 -5
- package/dist/runtime/server/api/session.get.d.ts +1 -1
- package/dist/runtime/server/lib/atproto/bluesky.d.ts +4 -1
- package/dist/runtime/server/lib/oauth/apple.d.ts +5 -1
- package/dist/runtime/server/lib/oauth/apple.js +1 -0
- package/dist/runtime/server/lib/oauth/atlassian.d.ts +30 -1
- package/dist/runtime/server/lib/oauth/azureb2c.js +1 -1
- package/dist/runtime/server/lib/oauth/github.d.ts +45 -1
- package/dist/runtime/server/lib/oauth/heroku.js +1 -1
- package/dist/runtime/server/lib/oauth/keycloak.js +1 -1
- package/dist/runtime/server/lib/oauth/line.js +7 -4
- package/dist/runtime/server/lib/oauth/salesforce.js +1 -1
- package/dist/runtime/server/lib/oauth/seznam.d.ts +4 -1
- package/dist/runtime/server/lib/oauth/slack.js +1 -1
- package/dist/runtime/server/lib/oauth/steam.js +1 -1
- package/dist/runtime/server/lib/oauth/strava.d.ts +4 -1
- package/dist/runtime/server/lib/oauth/workos.d.ts +4 -1
- package/dist/runtime/server/lib/webauthn/register.d.ts +1 -1
- package/dist/runtime/server/utils/atproto.js +2 -1
- package/dist/runtime/server/utils/session.d.ts +2 -2
- package/dist/runtime/server/utils/session.js +2 -2
- package/dist/runtime/types/oauth-config.d.ts +5 -5
- package/dist/runtime/types/session.d.ts +2 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -156,6 +156,9 @@ const session = await requireUserSession(event)
|
|
|
156
156
|
|
|
157
157
|
You can define the type for your user session by creating a type declaration file (for example, `auth.d.ts`) in your project to augment the `UserSession` type:
|
|
158
158
|
|
|
159
|
+
> [!NOTE]
|
|
160
|
+
> If you are using Nuxt >=4.0.0 or compatibility version 4 add the `auth.d.ts` file to the `shared` directory to get the correct types in server and client.
|
|
161
|
+
|
|
159
162
|
```ts
|
|
160
163
|
// auth.d.ts
|
|
161
164
|
declare module '#auth-utils' {
|
|
@@ -253,7 +256,7 @@ It can also be set using environment variables:
|
|
|
253
256
|
- Yandex
|
|
254
257
|
- Zitadel
|
|
255
258
|
|
|
256
|
-
You can add your favorite provider by creating a new file in [src/runtime/server/lib/oauth/](
|
|
259
|
+
You can add your favorite provider by creating a new file in [src/runtime/server/lib/oauth/](https://github.com/atinux/nuxt-auth-utils/tree/main/src/runtime/server/lib/oauth).
|
|
257
260
|
|
|
258
261
|
#### Example
|
|
259
262
|
|
package/dist/module.json
CHANGED
|
@@ -2,7 +2,7 @@ import { appendResponseHeader } from "h3";
|
|
|
2
2
|
import { useState, computed, useRequestFetch, useRequestEvent } from "#imports";
|
|
3
3
|
export function useUserSession() {
|
|
4
4
|
const serverEvent = import.meta.server ? useRequestEvent() : null;
|
|
5
|
-
const sessionState = useState("nuxt-session", () =>
|
|
5
|
+
const sessionState = useState("nuxt-session", () => null);
|
|
6
6
|
const authReadyState = useState("nuxt-auth-ready", () => false);
|
|
7
7
|
const clear = async () => {
|
|
8
8
|
await useRequestFetch()("/api/_auth/session", {
|
|
@@ -15,7 +15,7 @@ export function useUserSession() {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
sessionState.value =
|
|
18
|
+
sessionState.value = null;
|
|
19
19
|
};
|
|
20
20
|
const fetch = async () => {
|
|
21
21
|
sessionState.value = await useRequestFetch()("/api/_auth/session", {
|
|
@@ -23,7 +23,7 @@ export function useUserSession() {
|
|
|
23
23
|
accept: "application/json"
|
|
24
24
|
},
|
|
25
25
|
retry: false
|
|
26
|
-
}).catch(() =>
|
|
26
|
+
}).catch(() => null);
|
|
27
27
|
if (!authReadyState.value) {
|
|
28
28
|
authReadyState.value = true;
|
|
29
29
|
}
|
|
@@ -49,8 +49,8 @@ export function useUserSession() {
|
|
|
49
49
|
};
|
|
50
50
|
return {
|
|
51
51
|
ready: computed(() => authReadyState.value),
|
|
52
|
-
loggedIn: computed(() => Boolean(sessionState.value
|
|
53
|
-
user: computed(() => sessionState.value
|
|
52
|
+
loggedIn: computed(() => Boolean(sessionState.value?.user)),
|
|
53
|
+
user: computed(() => sessionState.value?.user || null),
|
|
54
54
|
session: sessionState,
|
|
55
55
|
fetch,
|
|
56
56
|
openInPopup,
|
|
@@ -19,7 +19,10 @@ export interface OAuthBlueskyConfig {
|
|
|
19
19
|
}
|
|
20
20
|
type BlueSkyUser = AppBskyActorDefs.ProfileViewDetailed | Pick<AppBskyActorDefs.ProfileView, 'did'>;
|
|
21
21
|
type BlueSkyTokens = NodeSavedSession['tokenSet'];
|
|
22
|
-
export declare function defineOAuthBlueskyEventHandler({ config, onSuccess, onError }: OAuthConfig<OAuthBlueskyConfig,
|
|
22
|
+
export declare function defineOAuthBlueskyEventHandler({ config, onSuccess, onError }: OAuthConfig<OAuthBlueskyConfig, {
|
|
23
|
+
user: BlueSkyUser;
|
|
24
|
+
tokens: BlueSkyTokens;
|
|
25
|
+
}>): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
23
26
|
export declare class StateStore implements NodeSavedStateStore {
|
|
24
27
|
private event;
|
|
25
28
|
private readonly stateKey;
|
|
@@ -70,4 +70,8 @@ export interface OAuthAppleUser {
|
|
|
70
70
|
};
|
|
71
71
|
email?: string;
|
|
72
72
|
}
|
|
73
|
-
export declare function defineOAuthAppleEventHandler({ config, onSuccess, onError, }: OAuthConfig<OAuthAppleConfig
|
|
73
|
+
export declare function defineOAuthAppleEventHandler({ config, onSuccess, onError, }: OAuthConfig<OAuthAppleConfig, {
|
|
74
|
+
user: OAuthAppleUser;
|
|
75
|
+
payload: OAuthAppleTokens;
|
|
76
|
+
tokens: any;
|
|
77
|
+
}>): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
@@ -1,4 +1,29 @@
|
|
|
1
1
|
import type { OAuthConfig } from '#auth-utils';
|
|
2
|
+
interface AtlassianUser {
|
|
3
|
+
account_id?: string;
|
|
4
|
+
email?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
picture?: string;
|
|
7
|
+
account_status?: string;
|
|
8
|
+
characteristics?: {
|
|
9
|
+
not_mentionable?: boolean;
|
|
10
|
+
};
|
|
11
|
+
last_updated?: string;
|
|
12
|
+
nickname?: string;
|
|
13
|
+
locale?: string;
|
|
14
|
+
extended_profile?: {
|
|
15
|
+
phone_numbers?: string[];
|
|
16
|
+
};
|
|
17
|
+
account_type?: string;
|
|
18
|
+
email_verified?: boolean;
|
|
19
|
+
}
|
|
20
|
+
interface AtlassianTokens {
|
|
21
|
+
access_token?: string;
|
|
22
|
+
expires_in?: number;
|
|
23
|
+
token_type?: string;
|
|
24
|
+
scope?: string;
|
|
25
|
+
error?: string;
|
|
26
|
+
}
|
|
2
27
|
/**
|
|
3
28
|
* @see https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps
|
|
4
29
|
*/
|
|
@@ -63,4 +88,8 @@ export interface OAuthAtlassianConfig {
|
|
|
63
88
|
/**
|
|
64
89
|
* Atlassian User identity, Confluence, BRIE, Jira platform, Atlassian Personal data reporting
|
|
65
90
|
*/
|
|
66
|
-
export declare function defineOAuthAtlassianEventHandler({ config, onSuccess, onError, }: OAuthConfig<OAuthAtlassianConfig
|
|
91
|
+
export declare function defineOAuthAtlassianEventHandler({ config, onSuccess, onError, }: OAuthConfig<OAuthAtlassianConfig, {
|
|
92
|
+
user: AtlassianUser;
|
|
93
|
+
tokens: AtlassianTokens;
|
|
94
|
+
}>): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
95
|
+
export {};
|
|
@@ -35,7 +35,7 @@ export function defineOAuthAzureB2CEventHandler({ config, onSuccess, onError })
|
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
if (query.state !== state) {
|
|
38
|
-
handleInvalidState(event, "azureb2c", onError);
|
|
38
|
+
return handleInvalidState(event, "azureb2c", onError);
|
|
39
39
|
}
|
|
40
40
|
console.info("code verifier", verifier.code_verifier);
|
|
41
41
|
const tokens = await requestAccessToken(tokenURL, {
|
|
@@ -50,4 +50,48 @@ export interface OAuthGitHubConfig {
|
|
|
50
50
|
*/
|
|
51
51
|
redirectURL?: string;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
interface GitHubUser {
|
|
54
|
+
login: string;
|
|
55
|
+
id: number;
|
|
56
|
+
node_id: string;
|
|
57
|
+
avatar_url: string;
|
|
58
|
+
gravatar_id: string;
|
|
59
|
+
url: string;
|
|
60
|
+
html_url: string;
|
|
61
|
+
followers_url: string;
|
|
62
|
+
following_url: string;
|
|
63
|
+
gists_url: string;
|
|
64
|
+
starred_url: string;
|
|
65
|
+
subscriptions_url: string;
|
|
66
|
+
organizations_url: string;
|
|
67
|
+
repos_url: string;
|
|
68
|
+
events_url: string;
|
|
69
|
+
received_events_url: string;
|
|
70
|
+
type: string;
|
|
71
|
+
site_admin: boolean;
|
|
72
|
+
name: string;
|
|
73
|
+
company: string;
|
|
74
|
+
blog: string;
|
|
75
|
+
location: string;
|
|
76
|
+
email: string | null;
|
|
77
|
+
hireable: boolean | null;
|
|
78
|
+
bio: string | null;
|
|
79
|
+
twitter_username: string | null;
|
|
80
|
+
public_repos: number;
|
|
81
|
+
public_gists: number;
|
|
82
|
+
followers: number;
|
|
83
|
+
following: number;
|
|
84
|
+
created_at: string;
|
|
85
|
+
updated_at: string;
|
|
86
|
+
email_verified?: boolean;
|
|
87
|
+
}
|
|
88
|
+
interface GitHubTokens {
|
|
89
|
+
access_token: string;
|
|
90
|
+
scope: string;
|
|
91
|
+
token_type: string;
|
|
92
|
+
}
|
|
93
|
+
export declare function defineOAuthGitHubEventHandler({ config, onSuccess, onError }: OAuthConfig<OAuthGitHubConfig, {
|
|
94
|
+
user: GitHubUser;
|
|
95
|
+
tokens: GitHubTokens;
|
|
96
|
+
}>): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
97
|
+
export {};
|
|
@@ -46,7 +46,7 @@ export function defineOAuthHerokuEventHandler({
|
|
|
46
46
|
);
|
|
47
47
|
}
|
|
48
48
|
if (query.state !== state) {
|
|
49
|
-
handleInvalidState(event, "heroku", onError);
|
|
49
|
+
return handleInvalidState(event, "heroku", onError);
|
|
50
50
|
}
|
|
51
51
|
const tokens = await requestAccessToken(config.tokenURL, {
|
|
52
52
|
body: {
|
|
@@ -62,7 +62,7 @@ export function defineOAuthKeycloakEventHandler({
|
|
|
62
62
|
}
|
|
63
63
|
const accessToken = tokens.access_token;
|
|
64
64
|
const user = await $fetch(
|
|
65
|
-
`${
|
|
65
|
+
`${realmURLInternal}/protocol/openid-connect/userinfo`,
|
|
66
66
|
{
|
|
67
67
|
headers: {
|
|
68
68
|
Authorization: `Bearer ${accessToken}`,
|
|
@@ -17,10 +17,13 @@ export function defineOAuthLineEventHandler({
|
|
|
17
17
|
});
|
|
18
18
|
const query = getQuery(event);
|
|
19
19
|
if (query.error) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
const error = createError({
|
|
21
|
+
statusCode: 401,
|
|
22
|
+
message: `Line login failed: ${query.error || "Unknown error"}`,
|
|
23
|
+
data: query
|
|
24
|
+
});
|
|
25
|
+
if (!onError) throw error;
|
|
26
|
+
return onError(event, error);
|
|
24
27
|
}
|
|
25
28
|
if (!config.clientId || !config.clientSecret) {
|
|
26
29
|
return handleMissingConfiguration(event, "line", ["clientId", "clientSecret"], onError);
|
|
@@ -46,7 +46,7 @@ export function defineOAuthSalesforceEventHandler({
|
|
|
46
46
|
);
|
|
47
47
|
}
|
|
48
48
|
if (query.state !== state) {
|
|
49
|
-
handleInvalidState(event, "salesforce", onError);
|
|
49
|
+
return handleInvalidState(event, "salesforce", onError);
|
|
50
50
|
}
|
|
51
51
|
const tokens = await requestAccessToken(config.tokenURL, {
|
|
52
52
|
body: {
|
|
@@ -92,4 +92,7 @@ export interface OAuthSeznamUser {
|
|
|
92
92
|
*/
|
|
93
93
|
gender?: string | null;
|
|
94
94
|
}
|
|
95
|
-
export declare function defineOAuthSeznamEventHandler({ config, onSuccess, onError }: OAuthConfig<OAuthSeznamConfig,
|
|
95
|
+
export declare function defineOAuthSeznamEventHandler({ config, onSuccess, onError }: OAuthConfig<OAuthSeznamConfig, {
|
|
96
|
+
user: OAuthSeznamUser;
|
|
97
|
+
tokens: unknown;
|
|
98
|
+
}>): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
@@ -46,7 +46,7 @@ export function defineOAuthSlackEventHandler({
|
|
|
46
46
|
);
|
|
47
47
|
}
|
|
48
48
|
if (query.state !== state) {
|
|
49
|
-
handleInvalidState(event, "slack", onError);
|
|
49
|
+
return handleInvalidState(event, "slack", onError);
|
|
50
50
|
}
|
|
51
51
|
const tokens = await requestAccessToken(config.tokenURL, {
|
|
52
52
|
body: {
|
|
@@ -63,7 +63,7 @@ export function defineOAuthSteamEventHandler({ config, onSuccess, onError }) {
|
|
|
63
63
|
}
|
|
64
64
|
const idRegex = /^https?:\/\/steamcommunity\.com\/openid\/id\/(\d+)$/;
|
|
65
65
|
const steamIdCheck = idRegex.exec(query["openid.claimed_id"]);
|
|
66
|
-
const steamId = steamIdCheck[1];
|
|
66
|
+
const steamId = steamIdCheck?.[1];
|
|
67
67
|
const user = await $fetch(withQuery("https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/", {
|
|
68
68
|
key: config.apiKey,
|
|
69
69
|
steamids: steamId
|
|
@@ -113,4 +113,7 @@ export interface OAuthStravaTokens {
|
|
|
113
113
|
athlete: OAuthStravaUser;
|
|
114
114
|
error?: string;
|
|
115
115
|
}
|
|
116
|
-
export declare function defineOAuthStravaEventHandler({ config, onSuccess, onError, }: OAuthConfig<OAuthStravaConfig,
|
|
116
|
+
export declare function defineOAuthStravaEventHandler({ config, onSuccess, onError, }: OAuthConfig<OAuthStravaConfig, {
|
|
117
|
+
user: OAuthStravaUser;
|
|
118
|
+
tokens: OAuthStravaTokens;
|
|
119
|
+
}>): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
@@ -60,4 +60,7 @@ export interface OAuthWorkOSTokens {
|
|
|
60
60
|
access_token: string;
|
|
61
61
|
refresh_token: string;
|
|
62
62
|
}
|
|
63
|
-
export declare function defineOAuthWorkOSEventHandler({ config, onSuccess, onError }: OAuthConfig<OAuthWorkOSConfig,
|
|
63
|
+
export declare function defineOAuthWorkOSEventHandler({ config, onSuccess, onError }: OAuthConfig<OAuthWorkOSConfig, {
|
|
64
|
+
user: OAuthWorkOSUser;
|
|
65
|
+
tokens: OAuthWorkOSTokens;
|
|
66
|
+
}>): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { H3Event } from 'h3';
|
|
2
|
+
import type { ValidateUserFunction } from '../../../types/webauthn.js';
|
|
2
3
|
import type { WebAuthnUser, WebAuthnRegisterEventHandlerOptions } from '#auth-utils';
|
|
3
|
-
import type { ValidateUserFunction } from '~/src/runtime/types/webauthn';
|
|
4
4
|
export declare function defineWebAuthnRegisterEventHandler<T extends WebAuthnUser>({ storeChallenge, getChallenge, getOptions, validateUser, excludeCredentials, onSuccess, onError, }: WebAuthnRegisterEventHandlerOptions<T>): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void | import("@simplewebauthn/server").VerifiedRegistrationResponse | {
|
|
5
5
|
creationOptions: import("@simplewebauthn/types").PublicKeyCredentialCreationOptionsJSON;
|
|
6
6
|
attemptId: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { getRequestURL } from "h3";
|
|
1
2
|
import { getOAuthRedirectURL } from "../lib/utils.js";
|
|
2
3
|
import { getClientMetadataFilename } from "../../utils/atproto.js";
|
|
3
|
-
import {
|
|
4
|
+
import { useRuntimeConfig } from "#imports";
|
|
4
5
|
export function getAtprotoClientMetadata(event, provider, config) {
|
|
5
6
|
const providerRuntimeConfig = useRuntimeConfig(event).oauth[provider];
|
|
6
7
|
const scopes = [.../* @__PURE__ */ new Set(["atproto", ...config?.scope ?? [], ...providerRuntimeConfig.scope ?? []])];
|
|
@@ -27,13 +27,13 @@ export declare function getUserSession(event: UseSessionEvent): Promise<UserSess
|
|
|
27
27
|
* @param data User session data, please only store public information since it can be decoded with API calls
|
|
28
28
|
* @see https://github.com/atinux/nuxt-auth-utils
|
|
29
29
|
*/
|
|
30
|
-
export declare function setUserSession(event: H3Event, data: UserSession, config?: Partial<SessionConfig>): Promise<UserSession>;
|
|
30
|
+
export declare function setUserSession(event: H3Event, data: Omit<UserSession, 'id'>, config?: Partial<SessionConfig>): Promise<UserSession>;
|
|
31
31
|
/**
|
|
32
32
|
* Replace a user session
|
|
33
33
|
* @param event The Request (h3) event
|
|
34
34
|
* @param data User session data, please only store public information since it can be decoded with API calls
|
|
35
35
|
*/
|
|
36
|
-
export declare function replaceUserSession(event: H3Event, data: UserSession, config?: Partial<SessionConfig>): Promise<UserSession>;
|
|
36
|
+
export declare function replaceUserSession(event: H3Event, data: Omit<UserSession, 'id'>, config?: Partial<SessionConfig>): Promise<UserSession>;
|
|
37
37
|
/**
|
|
38
38
|
* Clear the user session and removing the session cookie
|
|
39
39
|
* @param event The Request (h3) event
|
|
@@ -6,8 +6,8 @@ export const sessionHooks = createHooks();
|
|
|
6
6
|
export async function getUserSession(event) {
|
|
7
7
|
const session = await _useSession(event);
|
|
8
8
|
return {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
...session.data,
|
|
10
|
+
id: session.id
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
export async function setUserSession(event, data, config) {
|
|
@@ -2,11 +2,11 @@ import type { H3Event, H3Error } from 'h3';
|
|
|
2
2
|
export type ATProtoProvider = 'bluesky';
|
|
3
3
|
export type OAuthProvider = ATProtoProvider | 'atlassian' | 'auth0' | 'authentik' | 'azureb2c' | 'battledotnet' | 'cognito' | 'discord' | 'dropbox' | 'facebook' | 'gitea' | 'github' | 'gitlab' | 'google' | 'hubspot' | 'instagram' | 'kick' | 'keycloak' | 'line' | 'linear' | 'linkedin' | 'microsoft' | 'paypal' | 'polar' | 'spotify' | 'seznam' | 'steam' | 'strava' | 'tiktok' | 'twitch' | 'vk' | 'workos' | 'x' | 'xsuaa' | 'yandex' | 'zitadel' | 'apple' | 'livechat' | 'salesforce' | 'slack' | 'heroku' | (string & {});
|
|
4
4
|
export type OnError = (event: H3Event, error: H3Error) => Promise<void> | void;
|
|
5
|
-
export interface OAuthConfig<TConfig,
|
|
5
|
+
export interface OAuthConfig<TConfig, TResult = {
|
|
6
|
+
user: any;
|
|
7
|
+
tokens: any;
|
|
8
|
+
}> {
|
|
6
9
|
config?: TConfig;
|
|
7
|
-
onSuccess: (event: H3Event, result:
|
|
8
|
-
user: TUser;
|
|
9
|
-
tokens: TTokens;
|
|
10
|
-
}) => Promise<void> | void;
|
|
10
|
+
onSuccess: (event: H3Event, result: TResult) => Promise<void> | void;
|
|
11
11
|
onError?: OnError;
|
|
12
12
|
}
|
|
@@ -7,7 +7,7 @@ export interface UserSession {
|
|
|
7
7
|
/**
|
|
8
8
|
* Session ID
|
|
9
9
|
*/
|
|
10
|
-
id
|
|
10
|
+
id: string;
|
|
11
11
|
/**
|
|
12
12
|
* User session data, available on client and server
|
|
13
13
|
*/
|
|
@@ -22,7 +22,6 @@ export interface UserSession {
|
|
|
22
22
|
[key: string]: unknown;
|
|
23
23
|
}
|
|
24
24
|
export interface UserSessionRequired extends UserSession {
|
|
25
|
-
id: string;
|
|
26
25
|
user: User;
|
|
27
26
|
}
|
|
28
27
|
export interface UserSessionComposable {
|
|
@@ -41,7 +40,7 @@ export interface UserSessionComposable {
|
|
|
41
40
|
/**
|
|
42
41
|
* The session object.
|
|
43
42
|
*/
|
|
44
|
-
session: Ref<UserSession>;
|
|
43
|
+
session: Ref<UserSession | null>;
|
|
45
44
|
/**
|
|
46
45
|
* Fetch the user session from the server.
|
|
47
46
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-auth-utils",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.21",
|
|
4
4
|
"description": "Add Authentication to Nuxt applications with secured & sealed cookies sessions.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"lint:fix": "eslint . --fix",
|
|
32
32
|
"test": "vitest run",
|
|
33
33
|
"test:types": "vue-tsc --noEmit",
|
|
34
|
-
"test:types:playground": "
|
|
34
|
+
"test:types:playground": "nuxt typecheck playground",
|
|
35
35
|
"test:watch": "vitest watch"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|