@atproto/oauth-types 0.1.3 → 0.1.5
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/CHANGELOG.md +36 -0
- package/dist/atproto-loopback-client-metadata.d.ts.map +1 -1
- package/dist/atproto-loopback-client-metadata.js +5 -17
- package/dist/atproto-loopback-client-metadata.js.map +1 -1
- package/dist/index.d.ts +18 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -5
- package/dist/index.js.map +1 -1
- package/dist/oauth-access-token.d.ts +4 -0
- package/dist/oauth-access-token.d.ts.map +1 -0
- package/dist/oauth-access-token.js +6 -0
- package/dist/oauth-access-token.js.map +1 -0
- package/dist/oauth-authorization-code-grant-token-request.d.ts +20 -0
- package/dist/oauth-authorization-code-grant-token-request.d.ts.map +1 -0
- package/dist/oauth-authorization-code-grant-token-request.js +17 -0
- package/dist/oauth-authorization-code-grant-token-request.js.map +1 -0
- package/dist/oauth-authorization-request-jar.d.ts +16 -0
- package/dist/oauth-authorization-request-jar.d.ts.map +1 -0
- package/dist/oauth-authorization-request-jar.js +15 -0
- package/dist/oauth-authorization-request-jar.js.map +1 -0
- package/dist/oauth-authorization-request-par.d.ts +122 -0
- package/dist/oauth-authorization-request-par.d.ts.map +1 -0
- package/dist/oauth-authorization-request-par.js +11 -0
- package/dist/oauth-authorization-request-par.js.map +1 -0
- package/dist/{oauth-authentication-request-parameters.d.ts → oauth-authorization-request-parameters.d.ts} +16 -16
- package/dist/oauth-authorization-request-parameters.d.ts.map +1 -0
- package/dist/{oauth-authentication-request-parameters.js → oauth-authorization-request-parameters.js} +17 -25
- package/dist/oauth-authorization-request-parameters.js.map +1 -0
- package/dist/oauth-authorization-request-query.d.ts +128 -0
- package/dist/oauth-authorization-request-query.d.ts.map +1 -0
- package/dist/oauth-authorization-request-query.js +13 -0
- package/dist/oauth-authorization-request-query.js.map +1 -0
- package/dist/oauth-authorization-request-uri.d.ts +10 -0
- package/dist/oauth-authorization-request-uri.d.ts.map +1 -0
- package/dist/oauth-authorization-request-uri.js +9 -0
- package/dist/oauth-authorization-request-uri.js.map +1 -0
- package/dist/oauth-authorization-server-metadata.d.ts +10 -10
- package/dist/oauth-authorization-server-metadata.d.ts.map +1 -1
- package/dist/oauth-authorization-server-metadata.js +5 -1
- package/dist/oauth-authorization-server-metadata.js.map +1 -1
- package/dist/oauth-client-credentials-grant-token-request.d.ts +10 -0
- package/dist/oauth-client-credentials-grant-token-request.d.ts.map +1 -0
- package/dist/oauth-client-credentials-grant-token-request.js +8 -0
- package/dist/oauth-client-credentials-grant-token-request.js.map +1 -0
- package/dist/oauth-client-credentials.d.ts +18 -2
- package/dist/oauth-client-credentials.d.ts.map +1 -1
- package/dist/oauth-client-credentials.js +8 -2
- package/dist/oauth-client-credentials.js.map +1 -1
- package/dist/oauth-client-id-discoverable.d.ts +3 -2
- package/dist/oauth-client-id-discoverable.d.ts.map +1 -1
- package/dist/oauth-client-id-discoverable.js +21 -18
- package/dist/oauth-client-id-discoverable.js.map +1 -1
- package/dist/oauth-client-id-loopback.d.ts +10 -3
- package/dist/oauth-client-id-loopback.d.ts.map +1 -1
- package/dist/oauth-client-id-loopback.js +58 -21
- package/dist/oauth-client-id-loopback.js.map +1 -1
- package/dist/oauth-client-metadata.d.ts +1 -1
- package/dist/oauth-client-metadata.d.ts.map +1 -1
- package/dist/oauth-client-metadata.js +2 -1
- package/dist/oauth-client-metadata.js.map +1 -1
- package/dist/oauth-code-challenge-method.d.ts +3 -0
- package/dist/oauth-code-challenge-method.d.ts.map +1 -0
- package/dist/oauth-code-challenge-method.js +6 -0
- package/dist/oauth-code-challenge-method.js.map +1 -0
- package/dist/oauth-introspection-response.d.ts +20 -0
- package/dist/oauth-introspection-response.d.ts.map +1 -0
- package/dist/oauth-introspection-response.js +3 -0
- package/dist/oauth-introspection-response.js.map +1 -0
- package/dist/oauth-par-response.d.ts +3 -0
- package/dist/oauth-par-response.d.ts.map +1 -1
- package/dist/oauth-par-response.js +1 -0
- package/dist/oauth-par-response.js.map +1 -1
- package/dist/oauth-password-grant-token-request.d.ts +16 -0
- package/dist/oauth-password-grant-token-request.d.ts.map +1 -0
- package/dist/oauth-password-grant-token-request.js +10 -0
- package/dist/oauth-password-grant-token-request.js.map +1 -0
- package/dist/oauth-refresh-token-grant-token-request.d.ts +16 -0
- package/dist/oauth-refresh-token-grant-token-request.d.ts.map +1 -0
- package/dist/oauth-refresh-token-grant-token-request.js +12 -0
- package/dist/oauth-refresh-token-grant-token-request.js.map +1 -0
- package/dist/oauth-refresh-token.d.ts +4 -0
- package/dist/oauth-refresh-token.d.ts.map +1 -0
- package/dist/oauth-refresh-token.js +6 -0
- package/dist/oauth-refresh-token.js.map +1 -0
- package/dist/oauth-request-uri.d.ts +4 -0
- package/dist/oauth-request-uri.d.ts.map +1 -0
- package/dist/oauth-request-uri.js +6 -0
- package/dist/oauth-request-uri.js.map +1 -0
- package/dist/oauth-response-type.js +2 -2
- package/dist/oauth-response-type.js.map +1 -1
- package/dist/oauth-scope.d.ts +10 -0
- package/dist/oauth-scope.d.ts.map +1 -0
- package/dist/oauth-scope.js +16 -0
- package/dist/oauth-scope.js.map +1 -0
- package/dist/oauth-token-identification.d.ts +13 -0
- package/dist/oauth-token-identification.d.ts.map +1 -0
- package/dist/oauth-token-identification.js +11 -0
- package/dist/oauth-token-identification.js.map +1 -0
- package/dist/oauth-token-request.d.ts +49 -0
- package/dist/oauth-token-request.d.ts.map +1 -0
- package/dist/oauth-token-request.js +15 -0
- package/dist/oauth-token-request.js.map +1 -0
- package/dist/oauth-token-response.d.ts +0 -3
- package/dist/oauth-token-response.d.ts.map +1 -1
- package/dist/oauth-token-response.js +0 -1
- package/dist/oauth-token-response.js.map +1 -1
- package/dist/util.d.ts +2 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +34 -3
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
- package/src/atproto-loopback-client-metadata.ts +9 -23
- package/src/index.ts +18 -5
- package/src/oauth-access-token.ts +4 -0
- package/src/oauth-authorization-code-grant-token-request.ts +18 -0
- package/src/oauth-authorization-request-jar.ts +16 -0
- package/src/oauth-authorization-request-par.ts +13 -0
- package/src/{oauth-authentication-request-parameters.ts → oauth-authorization-request-parameters.ts} +22 -31
- package/src/oauth-authorization-request-query.ts +15 -0
- package/src/oauth-authorization-request-uri.ts +11 -0
- package/src/oauth-authorization-server-metadata.ts +5 -1
- package/src/oauth-client-credentials-grant-token-request.ts +9 -0
- package/src/oauth-client-credentials.ts +21 -1
- package/src/oauth-client-id-discoverable.ts +29 -26
- package/src/oauth-client-id-loopback.ts +78 -30
- package/src/oauth-client-metadata.ts +2 -1
- package/src/oauth-code-challenge-method.ts +3 -0
- package/src/oauth-introspection-response.ts +23 -0
- package/src/oauth-par-response.ts +1 -0
- package/src/oauth-password-grant-token-request.ts +11 -0
- package/src/oauth-refresh-token-grant-token-request.ts +13 -0
- package/src/oauth-refresh-token.ts +4 -0
- package/src/oauth-request-uri.ts +5 -0
- package/src/oauth-response-type.ts +2 -2
- package/src/oauth-scope.ts +15 -0
- package/src/oauth-token-identification.ts +12 -0
- package/src/oauth-token-request.ts +14 -0
- package/src/oauth-token-response.ts +0 -1
- package/src/util.ts +41 -1
- package/dist/access-token.d.ts +0 -4
- package/dist/access-token.d.ts.map +0 -1
- package/dist/access-token.js +0 -6
- package/dist/access-token.js.map +0 -1
- package/dist/oauth-authentication-request-parameters.d.ts.map +0 -1
- package/dist/oauth-authentication-request-parameters.js.map +0 -1
- package/dist/oauth-client-id-url.d.ts +0 -3
- package/dist/oauth-client-id-url.d.ts.map +0 -1
- package/dist/oauth-client-id-url.js +0 -21
- package/dist/oauth-client-id-url.js.map +0 -1
- package/dist/oauth-client-identification.d.ts +0 -31
- package/dist/oauth-client-identification.d.ts.map +0 -1
- package/dist/oauth-client-identification.js +0 -12
- package/dist/oauth-client-identification.js.map +0 -1
- package/src/access-token.ts +0 -4
- package/src/oauth-client-id-url.ts +0 -25
- package/src/oauth-client-identification.ts +0 -14
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { OAuthAuthorizationDetails } from './oauth-authorization-details.js'
|
|
2
|
+
import { OAuthTokenType } from './oauth-token-type.js'
|
|
3
|
+
|
|
4
|
+
// https://datatracker.ietf.org/doc/html/rfc7662#section-2.2
|
|
5
|
+
export type OAuthIntrospectionResponse =
|
|
6
|
+
| { active: false }
|
|
7
|
+
| {
|
|
8
|
+
active: true
|
|
9
|
+
|
|
10
|
+
scope?: string
|
|
11
|
+
client_id?: string
|
|
12
|
+
username?: string
|
|
13
|
+
token_type?: OAuthTokenType
|
|
14
|
+
authorization_details?: OAuthAuthorizationDetails
|
|
15
|
+
|
|
16
|
+
aud?: string | [string, ...string[]]
|
|
17
|
+
exp?: number
|
|
18
|
+
iat?: number
|
|
19
|
+
iss?: string
|
|
20
|
+
jti?: string
|
|
21
|
+
nbf?: number
|
|
22
|
+
sub?: string
|
|
23
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
|
|
3
|
+
export const oauthPasswordGrantTokenRequestSchema = z.object({
|
|
4
|
+
grant_type: z.literal('password'),
|
|
5
|
+
username: z.string(),
|
|
6
|
+
password: z.string(),
|
|
7
|
+
})
|
|
8
|
+
|
|
9
|
+
export type OAuthPasswordGrantTokenRequest = z.infer<
|
|
10
|
+
typeof oauthPasswordGrantTokenRequestSchema
|
|
11
|
+
>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import { oauthClientIdSchema } from './oauth-client-id.js'
|
|
3
|
+
import { oauthRefreshTokenSchema } from './oauth-refresh-token.js'
|
|
4
|
+
|
|
5
|
+
export const oauthRefreshTokenGrantTokenRequestSchema = z.object({
|
|
6
|
+
grant_type: z.literal('refresh_token'),
|
|
7
|
+
refresh_token: oauthRefreshTokenSchema,
|
|
8
|
+
client_id: oauthClientIdSchema,
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
export type OAuthRefreshTokenGrantTokenRequest = z.infer<
|
|
12
|
+
typeof oauthRefreshTokenGrantTokenRequestSchema
|
|
13
|
+
>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod'
|
|
2
2
|
|
|
3
3
|
export const oauthResponseTypeSchema = z.enum([
|
|
4
|
-
//
|
|
4
|
+
// OAuth2 (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-10#section-4.1.1)
|
|
5
5
|
'code', // Authorization Code Grant
|
|
6
6
|
'token', // Implicit Grant
|
|
7
7
|
|
|
8
|
-
//
|
|
8
|
+
// OIDC (https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html)
|
|
9
9
|
'none',
|
|
10
10
|
'code id_token token',
|
|
11
11
|
'code id_token',
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A space separated list of most non-control ASCII characters except backslash
|
|
5
|
+
* and double quote.
|
|
6
|
+
*
|
|
7
|
+
* @see {@link https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-11#section-1.4.1}
|
|
8
|
+
*/
|
|
9
|
+
export const oauthScopeSchema = z
|
|
10
|
+
.string()
|
|
11
|
+
// scope = scope-token *( SP scope-token )
|
|
12
|
+
// scope-token = 1*( %x21 / %x23-5B / %x5D-7E )
|
|
13
|
+
.regex(/^[\x21\x23-\x5B\x5D-\x7E]+(?: [\x21\x23-\x5B\x5D-\x7E]+)*$/)
|
|
14
|
+
|
|
15
|
+
export type OAuthScope = z.infer<typeof oauthScopeSchema>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import { oauthAccessTokenSchema } from './oauth-access-token.js'
|
|
3
|
+
import { oauthRefreshTokenSchema } from './oauth-refresh-token.js'
|
|
4
|
+
|
|
5
|
+
export const oauthTokenIdentificationSchema = z.object({
|
|
6
|
+
token: z.union([oauthAccessTokenSchema, oauthRefreshTokenSchema]),
|
|
7
|
+
token_type_hint: z.enum(['access_token', 'refresh_token']).optional(),
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
export type OAuthTokenIdentification = z.infer<
|
|
11
|
+
typeof oauthTokenIdentificationSchema
|
|
12
|
+
>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import { oauthAuthorizationCodeGrantTokenRequestSchema } from './oauth-authorization-code-grant-token-request.js'
|
|
3
|
+
import { oauthClientCredentialsGrantTokenRequestSchema } from './oauth-client-credentials-grant-token-request.js'
|
|
4
|
+
import { oauthPasswordGrantTokenRequestSchema } from './oauth-password-grant-token-request.js'
|
|
5
|
+
import { oauthRefreshTokenGrantTokenRequestSchema } from './oauth-refresh-token-grant-token-request.js'
|
|
6
|
+
|
|
7
|
+
export const oauthTokenRequestSchema = z.discriminatedUnion('grant_type', [
|
|
8
|
+
oauthAuthorizationCodeGrantTokenRequestSchema,
|
|
9
|
+
oauthRefreshTokenGrantTokenRequestSchema,
|
|
10
|
+
oauthPasswordGrantTokenRequestSchema,
|
|
11
|
+
oauthClientCredentialsGrantTokenRequestSchema,
|
|
12
|
+
])
|
|
13
|
+
|
|
14
|
+
export type OAuthTokenRequest = z.infer<typeof oauthTokenRequestSchema>
|
|
@@ -12,7 +12,6 @@ export const oauthTokenResponseSchema = z
|
|
|
12
12
|
access_token: z.string(),
|
|
13
13
|
token_type: oauthTokenTypeSchema,
|
|
14
14
|
issuer: z.string().url().optional(),
|
|
15
|
-
sub: z.string().optional(),
|
|
16
15
|
scope: z.string().optional(),
|
|
17
16
|
id_token: signedJwtSchema.optional(),
|
|
18
17
|
refresh_token: z.string().optional(),
|
package/src/util.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function
|
|
1
|
+
export function isHostnameIP(hostname: string) {
|
|
2
2
|
// IPv4
|
|
3
3
|
if (hostname.match(/^\d+\.\d+\.\d+\.\d+$/)) return true
|
|
4
4
|
|
|
@@ -26,3 +26,43 @@ export function safeUrl(input: URL | string): URL | null {
|
|
|
26
26
|
return null
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
|
|
30
|
+
export function extractUrlPath(url) {
|
|
31
|
+
// Extracts the path from a URL, without relying on the URL constructor
|
|
32
|
+
// (because it normalizes the URL)
|
|
33
|
+
const endOfProtocol = url.startsWith('https://')
|
|
34
|
+
? 8
|
|
35
|
+
: url.startsWith('http://')
|
|
36
|
+
? 7
|
|
37
|
+
: -1
|
|
38
|
+
if (endOfProtocol === -1) {
|
|
39
|
+
throw new TypeError('URL must use the "https:" or "http:" protocol')
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const hashIdx = url.indexOf('#', endOfProtocol)
|
|
43
|
+
const questionIdx = url.indexOf('?', endOfProtocol)
|
|
44
|
+
|
|
45
|
+
const queryStrIdx =
|
|
46
|
+
questionIdx !== -1 && (hashIdx === -1 || questionIdx < hashIdx)
|
|
47
|
+
? questionIdx
|
|
48
|
+
: -1
|
|
49
|
+
|
|
50
|
+
const pathEnd =
|
|
51
|
+
hashIdx === -1
|
|
52
|
+
? queryStrIdx === -1
|
|
53
|
+
? url.length
|
|
54
|
+
: queryStrIdx
|
|
55
|
+
: queryStrIdx === -1
|
|
56
|
+
? hashIdx
|
|
57
|
+
: Math.min(hashIdx, queryStrIdx)
|
|
58
|
+
|
|
59
|
+
const slashIdx = url.indexOf('/', endOfProtocol)
|
|
60
|
+
|
|
61
|
+
const pathStart = slashIdx === -1 || slashIdx > pathEnd ? pathEnd : slashIdx
|
|
62
|
+
|
|
63
|
+
if (endOfProtocol === pathStart) {
|
|
64
|
+
throw new TypeError('URL must contain a host')
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return url.substring(pathStart, pathEnd)
|
|
68
|
+
}
|
package/dist/access-token.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access-token.d.ts","sourceRoot":"","sources":["../src/access-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,iBAAiB,aAAoB,CAAA;AAClD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|
package/dist/access-token.js
DELETED
package/dist/access-token.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access-token.js","sourceRoot":"","sources":["../src/access-token.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-authentication-request-parameters.d.ts","sourceRoot":"","sources":["../src/oauth-authentication-request-parameters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB;;GAEG;AACH,eAAO,MAAM,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0ErD;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKH,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CACxD,OAAO,0CAA0C,CAClD,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-authentication-request-parameters.js","sourceRoot":"","sources":["../src/oauth-authentication-request-parameters.ts"],"names":[],"mappings":";;;AAAA,sCAA8C;AAC9C,6BAAuB;AAEvB,qFAAkF;AAClF,6DAA0D;AAC1D,yEAAsE;AACtE,2EAAwE;AACxE,+DAA4D;AAE5D;;GAEG;AACU,QAAA,0CAA0C,GAAG,OAAC,CAAC,MAAM,CAAC;IACjE,SAAS,EAAE,wCAAmB;IAE9B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE/B,aAAa,EAAE,OAAC,CAAC,IAAI,CAAC;QACpB,wFAAwF;QACxF,MAAM;QACN,OAAO;QAEP,4EAA4E;QAC5E,UAAU;QACV,MAAM;QACN,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,qBAAqB;KACtB,CAAC;IAEF,kCAAkC;IAClC,aAAa,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEpE,OAAO;IACP,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,qBAAqB,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAE3E,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAEzC,gCAAgC;IAChC,KAAK,EAAE,OAAC;SACL,MAAM,EAAE;SACR,KAAK,CAAC,kCAAkC,CAAC;SACzC,QAAQ,EAAE;IAEb,OAAO;IAEP,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,2CAA2C;IAC3C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAE3C,MAAM,EAAE,OAAC;SACN,MAAM,CACL,0CAAoB,EACpB,OAAC,CAAC,MAAM,CACN,oDAAyB,EACzB,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,sDAA0B,CAAC,CAAC,CACvD,CACF;SACA,QAAQ,EAAE;IAEb,8EAA8E;IAC9E,uCAAuC;IACvC,iDAAiD;IAEjD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAExC,UAAU,EAAE,OAAC;SACV,MAAM,EAAE;SACR,KAAK,CAAC,gDAAgD,CAAC,CAAC,cAAc;SACtE,QAAQ,EAAE;IAEb,iEAAiE;IACjE,aAAa,EAAE,qBAAe,CAAC,QAAQ,EAAE;IAEzC,oCAAoC;IACpC,OAAO,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEtD;;;;;OAKG;IACH,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEzE,gDAAgD;IAChD,qBAAqB,EAAE,gEAA+B,CAAC,QAAQ,EAAE;CAClE,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client-id-url.d.ts","sourceRoot":"","sources":["../src/oauth-client-id-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,GAAG,CAsBlE"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseOAuthClientIdUrl = void 0;
|
|
4
|
-
function parseOAuthClientIdUrl(clientId) {
|
|
5
|
-
if (clientId.endsWith('/')) {
|
|
6
|
-
throw new TypeError('ClientID must not end with a trailing slash');
|
|
7
|
-
}
|
|
8
|
-
const url = new URL(clientId);
|
|
9
|
-
if (url.protocol !== 'https:' && url.protocol !== 'http:') {
|
|
10
|
-
throw new TypeError('ClientID must use the "https:" or "http:" protocol');
|
|
11
|
-
}
|
|
12
|
-
url.searchParams.sort();
|
|
13
|
-
// URL constructor normalizes the URL, so we need to compare the canonical form
|
|
14
|
-
const canonicalUri = url.pathname === '/' ? url.origin + url.search : url.href;
|
|
15
|
-
if (canonicalUri !== clientId) {
|
|
16
|
-
throw new TypeError(`ClientID must be in canonical form ("${canonicalUri}", got "${clientId}")`);
|
|
17
|
-
}
|
|
18
|
-
return url;
|
|
19
|
-
}
|
|
20
|
-
exports.parseOAuthClientIdUrl = parseOAuthClientIdUrl;
|
|
21
|
-
//# sourceMappingURL=oauth-client-id-url.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client-id-url.js","sourceRoot":"","sources":["../src/oauth-client-id-url.ts"],"names":[],"mappings":";;;AAEA,SAAgB,qBAAqB,CAAC,QAAuB;IAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;IAE7B,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAA;IAC3E,CAAC;IAED,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IAEvB,+EAA+E;IAC/E,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;IAC9E,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,wCAAwC,YAAY,WAAW,QAAQ,IAAI,CAC5E,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAtBD,sDAsBC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const oauthClientIdentificationSchema: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
|
3
|
-
client_id: z.ZodString;
|
|
4
|
-
client_assertion_type: z.ZodLiteral<"urn:ietf:params:oauth:client-assertion-type:jwt-bearer">;
|
|
5
|
-
client_assertion: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `${string}.${string}.${string}`, string>;
|
|
6
|
-
}, "strip", z.ZodTypeAny, {
|
|
7
|
-
client_id: string;
|
|
8
|
-
client_assertion_type: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer";
|
|
9
|
-
client_assertion: `${string}.${string}.${string}`;
|
|
10
|
-
}, {
|
|
11
|
-
client_id: string;
|
|
12
|
-
client_assertion_type: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer";
|
|
13
|
-
client_assertion: string;
|
|
14
|
-
}>, z.ZodObject<{
|
|
15
|
-
client_id: z.ZodString;
|
|
16
|
-
client_secret: z.ZodString;
|
|
17
|
-
}, "strip", z.ZodTypeAny, {
|
|
18
|
-
client_id: string;
|
|
19
|
-
client_secret: string;
|
|
20
|
-
}, {
|
|
21
|
-
client_id: string;
|
|
22
|
-
client_secret: string;
|
|
23
|
-
}>]>, z.ZodObject<{
|
|
24
|
-
client_id: z.ZodString;
|
|
25
|
-
}, "strip", z.ZodTypeAny, {
|
|
26
|
-
client_id: string;
|
|
27
|
-
}, {
|
|
28
|
-
client_id: string;
|
|
29
|
-
}>]>;
|
|
30
|
-
export type OAuthClientIdentification = z.infer<typeof oauthClientIdentificationSchema>;
|
|
31
|
-
//# sourceMappingURL=oauth-client-identification.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client-identification.d.ts","sourceRoot":"","sources":["../src/oauth-client-identification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;IAI1C,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.oauthClientIdentificationSchema = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const oauth_client_id_js_1 = require("./oauth-client-id.js");
|
|
6
|
-
const oauth_client_credentials_js_1 = require("./oauth-client-credentials.js");
|
|
7
|
-
exports.oauthClientIdentificationSchema = zod_1.z.union([
|
|
8
|
-
oauth_client_credentials_js_1.oauthClientCredentialsSchema,
|
|
9
|
-
// Must be last since it is less specific
|
|
10
|
-
zod_1.z.object({ client_id: oauth_client_id_js_1.oauthClientIdSchema }),
|
|
11
|
-
]);
|
|
12
|
-
//# sourceMappingURL=oauth-client-identification.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client-identification.js","sourceRoot":"","sources":["../src/oauth-client-identification.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,6DAA0D;AAC1D,+EAA4E;AAE/D,QAAA,+BAA+B,GAAG,OAAC,CAAC,KAAK,CAAC;IACrD,0DAA4B;IAC5B,yCAAyC;IACzC,OAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,wCAAmB,EAAE,CAAC;CAC7C,CAAC,CAAA"}
|
package/src/access-token.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { OAuthClientId } from './oauth-client-id.js'
|
|
2
|
-
|
|
3
|
-
export function parseOAuthClientIdUrl(clientId: OAuthClientId): URL {
|
|
4
|
-
if (clientId.endsWith('/')) {
|
|
5
|
-
throw new TypeError('ClientID must not end with a trailing slash')
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const url = new URL(clientId)
|
|
9
|
-
|
|
10
|
-
if (url.protocol !== 'https:' && url.protocol !== 'http:') {
|
|
11
|
-
throw new TypeError('ClientID must use the "https:" or "http:" protocol')
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
url.searchParams.sort()
|
|
15
|
-
|
|
16
|
-
// URL constructor normalizes the URL, so we need to compare the canonical form
|
|
17
|
-
const canonicalUri = url.pathname === '/' ? url.origin + url.search : url.href
|
|
18
|
-
if (canonicalUri !== clientId) {
|
|
19
|
-
throw new TypeError(
|
|
20
|
-
`ClientID must be in canonical form ("${canonicalUri}", got "${clientId}")`,
|
|
21
|
-
)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return url
|
|
25
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod'
|
|
2
|
-
|
|
3
|
-
import { oauthClientIdSchema } from './oauth-client-id.js'
|
|
4
|
-
import { oauthClientCredentialsSchema } from './oauth-client-credentials.js'
|
|
5
|
-
|
|
6
|
-
export const oauthClientIdentificationSchema = z.union([
|
|
7
|
-
oauthClientCredentialsSchema,
|
|
8
|
-
// Must be last since it is less specific
|
|
9
|
-
z.object({ client_id: oauthClientIdSchema }),
|
|
10
|
-
])
|
|
11
|
-
|
|
12
|
-
export type OAuthClientIdentification = z.infer<
|
|
13
|
-
typeof oauthClientIdentificationSchema
|
|
14
|
-
>
|