@oauth42/next 0.5.0 → 0.5.1
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 +117 -0
- package/dist/build-manifest.json +59 -0
- package/dist/client/index.d.mts +7 -6
- package/dist/client/index.d.ts +7 -6
- package/dist/client/index.js +13 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +13 -1
- package/dist/client/index.mjs.map +1 -1
- package/dist/{index-Cfqxl9r2.d.mts → index-BuZTiUds.d.mts} +51 -1
- package/dist/{index-Cfqxl9r2.d.ts → index-BuZTiUds.d.ts} +51 -1
- package/dist/index.d.mts +20 -2
- package/dist/index.d.ts +20 -2
- package/dist/index.js +469 -159
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +465 -158
- package/dist/index.mjs.map +1 -1
- package/dist/middleware/index.d.mts +2 -1
- package/dist/middleware/index.d.ts +2 -1
- package/dist/middleware/index.js +218 -66
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/index.mjs +219 -66
- package/dist/middleware/index.mjs.map +1 -1
- package/dist/{auth-D3tAruwx.d.mts → par-Cyu6M1e6.d.mts} +27 -12
- package/dist/{auth-CYMPe3k0.d.ts → par-DQNt8j-s.d.ts} +27 -12
- package/dist/server/index.d.mts +7 -3
- package/dist/server/index.d.ts +7 -3
- package/dist/server/index.js +503 -178
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +499 -177
- package/dist/server/index.mjs.map +1 -1
- package/package.json +14 -5
- package/src/types/index.ts +2 -0
- package/src/types/next-auth.d.ts +2 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { a as OAuth42ClientAssertion, O as OAuth42DPoP, S as SessionStoreMode } from './index-BuZTiUds.mjs';
|
|
1
2
|
import { OAuthUserConfig, OAuthConfig } from 'next-auth/providers/oauth';
|
|
2
3
|
import * as next_auth from 'next-auth';
|
|
3
4
|
import { NextAuthOptions } from 'next-auth';
|
|
4
5
|
import { GetServerSidePropsContext, NextApiRequest, NextApiResponse } from 'next';
|
|
5
|
-
import { S as SessionStoreMode } from './index-Cfqxl9r2.mjs';
|
|
6
6
|
|
|
7
7
|
interface OAuth42Profile {
|
|
8
8
|
sub: string;
|
|
@@ -18,15 +18,17 @@ interface OAuth42Profile {
|
|
|
18
18
|
}
|
|
19
19
|
interface OAuth42ProviderOptions {
|
|
20
20
|
clientId: string;
|
|
21
|
-
clientSecret
|
|
21
|
+
clientSecret?: string;
|
|
22
|
+
clientAssertionKey?: OAuth42ClientAssertion;
|
|
22
23
|
issuer?: string;
|
|
23
24
|
authorizationUrl?: string;
|
|
24
25
|
tokenUrl?: string;
|
|
25
26
|
userinfoUrl?: string;
|
|
26
27
|
scopes?: string[];
|
|
27
28
|
pkceEnabled?: boolean;
|
|
29
|
+
dpop?: OAuth42DPoP;
|
|
28
30
|
}
|
|
29
|
-
declare function OAuth42Provider<P extends OAuth42Profile>(options: OAuthUserConfig<P> & Partial<OAuth42ProviderOptions>): OAuthConfig<P>;
|
|
31
|
+
declare function OAuth42Provider<P extends OAuth42Profile>(options: Omit<OAuthUserConfig<P>, 'clientSecret'> & Partial<OAuth42ProviderOptions>): OAuthConfig<P>;
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* Get the OAuth42 session server-side
|
|
@@ -44,10 +46,8 @@ declare function OAuth42Provider<P extends OAuth42Profile>(options: OAuthUserCon
|
|
|
44
46
|
* const session = await getOAuth42Session(req, res, authOptions);
|
|
45
47
|
* ```
|
|
46
48
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* the `x-oauth42-refreshed-token` header. This function automatically detects
|
|
50
|
-
* and uses that refreshed token, ensuring API routes always have a valid token.
|
|
49
|
+
* Middleware forwards refreshed encrypted session cookies to the current request.
|
|
50
|
+
* Caller-supplied access-token headers are never an authentication source.
|
|
51
51
|
*/
|
|
52
52
|
declare function getOAuth42Session(...args: [GetServerSidePropsContext['req'], GetServerSidePropsContext['res'], NextAuthOptions] | [NextApiRequest, NextApiResponse, NextAuthOptions] | [NextAuthOptions]): Promise<next_auth.Session | null>;
|
|
53
53
|
/**
|
|
@@ -65,6 +65,10 @@ interface CreateAuthOptions {
|
|
|
65
65
|
issuer?: string;
|
|
66
66
|
scopes?: string[];
|
|
67
67
|
pkceEnabled?: boolean;
|
|
68
|
+
/** Require PAR through the returned App Router handlers; never falls back. */
|
|
69
|
+
pushedAuthorization?: boolean;
|
|
70
|
+
dpop?: OAuth42DPoP;
|
|
71
|
+
clientAssertionKey?: OAuth42ClientAssertion;
|
|
68
72
|
debug?: boolean;
|
|
69
73
|
callbacks?: NextAuthOptions['callbacks'];
|
|
70
74
|
events?: NextAuthOptions['events'];
|
|
@@ -115,10 +119,21 @@ declare const getServerSession: typeof getOAuth42Session;
|
|
|
115
119
|
* Token refresh helper with simple per-process locking
|
|
116
120
|
*
|
|
117
121
|
* The lock prevents multiple concurrent refresh calls from the same process,
|
|
118
|
-
* reducing unnecessary token churn.
|
|
119
|
-
*
|
|
120
|
-
* will still succeed.
|
|
122
|
+
* reducing unnecessary token churn. Coordinate refresh across backend instances;
|
|
123
|
+
* the server rejects reuse of an already rotated refresh token.
|
|
121
124
|
*/
|
|
122
|
-
declare function refreshAccessToken(token: any, clientId: string, clientSecret: string, issuer?: string): Promise<any>;
|
|
125
|
+
declare function refreshAccessToken(token: any, clientId: string, clientSecret: string, issuer?: string, dpop?: OAuth42DPoP, clientAssertionKey?: OAuth42ClientAssertion): Promise<any>;
|
|
126
|
+
|
|
127
|
+
interface PARConfig {
|
|
128
|
+
issuer: string;
|
|
129
|
+
clientId: string;
|
|
130
|
+
clientSecret?: string;
|
|
131
|
+
dpop?: OAuth42DPoP;
|
|
132
|
+
clientAssertionKey?: OAuth42ClientAssertion;
|
|
133
|
+
}
|
|
134
|
+
/** Transform only the authorization redirect produced by NextAuth after its
|
|
135
|
+
* state/nonce/PKCE cookies are set. All pushed parameters stay server-side. */
|
|
136
|
+
declare function pushAuthorizationURL(value: string, config: PARConfig): Promise<string>;
|
|
137
|
+
declare function withPushedAuthorization(handler: (...args: any[]) => any, config: PARConfig): (request: Request, context: unknown) => Promise<Response>;
|
|
123
138
|
|
|
124
|
-
export { type CreateAuthOptions as C, type
|
|
139
|
+
export { type CreateAuthOptions as C, OAuth42Provider as O, type PARConfig as P, createHandlers as a, getServerSession as b, createAuth as c, withOAuth42Session as d, withPushedAuthorization as e, type OAuth42Profile as f, getOAuth42Session as g, type OAuth42ProviderOptions as h, pushAuthorizationURL as p, refreshAccessToken as r, withOAuth42ServerSideProps as w };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { a as OAuth42ClientAssertion, O as OAuth42DPoP, S as SessionStoreMode } from './index-BuZTiUds.js';
|
|
1
2
|
import { OAuthUserConfig, OAuthConfig } from 'next-auth/providers/oauth';
|
|
2
3
|
import * as next_auth from 'next-auth';
|
|
3
4
|
import { NextAuthOptions } from 'next-auth';
|
|
4
5
|
import { GetServerSidePropsContext, NextApiRequest, NextApiResponse } from 'next';
|
|
5
|
-
import { S as SessionStoreMode } from './index-Cfqxl9r2.js';
|
|
6
6
|
|
|
7
7
|
interface OAuth42Profile {
|
|
8
8
|
sub: string;
|
|
@@ -18,15 +18,17 @@ interface OAuth42Profile {
|
|
|
18
18
|
}
|
|
19
19
|
interface OAuth42ProviderOptions {
|
|
20
20
|
clientId: string;
|
|
21
|
-
clientSecret
|
|
21
|
+
clientSecret?: string;
|
|
22
|
+
clientAssertionKey?: OAuth42ClientAssertion;
|
|
22
23
|
issuer?: string;
|
|
23
24
|
authorizationUrl?: string;
|
|
24
25
|
tokenUrl?: string;
|
|
25
26
|
userinfoUrl?: string;
|
|
26
27
|
scopes?: string[];
|
|
27
28
|
pkceEnabled?: boolean;
|
|
29
|
+
dpop?: OAuth42DPoP;
|
|
28
30
|
}
|
|
29
|
-
declare function OAuth42Provider<P extends OAuth42Profile>(options: OAuthUserConfig<P> & Partial<OAuth42ProviderOptions>): OAuthConfig<P>;
|
|
31
|
+
declare function OAuth42Provider<P extends OAuth42Profile>(options: Omit<OAuthUserConfig<P>, 'clientSecret'> & Partial<OAuth42ProviderOptions>): OAuthConfig<P>;
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* Get the OAuth42 session server-side
|
|
@@ -44,10 +46,8 @@ declare function OAuth42Provider<P extends OAuth42Profile>(options: OAuthUserCon
|
|
|
44
46
|
* const session = await getOAuth42Session(req, res, authOptions);
|
|
45
47
|
* ```
|
|
46
48
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* the `x-oauth42-refreshed-token` header. This function automatically detects
|
|
50
|
-
* and uses that refreshed token, ensuring API routes always have a valid token.
|
|
49
|
+
* Middleware forwards refreshed encrypted session cookies to the current request.
|
|
50
|
+
* Caller-supplied access-token headers are never an authentication source.
|
|
51
51
|
*/
|
|
52
52
|
declare function getOAuth42Session(...args: [GetServerSidePropsContext['req'], GetServerSidePropsContext['res'], NextAuthOptions] | [NextApiRequest, NextApiResponse, NextAuthOptions] | [NextAuthOptions]): Promise<next_auth.Session | null>;
|
|
53
53
|
/**
|
|
@@ -65,6 +65,10 @@ interface CreateAuthOptions {
|
|
|
65
65
|
issuer?: string;
|
|
66
66
|
scopes?: string[];
|
|
67
67
|
pkceEnabled?: boolean;
|
|
68
|
+
/** Require PAR through the returned App Router handlers; never falls back. */
|
|
69
|
+
pushedAuthorization?: boolean;
|
|
70
|
+
dpop?: OAuth42DPoP;
|
|
71
|
+
clientAssertionKey?: OAuth42ClientAssertion;
|
|
68
72
|
debug?: boolean;
|
|
69
73
|
callbacks?: NextAuthOptions['callbacks'];
|
|
70
74
|
events?: NextAuthOptions['events'];
|
|
@@ -115,10 +119,21 @@ declare const getServerSession: typeof getOAuth42Session;
|
|
|
115
119
|
* Token refresh helper with simple per-process locking
|
|
116
120
|
*
|
|
117
121
|
* The lock prevents multiple concurrent refresh calls from the same process,
|
|
118
|
-
* reducing unnecessary token churn.
|
|
119
|
-
*
|
|
120
|
-
* will still succeed.
|
|
122
|
+
* reducing unnecessary token churn. Coordinate refresh across backend instances;
|
|
123
|
+
* the server rejects reuse of an already rotated refresh token.
|
|
121
124
|
*/
|
|
122
|
-
declare function refreshAccessToken(token: any, clientId: string, clientSecret: string, issuer?: string): Promise<any>;
|
|
125
|
+
declare function refreshAccessToken(token: any, clientId: string, clientSecret: string, issuer?: string, dpop?: OAuth42DPoP, clientAssertionKey?: OAuth42ClientAssertion): Promise<any>;
|
|
126
|
+
|
|
127
|
+
interface PARConfig {
|
|
128
|
+
issuer: string;
|
|
129
|
+
clientId: string;
|
|
130
|
+
clientSecret?: string;
|
|
131
|
+
dpop?: OAuth42DPoP;
|
|
132
|
+
clientAssertionKey?: OAuth42ClientAssertion;
|
|
133
|
+
}
|
|
134
|
+
/** Transform only the authorization redirect produced by NextAuth after its
|
|
135
|
+
* state/nonce/PKCE cookies are set. All pushed parameters stay server-side. */
|
|
136
|
+
declare function pushAuthorizationURL(value: string, config: PARConfig): Promise<string>;
|
|
137
|
+
declare function withPushedAuthorization(handler: (...args: any[]) => any, config: PARConfig): (request: Request, context: unknown) => Promise<Response>;
|
|
123
138
|
|
|
124
|
-
export { type CreateAuthOptions as C, type
|
|
139
|
+
export { type CreateAuthOptions as C, OAuth42Provider as O, type PARConfig as P, createHandlers as a, getServerSession as b, createAuth as c, withOAuth42Session as d, withPushedAuthorization as e, type OAuth42Profile as f, getOAuth42Session as g, type OAuth42ProviderOptions as h, pushAuthorizationURL as p, refreshAccessToken as r, withOAuth42ServerSideProps as w };
|
package/dist/server/index.d.mts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
export { C as CreateAuthOptions,
|
|
1
|
+
export { C as CreateAuthOptions, O as OAuth42Provider, P as PARConfig, c as createAuth, a as createHandlers, g as getOAuth42Session, b as getServerSession, p as pushAuthorizationURL, r as refreshAccessToken, w as withOAuth42ServerSideProps, d as withOAuth42Session, e as withPushedAuthorization } from '../par-Cyu6M1e6.mjs';
|
|
2
2
|
export { default as NextAuth, NextAuthOptions } from 'next-auth';
|
|
3
|
-
|
|
3
|
+
import { O as OAuth42DPoP, a as OAuth42ClientAssertion } from '../index-BuZTiUds.mjs';
|
|
4
|
+
export { B as BackendSessionConfig, b as BackendSessionResponse, c as BackendSessionUser, d as OAuth42AuthOptions, S as SessionStoreMode, e as createBackendSession, f as createMiddlewareConfig, r as resolveBackendSession, g as revokeBackendSession, w as withOAuth42Auth } from '../index-BuZTiUds.mjs';
|
|
4
5
|
import { NextRequest, NextResponse } from 'next/server';
|
|
5
6
|
import 'next-auth/providers/oauth';
|
|
6
7
|
import 'next';
|
|
8
|
+
import 'node:crypto';
|
|
7
9
|
|
|
8
10
|
interface HostedAuthCallbackOptions {
|
|
9
11
|
/**
|
|
10
12
|
* OAuth42 issuer URL (e.g., 'https://api.oauth42.com' or 'https://localhost:8443')
|
|
11
13
|
*/
|
|
12
14
|
issuer?: string;
|
|
15
|
+
dpop?: OAuth42DPoP;
|
|
16
|
+
clientAssertionKey?: OAuth42ClientAssertion;
|
|
13
17
|
/**
|
|
14
18
|
* OAuth2 client ID
|
|
15
19
|
*/
|
|
@@ -55,4 +59,4 @@ interface HostedAuthCallbackOptions {
|
|
|
55
59
|
*/
|
|
56
60
|
declare function createHostedAuthCallback(options?: HostedAuthCallbackOptions): (request: NextRequest) => Promise<NextResponse<unknown>>;
|
|
57
61
|
|
|
58
|
-
export { type HostedAuthCallbackOptions, createHostedAuthCallback };
|
|
62
|
+
export { type HostedAuthCallbackOptions, OAuth42ClientAssertion, OAuth42DPoP, createHostedAuthCallback };
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
export { C as CreateAuthOptions,
|
|
1
|
+
export { C as CreateAuthOptions, O as OAuth42Provider, P as PARConfig, c as createAuth, a as createHandlers, g as getOAuth42Session, b as getServerSession, p as pushAuthorizationURL, r as refreshAccessToken, w as withOAuth42ServerSideProps, d as withOAuth42Session, e as withPushedAuthorization } from '../par-DQNt8j-s.js';
|
|
2
2
|
export { default as NextAuth, NextAuthOptions } from 'next-auth';
|
|
3
|
-
|
|
3
|
+
import { O as OAuth42DPoP, a as OAuth42ClientAssertion } from '../index-BuZTiUds.js';
|
|
4
|
+
export { B as BackendSessionConfig, b as BackendSessionResponse, c as BackendSessionUser, d as OAuth42AuthOptions, S as SessionStoreMode, e as createBackendSession, f as createMiddlewareConfig, r as resolveBackendSession, g as revokeBackendSession, w as withOAuth42Auth } from '../index-BuZTiUds.js';
|
|
4
5
|
import { NextRequest, NextResponse } from 'next/server';
|
|
5
6
|
import 'next-auth/providers/oauth';
|
|
6
7
|
import 'next';
|
|
8
|
+
import 'node:crypto';
|
|
7
9
|
|
|
8
10
|
interface HostedAuthCallbackOptions {
|
|
9
11
|
/**
|
|
10
12
|
* OAuth42 issuer URL (e.g., 'https://api.oauth42.com' or 'https://localhost:8443')
|
|
11
13
|
*/
|
|
12
14
|
issuer?: string;
|
|
15
|
+
dpop?: OAuth42DPoP;
|
|
16
|
+
clientAssertionKey?: OAuth42ClientAssertion;
|
|
13
17
|
/**
|
|
14
18
|
* OAuth2 client ID
|
|
15
19
|
*/
|
|
@@ -55,4 +59,4 @@ interface HostedAuthCallbackOptions {
|
|
|
55
59
|
*/
|
|
56
60
|
declare function createHostedAuthCallback(options?: HostedAuthCallbackOptions): (request: NextRequest) => Promise<NextResponse<unknown>>;
|
|
57
61
|
|
|
58
|
-
export { type HostedAuthCallbackOptions, createHostedAuthCallback };
|
|
62
|
+
export { type HostedAuthCallbackOptions, OAuth42ClientAssertion, OAuth42DPoP, createHostedAuthCallback };
|