@atcute/xrpc-server 0.1.11 → 1.0.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.
- package/README.md +81 -20
- package/dist/auth/jwt-creator.d.ts +4 -2
- package/dist/auth/jwt-creator.d.ts.map +1 -1
- package/dist/auth/jwt-creator.js +1 -1
- package/dist/auth/jwt-creator.js.map +1 -1
- package/dist/auth/jwt-verifier.d.ts +69 -8
- package/dist/auth/jwt-verifier.d.ts.map +1 -1
- package/dist/auth/jwt-verifier.js +131 -20
- package/dist/auth/jwt-verifier.js.map +1 -1
- package/dist/auth/jwt.d.ts +7 -2
- package/dist/auth/jwt.d.ts.map +1 -1
- package/dist/auth/jwt.js +14 -7
- package/dist/auth/jwt.js.map +1 -1
- package/dist/main/response.js.map +1 -1
- package/dist/main/router.d.ts +32 -4
- package/dist/main/router.d.ts.map +1 -1
- package/dist/main/router.js +66 -11
- package/dist/main/router.js.map +1 -1
- package/dist/main/types/operation.d.ts +8 -0
- package/dist/main/types/operation.d.ts.map +1 -1
- package/dist/main/types/websocket.d.ts +8 -0
- package/dist/main/types/websocket.d.ts.map +1 -1
- package/dist/main/utils/frames.d.ts +2 -2
- package/dist/main/utils/frames.d.ts.map +1 -1
- package/dist/main/utils/frames.js.map +1 -1
- package/dist/main/utils/middlewares.d.ts.map +1 -1
- package/dist/main/utils/middlewares.js.map +1 -1
- package/dist/main/utils/namespaced.d.ts.map +1 -1
- package/dist/main/utils/namespaced.js.map +1 -1
- package/dist/main/utils/request-input.d.ts +1 -1
- package/dist/main/utils/request-input.d.ts.map +1 -1
- package/dist/main/utils/request-input.js.map +1 -1
- package/dist/main/utils/request-params.d.ts +1 -1
- package/dist/main/utils/request-params.d.ts.map +1 -1
- package/dist/main/utils/request-params.js.map +1 -1
- package/dist/main/utils/response.d.ts +1 -1
- package/dist/main/utils/response.d.ts.map +1 -1
- package/dist/main/utils/response.js.map +1 -1
- package/dist/main/utils/websocket-mock.d.ts +8 -9
- package/dist/main/utils/websocket-mock.d.ts.map +1 -1
- package/dist/main/utils/websocket-mock.js +11 -6
- package/dist/main/utils/websocket-mock.js.map +1 -1
- package/dist/main/xrpc-error.d.ts +55 -15
- package/dist/main/xrpc-error.d.ts.map +1 -1
- package/dist/main/xrpc-error.js +66 -26
- package/dist/main/xrpc-error.js.map +1 -1
- package/dist/main/xrpc-handler.js.map +1 -1
- package/dist/middlewares/cors.d.ts.map +1 -1
- package/dist/middlewares/cors.js.map +1 -1
- package/lib/auth/jwt-creator.ts +5 -3
- package/lib/auth/jwt-verifier.ts +206 -26
- package/lib/auth/jwt.ts +21 -10
- package/lib/main/router.ts +98 -15
- package/lib/main/types/operation.ts +8 -0
- package/lib/main/types/websocket.ts +8 -0
- package/lib/main/utils/websocket-mock.ts +20 -14
- package/lib/main/xrpc-error.ts +107 -44
- package/package.json +20 -15
- package/dist/main/utils/event-emitter.d.ts +0 -37
- package/dist/main/utils/event-emitter.d.ts.map +0 -1
- package/dist/main/utils/event-emitter.js +0 -96
- package/dist/main/utils/event-emitter.js.map +0 -1
- package/lib/main/utils/event-emitter.ts +0 -116
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-mock.js","sourceRoot":"","sources":["../../../lib/main/utils/websocket-mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"websocket-mock.js","sourceRoot":"","sources":["../../../lib/main/utils/websocket-mock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* a single WWW-Authenticate challenge. exactly one of `params` or `token68` may
|
|
3
|
+
* be provided. a bare scheme (no params, no token) is valid and renders as just
|
|
4
|
+
* the scheme name.
|
|
5
|
+
*
|
|
6
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7235#section-4.1 | RFC 7235 §4.1}
|
|
7
|
+
*/
|
|
8
|
+
export interface WWWAuthenticateChallenge {
|
|
9
|
+
/** authentication scheme, e.g. `Bearer`, `DPoP`, `Basic`. */
|
|
10
|
+
scheme: string;
|
|
11
|
+
/** auth-param pairs. entries whose value is `undefined` are omitted. */
|
|
12
|
+
params?: Record<string, string | undefined>;
|
|
13
|
+
/**
|
|
14
|
+
* token68 value for schemes that carry one instead of auth-params (e.g.
|
|
15
|
+
* `Basic`). mutually exclusive with `params`.
|
|
16
|
+
*/
|
|
17
|
+
token68?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* formats one or more WWW-Authenticate challenges into a single header value.
|
|
21
|
+
*
|
|
22
|
+
* each challenge is emitted as `<scheme>` followed by its params or token68.
|
|
23
|
+
* multiple challenges are joined with `, `. auth-param values are quoted using
|
|
24
|
+
* `JSON.stringify` (RFC 7230 quoted-string semantics for ASCII content).
|
|
25
|
+
*
|
|
26
|
+
* @param challenges one challenge, or an ordered array of challenges
|
|
27
|
+
* @returns the formatted header value
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* formatWWWAuthenticate({ scheme: 'Bearer', params: { error: 'BadJwtSignature' } })
|
|
32
|
+
* // => `Bearer error="BadJwtSignature"`
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const formatWWWAuthenticate: (challenges: WWWAuthenticateChallenge | WWWAuthenticateChallenge[]) => string;
|
|
1
36
|
export interface XRPCErrorOptions {
|
|
2
37
|
status: number;
|
|
3
38
|
error: string;
|
|
4
|
-
|
|
39
|
+
message?: string;
|
|
5
40
|
headers?: HeadersInit;
|
|
6
41
|
}
|
|
7
42
|
export declare class XRPCError extends Error {
|
|
@@ -9,46 +44,51 @@ export declare class XRPCError extends Error {
|
|
|
9
44
|
readonly status: number;
|
|
10
45
|
/** error name */
|
|
11
46
|
readonly error: string;
|
|
12
|
-
/** error message */
|
|
13
|
-
readonly description?: string;
|
|
14
47
|
/** response headers */
|
|
15
48
|
readonly headers?: HeadersInit;
|
|
16
|
-
constructor({ status, error,
|
|
49
|
+
constructor({ status, error, message, headers }: XRPCErrorOptions);
|
|
17
50
|
toResponse(): Response;
|
|
18
51
|
}
|
|
19
52
|
export declare class InvalidRequestError extends XRPCError {
|
|
20
|
-
constructor({ status, error,
|
|
53
|
+
constructor({ status, error, message, headers }?: Partial<XRPCErrorOptions>);
|
|
54
|
+
}
|
|
55
|
+
export interface AuthRequiredErrorOptions extends Partial<XRPCErrorOptions> {
|
|
56
|
+
/**
|
|
57
|
+
* WWW-Authenticate challenge(s) to attach to the response. the formatted
|
|
58
|
+
* header is set on `headers` automatically, and `access-control-expose-headers`
|
|
59
|
+
* is appended so browsers can read it from CORS responses.
|
|
60
|
+
*/
|
|
61
|
+
wwwAuthenticate?: WWWAuthenticateChallenge | WWWAuthenticateChallenge[];
|
|
21
62
|
}
|
|
22
63
|
export declare class AuthRequiredError extends XRPCError {
|
|
23
|
-
constructor({ status, error,
|
|
64
|
+
constructor({ status, error, message, headers, wwwAuthenticate, }?: AuthRequiredErrorOptions);
|
|
24
65
|
}
|
|
25
66
|
export declare class ForbiddenError extends XRPCError {
|
|
26
|
-
constructor({ status, error,
|
|
67
|
+
constructor({ status, error, message, headers }?: Partial<XRPCErrorOptions>);
|
|
27
68
|
}
|
|
28
69
|
export declare class RateLimitExceededError extends XRPCError {
|
|
29
|
-
constructor({ status, error,
|
|
70
|
+
constructor({ status, error, message, headers, }?: Partial<XRPCErrorOptions>);
|
|
30
71
|
}
|
|
31
72
|
export declare class InternalServerError extends XRPCError {
|
|
32
|
-
constructor({ status, error,
|
|
73
|
+
constructor({ status, error, message, headers, }?: Partial<XRPCErrorOptions>);
|
|
33
74
|
}
|
|
34
75
|
export declare class UpstreamFailureError extends XRPCError {
|
|
35
|
-
constructor({ status, error,
|
|
76
|
+
constructor({ status, error, message, headers }?: Partial<XRPCErrorOptions>);
|
|
36
77
|
}
|
|
37
78
|
export declare class NotEnoughResourcesError extends XRPCError {
|
|
38
|
-
constructor({ status, error,
|
|
79
|
+
constructor({ status, error, message, headers, }?: Partial<XRPCErrorOptions>);
|
|
39
80
|
}
|
|
40
81
|
export declare class UpstreamTimeoutError extends XRPCError {
|
|
41
|
-
constructor({ status, error,
|
|
82
|
+
constructor({ status, error, message, headers }?: Partial<XRPCErrorOptions>);
|
|
42
83
|
}
|
|
43
84
|
export interface XRPCSubscriptionErrorOptions {
|
|
44
85
|
closeCode?: number;
|
|
45
86
|
error: string;
|
|
46
|
-
|
|
87
|
+
message?: string;
|
|
47
88
|
}
|
|
48
89
|
export declare class XRPCSubscriptionError extends Error {
|
|
49
90
|
readonly closeCode: number;
|
|
50
91
|
readonly error: string;
|
|
51
|
-
|
|
52
|
-
constructor({ closeCode, error, description }: XRPCSubscriptionErrorOptions);
|
|
92
|
+
constructor({ closeCode, error, message }: XRPCSubscriptionErrorOptions);
|
|
53
93
|
}
|
|
54
94
|
//# sourceMappingURL=xrpc-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xrpc-error.d.ts","sourceRoot":"","sources":["../../lib/main/xrpc-error.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,
|
|
1
|
+
{"version":3,"file":"xrpc-error.d.ts","sourceRoot":"","sources":["../../lib/main/xrpc-error.ts"],"names":[],"mappings":"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"}
|
package/dist/main/xrpc-error.js
CHANGED
|
@@ -1,72 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* formats one or more WWW-Authenticate challenges into a single header value.
|
|
3
|
+
*
|
|
4
|
+
* each challenge is emitted as `<scheme>` followed by its params or token68.
|
|
5
|
+
* multiple challenges are joined with `, `. auth-param values are quoted using
|
|
6
|
+
* `JSON.stringify` (RFC 7230 quoted-string semantics for ASCII content).
|
|
7
|
+
*
|
|
8
|
+
* @param challenges one challenge, or an ordered array of challenges
|
|
9
|
+
* @returns the formatted header value
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* formatWWWAuthenticate({ scheme: 'Bearer', params: { error: 'BadJwtSignature' } })
|
|
14
|
+
* // => `Bearer error="BadJwtSignature"`
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export const formatWWWAuthenticate = (challenges) => {
|
|
18
|
+
const list = Array.isArray(challenges) ? challenges : [challenges];
|
|
19
|
+
return list.map(formatChallenge).join(', ');
|
|
20
|
+
};
|
|
21
|
+
const formatChallenge = (challenge) => {
|
|
22
|
+
if (challenge.token68 !== undefined) {
|
|
23
|
+
return `${challenge.scheme} ${challenge.token68}`;
|
|
24
|
+
}
|
|
25
|
+
if (challenge.params !== undefined) {
|
|
26
|
+
const parts = [];
|
|
27
|
+
for (const name in challenge.params) {
|
|
28
|
+
const value = challenge.params[name];
|
|
29
|
+
if (value !== undefined) {
|
|
30
|
+
parts.push(`${name}=${JSON.stringify(value)}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (parts.length > 0) {
|
|
34
|
+
return `${challenge.scheme} ${parts.join(', ')}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return challenge.scheme;
|
|
38
|
+
};
|
|
1
39
|
export class XRPCError extends Error {
|
|
2
40
|
/** response status */
|
|
3
41
|
status;
|
|
4
42
|
/** error name */
|
|
5
43
|
error;
|
|
6
|
-
/** error message */
|
|
7
|
-
description;
|
|
8
44
|
/** response headers */
|
|
9
45
|
headers;
|
|
10
|
-
constructor({ status, error,
|
|
11
|
-
super(
|
|
46
|
+
constructor({ status, error, message, headers }) {
|
|
47
|
+
super(message);
|
|
12
48
|
this.status = status;
|
|
13
49
|
this.error = error;
|
|
14
|
-
this.description = description;
|
|
15
50
|
this.headers = headers;
|
|
16
51
|
}
|
|
17
52
|
toResponse() {
|
|
18
|
-
return Response.json({ error: this.error, message: this.
|
|
53
|
+
return Response.json({ error: this.error, message: this.message || undefined }, { status: this.status, headers: this.headers });
|
|
19
54
|
}
|
|
20
55
|
}
|
|
21
56
|
export class InvalidRequestError extends XRPCError {
|
|
22
|
-
constructor({ status = 400, error = 'InvalidRequest',
|
|
23
|
-
super({ status, error,
|
|
57
|
+
constructor({ status = 400, error = 'InvalidRequest', message, headers } = {}) {
|
|
58
|
+
super({ status, error, message, headers });
|
|
24
59
|
}
|
|
25
60
|
}
|
|
26
61
|
export class AuthRequiredError extends XRPCError {
|
|
27
|
-
constructor({ status = 401, error = 'AuthenticationRequired',
|
|
28
|
-
|
|
62
|
+
constructor({ status = 401, error = 'AuthenticationRequired', message, headers, wwwAuthenticate, } = {}) {
|
|
63
|
+
let mergedHeaders = headers;
|
|
64
|
+
if (wwwAuthenticate !== undefined) {
|
|
65
|
+
const target = new Headers(headers);
|
|
66
|
+
target.set('www-authenticate', formatWWWAuthenticate(wwwAuthenticate));
|
|
67
|
+
target.append('access-control-expose-headers', 'www-authenticate');
|
|
68
|
+
mergedHeaders = target;
|
|
69
|
+
}
|
|
70
|
+
super({ status, error, message, headers: mergedHeaders });
|
|
29
71
|
}
|
|
30
72
|
}
|
|
31
73
|
export class ForbiddenError extends XRPCError {
|
|
32
|
-
constructor({ status = 403, error = 'Forbidden',
|
|
33
|
-
super({ status, error,
|
|
74
|
+
constructor({ status = 403, error = 'Forbidden', message, headers } = {}) {
|
|
75
|
+
super({ status, error, message, headers });
|
|
34
76
|
}
|
|
35
77
|
}
|
|
36
78
|
export class RateLimitExceededError extends XRPCError {
|
|
37
|
-
constructor({ status = 429, error = 'RateLimitExceeded',
|
|
38
|
-
super({ status, error,
|
|
79
|
+
constructor({ status = 429, error = 'RateLimitExceeded', message, headers, } = {}) {
|
|
80
|
+
super({ status, error, message, headers });
|
|
39
81
|
}
|
|
40
82
|
}
|
|
41
83
|
export class InternalServerError extends XRPCError {
|
|
42
|
-
constructor({ status = 500, error = 'InternalServerError',
|
|
43
|
-
super({ status, error,
|
|
84
|
+
constructor({ status = 500, error = 'InternalServerError', message, headers, } = {}) {
|
|
85
|
+
super({ status, error, message, headers });
|
|
44
86
|
}
|
|
45
87
|
}
|
|
46
88
|
export class UpstreamFailureError extends XRPCError {
|
|
47
|
-
constructor({ status = 502, error = 'UpstreamFailure',
|
|
48
|
-
super({ status, error,
|
|
89
|
+
constructor({ status = 502, error = 'UpstreamFailure', message, headers } = {}) {
|
|
90
|
+
super({ status, error, message, headers });
|
|
49
91
|
}
|
|
50
92
|
}
|
|
51
93
|
export class NotEnoughResourcesError extends XRPCError {
|
|
52
|
-
constructor({ status = 503, error = 'NotEnoughResources',
|
|
53
|
-
super({ status, error,
|
|
94
|
+
constructor({ status = 503, error = 'NotEnoughResources', message, headers, } = {}) {
|
|
95
|
+
super({ status, error, message, headers });
|
|
54
96
|
}
|
|
55
97
|
}
|
|
56
98
|
export class UpstreamTimeoutError extends XRPCError {
|
|
57
|
-
constructor({ status = 504, error = 'UpstreamTimeout',
|
|
58
|
-
super({ status, error,
|
|
99
|
+
constructor({ status = 504, error = 'UpstreamTimeout', message, headers } = {}) {
|
|
100
|
+
super({ status, error, message, headers });
|
|
59
101
|
}
|
|
60
102
|
}
|
|
61
103
|
export class XRPCSubscriptionError extends Error {
|
|
62
104
|
closeCode;
|
|
63
105
|
error;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
super(`Subscription error: ${error}${description ? ` - ${description}` : ''}`);
|
|
106
|
+
constructor({ closeCode = 1008, error, message }) {
|
|
107
|
+
super(message);
|
|
67
108
|
this.closeCode = closeCode;
|
|
68
109
|
this.error = error;
|
|
69
|
-
this.description = description;
|
|
70
110
|
}
|
|
71
111
|
}
|
|
72
112
|
//# sourceMappingURL=xrpc-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xrpc-error.js","sourceRoot":"","sources":["../../lib/main/xrpc-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"xrpc-error.js","sourceRoot":"","sources":["../../lib/main/xrpc-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xrpc-handler.js","sourceRoot":"","sources":["../../lib/main/xrpc-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAC;AA6BnE,MAAM,UAAU,iBAAiB,CAAC,OAA2B
|
|
1
|
+
{"version":3,"file":"xrpc-handler.js","sourceRoot":"","sources":["../../lib/main/xrpc-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAC;AA6BnE,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC5D,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAE9B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,YAAY,EAAE,CAAC;YACnB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAoD,EAAE,CAAC,CAAC;YAC3F,MAAM;QACP,CAAC;QACD,KAAK,gBAAgB,EAAE,CAAC;YACvB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAA4D,EAAE,CAAC,CAAC;YACvG,MAAM;QACP,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../lib/middlewares/cors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAwBD,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../lib/middlewares/cors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC3B,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAwBD,eAAO,MAAM,IAAI,aAAa,WAAW,KAAQ,eAoEhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../lib/middlewares/cors.ts"],"names":[],"mappings":"AAaA,MAAM,uBAAuB,GAAG;IAC/B,YAAY;IACZ,kBAAkB;IAElB,iBAAiB;IACjB,kBAAkB;IAClB,qBAAqB;IACrB,iBAAiB;CACjB,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC/B,cAAc;IAEd,eAAe;IACf,MAAM;IAEN,yBAAyB;IACzB,eAAe;CACf,CAAC;AAEF,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,GAAgB,EAAE,EAAmB,EAAE
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../lib/middlewares/cors.ts"],"names":[],"mappings":"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"}
|
package/lib/auth/jwt-creator.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PrivateKey } from '@atcute/crypto';
|
|
2
2
|
import type { Did, Nsid } from '@atcute/lexicons';
|
|
3
|
+
import type { AtprotoAudience } from '@atcute/lexicons/syntax';
|
|
3
4
|
import { toBase64Url } from '@atcute/multibase';
|
|
4
5
|
import { encodeUtf8 } from '@atcute/uint8array';
|
|
5
6
|
|
|
@@ -10,8 +11,9 @@ import type { JwtHeader, JwtPayload } from './jwt.ts';
|
|
|
10
11
|
export interface CreateServiceJwtOptions {
|
|
11
12
|
keypair: PrivateKey;
|
|
12
13
|
issuer: Did;
|
|
13
|
-
audience:
|
|
14
|
-
|
|
14
|
+
/** audience is either a bare DID or a DID with service fragment (e.g. `did:web:x.example#svc`) */
|
|
15
|
+
audience: Did | AtprotoAudience;
|
|
16
|
+
lxm: Nsid;
|
|
15
17
|
issuedAt?: number;
|
|
16
18
|
expiresIn?: number;
|
|
17
19
|
}
|
|
@@ -33,7 +35,7 @@ export const createServiceJwt = async (options: CreateServiceJwtOptions): Promis
|
|
|
33
35
|
iat: issuedAt,
|
|
34
36
|
iss: options.issuer,
|
|
35
37
|
jti: nanoid(24),
|
|
36
|
-
lxm: options.lxm
|
|
38
|
+
lxm: options.lxm,
|
|
37
39
|
};
|
|
38
40
|
|
|
39
41
|
const headerB64 = encodeJwtPortion(header);
|