@atproto/oauth-provider 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +46 -0
- package/dist/account/account.d.ts +6 -2
- package/dist/account/account.d.ts.map +1 -1
- package/dist/assets/app/bundle-manifest.json +3 -3
- package/dist/assets/app/main.css +1 -1
- package/dist/assets/app/main.js +3 -3
- package/dist/assets/app/main.js.map +1 -1
- package/dist/assets/assets-middleware.d.ts +2 -1
- package/dist/assets/assets-middleware.d.ts.map +1 -1
- package/dist/assets/assets-middleware.js +7 -0
- package/dist/assets/assets-middleware.js.map +1 -1
- package/dist/client/client-manager.d.ts +4 -3
- package/dist/client/client-manager.d.ts.map +1 -1
- package/dist/client/client-manager.js +91 -77
- package/dist/client/client-manager.js.map +1 -1
- package/dist/client/client.d.ts +2 -3
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +6 -12
- package/dist/client/client.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/device/device-manager.d.ts +1 -1
- package/dist/device/device-manager.d.ts.map +1 -1
- package/dist/device/device-manager.js +2 -2
- package/dist/device/device-manager.js.map +1 -1
- package/dist/dpop/dpop-manager.d.ts +0 -1
- package/dist/dpop/dpop-manager.d.ts.map +1 -1
- package/dist/dpop/dpop-manager.js +1 -4
- package/dist/dpop/dpop-manager.js.map +1 -1
- package/dist/errors/invalid-authorization-details-error.d.ts +4 -3
- package/dist/errors/invalid-authorization-details-error.d.ts.map +1 -1
- package/dist/errors/invalid-authorization-details-error.js +4 -4
- package/dist/errors/invalid-authorization-details-error.js.map +1 -1
- package/dist/lib/http/parser.d.ts +13 -7
- package/dist/lib/http/parser.d.ts.map +1 -1
- package/dist/lib/http/parser.js +29 -9
- package/dist/lib/http/parser.js.map +1 -1
- package/dist/lib/http/request.d.ts +8 -5
- package/dist/lib/http/request.d.ts.map +1 -1
- package/dist/lib/http/request.js +24 -12
- package/dist/lib/http/request.js.map +1 -1
- package/dist/lib/http/stream.d.ts.map +1 -1
- package/dist/lib/http/stream.js +3 -2
- package/dist/lib/http/stream.js.map +1 -1
- package/dist/metadata/build-metadata.d.ts +0 -1
- package/dist/metadata/build-metadata.d.ts.map +1 -1
- package/dist/metadata/build-metadata.js +9 -49
- package/dist/metadata/build-metadata.js.map +1 -1
- package/dist/oauth-hooks.d.ts +3 -10
- package/dist/oauth-hooks.d.ts.map +1 -1
- package/dist/oauth-provider.d.ts +10 -15
- package/dist/oauth-provider.d.ts.map +1 -1
- package/dist/oauth-provider.js +176 -114
- package/dist/oauth-provider.js.map +1 -1
- package/dist/oauth-verifier.d.ts +1 -2
- package/dist/oauth-verifier.d.ts.map +1 -1
- package/dist/oauth-verifier.js.map +1 -1
- package/dist/output/build-authorize-data.d.ts +6 -0
- package/dist/output/build-authorize-data.d.ts.map +1 -1
- package/dist/output/build-authorize-data.js +1 -0
- package/dist/output/build-authorize-data.js.map +1 -1
- package/dist/replay/replay-manager.d.ts +1 -0
- package/dist/replay/replay-manager.d.ts.map +1 -1
- package/dist/replay/replay-manager.js +3 -0
- package/dist/replay/replay-manager.js.map +1 -1
- package/dist/replay/replay-store.d.ts +1 -1
- package/dist/request/request-info.d.ts +2 -0
- package/dist/request/request-info.d.ts.map +1 -1
- package/dist/request/request-manager.d.ts +3 -9
- package/dist/request/request-manager.d.ts.map +1 -1
- package/dist/request/request-manager.js +52 -77
- package/dist/request/request-manager.js.map +1 -1
- package/dist/request/types.d.ts +10 -10
- package/dist/signer/signed-token-payload.d.ts +88 -88
- package/dist/signer/signer.d.ts +24 -31
- package/dist/signer/signer.d.ts.map +1 -1
- package/dist/signer/signer.js +0 -40
- package/dist/signer/signer.js.map +1 -1
- package/dist/token/token-claims.d.ts +84 -84
- package/dist/token/token-manager.d.ts +1 -2
- package/dist/token/token-manager.d.ts.map +1 -1
- package/dist/token/token-manager.js +10 -37
- package/dist/token/token-manager.js.map +1 -1
- package/dist/token/types.d.ts +10 -10
- package/package.json +3 -3
- package/src/account/account.ts +11 -7
- package/src/assets/app/backend-data.ts +9 -2
- package/src/assets/app/components/accept-form.tsx +65 -51
- package/src/assets/app/components/client-name.tsx +24 -16
- package/src/assets/app/components/url-viewer.tsx +3 -3
- package/src/assets/app/views/accept-view.tsx +7 -4
- package/src/assets/app/views/authorize-view.tsx +2 -1
- package/src/assets/assets-middleware.ts +14 -2
- package/src/client/client-manager.ts +124 -120
- package/src/client/client.ts +5 -17
- package/src/constants.ts +3 -0
- package/src/device/device-manager.ts +7 -1
- package/src/dpop/dpop-manager.ts +1 -6
- package/src/errors/invalid-authorization-details-error.ts +9 -4
- package/src/lib/http/parser.ts +37 -13
- package/src/lib/http/request.ts +61 -15
- package/src/lib/http/stream.ts +5 -2
- package/src/metadata/build-metadata.ts +9 -56
- package/src/oauth-hooks.ts +3 -13
- package/src/oauth-provider.ts +187 -177
- package/src/oauth-verifier.ts +1 -2
- package/src/output/build-authorize-data.ts +8 -0
- package/src/replay/replay-manager.ts +9 -0
- package/src/replay/replay-store.ts +1 -1
- package/src/request/request-info.ts +2 -0
- package/src/request/request-manager.ts +81 -107
- package/src/signer/signer.ts +0 -63
- package/src/token/token-manager.ts +8 -41
- package/dist/oidc/claims.d.ts +0 -16
- package/dist/oidc/claims.d.ts.map +0 -1
- package/dist/oidc/claims.js +0 -29
- package/dist/oidc/claims.js.map +0 -1
- package/dist/oidc/userinfo.d.ts +0 -7
- package/dist/oidc/userinfo.d.ts.map +0 -1
- package/dist/oidc/userinfo.js +0 -3
- package/dist/oidc/userinfo.js.map +0 -1
- package/dist/parameters/claims-requested.d.ts +0 -3
- package/dist/parameters/claims-requested.d.ts.map +0 -1
- package/dist/parameters/claims-requested.js +0 -77
- package/dist/parameters/claims-requested.js.map +0 -1
- package/dist/parameters/oidc-payload.d.ts +0 -31
- package/dist/parameters/oidc-payload.d.ts.map +0 -1
- package/dist/parameters/oidc-payload.js +0 -25
- package/dist/parameters/oidc-payload.js.map +0 -1
- package/src/assets/app/components/client-identifier.tsx +0 -31
- package/src/oidc/claims.ts +0 -35
- package/src/oidc/userinfo.ts +0 -11
- package/src/parameters/claims-requested.ts +0 -106
- package/src/parameters/oidc-payload.ts +0 -28
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"device-manager.js","sourceRoot":"","sources":["../../src/device/device-manager.ts"],"names":[],"mappings":";;;AAEA,mCAAqD;AAErD,6BAAuB;AAEvB,mDAAqE;AAErE,kDAA0D;AAE1D,2DAA0D;AAC1D,iDAA2E;AAE3E,mDAAoE;AAEvD,QAAA,eAAe,GAAG;IAC7B;;;;;OAKG;IACH,UAAU,EAAE,IAAI;IAEhB;;;;OAIG;IACH,YAAY,EAAE,CAAC,GAAG,IAAI;IAEtB;;OAEG;IACH,MAAM,EAAE;QACN,IAAI,EAAE,SAAgC;QAEtC;;;;WAIG;QACH,MAAM,EAAE,WAAW;QAEnB;;;;WAIG;QACH,OAAO,EAAE,YAAY;QAErB;;;;WAIG;QACH,IAAI,EAAE,kBAAkB;QAExB;;;;;;WAMG;QACH,GAAG,EAAiB,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEjD;;;;WAIG;QACH,MAAM,EAAE,IAAI;QAEZ;;;;WAIG;QACH,QAAQ,EAAE,KAAyB;KACpC;CACF,CAAA;AAID,MAAM,iBAAiB,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,6BAAc,EAAE,+BAAe,CAAC,CAAC,CAAA;AAGpE;;;;GAIG;AACH,MAAa,aAAa;IAEL;IACA;IAFnB,YACmB,KAAkB,EAClB,UAAsC,uBAAe;QADrD,UAAK,GAAL,KAAK,CAAa;QAClB,YAAO,GAAP,OAAO,CAA8C;IACrE,CAAC;IAEG,KAAK,CAAC,IAAI,CACf,GAAoB,EACpB,GAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,OAAO,
|
1
|
+
{"version":3,"file":"device-manager.js","sourceRoot":"","sources":["../../src/device/device-manager.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dpop-manager.d.ts","sourceRoot":"","sources":["../../src/dpop/dpop-manager.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAI3D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAA;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,GAAG,cAAc,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qBAAa,WAAW;IACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;gBAE5B,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAE,kBAAuB;IAK7D,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B;;OAEG;IACG,UAAU,CACd,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,EAAE,cAAc;IAC3B,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,WAAW;IAC9B,WAAW,CAAC,EAAE,MAAM;;;iBAWb,MAAM;iBACN,MAAM
|
1
|
+
{"version":3,"file":"dpop-manager.d.ts","sourceRoot":"","sources":["../../src/dpop/dpop-manager.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAI3D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAA;AACzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,KAAK,GAAG,cAAc,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qBAAa,WAAW;IACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;gBAE5B,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAE,kBAAuB;IAK7D,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B;;OAEG;IACG,UAAU,CACd,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,EAAE,cAAc;IAC3B,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,WAAW;IAC9B,WAAW,CAAC,EAAE,MAAM;;;iBAWb,MAAM;iBACN,MAAM;;;;CAgEhB"}
|
@@ -34,7 +34,7 @@ class DpopManager {
|
|
34
34
|
typ: 'dpop+jwt',
|
35
35
|
maxTokenAge: 10,
|
36
36
|
clockTolerance: constants_js_1.DPOP_NONCE_MAX_AGE / 1e3,
|
37
|
-
requiredClaims: ['iat', '
|
37
|
+
requiredClaims: ['iat', 'jti'],
|
38
38
|
}).catch((err) => {
|
39
39
|
const message = err instanceof JOSEError
|
40
40
|
? `Invalid DPoP proof (${err.message})`
|
@@ -44,9 +44,6 @@ class DpopManager {
|
|
44
44
|
if (!payload.jti || typeof payload.jti !== 'string') {
|
45
45
|
throw new invalid_dpop_proof_error_js_1.InvalidDpopProofError('Invalid or missing jti property');
|
46
46
|
}
|
47
|
-
if (payload.exp - payload.iat > constants_js_1.DPOP_NONCE_MAX_AGE / 3 / 1e3) {
|
48
|
-
throw new invalid_dpop_proof_error_js_1.InvalidDpopProofError('DPoP proof validity too long');
|
49
|
-
}
|
50
47
|
// Note rfc9110#section-9.1 states that the method name is case-sensitive
|
51
48
|
if (!htm || htm !== payload['htm']) {
|
52
49
|
throw new invalid_dpop_proof_error_js_1.InvalidDpopProofError('DPoP htm mismatch');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dpop-manager.js","sourceRoot":"","sources":["../../src/dpop/dpop-manager.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,+BAA6E;AAE7E,kDAAoD;AACpD,uFAA6E;AAC7E,+EAAqE;AACrE,mDAA2D;AAIlD,0FAJA,yBAAS,OAIA;AAFlB,MAAM,EAAE,SAAS,EAAE,GAAG,aAAM,CAAA;AAc5B,MAAa,WAAW;IACH,SAAS,CAAY;IAExC,YAAY,EAAE,UAAU,EAAE,QAAQ,KAAyB,EAAE;QAC3D,IAAI,CAAC,SAAS;YACZ,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC3E,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,KAAc,EACd,GAAW,EAAE,cAAc;IAC3B,GAAiB,EAAE,WAAW;IAC9B,WAAoB;QAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,mDAAqB,CAAC,qBAAqB,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,gBAAS,
|
1
|
+
{"version":3,"file":"dpop-manager.js","sourceRoot":"","sources":["../../src/dpop/dpop-manager.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { OAuthAuthenticationRequestParameters } from '@atproto/oauth-types';
|
2
|
+
import { AccessDeniedError } from './access-denied-error.js';
|
2
3
|
/**
|
3
4
|
* @see
|
4
5
|
* {@link https://datatracker.ietf.org/doc/html/rfc9396#section-14.6 | RFC 9396 - OAuth Dynamic Client Registration Metadata Registration Error}
|
@@ -14,7 +15,7 @@ import { OAuthError } from './oauth-error.js';
|
|
14
15
|
* - contains fields with invalid values for the authorization details type, or
|
15
16
|
* - is missing required fields for the authorization details type.
|
16
17
|
*/
|
17
|
-
export declare class InvalidAuthorizationDetailsError extends
|
18
|
-
constructor(error_description: string, cause?: unknown);
|
18
|
+
export declare class InvalidAuthorizationDetailsError extends AccessDeniedError {
|
19
|
+
constructor(parameters: OAuthAuthenticationRequestParameters, error_description: string, cause?: unknown);
|
19
20
|
}
|
20
21
|
//# sourceMappingURL=invalid-authorization-details-error.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"invalid-authorization-details-error.d.ts","sourceRoot":"","sources":["../../src/errors/invalid-authorization-details-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"invalid-authorization-details-error.d.ts","sourceRoot":"","sources":["../../src/errors/invalid-authorization-details-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gCAAiC,SAAQ,iBAAiB;gBAEnE,UAAU,EAAE,oCAAoC,EAChD,iBAAiB,EAAE,MAAM,EACzB,KAAK,CAAC,EAAE,OAAO;CAIlB"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.InvalidAuthorizationDetailsError = void 0;
|
4
|
-
const
|
4
|
+
const access_denied_error_js_1 = require("./access-denied-error.js");
|
5
5
|
/**
|
6
6
|
* @see
|
7
7
|
* {@link https://datatracker.ietf.org/doc/html/rfc9396#section-14.6 | RFC 9396 - OAuth Dynamic Client Registration Metadata Registration Error}
|
@@ -17,9 +17,9 @@ const oauth_error_js_1 = require("./oauth-error.js");
|
|
17
17
|
* - contains fields with invalid values for the authorization details type, or
|
18
18
|
* - is missing required fields for the authorization details type.
|
19
19
|
*/
|
20
|
-
class InvalidAuthorizationDetailsError extends
|
21
|
-
constructor(error_description, cause) {
|
22
|
-
super(
|
20
|
+
class InvalidAuthorizationDetailsError extends access_denied_error_js_1.AccessDeniedError {
|
21
|
+
constructor(parameters, error_description, cause) {
|
22
|
+
super(parameters, error_description, 'invalid_authorization_details', cause);
|
23
23
|
}
|
24
24
|
}
|
25
25
|
exports.InvalidAuthorizationDetailsError = InvalidAuthorizationDetailsError;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"invalid-authorization-details-error.js","sourceRoot":"","sources":["../../src/errors/invalid-authorization-details-error.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"invalid-authorization-details-error.js","sourceRoot":"","sources":["../../src/errors/invalid-authorization-details-error.ts"],"names":[],"mappings":";;;AACA,qEAA4D;AAE5D;;;;;;;;;;;;;;GAcG;AACH,MAAa,gCAAiC,SAAQ,0CAAiB;IACrE,YACE,UAAgD,EAChD,iBAAyB,EACzB,KAAe;QAEf,KAAK,CAAC,UAAU,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,KAAK,CAAC,CAAA;IAC9E,CAAC;CACF;AARD,4EAQC"}
|
@@ -3,10 +3,16 @@ export type JsonScalar = string | number | boolean | null;
|
|
3
3
|
export type Json = JsonScalar | Json[] | {
|
4
4
|
[_ in string]?: Json;
|
5
5
|
};
|
6
|
+
export declare const parseContentType: (type: string) => ContentType;
|
7
|
+
export type ContentType = {
|
8
|
+
mime: string;
|
9
|
+
charset?: string;
|
10
|
+
boundary?: string;
|
11
|
+
};
|
6
12
|
export type Parser<T extends string = string, R = unknown> = {
|
7
13
|
readonly name: string;
|
8
|
-
readonly test: (
|
9
|
-
readonly parse: (buffer: Buffer) => R;
|
14
|
+
readonly test: (mime: string) => mime is T;
|
15
|
+
readonly parse: (buffer: Buffer, type: ContentType) => R;
|
10
16
|
};
|
11
17
|
export type ParserName<P extends Parser> = P extends {
|
12
18
|
readonly name: infer N;
|
@@ -16,15 +22,15 @@ export type ParserResult<P extends Parser> = ReturnType<P['parse']>;
|
|
16
22
|
export type ParserForType<P extends Parser, T> = P extends Parser<infer U> ? (U extends T ? P : never) : never;
|
17
23
|
export declare const parsers: [{
|
18
24
|
readonly name: "json";
|
19
|
-
readonly test: (
|
20
|
-
readonly parse: (buffer: Buffer) => Json;
|
25
|
+
readonly test: (mime: string) => mime is "application/json" | `application/${string}+json`;
|
26
|
+
readonly parse: (buffer: Buffer, { charset }: ContentType) => Json;
|
21
27
|
}, {
|
22
28
|
readonly name: "urlencoded";
|
23
|
-
readonly test: (
|
24
|
-
readonly parse: (buffer: Buffer) => Partial<Record<string, string>>;
|
29
|
+
readonly test: (mime: string) => mime is "application/x-www-form-urlencoded";
|
30
|
+
readonly parse: (buffer: Buffer, { charset }: ContentType) => Partial<Record<string, string>>;
|
25
31
|
}, {
|
26
32
|
readonly name: "bytes";
|
27
|
-
readonly test: (
|
33
|
+
readonly test: (mime: string) => mime is "application/octet-stream";
|
28
34
|
readonly parse: (buffer: Buffer) => Buffer;
|
29
35
|
}];
|
30
36
|
export type KnownParser = (typeof parsers)[number];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/http/parser.ts"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/http/parser.ts"],"names":[],"mappings":";AAIA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AACzD,MAAM,MAAM,IAAI,GAAG,UAAU,GAAG,IAAI,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI;CAAE,CAAA;AAEjE,eAAO,MAAM,gBAAgB,SAAU,MAAM,KAAG,WAW/C,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,CAAA;IAC1C,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,CAAC,CAAA;CACzD,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GAC3E,CAAC,GACD,KAAK,CAAA;AACT,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAChF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAEnE,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAC3C,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAA;AAE/D,eAAO,MAAM,OAAO;;;kEAMc,IAAI;;;;kEAgBJ,QAAQ,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC;;;;wCAiB5C,MAAM;EAEE,CAAA;AAE7B,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAElD,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAC5C,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA"}
|
package/dist/lib/http/parser.js
CHANGED
@@ -3,16 +3,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.parsers = void 0;
|
6
|
+
exports.parsers = exports.parseContentType = void 0;
|
7
7
|
const bourne_1 = require("@hapi/bourne");
|
8
|
+
const content_1 = require("@hapi/content");
|
8
9
|
const http_errors_1 = __importDefault(require("http-errors"));
|
10
|
+
const parseContentType = (type) => {
|
11
|
+
try {
|
12
|
+
return (0, content_1.type)(type);
|
13
|
+
}
|
14
|
+
catch (err) {
|
15
|
+
// De-boomify the error
|
16
|
+
if (err?.['isBoom']) {
|
17
|
+
throw (0, http_errors_1.default)(err['output']['statusCode'], err['message']);
|
18
|
+
}
|
19
|
+
throw err;
|
20
|
+
}
|
21
|
+
};
|
22
|
+
exports.parseContentType = parseContentType;
|
9
23
|
exports.parsers = [
|
10
24
|
{
|
11
25
|
name: 'json',
|
12
|
-
test: (
|
13
|
-
return /^application\/(?:.+\+)?json$/.test(
|
26
|
+
test: (mime) => {
|
27
|
+
return /^application\/(?:.+\+)?json$/.test(mime);
|
14
28
|
},
|
15
|
-
parse: (buffer) => {
|
29
|
+
parse: (buffer, { charset }) => {
|
30
|
+
if (charset != null && !/^utf-?8$/i.test(charset)) {
|
31
|
+
throw (0, http_errors_1.default)(415, 'Unsupported charset');
|
32
|
+
}
|
16
33
|
try {
|
17
34
|
return (0, bourne_1.parse)(buffer.toString());
|
18
35
|
}
|
@@ -23,10 +40,13 @@ exports.parsers = [
|
|
23
40
|
},
|
24
41
|
{
|
25
42
|
name: 'urlencoded',
|
26
|
-
test: (
|
27
|
-
return
|
43
|
+
test: (mime) => {
|
44
|
+
return mime === 'application/x-www-form-urlencoded';
|
28
45
|
},
|
29
|
-
parse: (buffer) => {
|
46
|
+
parse: (buffer, { charset }) => {
|
47
|
+
if (charset != null && !/^utf-?8$/i.test(charset)) {
|
48
|
+
throw (0, http_errors_1.default)(415, 'Unsupported charset');
|
49
|
+
}
|
30
50
|
try {
|
31
51
|
if (!buffer.length)
|
32
52
|
return {};
|
@@ -39,8 +59,8 @@ exports.parsers = [
|
|
39
59
|
},
|
40
60
|
{
|
41
61
|
name: 'bytes',
|
42
|
-
test: (
|
43
|
-
return
|
62
|
+
test: (mime) => {
|
63
|
+
return mime === 'application/octet-stream';
|
44
64
|
},
|
45
65
|
parse: (buffer) => buffer,
|
46
66
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/lib/http/parser.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAiD;AACjD,8DAAyC;
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/lib/http/parser.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAiD;AACjD,2CAAuD;AACvD,8DAAyC;AAKlC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAe,EAAE;IAC5D,IAAI,CAAC;QACH,OAAO,IAAA,cAAe,EAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uBAAuB;QACvB,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpB,MAAM,IAAA,qBAAe,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC,CAAA;AAXY,QAAA,gBAAgB,oBAW5B;AAuBY,QAAA,OAAO,GAAG;IACrB;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,IAAI,EAA6D,EAAE;YACxE,OAAO,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClD,CAAC;QACD,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAQ,EAAE;YACnC,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAA,qBAAe,EAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;YACnD,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,IAAA,cAAS,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAA,qBAAe,EAAC,GAAG,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,CAAC,IAAI,EAA+C,EAAE;YAC1D,OAAO,IAAI,KAAK,mCAAmC,CAAA;QACrD,CAAC;QACD,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAmC,EAAE;YAC9D,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAA,qBAAe,EAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;YACnD,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,MAAM;oBAAE,OAAO,EAAE,CAAA;gBAC7B,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YACnE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAA,qBAAe,EAAC,GAAG,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,CAAC,IAAI,EAAsC,EAAE;YACjD,OAAO,IAAI,KAAK,0BAA0B,CAAA;QAC5C,CAAC;QACD,KAAK,EAAE,CAAC,MAAM,EAAU,EAAE,CAAC,MAAM;KAClC;CAC0B,CAAA"}
|
@@ -6,25 +6,28 @@ import { IncomingMessage, ServerResponse } from './types.js';
|
|
6
6
|
import { UrlReference } from './url.js';
|
7
7
|
export declare function parseRequestPayload<A extends readonly KnownNames[] = readonly KnownNames[]>(req: IncomingMessage, allow?: A): Promise<ReturnType<(Extract<{
|
8
8
|
readonly name: "json";
|
9
|
-
readonly test: (
|
10
|
-
readonly parse: (buffer: Buffer) => import("./parser.js").Json;
|
9
|
+
readonly test: (mime: string) => mime is "application/json" | `application/${string}+json`;
|
10
|
+
readonly parse: (buffer: Buffer, { charset }: import("./parser.js").ContentType) => import("./parser.js").Json;
|
11
11
|
}, {
|
12
12
|
name: A[number];
|
13
13
|
}> | Extract<{
|
14
14
|
readonly name: "urlencoded";
|
15
|
-
readonly test: (
|
16
|
-
readonly parse: (buffer: Buffer) => Partial<Record<string, string>>;
|
15
|
+
readonly test: (mime: string) => mime is "application/x-www-form-urlencoded";
|
16
|
+
readonly parse: (buffer: Buffer, { charset }: import("./parser.js").ContentType) => Partial<Record<string, string>>;
|
17
17
|
}, {
|
18
18
|
name: A[number];
|
19
19
|
}> | Extract<{
|
20
20
|
readonly name: "bytes";
|
21
|
-
readonly test: (
|
21
|
+
readonly test: (mime: string) => mime is "application/octet-stream";
|
22
22
|
readonly parse: (buffer: Buffer) => Buffer;
|
23
23
|
}, {
|
24
24
|
name: A[number];
|
25
25
|
}>)["parse"]>>;
|
26
26
|
export declare function validateRequestPayload<S extends z.ZodTypeAny>(req: IncomingMessage, schema: S, allow?: readonly KnownNames[]): Promise<z.infer<S>>;
|
27
|
+
export declare function validateHeaderValue(req: IncomingMessage, name: keyof IncomingMessage['headers'], allowedValues: readonly (string | null)[]): void;
|
27
28
|
export declare function validateFetchMode(req: IncomingMessage, res: ServerResponse, expectedMode: readonly (null | 'navigate' | 'same-origin' | 'no-cors' | 'cors')[]): void;
|
29
|
+
export declare function validateFetchDest(req: IncomingMessage, res: ServerResponse, expectedDest: readonly (null | 'document' | 'embed' | 'font' | 'image' | 'manifest' | 'media' | 'object' | 'report' | 'script' | 'serviceworker' | 'sharedworker' | 'style' | 'worker' | 'xslt')[]): void;
|
30
|
+
export declare function validateFetchSite(req: IncomingMessage, res: ServerResponse, expectedSite: readonly (null | 'same-origin' | 'same-site' | 'cross-site' | 'none')[]): void;
|
28
31
|
export declare function validateReferer(req: IncomingMessage, res: ServerResponse, reference: UrlReference, allowNull?: boolean): void;
|
29
32
|
export declare function setupCsrfToken(req: IncomingMessage, res: ServerResponse, cookieName?: string): Promise<void>;
|
30
33
|
export declare function validateSameOrigin(req: IncomingMessage, res: ServerResponse, origin: string, allowNull?: boolean): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/lib/http/request.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAY,MAAM,UAAU,CAAA;AAEjD,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,SAAS,UAAU,EAAE,GAAG,SAAS,UAAU,EAAE,EACvD,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;eAMhC;AAED,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACjE,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,CAAC,EACT,KAAK,GAAE,SAAS,UAAU,EAA2B,GACpD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAGrB;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,SAAS,CACnB,IAAI,GACJ,UAAU,GACV,aAAa,GACb,SAAS,GACT,MAAM,CACT,EAAE,
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/lib/http/request.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAY,MAAM,UAAU,CAAA;AAEjD,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,SAAS,UAAU,EAAE,GAAG,SAAS,UAAU,EAAE,EACvD,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;eAMhC;AAED,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACjE,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,CAAC,EACT,KAAK,GAAE,SAAS,UAAU,EAA2B,GACpD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAGrB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,MAAM,eAAe,CAAC,SAAS,CAAC,EACtC,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,QAgB1C;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,SAAS,CACnB,IAAI,GACJ,UAAU,GACV,aAAa,GACb,SAAS,GACT,MAAM,CACT,EAAE,QAGJ;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,SAAS,CACnB,IAAI,GACJ,UAAU,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,cAAc,GACd,OAAO,GACP,QAAQ,GACR,MAAM,CACT,EAAE,QAGJ;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,SAAS,CACnB,IAAI,GACJ,aAAa,GACb,WAAW,GACX,YAAY,GACZ,MAAM,CACT,EAAE,QAGJ;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,YAAY,EACvB,SAAS,UAAQ,QAOlB;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,UAAU,SAAe,iBAa1B;AAGD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,UAAO,QAMjB;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAe,EACzB,WAAW,UAAQ,QAwBpB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,eAAe,GACnB,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,CAM3C"}
|
package/dist/lib/http/request.js
CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.parseHttpCookies = exports.validateCsrfToken = exports.validateSameOrigin = exports.setupCsrfToken = exports.validateReferer = exports.validateFetchMode = exports.validateRequestPayload = exports.parseRequestPayload = void 0;
|
6
|
+
exports.parseHttpCookies = exports.validateCsrfToken = exports.validateSameOrigin = exports.setupCsrfToken = exports.validateReferer = exports.validateFetchSite = exports.validateFetchDest = exports.validateFetchMode = exports.validateHeaderValue = exports.validateRequestPayload = exports.parseRequestPayload = void 0;
|
7
7
|
const cookie_1 = require("cookie");
|
8
8
|
const crypto_1 = require("crypto");
|
9
9
|
const http_errors_1 = __importDefault(require("http-errors"));
|
@@ -19,23 +19,35 @@ async function validateRequestPayload(req, schema, allow = ['json', 'urlencoded'
|
|
19
19
|
return schema.parseAsync(payload, { path: ['body'] });
|
20
20
|
}
|
21
21
|
exports.validateRequestPayload = validateRequestPayload;
|
22
|
-
function
|
23
|
-
const
|
24
|
-
if (Array.isArray(
|
25
|
-
throw (0, http_errors_1.default)(400, `Invalid
|
22
|
+
function validateHeaderValue(req, name, allowedValues) {
|
23
|
+
const value = req.headers[name] ?? null;
|
24
|
+
if (Array.isArray(value)) {
|
25
|
+
throw (0, http_errors_1.default)(400, `Invalid ${name} header`);
|
26
26
|
}
|
27
|
-
if (!
|
28
|
-
throw (0, http_errors_1.default)(
|
29
|
-
? `Forbidden
|
30
|
-
: `Missing
|
27
|
+
if (!allowedValues.includes(value)) {
|
28
|
+
throw (0, http_errors_1.default)(400, value
|
29
|
+
? `Forbidden ${name} header "${value}" (expected ${allowedValues})`
|
30
|
+
: `Missing ${name} header`);
|
31
31
|
}
|
32
32
|
}
|
33
|
+
exports.validateHeaderValue = validateHeaderValue;
|
34
|
+
function validateFetchMode(req, res, expectedMode) {
|
35
|
+
validateHeaderValue(req, 'sec-fetch-mode', expectedMode);
|
36
|
+
}
|
33
37
|
exports.validateFetchMode = validateFetchMode;
|
38
|
+
function validateFetchDest(req, res, expectedDest) {
|
39
|
+
validateHeaderValue(req, 'sec-fetch-dest', expectedDest);
|
40
|
+
}
|
41
|
+
exports.validateFetchDest = validateFetchDest;
|
42
|
+
function validateFetchSite(req, res, expectedSite) {
|
43
|
+
validateHeaderValue(req, 'sec-fetch-site', expectedSite);
|
44
|
+
}
|
45
|
+
exports.validateFetchSite = validateFetchSite;
|
34
46
|
function validateReferer(req, res, reference, allowNull = false) {
|
35
47
|
const referer = req.headers['referer'];
|
36
48
|
const refererUrl = referer ? new URL(referer) : null;
|
37
49
|
if (refererUrl ? !(0, url_js_1.urlMatch)(refererUrl, reference) : !allowNull) {
|
38
|
-
throw (0, http_errors_1.default)(
|
50
|
+
throw (0, http_errors_1.default)(400, `Invalid referer ${referer}`);
|
39
51
|
}
|
40
52
|
}
|
41
53
|
exports.validateReferer = validateReferer;
|
@@ -53,7 +65,7 @@ exports.setupCsrfToken = setupCsrfToken;
|
|
53
65
|
function validateSameOrigin(req, res, origin, allowNull = true) {
|
54
66
|
const reqOrigin = req.headers['origin'];
|
55
67
|
if (reqOrigin ? reqOrigin !== origin : !allowNull) {
|
56
|
-
throw (0, http_errors_1.default)(
|
68
|
+
throw (0, http_errors_1.default)(400, `Invalid origin ${reqOrigin}`);
|
57
69
|
}
|
58
70
|
}
|
59
71
|
exports.validateSameOrigin = validateSameOrigin;
|
@@ -63,7 +75,7 @@ function validateCsrfToken(req, res, csrfToken, cookieName = 'csrf_token', clear
|
|
63
75
|
!cookies ||
|
64
76
|
!cookieName ||
|
65
77
|
cookies[cookieName] !== csrfToken) {
|
66
|
-
throw (0, http_errors_1.default)(
|
78
|
+
throw (0, http_errors_1.default)(400, `Invalid CSRF token`);
|
67
79
|
}
|
68
80
|
if (clearCookie) {
|
69
81
|
(0, response_js_1.appendHeader)(res, 'Set-Cookie', (0, cookie_1.serialize)(cookieName, '', {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/lib/http/request.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA2E;AAC3E,mCAAoC;AACpC,8DAAyC;AAIzC,+CAA4C;AAC5C,2CAAuD;AAEvD,qCAAiD;AAEjD,SAAgB,mBAAmB,CAEjC,GAAoB,EAAE,KAAS;IAC/B,OAAO,IAAA,uBAAW,EAChB,IAAA,wBAAY,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAClD,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAC3B,KAAK,CACN,CAAA;AACH,CAAC;AARD,kDAQC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,GAAoB,EACpB,MAAS,EACT,QAA+B,CAAC,MAAM,EAAE,YAAY,CAAC;IAErD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACrD,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACvD,CAAC;AAPD,wDAOC;AAED,SAAgB,
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/lib/http/request.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/lib/http/stream.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAA;AAKnD,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/lib/http/stream.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAA;AAKnD,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EAEV,aAAa,EACb,YAAY,EAEb,MAAM,aAAa,CAAA;AAEpB,wBAAsB,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ/D;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,QAAQ,EACb,QAAQ,GAAE,MAAmB,GAC5B,QAAQ,CAWV;AAED,wBAAsB,WAAW,CAC/B,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,SAAS,UAAU,EAAE,GAAG,SAAS,UAAU,EAAE,EAEvD,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,CAAC,EACd,KAAK,CAAC,EAAE,CAAC,GACR,OAAO,CACR,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAC1E,CAAA;AACD,wBAAsB,WAAW,CAC/B,CAAC,SAAS,SAAS,UAAU,EAAE,GAAG,SAAS,UAAU,EAAE,EAEvD,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,OAAO,EACpB,KAAK,CAAC,EAAE,CAAC,GACR,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAAC,CAAC,CAAA"}
|
package/dist/lib/http/stream.js
CHANGED
@@ -35,12 +35,13 @@ async function parseStream(req, contentType = 'application/octet-stream', allow)
|
|
35
35
|
if (typeof contentType !== 'string') {
|
36
36
|
throw (0, http_errors_1.default)(400, 'Invalid content-type');
|
37
37
|
}
|
38
|
-
const
|
38
|
+
const type = (0, parser_js_1.parseContentType)(contentType);
|
39
|
+
const parser = parser_js_1.parsers.find((parser) => allow?.includes(parser.name) !== false && parser.test(type.mime));
|
39
40
|
if (!parser) {
|
40
41
|
throw (0, http_errors_1.default)(400, 'Unsupported content-type');
|
41
42
|
}
|
42
43
|
const buffer = await readStream(req);
|
43
|
-
return parser.parse(buffer);
|
44
|
+
return parser.parse(buffer, type);
|
44
45
|
}
|
45
46
|
exports.parseStream = parseStream;
|
46
47
|
//# sourceMappingURL=stream.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/lib/http/stream.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAmD;AACnD,yCAAuD;AAEvD,8DAAyC;AAEzC,
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/lib/http/stream.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAmD;AACnD,yCAAuD;AAEvD,8DAAyC;AAEzC,2CAQoB;AAEb,KAAK,UAAU,UAAU,CAAC,GAAa;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClB,WAAW,IAAI,KAAK,CAAC,MAAM,CAAA;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAC3C,CAAC;AARD,gCAQC;AAED,SAAgB,YAAY,CAC1B,GAAa,EACb,WAAmB,UAAU;IAE7B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,OAAO,CAAC,IAAA,yBAAa,GAAE,CAAC,CAAA;QACrC,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,OAAO,CAAC,IAAA,wBAAY,GAAE,CAAC,CAAA;QACpC,KAAK,UAAU;YACb,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAA;QACvC;YACE,MAAM,IAAA,qBAAe,EAAC,GAAG,EAAE,8BAA8B,CAAC,CAAA;IAC9D,CAAC;AACH,CAAC;AAdD,oCAcC;AAmBM,KAAK,UAAU,WAAW,CAC/B,GAAa,EACb,cAAuB,0BAA0B,EACjD,KAAgB;IAEhB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAA,qBAAe,EAAC,GAAG,EAAE,sBAAsB,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,4BAAgB,EAAC,WAAW,CAAC,CAAA;IAE1C,MAAM,MAAM,GAAG,mBAAO,CAAC,IAAI,CACzB,CAAC,MAAM,EAAE,EAAE,CACT,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CACnE,CAAA;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAA,qBAAe,EAAC,GAAG,EAAE,0BAA0B,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC;AAtBD,kCAsBC"}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { Keyset } from '@atproto/jwk';
|
2
2
|
import { OAuthAuthorizationServerMetadata } from '@atproto/oauth-types';
|
3
3
|
export type CustomMetadata = {
|
4
|
-
claims_supported?: string[];
|
5
4
|
scopes_supported?: string[];
|
6
5
|
authorization_details_types_supported?: string[];
|
7
6
|
protected_resources?: string[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"build-metadata.d.ts","sourceRoot":"","sources":["../../src/metadata/build-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAA;
|
1
|
+
{"version":3,"file":"build-metadata.d.ts","sourceRoot":"","sources":["../../src/metadata/build-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAA;AAKvE,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,qCAAqC,CAAC,EAAE,MAAM,EAAE,CAAA;IAChD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B,CAAA;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,cAAc,GAC9B,gCAAgC,CAoGlC"}
|
@@ -2,7 +2,6 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.buildMetadata = void 0;
|
4
4
|
const client_js_1 = require("../client/client.js");
|
5
|
-
const claims_js_1 = require("../oidc/claims.js");
|
6
5
|
const crypto_js_1 = require("../lib/util/crypto.js");
|
7
6
|
/**
|
8
7
|
* @see {@link https://datatracker.ietf.org/doc/html/rfc8414#section-2}
|
@@ -12,30 +11,10 @@ function buildMetadata(issuer, keyset, customMetadata) {
|
|
12
11
|
return {
|
13
12
|
issuer,
|
14
13
|
scopes_supported: [
|
15
|
-
'
|
16
|
-
|
17
|
-
'email',
|
18
|
-
'phone',
|
19
|
-
'profile',
|
14
|
+
'atproto',
|
15
|
+
//
|
20
16
|
...(customMetadata?.scopes_supported ?? []),
|
21
17
|
],
|
22
|
-
claims_supported: [
|
23
|
-
/* IESG (Always provided) */
|
24
|
-
'sub', // did
|
25
|
-
'iss', // Authorization Server Origin
|
26
|
-
'aud',
|
27
|
-
'exp',
|
28
|
-
'iat',
|
29
|
-
'jti',
|
30
|
-
'client_id',
|
31
|
-
/* OpenID */
|
32
|
-
// 'acr', // "0"
|
33
|
-
// 'amr',
|
34
|
-
// 'azp',
|
35
|
-
'auth_time', // number - seconds since epoch
|
36
|
-
'nonce', // always required in "id_token", why would it not be supported?
|
37
|
-
...(customMetadata?.claims_supported ?? claims_js_1.OIDC_STANDARD_CLAIMS),
|
38
|
-
],
|
39
18
|
subject_types_supported: [
|
40
19
|
//
|
41
20
|
'public', // The same "sub" is returned for all clients
|
@@ -44,14 +23,14 @@ function buildMetadata(issuer, keyset, customMetadata) {
|
|
44
23
|
response_types_supported: [
|
45
24
|
// OAuth
|
46
25
|
'code',
|
47
|
-
'token',
|
26
|
+
// 'token',
|
48
27
|
// OpenID
|
49
|
-
'none',
|
50
|
-
'code id_token token',
|
51
|
-
'code id_token',
|
52
|
-
'code token',
|
53
|
-
'id_token token',
|
54
|
-
'id_token',
|
28
|
+
// 'none',
|
29
|
+
// 'code id_token token',
|
30
|
+
// 'code id_token',
|
31
|
+
// 'code token',
|
32
|
+
// 'id_token token',
|
33
|
+
// 'id_token',
|
55
34
|
],
|
56
35
|
response_modes_supported: [
|
57
36
|
// https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#ResponseModes
|
@@ -74,7 +53,6 @@ function buildMetadata(issuer, keyset, customMetadata) {
|
|
74
53
|
//
|
75
54
|
'en-US',
|
76
55
|
],
|
77
|
-
id_token_signing_alg_values_supported: [...keyset.signAlgorithms],
|
78
56
|
display_values_supported: [
|
79
57
|
//
|
80
58
|
'page',
|
@@ -88,9 +66,6 @@ function buildMetadata(issuer, keyset, customMetadata) {
|
|
88
66
|
request_object_signing_alg_values_supported: [...crypto_js_1.VERIFY_ALGOS, 'none'],
|
89
67
|
request_object_encryption_alg_values_supported: [], // None
|
90
68
|
request_object_encryption_enc_values_supported: [], // None
|
91
|
-
// No claim makes sense to be translated
|
92
|
-
claims_locales_supported: [],
|
93
|
-
claims_parameter_supported: true,
|
94
69
|
request_parameter_supported: true,
|
95
70
|
request_uri_parameter_supported: true,
|
96
71
|
require_request_uri_registration: true,
|
@@ -100,25 +75,10 @@ function buildMetadata(issuer, keyset, customMetadata) {
|
|
100
75
|
token_endpoint_auth_methods_supported: [...client_js_1.Client.AUTH_METHODS_SUPPORTED],
|
101
76
|
token_endpoint_auth_signing_alg_values_supported: [...crypto_js_1.VERIFY_ALGOS],
|
102
77
|
revocation_endpoint: new URL('/oauth/revoke', issuer).href,
|
103
|
-
revocation_endpoint_auth_methods_supported: [
|
104
|
-
...client_js_1.Client.AUTH_METHODS_SUPPORTED,
|
105
|
-
],
|
106
|
-
revocation_endpoint_auth_signing_alg_values_supported: [...crypto_js_1.VERIFY_ALGOS],
|
107
78
|
introspection_endpoint: new URL('/oauth/introspect', issuer).href,
|
108
|
-
introspection_endpoint_auth_methods_supported: [
|
109
|
-
...client_js_1.Client.AUTH_METHODS_SUPPORTED,
|
110
|
-
],
|
111
|
-
introspection_endpoint_auth_signing_alg_values_supported: [...crypto_js_1.VERIFY_ALGOS],
|
112
|
-
userinfo_endpoint: new URL('/oauth/userinfo', issuer).href,
|
113
79
|
// end_session_endpoint: new URL('/oauth/logout', issuer).href,
|
114
80
|
// https://datatracker.ietf.org/doc/html/rfc9126#section-5
|
115
81
|
pushed_authorization_request_endpoint: new URL('/oauth/par', issuer).href,
|
116
|
-
pushed_authorization_request_endpoint_auth_methods_supported: [
|
117
|
-
...client_js_1.Client.AUTH_METHODS_SUPPORTED,
|
118
|
-
],
|
119
|
-
pushed_authorization_request_endpoint_auth_signing_alg_values_supported: [
|
120
|
-
...crypto_js_1.VERIFY_ALGOS,
|
121
|
-
],
|
122
82
|
require_pushed_authorization_requests: true,
|
123
83
|
// https://datatracker.ietf.org/doc/html/rfc9449#section-5.1
|
124
84
|
dpop_signing_alg_values_supported: [...crypto_js_1.VERIFY_ALGOS],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"build-metadata.js","sourceRoot":"","sources":["../../src/metadata/build-metadata.ts"],"names":[],"mappings":";;;AAGA,mDAA4C;AAC5C,
|
1
|
+
{"version":3,"file":"build-metadata.js","sourceRoot":"","sources":["../../src/metadata/build-metadata.ts"],"names":[],"mappings":";;;AAGA,mDAA4C;AAC5C,qDAAoD;AAQpD;;;GAGG;AACH,SAAgB,aAAa,CAC3B,MAAc,EACd,MAAc,EACd,cAA+B;IAE/B,OAAO;QACL,MAAM;QAEN,gBAAgB,EAAE;YAChB,SAAS;YACT,EAAE;YACF,GAAG,CAAC,cAAc,EAAE,gBAAgB,IAAI,EAAE,CAAC;SAC5C;QACD,uBAAuB,EAAE;YACvB,EAAE;YACF,QAAQ,EAAE,6CAA6C;YACvD,+DAA+D;SAChE;QACD,wBAAwB,EAAE;YACxB,QAAQ;YACR,MAAM;YACN,WAAW;YAEX,SAAS;YACT,UAAU;YACV,yBAAyB;YACzB,mBAAmB;YACnB,gBAAgB;YAChB,oBAAoB;YACpB,cAAc;SACf;QACD,wBAAwB,EAAE;YACxB,mFAAmF;YACnF,OAAO;YACP,UAAU;YACV,0FAA0F;YAC1F,WAAW;SACZ;QACD,qBAAqB,EAAE;YACrB,EAAE;YACF,oBAAoB;YACpB,eAAe;SAChB;QACD,gCAAgC,EAAE;YAChC,sGAAsG;YACtG,MAAM;YACN,OAAO;SACR;QACD,oBAAoB,EAAE;YACpB,EAAE;YACF,OAAO;SACR;QACD,wBAAwB,EAAE;YACxB,EAAE;YACF,MAAM;YACN,OAAO;YACP,OAAO;YACP,aAAa;SACd;QAED,gDAAgD;QAChD,8CAA8C,EAAE,IAAI;QAEpD,0DAA0D;QAC1D,2CAA2C,EAAE,CAAC,GAAG,wBAAY,EAAE,MAAM,CAAC;QACtE,8CAA8C,EAAE,EAAE,EAAE,OAAO;QAC3D,8CAA8C,EAAE,EAAE,EAAE,OAAO;QAE3D,2BAA2B,EAAE,IAAI;QACjC,+BAA+B,EAAE,IAAI;QACrC,gCAAgC,EAAE,IAAI;QAEtC,QAAQ,EAAE,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,IAAI;QAE7C,sBAAsB,EAAE,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,IAAI;QAEhE,cAAc,EAAE,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,IAAI;QACpD,qCAAqC,EAAE,CAAC,GAAG,kBAAM,CAAC,sBAAsB,CAAC;QACzE,gDAAgD,EAAE,CAAC,GAAG,wBAAY,CAAC;QAEnE,mBAAmB,EAAE,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,IAAI;QAE1D,sBAAsB,EAAE,IAAI,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,IAAI;QAEjE,+DAA+D;QAE/D,0DAA0D;QAC1D,qCAAqC,EAAE,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI;QAEzE,qCAAqC,EAAE,IAAI;QAE3C,4DAA4D;QAC5D,iCAAiC,EAAE,CAAC,GAAG,wBAAY,CAAC;QAEpD,6DAA6D;QAC7D,qCAAqC,EACnC,cAAc,EAAE,qCAAqC;QAEvD,wFAAwF;QACxF,mBAAmB,EAAE,cAAc,EAAE,mBAAmB;QAExD,kIAAkI;QAClI,qCAAqC,EAAE,IAAI;KAC5C,CAAA;AACH,CAAC;AAxGD,sCAwGC"}
|
package/dist/oauth-hooks.d.ts
CHANGED
@@ -5,8 +5,9 @@ import { ClientAuth } from './client/client-auth.js';
|
|
5
5
|
import { ClientId } from './client/client-id.js';
|
6
6
|
import { ClientInfo } from './client/client-info.js';
|
7
7
|
import { Client } from './client/client.js';
|
8
|
+
import { InvalidAuthorizationDetailsError } from './errors/invalid-authorization-details-error.js';
|
8
9
|
import { Awaitable } from './lib/util/type.js';
|
9
|
-
export type { Account, Client, ClientAuth, ClientId, ClientInfo, Jwks, OAuthAuthenticationRequestParameters, OAuthAuthorizationDetails, OAuthClientMetadata, OAuthTokenResponse, };
|
10
|
+
export type { Account, Client, ClientAuth, ClientId, ClientInfo, InvalidAuthorizationDetailsError, Jwks, OAuthAuthenticationRequestParameters, OAuthAuthorizationDetails, OAuthClientMetadata, OAuthTokenResponse, };
|
10
11
|
export type OAuthHooks = {
|
11
12
|
/**
|
12
13
|
* Use this to alter, override or validate the client metadata & jwks returned
|
@@ -21,7 +22,7 @@ export type OAuthHooks = {
|
|
21
22
|
}) => Awaitable<void | undefined | Partial<ClientInfo>>;
|
22
23
|
/**
|
23
24
|
* Allows enriching the authorization details with additional information
|
24
|
-
*
|
25
|
+
* when the tokens are issued.
|
25
26
|
*
|
26
27
|
* @see {@link https://datatracker.ietf.org/doc/html/rfc9396 | RFC 9396}
|
27
28
|
*/
|
@@ -30,13 +31,5 @@ export type OAuthHooks = {
|
|
30
31
|
parameters: OAuthAuthenticationRequestParameters;
|
31
32
|
account: Account;
|
32
33
|
}) => Awaitable<undefined | OAuthAuthorizationDetails>;
|
33
|
-
/**
|
34
|
-
* Allows altering the token response before it is sent to the client.
|
35
|
-
*/
|
36
|
-
onTokenResponse?: (tokenResponse: OAuthTokenResponse, data: {
|
37
|
-
client: Client;
|
38
|
-
parameters: OAuthAuthenticationRequestParameters;
|
39
|
-
account: Account;
|
40
|
-
}) => Awaitable<void>;
|
41
34
|
};
|
42
35
|
//# sourceMappingURL=oauth-hooks.d.ts.map
|