@turystack/nestjs-oauth 1.0.1 → 1.1.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 +1 -1
- package/dist/cookies.js +3 -3
- package/dist/cookies.js.map +1 -1
- package/dist/exceptions/oauth.exceptions.d.ts +7 -3
- package/dist/exceptions/oauth.exceptions.d.ts.map +1 -1
- package/dist/exceptions/oauth.exceptions.js +9 -7
- package/dist/exceptions/oauth.exceptions.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/oauth.controller.d.ts +3 -3
- package/dist/oauth.controller.d.ts.map +1 -1
- package/dist/oauth.controller.js +8 -30
- package/dist/oauth.controller.js.map +1 -1
- package/dist/oauth.module.d.ts.map +1 -1
- package/dist/oauth.module.js +8 -3
- package/dist/oauth.module.js.map +1 -1
- package/dist/oauth.service.d.ts +4 -9
- package/dist/oauth.service.d.ts.map +1 -1
- package/dist/oauth.service.js +27 -27
- package/dist/oauth.service.js.map +1 -1
- package/dist/oauth.types.d.ts +23 -17
- package/dist/oauth.types.d.ts.map +1 -1
- package/dist/store/memory-code-store.js +4 -4
- package/dist/store/memory-code-store.js.map +1 -1
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ pnpm add @turystack/nestjs-oauth
|
|
|
14
14
|
The host application provides these:
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
pnpm add @nestjs/common @nestjs/core @turystack/nestjs-config @turystack/nestjs-
|
|
17
|
+
pnpm add @nestjs/common @nestjs/core @turystack/exceptions @turystack/nestjs-config @turystack/nestjs-access @turystack/nestjs-server reflect-metadata zod
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
## Documentation
|
package/dist/cookies.js
CHANGED
|
@@ -30,13 +30,13 @@ function append(response, cookies) {
|
|
|
30
30
|
]);
|
|
31
31
|
}
|
|
32
32
|
export function writeSessionCookies(response, session, options) {
|
|
33
|
-
const accessMaxAge = Math.max(0, Math.floor((session.
|
|
33
|
+
const accessMaxAge = Math.max(0, Math.floor((session.expires_at - Date.now()) / 1000));
|
|
34
34
|
append(response, [
|
|
35
|
-
serializeCookie(options.accessName ?? DEFAULT_ACCESS_COOKIE, session.
|
|
35
|
+
serializeCookie(options.accessName ?? DEFAULT_ACCESS_COOKIE, session.access_token, {
|
|
36
36
|
...options,
|
|
37
37
|
maxAge: accessMaxAge,
|
|
38
38
|
}),
|
|
39
|
-
serializeCookie(options.refreshName ?? DEFAULT_REFRESH_COOKIE, session.
|
|
39
|
+
serializeCookie(options.refreshName ?? DEFAULT_REFRESH_COOKIE, session.refresh_token, {
|
|
40
40
|
...options,
|
|
41
41
|
maxAge: options.refreshMaxAge,
|
|
42
42
|
}),
|
package/dist/cookies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.js","sourceRoot":"","sources":["../src/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,sBAAsB,CAAA;AAa7B,MAAM,UAAU,eAAe,CAC9B,IAAY,EACZ,KAAa,EACb,OAAyB;IAEzB,MAAM,KAAK,GAAG;QACb,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;QACtC,QAAQ,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE;QAC7B,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;QACpD,YAAY,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE;QAIxF,UAAU;KACV,CAAA;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,QAAwB,EAAE,OAAiB;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ;YAC7B,CAAC,CAAC;gBACA,QAAQ;aACR;YACF,CAAC,CAAC,EAAE,CAAA;IAEN,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE;QAChC,GAAG,QAAQ;QACX,GAAG,OAAO;KACV,CAAC,CAAA;AACH,CAAC;AASD,MAAM,UAAU,mBAAmB,CAClC,QAAwB,EACxB,OAAqB,EACrB,OAEC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC5B,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cookies.js","sourceRoot":"","sources":["../src/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,sBAAsB,CAAA;AAa7B,MAAM,UAAU,eAAe,CAC9B,IAAY,EACZ,KAAa,EACb,OAAyB;IAEzB,MAAM,KAAK,GAAG;QACb,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;QACtC,QAAQ,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE;QAC7B,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;QACpD,YAAY,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE;QAIxF,UAAU;KACV,CAAA;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,QAAwB,EAAE,OAAiB;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ;YAC7B,CAAC,CAAC;gBACA,QAAQ;aACR;YACF,CAAC,CAAC,EAAE,CAAA;IAEN,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE;QAChC,GAAG,QAAQ;QACX,GAAG,OAAO;KACV,CAAC,CAAA;AACH,CAAC;AASD,MAAM,UAAU,mBAAmB,CAClC,QAAwB,EACxB,OAAqB,EACrB,OAEC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC5B,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CACpD,CAAA;IAED,MAAM,CAAC,QAAQ,EAAE;QAChB,eAAe,CACd,OAAO,CAAC,UAAU,IAAI,qBAAqB,EAC3C,OAAO,CAAC,YAAY,EACpB;YACC,GAAG,OAAO;YACV,MAAM,EAAE,YAAY;SACpB,CACD;QACD,eAAe,CACd,OAAO,CAAC,WAAW,IAAI,sBAAsB,EAC7C,OAAO,CAAC,aAAa,EACrB;YACC,GAAG,OAAO;YACV,MAAM,EAAE,OAAO,CAAC,aAAa;SAC7B,CACD;KACD,CAAC,CAAA;AACH,CAAC;AAGD,MAAM,UAAU,mBAAmB,CAClC,QAAwB,EACxB,OAA2B;IAE3B,MAAM,CAAC,QAAQ,EAAE;QAChB,eAAe,CAAC,OAAO,CAAC,UAAU,IAAI,qBAAqB,EAAE,EAAE,EAAE;YAChE,GAAG,OAAO;YACV,MAAM,EAAE,CAAC;SACT,CAAC;QACF,eAAe,CAAC,OAAO,CAAC,WAAW,IAAI,sBAAsB,EAAE,EAAE,EAAE;YAClE,GAAG,OAAO;YACV,MAAM,EAAE,CAAC;SACT,CAAC;KACF,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class OAuthInvalidRequestException extends
|
|
1
|
+
import { BadRequestError, UnauthorizedError } from '@turystack/exceptions';
|
|
2
|
+
export declare class OAuthInvalidRequestException extends BadRequestError {
|
|
3
|
+
static readonly code = "oauth.invalid_request";
|
|
4
|
+
readonly name = "OAuthInvalidRequestException";
|
|
3
5
|
constructor(message?: string);
|
|
4
6
|
}
|
|
5
|
-
export declare class OAuthInvalidGrantException extends
|
|
7
|
+
export declare class OAuthInvalidGrantException extends UnauthorizedError {
|
|
8
|
+
static readonly code = "oauth.invalid_grant";
|
|
9
|
+
readonly name = "OAuthInvalidGrantException";
|
|
6
10
|
constructor(message?: string);
|
|
7
11
|
}
|
|
8
12
|
//# sourceMappingURL=oauth.exceptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions/oauth.exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oauth.exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions/oauth.exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAe1E,qBAAa,4BAA6B,SAAQ,eAAe;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,2BAA0B;IAE9C,SAAkB,IAAI,kCAAiC;IAEvD,YAAY,OAAO,SAAmC,EAErD;CACD;AAUD,qBAAa,0BAA2B,SAAQ,iBAAiB;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,yBAAwB;IAE5C,SAAkB,IAAI,gCAA+B;IAErD,YAAY,OAAO,SAA8B,EAEhD;CACD"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export class OAuthInvalidRequestException extends
|
|
1
|
+
import { BadRequestError, UnauthorizedError } from '@turystack/exceptions';
|
|
2
|
+
export class OAuthInvalidRequestException extends BadRequestError {
|
|
3
|
+
static code = 'oauth.invalid_request';
|
|
4
|
+
name = 'OAuthInvalidRequestException';
|
|
3
5
|
constructor(message = 'Invalid authorization request.') {
|
|
4
|
-
super(message);
|
|
5
|
-
this.name = 'OAuthInvalidRequestException';
|
|
6
|
+
super(message, undefined, OAuthInvalidRequestException.code);
|
|
6
7
|
}
|
|
7
8
|
}
|
|
8
|
-
export class OAuthInvalidGrantException extends
|
|
9
|
+
export class OAuthInvalidGrantException extends UnauthorizedError {
|
|
10
|
+
static code = 'oauth.invalid_grant';
|
|
11
|
+
name = 'OAuthInvalidGrantException';
|
|
9
12
|
constructor(message = 'Invalid or expired grant.') {
|
|
10
|
-
super(message);
|
|
11
|
-
this.name = 'OAuthInvalidGrantException';
|
|
13
|
+
super(message, undefined, OAuthInvalidGrantException.code);
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=oauth.exceptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.exceptions.js","sourceRoot":"","sources":["../../src/exceptions/oauth.exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oauth.exceptions.js","sourceRoot":"","sources":["../../src/exceptions/oauth.exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAe1E,MAAM,OAAO,4BAA6B,SAAQ,eAAe;IAChE,MAAM,CAAU,IAAI,GAAG,uBAAuB,CAAA;IAE5B,IAAI,GAAG,8BAA8B,CAAA;IAEvD,YAAY,OAAO,GAAG,gCAAgC;QACrD,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,4BAA4B,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;CACD;AAUD,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;IAChE,MAAM,CAAU,IAAI,GAAG,qBAAqB,CAAA;IAE1B,IAAI,GAAG,4BAA4B,CAAA;IAErD,YAAY,OAAO,GAAG,2BAA2B;QAChD,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC;CACD"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { DEFAULT_ACCESS_COOKIE, DEFAULT_CODE_TTL, DEFAULT_REFRESH_COOKIE, DEFAUL
|
|
|
3
3
|
export { OAuthController } from './oauth.controller.js';
|
|
4
4
|
export { OAuthModule } from './oauth.module.js';
|
|
5
5
|
export { OAuthService } from './oauth.service.js';
|
|
6
|
-
export type { OAuthAuthorizationCode, OAuthAuthorizeRequest, OAuthClient, OAuthCodeStore, OAuthCookieOptions, OAuthModuleFactoryOptions, OAuthModuleOptions, OAuthOptions, OAuthSession, OAuthTransaction, } from './oauth.types.js';
|
|
6
|
+
export type { OAuthAuthorizationCode, OAuthAuthorizeRequest, OAuthClient, OAuthCodeStore, OAuthCookieOptions, OAuthModuleFactoryOptions, OAuthModuleOptions, OAuthOptions, OAuthSession, OAuthTokenRequest, OAuthTransaction, } from './oauth.types.js';
|
|
7
7
|
export { CODE_CHALLENGE_METHOD, deriveChallenge, isValidCodeChallenge, isValidCodeVerifier, randomToken, verifyChallenge, } from './pkce.js';
|
|
8
8
|
export { OAuthInvalidGrantException, OAuthInvalidRequestException, } from './exceptions/oauth.exceptions.js';
|
|
9
9
|
export { MemoryOAuthCodeStore } from './store/memory-code-store.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACnB,MAAM,cAAc,CAAA;AACrB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EACX,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,GACf,MAAM,WAAW,CAAA;AAElB,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,GAC5B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACnB,MAAM,cAAc,CAAA;AACrB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EACX,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,GACf,MAAM,WAAW,CAAA;AAElB,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,GAC5B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACnB,MAAM,cAAc,CAAA;AACrB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACnB,MAAM,cAAc,CAAA;AACrB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAcjD,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,GACf,MAAM,WAAW,CAAA;AAElB,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,GAC5B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA"}
|
|
@@ -13,8 +13,8 @@ declare const transactionQuery: z.ZodObject<{
|
|
|
13
13
|
tx: z.ZodString;
|
|
14
14
|
}, z.core.$strip>;
|
|
15
15
|
declare const transactionResponse: z.ZodObject<{
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
client_id: z.ZodString;
|
|
17
|
+
redirect_uri: z.ZodString;
|
|
18
18
|
scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
19
19
|
}, z.core.$strip>;
|
|
20
20
|
declare const tokenBody: z.ZodObject<{
|
|
@@ -24,7 +24,7 @@ declare const tokenBody: z.ZodObject<{
|
|
|
24
24
|
redirect_uri: z.ZodString;
|
|
25
25
|
}, z.core.$strip>;
|
|
26
26
|
declare const sessionResponse: z.ZodObject<{
|
|
27
|
-
|
|
27
|
+
expires_at: z.ZodNumber;
|
|
28
28
|
}, z.core.$strip>;
|
|
29
29
|
type ResponseLike = {
|
|
30
30
|
getHeader?: (name: string) => number | string | string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.controller.d.ts","sourceRoot":"","sources":["../src/oauth.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,kBAAkB,CAAA;AAIlE,QAAA,MAAM,cAAc;;;;;;;iBAOlB,CAAA;AAEF,QAAA,MAAM,gBAAgB;;iBAEpB,CAAA;AAEF,QAAA,MAAM,mBAAmB;;;;iBAIvB,CAAA;AAEF,QAAA,MAAM,SAAS;;;;;iBAKb,CAAA;AAUF,QAAA,MAAM,eAAe;;iBAEnB,CAAA;AAEF,KAAK,YAAY,GAAG;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;IACpE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAA;IAC9D,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAA;IACtC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CACjC,CAAA;AAED,KAAK,WAAW,GAAG;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;CACvD,CAAA;AAyCD,qBAIa,eAAe;IAG1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJvB,YAEkB,OAAO,EAAE,YAAY,EAErB,KAAK,EAAE,YAAY,EACjC;IAYE,SAAS,CACL,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,EACvC,QAAQ,EAAE,YAAY,GAC3B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"oauth.controller.d.ts","sourceRoot":"","sources":["../src/oauth.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,kBAAkB,CAAA;AAIlE,QAAA,MAAM,cAAc;;;;;;;iBAOlB,CAAA;AAEF,QAAA,MAAM,gBAAgB;;iBAEpB,CAAA;AAEF,QAAA,MAAM,mBAAmB;;;;iBAIvB,CAAA;AAEF,QAAA,MAAM,SAAS;;;;;iBAKb,CAAA;AAUF,QAAA,MAAM,eAAe;;iBAEnB,CAAA;AAEF,KAAK,YAAY,GAAG;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;IACpE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAA;IAC9D,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAA;IACtC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CACjC,CAAA;AAED,KAAK,WAAW,GAAG;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;CACvD,CAAA;AAyCD,qBAIa,eAAe;IAG1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJvB,YAEkB,OAAO,EAAE,YAAY,EAErB,KAAK,EAAE,YAAY,EACjC;IAYE,SAAS,CACL,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,EACvC,QAAQ,EAAE,YAAY,GAC3B,OAAO,CAAC,IAAI,CAAC,CAIf;IAeK,WAAW,CACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GAC9C,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAY9C;IAeK,KAAK,CACF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,EAIvC,QAAQ,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC,CAE1C;IAYK,OAAO,CACL,OAAO,EAAE,WAAW,EAI3B,QAAQ,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC,CAW1C;IAcK,OAAO,CAIZ,QAAQ,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAEf;IAED,OAAO,CAAC,OAAO;CAaf"}
|
package/dist/oauth.controller.js
CHANGED
|
@@ -29,8 +29,8 @@ const transactionQuery = z.object({
|
|
|
29
29
|
tx: z.string().min(1),
|
|
30
30
|
});
|
|
31
31
|
const transactionResponse = z.object({
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
client_id: z.string(),
|
|
33
|
+
redirect_uri: z.string(),
|
|
34
34
|
scopes: z.array(z.string()).optional(),
|
|
35
35
|
});
|
|
36
36
|
const tokenBody = z.object({
|
|
@@ -40,7 +40,7 @@ const tokenBody = z.object({
|
|
|
40
40
|
redirect_uri: z.string().url(),
|
|
41
41
|
});
|
|
42
42
|
const sessionResponse = z.object({
|
|
43
|
-
|
|
43
|
+
expires_at: z.number(),
|
|
44
44
|
});
|
|
45
45
|
function readCookie(request, name) {
|
|
46
46
|
const parsed = request.cookies?.[name];
|
|
@@ -72,29 +72,13 @@ let OAuthController = class OAuthController {
|
|
|
72
72
|
this.oauth = oauth;
|
|
73
73
|
}
|
|
74
74
|
async authorize(query, response) {
|
|
75
|
-
|
|
76
|
-
clientId: query.client_id,
|
|
77
|
-
codeChallenge: query.code_challenge,
|
|
78
|
-
codeChallengeMethod: query.code_challenge_method,
|
|
79
|
-
redirectUri: query.redirect_uri,
|
|
80
|
-
...(query.scope === undefined
|
|
81
|
-
? {}
|
|
82
|
-
: {
|
|
83
|
-
scope: query.scope,
|
|
84
|
-
}),
|
|
85
|
-
...(query.state === undefined
|
|
86
|
-
? {}
|
|
87
|
-
: {
|
|
88
|
-
state: query.state,
|
|
89
|
-
}),
|
|
90
|
-
});
|
|
91
|
-
response.redirect(target);
|
|
75
|
+
response.redirect(await this.oauth.authorize(query));
|
|
92
76
|
}
|
|
93
77
|
async transaction(query) {
|
|
94
78
|
const transaction = await this.oauth.readTransaction(query.tx);
|
|
95
79
|
return {
|
|
96
|
-
|
|
97
|
-
|
|
80
|
+
client_id: transaction.client_id,
|
|
81
|
+
redirect_uri: transaction.redirect_uri,
|
|
98
82
|
...(transaction.scopes === undefined
|
|
99
83
|
? {}
|
|
100
84
|
: {
|
|
@@ -103,13 +87,7 @@ let OAuthController = class OAuthController {
|
|
|
103
87
|
};
|
|
104
88
|
}
|
|
105
89
|
async token(body, response) {
|
|
106
|
-
|
|
107
|
-
clientId: body.client_id,
|
|
108
|
-
code: body.code,
|
|
109
|
-
codeVerifier: body.code_verifier,
|
|
110
|
-
redirectUri: body.redirect_uri,
|
|
111
|
-
});
|
|
112
|
-
return this.deliver(response, session);
|
|
90
|
+
return this.deliver(response, await this.oauth.exchangeCode(body));
|
|
113
91
|
}
|
|
114
92
|
async refresh(request, response) {
|
|
115
93
|
const refreshToken = readCookie(request, this.options.cookie?.refreshName ?? DEFAULT_REFRESH_COOKIE);
|
|
@@ -127,7 +105,7 @@ let OAuthController = class OAuthController {
|
|
|
127
105
|
refreshMaxAge: this.options.refreshTtl ?? DEFAULT_REFRESH_TTL,
|
|
128
106
|
});
|
|
129
107
|
return {
|
|
130
|
-
|
|
108
|
+
expires_at: session.expires_at,
|
|
131
109
|
};
|
|
132
110
|
}
|
|
133
111
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.controller.js","sourceRoot":"","sources":["../src/oauth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAE7E,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACrB,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,
|
|
1
|
+
{"version":3,"file":"oauth.controller.js","sourceRoot":"","sources":["../src/oauth.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.module.d.ts","sourceRoot":"","sources":["../src/oauth.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth.module.d.ts","sourceRoot":"","sources":["../src/oauth.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,gBAAgB,CAAA;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAKxD,OAAO,KAAK,EAEX,yBAAyB,EACzB,kBAAkB,EAElB,MAAM,kBAAkB,CAAA;AAMzB,qBACa,WAAW;IAUvB,MAAM,CAAC,QAAQ,CACd,OAAO,EACJ,kBAAkB,GAClB,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,yBAAyB,CAAC,GACvD,aAAa,CAef;IAED,OAAO,CAAC,MAAM,CAAC,eAAe;IAmB9B,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAsDhC"}
|
package/dist/oauth.module.js
CHANGED
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
var OAuthModule_1;
|
|
8
8
|
import { Module } from '@nestjs/common';
|
|
9
|
+
import { ModuleRef } from '@nestjs/core';
|
|
9
10
|
import { ConfigService } from '@turystack/nestjs-config';
|
|
10
11
|
import { OAUTH_CODE_STORE, OAUTH_OPTIONS } from './oauth.constants.js';
|
|
11
12
|
import { OAuthController } from './oauth.controller.js';
|
|
@@ -39,14 +40,18 @@ let OAuthModule = OAuthModule_1 = class OAuthModule {
|
|
|
39
40
|
return optionsOrFactory(config);
|
|
40
41
|
}
|
|
41
42
|
static _resolveProviders(optionsOrFactory) {
|
|
42
|
-
const storeProvider = typeof optionsOrFactory
|
|
43
|
+
const storeProvider = typeof optionsOrFactory === 'function'
|
|
43
44
|
? {
|
|
45
|
+
inject: [
|
|
46
|
+
OAUTH_RESOLVED_OPTIONS,
|
|
47
|
+
ModuleRef,
|
|
48
|
+
],
|
|
44
49
|
provide: OAUTH_CODE_STORE,
|
|
45
|
-
|
|
50
|
+
useFactory: (options, moduleRef) => moduleRef.create(options.store ?? MemoryOAuthCodeStore),
|
|
46
51
|
}
|
|
47
52
|
: {
|
|
48
53
|
provide: OAUTH_CODE_STORE,
|
|
49
|
-
useClass: MemoryOAuthCodeStore,
|
|
54
|
+
useClass: optionsOrFactory.store ?? MemoryOAuthCodeStore,
|
|
50
55
|
};
|
|
51
56
|
return [
|
|
52
57
|
{
|
package/dist/oauth.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.module.js","sourceRoot":"","sources":["../src/oauth.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAiB,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth.module.js","sourceRoot":"","sources":["../src/oauth.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAiB,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAA;AAGxD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAUhB,AAAP,MAAM,CAAC,QAAQ,CACd,OAEyD;QAEzD,OAAO;YACN,WAAW,EAAE;gBACZ,eAAe;aACf;YACD,OAAO,EAAE;gBACR,aAAa;gBACb,gBAAgB;gBAChB,YAAY;aACZ;YACD,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;YACrE,MAAM,eAAa;YACnB,SAAS,EAAE,cAAY,iBAAiB,CAAC,OAAO,CAAC;SACjD,CAAA;IACF,CAAC;IAEO,MAAM,CAAC,eAAe,CAC7B,gBAEyD,EACzD,MAAsB;QAEtB,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC5C,OAAO,gBAAgB,CAAA;QACxB,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACd,2GAA2G,CAC3G,CAAA;QACF,CAAC;QAED,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAEc,AAAP,MAAM,CAAC,iBAAiB,CAC/B,gBAEyD;QAKzD,MAAM,aAAa,GAClB,OAAO,gBAAgB,KAAK,UAAU;YACrC,CAAC,CAAC;gBACA,MAAM,EAAE;oBACP,sBAAsB;oBACtB,SAAS;iBACT;gBACD,OAAO,EAAE,gBAAgB;gBACzB,UAAU,EAAE,CACX,OAAkC,EAClC,SAAoB,EACM,EAAE,CAC5B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAAC;aACxD;YACF,CAAC,CAAC;gBACA,OAAO,EAAE,gBAAgB;gBACzB,QAAQ,EAAE,gBAAgB,CAAC,KAAK,IAAI,oBAAoB;aACxD,CAAA;QAEJ,OAAO;YACN;gBACC,MAAM,EAAE;oBACP;wBACC,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,aAAa;qBACpB;iBACD;gBACD,OAAO,EAAE,sBAAsB;gBAC/B,UAAU,EAAE,CAAC,MAAsB,EAAE,EAAE,CACtC,cAAY,eAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC;aACtD;YACD;gBACC,MAAM,EAAE;oBACP,sBAAsB;iBACtB;gBACD,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,CAAC,OAA2B,EAAgB,EAAE;oBACzD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAA;oBAEnD,OAAO,YAAY,CAAA;gBACpB,CAAC;aACD;YACD,aAAa;YACb,YAAY;SACZ,CAAA;IACF,CAAC;CACD,CAAA;AAxGY,WAAW;IADvB,MAAM,CAAC,EAAE,CAAC;GACE,WAAW,CAwGvB"}
|
package/dist/oauth.service.d.ts
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { OAuthAuthorizeRequest, OAuthCodeStore, OAuthOptions, OAuthSession, OAuthTransaction } from './oauth.types.js';
|
|
1
|
+
import { AccessTokenService } from '@turystack/nestjs-access';
|
|
2
|
+
import type { OAuthAuthorizeRequest, OAuthCodeStore, OAuthOptions, OAuthSession, OAuthTokenRequest, OAuthTransaction } from './oauth.types.js';
|
|
3
3
|
export declare class OAuthService {
|
|
4
4
|
private readonly options;
|
|
5
5
|
private readonly store;
|
|
6
6
|
private readonly tokens;
|
|
7
|
-
constructor(options: OAuthOptions, store: OAuthCodeStore, tokens:
|
|
7
|
+
constructor(options: OAuthOptions, store: OAuthCodeStore, tokens: AccessTokenService);
|
|
8
8
|
authorize(request: OAuthAuthorizeRequest): Promise<string>;
|
|
9
9
|
readTransaction(id: string): Promise<OAuthTransaction>;
|
|
10
10
|
completeAuthorization(transactionId: string, userId: string, options?: {
|
|
11
11
|
workspaceId?: string;
|
|
12
12
|
}): Promise<string>;
|
|
13
|
-
exchangeCode(input:
|
|
14
|
-
clientId: string;
|
|
15
|
-
code: string;
|
|
16
|
-
codeVerifier: string;
|
|
17
|
-
redirectUri: string;
|
|
18
|
-
}): Promise<OAuthSession>;
|
|
13
|
+
exchangeCode(input: OAuthTokenRequest): Promise<OAuthSession>;
|
|
19
14
|
refresh(refreshToken: string): Promise<OAuthSession>;
|
|
20
15
|
private issue;
|
|
21
16
|
private findClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.service.d.ts","sourceRoot":"","sources":["../src/oauth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oauth.service.d.ts","sourceRoot":"","sources":["../src/oauth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAQ7D,OAAO,KAAK,EACX,qBAAqB,EAErB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,kBAAkB,CAAA;AAuBzB,qBACa,YAAY;IAGvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAKtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IATxB,YAEkB,OAAO,EAAE,YAAY,EAErB,KAAK,EAAE,cAAc,EAKrB,MAAM,EAAE,kBAAkB,EACxC;IASE,SAAS,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6C/D;IAGK,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAU3D;IAUK,qBAAqB,CAC1B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAA;KACpB,GACC,OAAO,CAAC,MAAM,CAAC,CA8BjB;IAQK,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmBlE;IAOK,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAIzD;YAEa,KAAK;IAoBnB,OAAO,CAAC,UAAU;CAWlB"}
|
package/dist/oauth.service.js
CHANGED
|
@@ -11,7 +11,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
13
|
import { Inject, Injectable } from '@nestjs/common';
|
|
14
|
-
import {
|
|
14
|
+
import { AccessTokenService } from '@turystack/nestjs-access';
|
|
15
15
|
import { DEFAULT_CODE_TTL, DEFAULT_TRANSACTION_TTL, OAUTH_CODE_STORE, OAUTH_OPTIONS, } from './oauth.constants.js';
|
|
16
16
|
import { CODE_CHALLENGE_METHOD, isValidCodeChallenge, randomToken, verifyChallenge, } from './pkce.js';
|
|
17
17
|
import { OAuthInvalidGrantException, OAuthInvalidRequestException, } from './exceptions/oauth.exceptions.js';
|
|
@@ -25,23 +25,23 @@ let OAuthService = class OAuthService {
|
|
|
25
25
|
this.tokens = tokens;
|
|
26
26
|
}
|
|
27
27
|
async authorize(request) {
|
|
28
|
-
if (request.
|
|
28
|
+
if (request.code_challenge_method !== CODE_CHALLENGE_METHOD) {
|
|
29
29
|
throw new OAuthInvalidRequestException(`code_challenge_method must be ${CODE_CHALLENGE_METHOD}`);
|
|
30
30
|
}
|
|
31
|
-
if (!isValidCodeChallenge(request.
|
|
31
|
+
if (!isValidCodeChallenge(request.code_challenge)) {
|
|
32
32
|
throw new OAuthInvalidRequestException('code_challenge is malformed');
|
|
33
33
|
}
|
|
34
|
-
const client = this.findClient(request.
|
|
35
|
-
if (!client.redirectUris.includes(request.
|
|
34
|
+
const client = this.findClient(request.client_id);
|
|
35
|
+
if (!client.redirectUris.includes(request.redirect_uri)) {
|
|
36
36
|
throw new OAuthInvalidRequestException('redirect_uri is not registered for this client');
|
|
37
37
|
}
|
|
38
38
|
const transaction = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
client_id: client.id,
|
|
40
|
+
code_challenge: request.code_challenge,
|
|
41
|
+
expires_at: Date.now() +
|
|
42
42
|
(this.options.transactionTtl ?? DEFAULT_TRANSACTION_TTL) * 1000,
|
|
43
43
|
id: randomToken(),
|
|
44
|
-
|
|
44
|
+
redirect_uri: request.redirect_uri,
|
|
45
45
|
...(request.state === undefined
|
|
46
46
|
? {}
|
|
47
47
|
: {
|
|
@@ -69,20 +69,20 @@ let OAuthService = class OAuthService {
|
|
|
69
69
|
const transaction = await this.readTransaction(transactionId);
|
|
70
70
|
const code = randomToken();
|
|
71
71
|
await this.store.saveCode({
|
|
72
|
-
|
|
72
|
+
client_id: transaction.client_id,
|
|
73
73
|
code,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
userId,
|
|
74
|
+
code_challenge: transaction.code_challenge,
|
|
75
|
+
expires_at: Date.now() + (this.options.codeTtl ?? DEFAULT_CODE_TTL) * 1000,
|
|
76
|
+
redirect_uri: transaction.redirect_uri,
|
|
77
|
+
user_id: userId,
|
|
78
78
|
...(options?.workspaceId === undefined
|
|
79
79
|
? {}
|
|
80
80
|
: {
|
|
81
|
-
|
|
81
|
+
workspace_id: options.workspaceId,
|
|
82
82
|
}),
|
|
83
83
|
});
|
|
84
84
|
await this.store.deleteTransaction(transaction.id);
|
|
85
|
-
const url = new URL(transaction.
|
|
85
|
+
const url = new URL(transaction.redirect_uri);
|
|
86
86
|
url.searchParams.set('code', code);
|
|
87
87
|
if (transaction.state !== undefined) {
|
|
88
88
|
url.searchParams.set('state', transaction.state);
|
|
@@ -94,18 +94,18 @@ let OAuthService = class OAuthService {
|
|
|
94
94
|
if (!grant) {
|
|
95
95
|
throw new OAuthInvalidGrantException();
|
|
96
96
|
}
|
|
97
|
-
if (grant.
|
|
98
|
-
grant.
|
|
97
|
+
if (grant.client_id !== input.client_id ||
|
|
98
|
+
grant.redirect_uri !== input.redirect_uri) {
|
|
99
99
|
throw new OAuthInvalidGrantException();
|
|
100
100
|
}
|
|
101
|
-
if (!verifyChallenge(input.
|
|
101
|
+
if (!verifyChallenge(input.code_verifier, grant.code_challenge)) {
|
|
102
102
|
throw new OAuthInvalidGrantException();
|
|
103
103
|
}
|
|
104
|
-
return this.issue(grant.
|
|
104
|
+
return this.issue(grant.user_id, grant.workspace_id);
|
|
105
105
|
}
|
|
106
106
|
async refresh(refreshToken) {
|
|
107
|
-
const
|
|
108
|
-
return this.issue(
|
|
107
|
+
const subject = await this.tokens.verifyRefreshToken(refreshToken);
|
|
108
|
+
return this.issue(subject.user_id, subject.workspace_id);
|
|
109
109
|
}
|
|
110
110
|
async issue(userId, workspaceId) {
|
|
111
111
|
const pair = await this.tokens.issueTokens(userId, workspaceId === undefined
|
|
@@ -114,9 +114,9 @@ let OAuthService = class OAuthService {
|
|
|
114
114
|
workspaceId,
|
|
115
115
|
});
|
|
116
116
|
return {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
access_token: pair.access_token,
|
|
118
|
+
expires_at: Date.now() + pair.expires_in * 1000,
|
|
119
|
+
refresh_token: pair.refresh_token,
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
122
|
findClient(clientId) {
|
|
@@ -131,8 +131,8 @@ OAuthService = __decorate([
|
|
|
131
131
|
Injectable(),
|
|
132
132
|
__param(0, Inject(OAUTH_OPTIONS)),
|
|
133
133
|
__param(1, Inject(OAUTH_CODE_STORE)),
|
|
134
|
-
__param(2, Inject(
|
|
135
|
-
__metadata("design:paramtypes", [Object, Object,
|
|
134
|
+
__param(2, Inject(AccessTokenService)),
|
|
135
|
+
__metadata("design:paramtypes", [Object, Object, AccessTokenService])
|
|
136
136
|
], OAuthService);
|
|
137
137
|
export { OAuthService };
|
|
138
138
|
//# sourceMappingURL=oauth.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.service.js","sourceRoot":"","sources":["../src/oauth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oauth.service.js","sourceRoot":"","sources":["../src/oauth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAU7B,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,eAAe,GACf,MAAM,WAAW,CAAA;AAElB,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,GAC5B,MAAM,kCAAkC,CAAA;AAalC,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGN,OAAO;IAEP,KAAK;IAKL,MAAM;IATxB,YAEkB,OAAqB,EAErB,KAAqB,EAKrB,MAA0B;uBAP1B,OAAO;qBAEP,KAAK;sBAKL,MAAM;IACrB,CAAC;IASJ,KAAK,CAAC,SAAS,CAAC,OAA8B;QAC7C,IAAI,OAAO,CAAC,qBAAqB,KAAK,qBAAqB,EAAE,CAAC;YAC7D,MAAM,IAAI,4BAA4B,CACrC,iCAAiC,qBAAqB,EAAE,CACxD,CAAA;QACF,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,4BAA4B,CAAC,6BAA6B,CAAC,CAAA;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEjD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,4BAA4B,CACrC,gDAAgD,CAChD,CAAA;QACF,CAAC;QAED,MAAM,WAAW,GAAqB;YACrC,SAAS,EAAE,MAAM,CAAC,EAAE;YACpB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,UAAU,EACT,IAAI,CAAC,GAAG,EAAE;gBACV,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,uBAAuB,CAAC,GAAG,IAAI;YAChE,EAAE,EAAE,WAAW,EAAE;YACjB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC9B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACA,KAAK,EAAE,OAAO,CAAC,KAAK;iBACpB,CAAC;YACJ,GAAG,CAAC,OAAO,CAAC,KAAK;gBAChB,CAAC,CAAC;oBACA,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;iBAChD;gBACF,CAAC,CAAC,EAAE,CAAC;SACN,CAAA;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QAE7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC3C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAA;QAE1C,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;IACtB,CAAC;IAGD,KAAK,CAAC,eAAe,CAAC,EAAU;QAC/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QAExD,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,IAAI,0BAA0B,CACnC,iEAAiE,CACjE,CAAA;QACF,CAAC;QAED,OAAO,WAAW,CAAA;IACnB,CAAC;IAUD,KAAK,CAAC,qBAAqB,CAC1B,aAAqB,EACrB,MAAc,EACd,OAEC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;QAC7D,MAAM,IAAI,GAAG,WAAW,EAAE,CAAA;QAE1B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,IAAI;YACJ,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,UAAU,EACT,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,GAAG,IAAI;YAC/D,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,OAAO,EAAE,MAAM;YACf,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACA,YAAY,EAAE,OAAO,CAAC,WAAW;iBACjC,CAAC;SACJ,CAAC,CAAA;QAGF,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAElD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QAC7C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAElC,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;IACtB,CAAC;IAQD,KAAK,CAAC,YAAY,CAAC,KAAwB;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,0BAA0B,EAAE,CAAA;QACvC,CAAC;QAED,IACC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YACnC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,EACxC,CAAC;YACF,MAAM,IAAI,0BAA0B,EAAE,CAAA;QACvC,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,0BAA0B,EAAE,CAAA;QACvC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IACrD,CAAC;IAOD,KAAK,CAAC,OAAO,CAAC,YAAoB;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;QAElE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC;IAEO,KAAK,CAAC,KAAK,CAClB,MAAc,EACd,WAAoB;QAEpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CACzC,MAAM,EACN,WAAW,KAAK,SAAS;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACA,WAAW;aACX,CACH,CAAA;QAED,OAAO;YACN,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;YAC/C,aAAa,EAAE,IAAI,CAAC,aAAa;SACjC,CAAA;IACF,CAAC;IAEO,UAAU,CAAC,QAAgB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CACvC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CACxC,CAAA;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,4BAA4B,CAAC,mBAAmB,CAAC,CAAA;QAC5D,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;CACD,CAAA;AAnMY,YAAY;IADxB,UAAU,EAAE;IAGV,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;IAErB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAKxB,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;qDACF,kBAAkB;GAVhC,YAAY,CAmMxB"}
|
package/dist/oauth.types.d.ts
CHANGED
|
@@ -27,21 +27,21 @@ export type OAuthModuleOptions = OAuthOptions & {
|
|
|
27
27
|
export type OAuthModuleFactoryOptions = Omit<OAuthModuleOptions, 'imports'>;
|
|
28
28
|
export type OAuthTransaction = {
|
|
29
29
|
id: string;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
client_id: string;
|
|
31
|
+
redirect_uri: string;
|
|
32
|
+
code_challenge: string;
|
|
33
33
|
state?: string;
|
|
34
34
|
scopes?: string[];
|
|
35
|
-
|
|
35
|
+
expires_at: number;
|
|
36
36
|
};
|
|
37
37
|
export type OAuthAuthorizationCode = {
|
|
38
38
|
code: string;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
client_id: string;
|
|
40
|
+
redirect_uri: string;
|
|
41
|
+
code_challenge: string;
|
|
42
|
+
user_id: string;
|
|
43
|
+
workspace_id?: string;
|
|
44
|
+
expires_at: number;
|
|
45
45
|
};
|
|
46
46
|
export interface OAuthCodeStore {
|
|
47
47
|
saveTransaction(transaction: OAuthTransaction): Promise<void>;
|
|
@@ -51,16 +51,22 @@ export interface OAuthCodeStore {
|
|
|
51
51
|
takeCode(code: string): Promise<OAuthAuthorizationCode | null>;
|
|
52
52
|
}
|
|
53
53
|
export type OAuthAuthorizeRequest = {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
client_id: string;
|
|
55
|
+
redirect_uri: string;
|
|
56
|
+
code_challenge: string;
|
|
57
|
+
code_challenge_method: string;
|
|
58
58
|
state?: string;
|
|
59
59
|
scope?: string;
|
|
60
60
|
};
|
|
61
|
+
export type OAuthTokenRequest = {
|
|
62
|
+
client_id: string;
|
|
63
|
+
code: string;
|
|
64
|
+
code_verifier: string;
|
|
65
|
+
redirect_uri: string;
|
|
66
|
+
};
|
|
61
67
|
export type OAuthSession = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
access_token: string;
|
|
69
|
+
refresh_token: string;
|
|
70
|
+
expires_at: number;
|
|
65
71
|
};
|
|
66
72
|
//# sourceMappingURL=oauth.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.types.d.ts","sourceRoot":"","sources":["../src/oauth.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAU1D,MAAM,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IAEV,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAEhC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IAEpC,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAA;IAKtB,SAAS,EAAE,MAAM,CAAA;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc,CAAC,EAAE,MAAM,CAAA;IAMvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAE/C,KAAK,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAC5B,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth.types.d.ts","sourceRoot":"","sources":["../src/oauth.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ let MemoryOAuthCodeStore = class MemoryOAuthCodeStore {
|
|
|
17
17
|
if (!transaction) {
|
|
18
18
|
return null;
|
|
19
19
|
}
|
|
20
|
-
if (transaction.
|
|
20
|
+
if (transaction.expires_at <= Date.now()) {
|
|
21
21
|
this.transactions.delete(id);
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
@@ -33,7 +33,7 @@ let MemoryOAuthCodeStore = class MemoryOAuthCodeStore {
|
|
|
33
33
|
async takeCode(code) {
|
|
34
34
|
const found = this.codes.get(code);
|
|
35
35
|
this.codes.delete(code);
|
|
36
|
-
if (!found || found.
|
|
36
|
+
if (!found || found.expires_at <= Date.now()) {
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
39
39
|
return found;
|
|
@@ -41,12 +41,12 @@ let MemoryOAuthCodeStore = class MemoryOAuthCodeStore {
|
|
|
41
41
|
sweep() {
|
|
42
42
|
const now = Date.now();
|
|
43
43
|
for (const [id, transaction] of this.transactions) {
|
|
44
|
-
if (transaction.
|
|
44
|
+
if (transaction.expires_at <= now) {
|
|
45
45
|
this.transactions.delete(id);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
for (const [value, code] of this.codes) {
|
|
49
|
-
if (code.
|
|
49
|
+
if (code.expires_at <= now) {
|
|
50
50
|
this.codes.delete(value);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-code-store.js","sourceRoot":"","sources":["../../src/store/memory-code-store.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAqBpC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACf,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAA;IAClD,KAAK,GAAG,IAAI,GAAG,EAAkC,CAAA;IAElE,KAAK,CAAC,eAAe,CAAC,WAA6B;QAClD,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"memory-code-store.js","sourceRoot":"","sources":["../../src/store/memory-code-store.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAqBpC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACf,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAA;IAClD,KAAK,GAAG,IAAI,GAAG,EAAkC,CAAA;IAElE,KAAK,CAAC,eAAe,CAAC,WAA6B;QAClD,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAE5B,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,OAAO,WAAW,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QACjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA4B;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAIlC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAEvB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAEO,KAAK;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,IAAI,WAAW,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC7B,CAAC;QACF,CAAC;QAED,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;QACF,CAAC;IACF,CAAC;CACD,CAAA;AA/DY,oBAAoB;IADhC,UAAU,EAAE;GACA,oBAAoB,CA+DhC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@turystack/nestjs-oauth",
|
|
3
3
|
"description": "Authorization Code + PKCE authorization server for NestJS, issuing sessions as httpOnly cookies.",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "1.0
|
|
5
|
+
"version": "1.1.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"main": "./dist/index.js",
|
|
@@ -31,8 +31,9 @@
|
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@nestjs/common": "^11.0.0",
|
|
33
33
|
"@nestjs/core": "^11.0.0",
|
|
34
|
+
"@turystack/exceptions": "^1.1.0",
|
|
34
35
|
"@turystack/nestjs-config": "^1.0.0",
|
|
35
|
-
"@turystack/nestjs-
|
|
36
|
+
"@turystack/nestjs-access": "^1.2.0",
|
|
36
37
|
"@turystack/nestjs-server": "^1.0.0",
|
|
37
38
|
"reflect-metadata": "^0.2.0",
|
|
38
39
|
"zod": "^4.0.0"
|
|
@@ -42,9 +43,10 @@
|
|
|
42
43
|
"@nestjs/common": "^11.0.0",
|
|
43
44
|
"@nestjs/core": "^11.0.0",
|
|
44
45
|
"@nestjs/testing": "^11.0.0",
|
|
46
|
+
"@turystack/exceptions": "^1.1.0",
|
|
45
47
|
"@turystack/nestjs-config": "^1.0.0",
|
|
46
|
-
"@turystack/nestjs-
|
|
47
|
-
"@turystack/nestjs-server": "^1.
|
|
48
|
+
"@turystack/nestjs-access": "^1.2.0",
|
|
49
|
+
"@turystack/nestjs-server": "^1.3.0",
|
|
48
50
|
"@types/node": "^25.5.0",
|
|
49
51
|
"@vitest/coverage-v8": "^4.1.10",
|
|
50
52
|
"reflect-metadata": "^0.2.2",
|