@ambushsoftworks/nestjs-auth-graphql 0.6.7 → 0.7.2
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 +85 -1
- package/dist/auth.module.d.ts +5 -2
- package/dist/auth.module.d.ts.map +1 -1
- package/dist/auth.module.js +13 -0
- package/dist/auth.module.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/decorators/current-realm.decorator.d.ts +2 -0
- package/dist/decorators/current-realm.decorator.d.ts.map +1 -0
- package/dist/decorators/current-realm.decorator.js +10 -0
- package/dist/decorators/current-realm.decorator.js.map +1 -0
- package/dist/dto/jwt-payload.interface.d.ts +1 -0
- package/dist/dto/jwt-payload.interface.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/jwt-payload-factory.interface.d.ts +1 -0
- package/dist/interfaces/jwt-payload-factory.interface.d.ts.map +1 -1
- package/dist/interfaces/realm-extractor.interface.d.ts +4 -0
- package/dist/interfaces/realm-extractor.interface.d.ts.map +1 -0
- package/dist/interfaces/realm-extractor.interface.js +3 -0
- package/dist/interfaces/realm-extractor.interface.js.map +1 -0
- package/dist/interfaces/user-repository.interface.d.ts +6 -5
- package/dist/interfaces/user-repository.interface.d.ts.map +1 -1
- package/dist/middleware/realm.middleware.d.ts +8 -0
- package/dist/middleware/realm.middleware.d.ts.map +1 -0
- package/dist/middleware/realm.middleware.js +41 -0
- package/dist/middleware/realm.middleware.js.map +1 -0
- package/dist/resolvers/base-auth.resolver.d.ts +4 -3
- package/dist/resolvers/base-auth.resolver.d.ts.map +1 -1
- package/dist/resolvers/base-auth.resolver.js +24 -12
- package/dist/resolvers/base-auth.resolver.js.map +1 -1
- package/dist/resolvers/oauth.controller.d.ts.map +1 -1
- package/dist/resolvers/oauth.controller.js +7 -4
- package/dist/resolvers/oauth.controller.js.map +1 -1
- package/dist/services/auth.service.d.ts +10 -10
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +50 -47
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/brute-force-protection.service.d.ts +4 -4
- package/dist/services/brute-force-protection.service.d.ts.map +1 -1
- package/dist/services/brute-force-protection.service.js +8 -8
- package/dist/services/brute-force-protection.service.js.map +1 -1
- package/dist/services/default-jwt-payload-factory.d.ts +1 -0
- package/dist/services/default-jwt-payload-factory.d.ts.map +1 -1
- package/dist/services/default-jwt-payload-factory.js +5 -1
- package/dist/services/default-jwt-payload-factory.js.map +1 -1
- package/dist/services/verification.service.d.ts +7 -7
- package/dist/services/verification.service.d.ts.map +1 -1
- package/dist/services/verification.service.js +17 -17
- package/dist/services/verification.service.js.map +1 -1
- package/dist/strategies/jwt.strategy.d.ts +3 -1
- package/dist/strategies/jwt.strategy.d.ts.map +1 -1
- package/dist/strategies/jwt.strategy.js +10 -1
- package/dist/strategies/jwt.strategy.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @ambushsoftworks/nestjs-auth-graphql
|
|
2
2
|
|
|
3
|
-
Production-grade authentication module for NestJS GraphQL + REST APIs. JWT, cookie auth, multi-tenancy, OAuth, email verification, and more -- with zero database coupling.
|
|
3
|
+
Production-grade authentication module for NestJS GraphQL + REST APIs. JWT, cookie auth, multi-tenancy, realm-based identity isolation, OAuth, email verification, and more -- with zero database coupling.
|
|
4
4
|
|
|
5
5
|
## Table of Contents
|
|
6
6
|
|
|
@@ -11,6 +11,7 @@ Production-grade authentication module for NestJS GraphQL + REST APIs. JWT, cook
|
|
|
11
11
|
- [Features](#features)
|
|
12
12
|
- [Cookie Authentication](#cookie-authentication)
|
|
13
13
|
- [Multi-Tenancy](#multi-tenancy)
|
|
14
|
+
- [Realm-Based Identity Isolation](#realm-based-identity-isolation)
|
|
14
15
|
- [API Key Authentication](#api-key-authentication)
|
|
15
16
|
- [Email System](#email-system)
|
|
16
17
|
- [Verification Modes](#verification-modes)
|
|
@@ -397,6 +398,84 @@ For resource-scoped permissions, combine with `@ResourceScope()` and provide an
|
|
|
397
398
|
async updateClient(@Args('clientId') clientId: string) { /* ... */ }
|
|
398
399
|
```
|
|
399
400
|
|
|
401
|
+
### Realm-Based Identity Isolation
|
|
402
|
+
|
|
403
|
+
Realms partition the user identity space so that users in one realm are completely invisible to another. The same email address can exist independently in different realms, each with its own password, tokens, and verification state. This is useful for white-label platforms, multi-brand businesses, and franchise systems.
|
|
404
|
+
|
|
405
|
+
Realms are opt-in: provide a `realmExtractorInstance` in `AuthModuleOptions`. No separate feature flag is needed. When not provided, everything works exactly as before.
|
|
406
|
+
|
|
407
|
+
**Implement `IRealmExtractor`:**
|
|
408
|
+
|
|
409
|
+
```typescript
|
|
410
|
+
import { Injectable } from '@nestjs/common';
|
|
411
|
+
import { IRealmExtractor } from '@ambushsoftworks/nestjs-auth-graphql';
|
|
412
|
+
|
|
413
|
+
@Injectable()
|
|
414
|
+
export class HostnameRealmExtractor implements IRealmExtractor {
|
|
415
|
+
extractRealm(request: Record<string, any>): string | null {
|
|
416
|
+
const host = request.headers?.host;
|
|
417
|
+
if (!host) return null;
|
|
418
|
+
// e.g., "acme.example.com" -> "acme"
|
|
419
|
+
const subdomain = host.split('.')[0];
|
|
420
|
+
return subdomain || null;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**Register the module with realm support:**
|
|
426
|
+
|
|
427
|
+
```typescript
|
|
428
|
+
AuthModule.forRootAsync({
|
|
429
|
+
imports: [ConfigModule, DatabaseModule],
|
|
430
|
+
inject: [UsersRepository, RefreshTokenRepository, HostnameRealmExtractor, ConfigService],
|
|
431
|
+
useFactory: (usersRepo, tokenRepo, realmExtractor, config) => ({
|
|
432
|
+
userRepositoryInstance: usersRepo,
|
|
433
|
+
refreshTokenRepositoryInstance: tokenRepo,
|
|
434
|
+
jwtSecret: config.get('JWT_SECRET'),
|
|
435
|
+
realmExtractorInstance: realmExtractor,
|
|
436
|
+
}),
|
|
437
|
+
})
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
`RealmMiddleware` is automatically registered by `AuthModule` — no manual middleware registration needed. When a `realmExtractorInstance` is provided, the middleware calls `extractor.extractRealm(request)` on every request before any guards run. If the extractor returns `null`, the request is rejected with `400 Bad Request` (strict mode).
|
|
441
|
+
|
|
442
|
+
**Use `@CurrentRealm()` in resolvers:**
|
|
443
|
+
|
|
444
|
+
```typescript
|
|
445
|
+
import { CurrentRealm } from '@ambushsoftworks/nestjs-auth-graphql';
|
|
446
|
+
|
|
447
|
+
@Resolver()
|
|
448
|
+
export class AuthResolver extends BaseAuthResolver<User> {
|
|
449
|
+
@Mutation(() => AuthResponse)
|
|
450
|
+
async signup(
|
|
451
|
+
@Args('input') input: SignupInput,
|
|
452
|
+
@CurrentRealm() realm: string,
|
|
453
|
+
@Context() ctx: any,
|
|
454
|
+
) {
|
|
455
|
+
return this.performSignup(input, ctx);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
`BaseAuthResolver` automatically extracts the realm from the GraphQL context via `getRealmFromContext()` and passes it to all service methods. Repository identity-resolution methods (`findByEmail`, `findByPhoneNumber`, `findByOAuthProvider`, `create`) receive the realm as a parameter so your implementation can scope queries accordingly.
|
|
461
|
+
|
|
462
|
+
**JWT realm validation:** The JWT payload includes a `realm` claim. On subsequent requests, `JwtStrategy` validates that the realm in the token matches the realm resolved from the current request. A mismatch results in `401 Unauthorized`.
|
|
463
|
+
|
|
464
|
+
**Rate limiter scoping:** When realms are enabled, rate limiter keys are automatically prefixed with the realm to prevent cross-realm interference (e.g., a lockout in realm A does not affect realm B).
|
|
465
|
+
|
|
466
|
+
**Realms vs. Multi-Tenancy:**
|
|
467
|
+
|
|
468
|
+
| Concern | Realms | Multi-Tenancy |
|
|
469
|
+
|---------|--------|---------------|
|
|
470
|
+
| Partitions | Identity (who the user _is_) | Authorization (what the user _can access_) |
|
|
471
|
+
| Scope | User signup, login, tokens, verification | Permissions, resources, team membership |
|
|
472
|
+
| Same email in multiple? | Yes -- fully independent users | Yes -- same user, different tenant contexts |
|
|
473
|
+
| Guard layer | Middleware (before guards) | Guard (`TenantGuard`, after auth) |
|
|
474
|
+
|
|
475
|
+
Realms and multi-tenancy are orthogonal and can be used together. For example, a white-label SaaS platform might use realms to isolate brand identities and tenancy to manage organizations within each brand.
|
|
476
|
+
|
|
477
|
+
**Note:** Deprecated OAuth controller methods are not realm-aware. Use the current `BaseAuthResolver` OAuth methods for realm-scoped OAuth flows.
|
|
478
|
+
|
|
400
479
|
### API Key Authentication
|
|
401
480
|
|
|
402
481
|
For machine-to-machine auth, provide an `IApiKeyRepository`:
|
|
@@ -695,6 +774,7 @@ When `email` is provided, it takes precedence over `emailServiceInstance`.
|
|
|
695
774
|
| `jwtPayloadFactoryInstance` | `IJwtPayloadFactory` | `DefaultJwtPayloadFactory` |
|
|
696
775
|
| `apiKeyRepositoryInstance` | `IApiKeyRepository` | `null` |
|
|
697
776
|
| `rateLimiterInstance` | `IRateLimiter` | `InMemoryRateLimiterService` |
|
|
777
|
+
| `realmExtractorInstance` | `IRealmExtractor` | `null` (realms disabled) |
|
|
698
778
|
|
|
699
779
|
---
|
|
700
780
|
|
|
@@ -708,6 +788,7 @@ When `email` is provided, it takes precedence over `emailServiceInstance`.
|
|
|
708
788
|
| `@RequirePermissions('p1', 'p2')` | Method/Class | Require specific permissions |
|
|
709
789
|
| `@CurrentUser()` | Parameter | Inject authenticated user |
|
|
710
790
|
| `@CurrentTenant()` | Parameter | Inject resolved tenant context |
|
|
791
|
+
| `@CurrentRealm()` | Parameter | Inject resolved realm from request context |
|
|
711
792
|
| `@ResourceScope('resourceType', 'argName')` | Method | Resource-level permission scoping |
|
|
712
793
|
|
|
713
794
|
## Guards
|
|
@@ -722,6 +803,8 @@ When `email` is provided, it takes precedence over `emailServiceInstance`.
|
|
|
722
803
|
|
|
723
804
|
### Recommended Guard Chains
|
|
724
805
|
|
|
806
|
+
When realm support is enabled, `RealmMiddleware` runs before all guards (as NestJS middleware) and attaches the resolved realm to `request._realm`. It is registered automatically by `AuthModule` -- see [Realm-Based Identity Isolation](#realm-based-identity-isolation).
|
|
807
|
+
|
|
725
808
|
```typescript
|
|
726
809
|
// JWT only
|
|
727
810
|
{ provide: APP_GUARD, useClass: createAuthGuard(['jwt'], { allowPublic: true }) }
|
|
@@ -769,6 +852,7 @@ export class CustomGuard implements CanActivate {
|
|
|
769
852
|
- **Stateless CSRF protection** for OAuth flows via `OAuthStateService`
|
|
770
853
|
- **`__Host-` cookie prefix** support for enhanced cookie security
|
|
771
854
|
- **Separate HMAC secrets** for refresh tokens, verification codes, and OAuth state
|
|
855
|
+
- **Realm-based identity isolation** with JWT realm claim validation and realm-scoped rate limiting
|
|
772
856
|
|
|
773
857
|
## License
|
|
774
858
|
|
package/dist/auth.module.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DynamicModule } from '@nestjs/common';
|
|
1
|
+
import { DynamicModule, MiddlewareConsumer, NestModule } from '@nestjs/common';
|
|
2
2
|
import { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
3
3
|
import { IUserRepository } from './interfaces/user-repository.interface';
|
|
4
4
|
import { IEmailService } from './interfaces/email-service.interface';
|
|
@@ -11,6 +11,7 @@ import { IBiometricRepository } from './interfaces/biometric-repository.interfac
|
|
|
11
11
|
import { IAuthLogger } from './interfaces/auth-logger.interface';
|
|
12
12
|
import { ITenantRepository } from './interfaces/tenant-repository.interface';
|
|
13
13
|
import { ITenantExtractor } from './interfaces/tenant-extractor.interface';
|
|
14
|
+
import { IRealmExtractor } from './interfaces/realm-extractor.interface';
|
|
14
15
|
import { IResourcePermissionRepository } from './interfaces/resource-permission-repository.interface';
|
|
15
16
|
import { IJwtPayloadFactory } from './interfaces/jwt-payload-factory.interface';
|
|
16
17
|
import { IApiKeyRepository } from './interfaces/api-key-repository.interface';
|
|
@@ -46,6 +47,7 @@ export interface AuthModuleOptions {
|
|
|
46
47
|
nodeEnv?: string;
|
|
47
48
|
tenantRepositoryInstance?: ITenantRepository;
|
|
48
49
|
tenantExtractorInstance?: ITenantExtractor;
|
|
50
|
+
realmExtractorInstance?: IRealmExtractor;
|
|
49
51
|
resourcePermissionRepositoryInstance?: IResourcePermissionRepository;
|
|
50
52
|
jwtPayloadFactoryInstance?: IJwtPayloadFactory;
|
|
51
53
|
apiKeyRepositoryInstance?: IApiKeyRepository;
|
|
@@ -118,7 +120,8 @@ export interface AuthModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'>
|
|
|
118
120
|
inject?: any[];
|
|
119
121
|
}
|
|
120
122
|
export { AUTH_MODULE_OPTIONS, USER_REPOSITORY, REFRESH_TOKEN_REPOSITORY, EMAIL_SERVICE, SMS_SERVICE, AUTH_LIFECYCLE_HOOKS, VERIFICATION_REPOSITORY, BRUTE_FORCE_REPOSITORY, BIOMETRIC_REPOSITORY, AUTH_LOGGER, RATE_LIMITER, TENANT_REPOSITORY, TENANT_EXTRACTOR, RESOURCE_PERMISSION_REPOSITORY, JWT_PAYLOAD_FACTORY, API_KEY_REPOSITORY, } from './constants';
|
|
121
|
-
export declare class AuthModule {
|
|
123
|
+
export declare class AuthModule implements NestModule {
|
|
124
|
+
configure(consumer: MiddlewareConsumer): void;
|
|
122
125
|
static forRootAsync(options: AuthModuleAsyncOptions): DynamicModule;
|
|
123
126
|
}
|
|
124
127
|
//# sourceMappingURL=auth.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.module.js
CHANGED
|
@@ -9,6 +9,7 @@ var AuthModule_1;
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.AuthModule = exports.API_KEY_REPOSITORY = exports.JWT_PAYLOAD_FACTORY = exports.RESOURCE_PERMISSION_REPOSITORY = exports.TENANT_EXTRACTOR = exports.TENANT_REPOSITORY = exports.RATE_LIMITER = exports.AUTH_LOGGER = exports.BIOMETRIC_REPOSITORY = exports.BRUTE_FORCE_REPOSITORY = exports.VERIFICATION_REPOSITORY = exports.AUTH_LIFECYCLE_HOOKS = exports.SMS_SERVICE = exports.EMAIL_SERVICE = exports.REFRESH_TOKEN_REPOSITORY = exports.USER_REPOSITORY = exports.AUTH_MODULE_OPTIONS = void 0;
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
|
+
const realm_middleware_1 = require("./middleware/realm.middleware");
|
|
12
13
|
const jwt_1 = require("@nestjs/jwt");
|
|
13
14
|
const passport_1 = require("@nestjs/passport");
|
|
14
15
|
const auth_service_1 = require("./services/auth.service");
|
|
@@ -58,6 +59,9 @@ Object.defineProperty(exports, "RESOURCE_PERMISSION_REPOSITORY", { enumerable: t
|
|
|
58
59
|
Object.defineProperty(exports, "JWT_PAYLOAD_FACTORY", { enumerable: true, get: function () { return constants_2.JWT_PAYLOAD_FACTORY; } });
|
|
59
60
|
Object.defineProperty(exports, "API_KEY_REPOSITORY", { enumerable: true, get: function () { return constants_2.API_KEY_REPOSITORY; } });
|
|
60
61
|
let AuthModule = AuthModule_1 = class AuthModule {
|
|
62
|
+
configure(consumer) {
|
|
63
|
+
consumer.apply(realm_middleware_1.RealmMiddleware).forRoutes('*');
|
|
64
|
+
}
|
|
61
65
|
static forRootAsync(options) {
|
|
62
66
|
const optionsProvider = {
|
|
63
67
|
provide: constants_1.AUTH_MODULE_OPTIONS,
|
|
@@ -209,6 +213,13 @@ let AuthModule = AuthModule_1 = class AuthModule {
|
|
|
209
213
|
return opts.tenantExtractorInstance || null;
|
|
210
214
|
},
|
|
211
215
|
},
|
|
216
|
+
{
|
|
217
|
+
provide: constants_1.REALM_EXTRACTOR,
|
|
218
|
+
inject: [constants_1.AUTH_MODULE_OPTIONS],
|
|
219
|
+
useFactory: (opts) => {
|
|
220
|
+
return opts.realmExtractorInstance || null;
|
|
221
|
+
},
|
|
222
|
+
},
|
|
212
223
|
{
|
|
213
224
|
provide: constants_1.RESOURCE_PERMISSION_REPOSITORY,
|
|
214
225
|
inject: [constants_1.AUTH_MODULE_OPTIONS],
|
|
@@ -297,6 +308,7 @@ let AuthModule = AuthModule_1 = class AuthModule {
|
|
|
297
308
|
return new api_key_strategy_1.ApiKeyStrategy(options.apiKeyRepositoryInstance);
|
|
298
309
|
},
|
|
299
310
|
},
|
|
311
|
+
realm_middleware_1.RealmMiddleware,
|
|
300
312
|
tenant_guard_1.TenantGuard,
|
|
301
313
|
permission_guard_1.PermissionGuard,
|
|
302
314
|
],
|
|
@@ -316,6 +328,7 @@ let AuthModule = AuthModule_1 = class AuthModule {
|
|
|
316
328
|
constants_1.REFRESH_TOKEN_REPOSITORY,
|
|
317
329
|
constants_1.TENANT_REPOSITORY,
|
|
318
330
|
constants_1.TENANT_EXTRACTOR,
|
|
331
|
+
constants_1.REALM_EXTRACTOR,
|
|
319
332
|
constants_1.RESOURCE_PERMISSION_REPOSITORY,
|
|
320
333
|
constants_1.JWT_PAYLOAD_FACTORY,
|
|
321
334
|
constants_1.API_KEY_REPOSITORY,
|
package/dist/auth.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare const RESOURCE_PERMISSION_REPOSITORY = "RESOURCE_PERMISSION_REPOS
|
|
|
15
15
|
export declare const JWT_PAYLOAD_FACTORY = "JWT_PAYLOAD_FACTORY";
|
|
16
16
|
export declare const API_KEY_REPOSITORY = "API_KEY_REPOSITORY";
|
|
17
17
|
export declare const TENANT_HEADER_NAME = "TENANT_HEADER_NAME";
|
|
18
|
+
export declare const REALM_EXTRACTOR = "REALM_EXTRACTOR";
|
|
18
19
|
export declare const PERMISSIONS_KEY = "permissions";
|
|
19
20
|
export declare const SKIP_TENANT_KEY = "skipTenant";
|
|
20
21
|
export declare const PUBLIC_ENDPOINT_KEY = "isPublicEndpoint";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAMzD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAMjD,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAMnE,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAM7C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAMzC,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAM3D,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAMjE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAM/D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAO3D,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAOzC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAU3C,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAMrD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAMnD,eAAO,MAAM,8BAA8B,mCAAmC,CAAC;AAM/E,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAMzD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAMvD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAMzD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAMjD,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAMnE,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAM7C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAMzC,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAM3D,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAMjE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAM/D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAO3D,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAOzC,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAU3C,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAMrD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAMnD,eAAO,MAAM,8BAA8B,mCAAmC,CAAC;AAM/E,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAMzD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAMvD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAWvD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAOjD,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAG7C,eAAO,MAAM,eAAe,eAAe,CAAC;AAG5C,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAGtD,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAUlD,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAM7D,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAMrE,eAAO,MAAM,qBAAqB,0BAA0B,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.USER_REPOSITORY_PHONE = exports.USER_REPOSITORY_BIOMETRIC = exports.USER_REPOSITORY_OAUTH = exports.RESOURCE_SCOPE_KEY = exports.PUBLIC_ENDPOINT_KEY = exports.SKIP_TENANT_KEY = exports.PERMISSIONS_KEY = exports.TENANT_HEADER_NAME = exports.API_KEY_REPOSITORY = exports.JWT_PAYLOAD_FACTORY = exports.RESOURCE_PERMISSION_REPOSITORY = exports.TENANT_EXTRACTOR = exports.TENANT_REPOSITORY = exports.RATE_LIMITER = exports.AUTH_LOGGER = exports.BIOMETRIC_REPOSITORY = exports.BRUTE_FORCE_REPOSITORY = exports.VERIFICATION_REPOSITORY = exports.AUTH_LIFECYCLE_HOOKS = exports.SMS_SERVICE = exports.EMAIL_SERVICE = exports.REFRESH_TOKEN_REPOSITORY = exports.USER_REPOSITORY = exports.AUTH_MODULE_OPTIONS = void 0;
|
|
3
|
+
exports.USER_REPOSITORY_PHONE = exports.USER_REPOSITORY_BIOMETRIC = exports.USER_REPOSITORY_OAUTH = exports.RESOURCE_SCOPE_KEY = exports.PUBLIC_ENDPOINT_KEY = exports.SKIP_TENANT_KEY = exports.PERMISSIONS_KEY = exports.REALM_EXTRACTOR = exports.TENANT_HEADER_NAME = exports.API_KEY_REPOSITORY = exports.JWT_PAYLOAD_FACTORY = exports.RESOURCE_PERMISSION_REPOSITORY = exports.TENANT_EXTRACTOR = exports.TENANT_REPOSITORY = exports.RATE_LIMITER = exports.AUTH_LOGGER = exports.BIOMETRIC_REPOSITORY = exports.BRUTE_FORCE_REPOSITORY = exports.VERIFICATION_REPOSITORY = exports.AUTH_LIFECYCLE_HOOKS = exports.SMS_SERVICE = exports.EMAIL_SERVICE = exports.REFRESH_TOKEN_REPOSITORY = exports.USER_REPOSITORY = exports.AUTH_MODULE_OPTIONS = void 0;
|
|
4
4
|
exports.AUTH_MODULE_OPTIONS = 'AUTH_MODULE_OPTIONS';
|
|
5
5
|
exports.USER_REPOSITORY = 'USER_REPOSITORY';
|
|
6
6
|
exports.REFRESH_TOKEN_REPOSITORY = 'REFRESH_TOKEN_REPOSITORY';
|
|
@@ -18,6 +18,7 @@ exports.RESOURCE_PERMISSION_REPOSITORY = 'RESOURCE_PERMISSION_REPOSITORY';
|
|
|
18
18
|
exports.JWT_PAYLOAD_FACTORY = 'JWT_PAYLOAD_FACTORY';
|
|
19
19
|
exports.API_KEY_REPOSITORY = 'API_KEY_REPOSITORY';
|
|
20
20
|
exports.TENANT_HEADER_NAME = 'TENANT_HEADER_NAME';
|
|
21
|
+
exports.REALM_EXTRACTOR = 'REALM_EXTRACTOR';
|
|
21
22
|
exports.PERMISSIONS_KEY = 'permissions';
|
|
22
23
|
exports.SKIP_TENANT_KEY = 'skipTenant';
|
|
23
24
|
exports.PUBLIC_ENDPOINT_KEY = 'isPublicEndpoint';
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAgBa,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAM5C,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAMpC,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAMtD,QAAA,aAAa,GAAG,eAAe,CAAC;AAMhC,QAAA,WAAW,GAAG,aAAa,CAAC;AAM5B,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAM9C,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AAMpD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAMlD,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAO9C,QAAA,WAAW,GAAG,aAAa,CAAC;AAO5B,QAAA,YAAY,GAAG,cAAc,CAAC;AAU9B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAMxC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAMtC,QAAA,8BAA8B,GAAG,gCAAgC,CAAC;AAMlE,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAM5C,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAM1C,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAgBa,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAM5C,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAMpC,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAMtD,QAAA,aAAa,GAAG,eAAe,CAAC;AAMhC,QAAA,WAAW,GAAG,aAAa,CAAC;AAM5B,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAM9C,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AAMpD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAMlD,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAO9C,QAAA,WAAW,GAAG,aAAa,CAAC;AAO5B,QAAA,YAAY,GAAG,cAAc,CAAC;AAU9B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAMxC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAMtC,QAAA,8BAA8B,GAAG,gCAAgC,CAAC;AAMlE,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAM5C,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAM1C,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAW1C,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAOpC,QAAA,eAAe,GAAG,aAAa,CAAC;AAGhC,QAAA,eAAe,GAAG,YAAY,CAAC;AAG/B,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AAGzC,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAUrC,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAMhD,QAAA,yBAAyB,GAAG,2BAA2B,CAAC;AAMxD,QAAA,qBAAqB,GAAG,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current-realm.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/current-realm.decorator.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,YAAY,mDAKxB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CurrentRealm = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
+
exports.CurrentRealm = (0, common_1.createParamDecorator)((_data, context) => {
|
|
7
|
+
const ctx = graphql_1.GqlExecutionContext.create(context);
|
|
8
|
+
return ctx.getContext().req._realm;
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=current-realm.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current-realm.decorator.js","sourceRoot":"","sources":["../../src/decorators/current-realm.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AACxE,6CAAsD;AAiBzC,QAAA,YAAY,GAAG,IAAA,6BAAoB,EAC9C,CAAC,KAAc,EAAE,OAAyB,EAAsB,EAAE;IAChE,MAAM,GAAG,GAAG,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;AACrC,CAAC,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-payload.interface.d.ts","sourceRoot":"","sources":["../../src/dto/jwt-payload.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"jwt-payload.interface.d.ts","sourceRoot":"","sources":["../../src/dto/jwt-payload.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export * from './interfaces/password-reset-strategy.interface';
|
|
|
17
17
|
export * from './interfaces/magic-link-repository.interface';
|
|
18
18
|
export * from './interfaces/tenant-repository.interface';
|
|
19
19
|
export * from './interfaces/tenant-extractor.interface';
|
|
20
|
+
export * from './interfaces/realm-extractor.interface';
|
|
20
21
|
export * from './interfaces/resource-permission-repository.interface';
|
|
21
22
|
export * from './interfaces/jwt-payload-factory.interface';
|
|
22
23
|
export * from './interfaces/api-key-repository.interface';
|
|
@@ -98,12 +99,14 @@ export * from './decorators/public-endpoint.decorator';
|
|
|
98
99
|
export * from './decorators/skip-tenant.decorator';
|
|
99
100
|
export * from './decorators/require-permissions.decorator';
|
|
100
101
|
export * from './decorators/current-tenant.decorator';
|
|
102
|
+
export * from './decorators/current-realm.decorator';
|
|
101
103
|
export * from './decorators/resource-scope.decorator';
|
|
102
104
|
export * from './guards/jwt-auth.guard';
|
|
103
105
|
export * from './guards/tenant.guard';
|
|
104
106
|
export * from './guards/permission.guard';
|
|
105
107
|
export * from './guards/create-auth-guard';
|
|
106
108
|
export * from './guards/csrf.guard';
|
|
109
|
+
export * from './middleware/realm.middleware';
|
|
107
110
|
export { AuthUser } from './entities/auth-user.entity';
|
|
108
111
|
export * from './exceptions/account-locked.exception';
|
|
109
112
|
export * from './exceptions/verification.exceptions';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -34,6 +34,7 @@ __exportStar(require("./interfaces/password-reset-strategy.interface"), exports)
|
|
|
34
34
|
__exportStar(require("./interfaces/magic-link-repository.interface"), exports);
|
|
35
35
|
__exportStar(require("./interfaces/tenant-repository.interface"), exports);
|
|
36
36
|
__exportStar(require("./interfaces/tenant-extractor.interface"), exports);
|
|
37
|
+
__exportStar(require("./interfaces/realm-extractor.interface"), exports);
|
|
37
38
|
__exportStar(require("./interfaces/resource-permission-repository.interface"), exports);
|
|
38
39
|
__exportStar(require("./interfaces/jwt-payload-factory.interface"), exports);
|
|
39
40
|
__exportStar(require("./interfaces/api-key-repository.interface"), exports);
|
|
@@ -114,12 +115,14 @@ __exportStar(require("./decorators/public-endpoint.decorator"), exports);
|
|
|
114
115
|
__exportStar(require("./decorators/skip-tenant.decorator"), exports);
|
|
115
116
|
__exportStar(require("./decorators/require-permissions.decorator"), exports);
|
|
116
117
|
__exportStar(require("./decorators/current-tenant.decorator"), exports);
|
|
118
|
+
__exportStar(require("./decorators/current-realm.decorator"), exports);
|
|
117
119
|
__exportStar(require("./decorators/resource-scope.decorator"), exports);
|
|
118
120
|
__exportStar(require("./guards/jwt-auth.guard"), exports);
|
|
119
121
|
__exportStar(require("./guards/tenant.guard"), exports);
|
|
120
122
|
__exportStar(require("./guards/permission.guard"), exports);
|
|
121
123
|
__exportStar(require("./guards/create-auth-guard"), exports);
|
|
122
124
|
__exportStar(require("./guards/csrf.guard"), exports);
|
|
125
|
+
__exportStar(require("./middleware/realm.middleware"), exports);
|
|
123
126
|
var auth_user_entity_1 = require("./entities/auth-user.entity");
|
|
124
127
|
Object.defineProperty(exports, "AuthUser", { enumerable: true, get: function () { return auth_user_entity_1.AuthUser; } });
|
|
125
128
|
__exportStar(require("./exceptions/account-locked.exception"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAYA,gDAA8B;AAC9B,8CAA4B;AAK5B,mEAAiD;AACjD,yEAAuD;AACvD,uEAAqD;AACrD,qEAAmD;AACnD,8EAA4D;AAC5D,yEAAuD;AACvD,kFAAgE;AAChE,qEAAmD;AACnD,iFAA+D;AAC/D,gFAA8D;AAC9D,8EAA4D;AAC5D,gFAA8D;AAC9D,sEAAoD;AACpD,iFAA+D;AAC/D,+EAA6D;AAC7D,2EAAyD;AACzD,0EAAwD;AACxD,wFAAsE;AACtE,6EAA2D;AAC3D,4EAA0D;AAC1D,iFAA+D;AAC/D,sEAAoD;AACpD,+EAA6D;AAK7D,0DAAwC;AACxC,mEAAiD;AACjD,kEAAgD;AAChD,gEAA8C;AAC9C,iEAA+C;AAC/C,4EAA0D;AAE1D,oEAAkD;AAElD,4EAA0D;AAC1D,yEAAuD;AACvD,yEAAuD;AACvD,4EAA0D;AAC1D,yEAAuD;AACvD,qEAAmD;AACnD,6EAA2D;AAC3D,wEAAsD;AAKtD,oEAAkD;AAClD,gEAA8C;AAC9C,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAClD,mEAAiD;AACjD,iEAA+C;AAC/C,+DAA6C;AAK7C,8EAA4D;AAC5D,6EAA2D;AAC3D,2EAAyD;AACzD,mEAAiD;AACjD,4EAA0D;AAC1D,wEAAsD;AACtD,uEAAqD;AAKrD,4DAA0C;AAC1C,+DAA6C;AAC7C,iEAA+C;AAC/C,oEAAkD;AAClD,sEAAoD;AACpD,gEAA8C;AAC9C,0EAAwD;AACxD,mEAAiD;AAKjD,iEAA+C;AAG/C,+DAA6C;AAM7C,oDAAkC;AAClC,qDAAmC;AACnC,4DAA0C;AAC1C,qDAAmC;AACnC,4DAA0C;AAC1C,2DAAyC;AACzC,kEAAgD;AAChD,sEAAoD;AACpD,2DAAyC;AACzC,wEAAsD;AACtD,sEAAoD;AACpD,kEAAgD;AAChD,uEAAqD;AACrD,oEAAkD;AAClD,2EAAyD;AACzD,gEAA8C;AAC9C,8DAA4C;AAC5C,6DAA2C;AAC3C,+DAA6C;AAC7C,+DAA6C;AAC7C,yEAAuD;AACvD,iEAA+C;AAC/C,gEAA8C;AAC9C,6EAA2D;AAC3D,8DAA4C;AAC5C,qEAAmD;AACnD,6DAA2C;AAC3C,oEAAkD;AAKlD,sEAAoD;AACpD,gEAA8C;AAC9C,yEAAuD;AACvD,qEAAmD;AACnD,6EAA2D;AAC3D,wEAAsD;AACtD,wEAAsD;AAKtD,0DAAwC;AACxC,wDAAsC;AACtC,4DAA0C;AAC1C,6DAA2C;AAC3C,sDAAoC;AAKpC,gEAAuD;AAA9C,4GAAA,QAAQ,OAAA;AAKjB,wEAAsD;AACtD,uEAAqD;AACrD,gEAA8C;AAC9C,yEAAuD;AAKvD,iEAA+C;AAK/C,sDAAoC;AAKpC,2DAAyC;AACzC,yDAAuC;AACvC,sDAAoC;AACpC,4DAA0C;AAC1C,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAYA,gDAA8B;AAC9B,8CAA4B;AAK5B,mEAAiD;AACjD,yEAAuD;AACvD,uEAAqD;AACrD,qEAAmD;AACnD,8EAA4D;AAC5D,yEAAuD;AACvD,kFAAgE;AAChE,qEAAmD;AACnD,iFAA+D;AAC/D,gFAA8D;AAC9D,8EAA4D;AAC5D,gFAA8D;AAC9D,sEAAoD;AACpD,iFAA+D;AAC/D,+EAA6D;AAC7D,2EAAyD;AACzD,0EAAwD;AACxD,yEAAuD;AACvD,wFAAsE;AACtE,6EAA2D;AAC3D,4EAA0D;AAC1D,iFAA+D;AAC/D,sEAAoD;AACpD,+EAA6D;AAK7D,0DAAwC;AACxC,mEAAiD;AACjD,kEAAgD;AAChD,gEAA8C;AAC9C,iEAA+C;AAC/C,4EAA0D;AAE1D,oEAAkD;AAElD,4EAA0D;AAC1D,yEAAuD;AACvD,yEAAuD;AACvD,4EAA0D;AAC1D,yEAAuD;AACvD,qEAAmD;AACnD,6EAA2D;AAC3D,wEAAsD;AAKtD,oEAAkD;AAClD,gEAA8C;AAC9C,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAClD,mEAAiD;AACjD,iEAA+C;AAC/C,+DAA6C;AAK7C,8EAA4D;AAC5D,6EAA2D;AAC3D,2EAAyD;AACzD,mEAAiD;AACjD,4EAA0D;AAC1D,wEAAsD;AACtD,uEAAqD;AAKrD,4DAA0C;AAC1C,+DAA6C;AAC7C,iEAA+C;AAC/C,oEAAkD;AAClD,sEAAoD;AACpD,gEAA8C;AAC9C,0EAAwD;AACxD,mEAAiD;AAKjD,iEAA+C;AAG/C,+DAA6C;AAM7C,oDAAkC;AAClC,qDAAmC;AACnC,4DAA0C;AAC1C,qDAAmC;AACnC,4DAA0C;AAC1C,2DAAyC;AACzC,kEAAgD;AAChD,sEAAoD;AACpD,2DAAyC;AACzC,wEAAsD;AACtD,sEAAoD;AACpD,kEAAgD;AAChD,uEAAqD;AACrD,oEAAkD;AAClD,2EAAyD;AACzD,gEAA8C;AAC9C,8DAA4C;AAC5C,6DAA2C;AAC3C,+DAA6C;AAC7C,+DAA6C;AAC7C,yEAAuD;AACvD,iEAA+C;AAC/C,gEAA8C;AAC9C,6EAA2D;AAC3D,8DAA4C;AAC5C,qEAAmD;AACnD,6DAA2C;AAC3C,oEAAkD;AAKlD,sEAAoD;AACpD,gEAA8C;AAC9C,yEAAuD;AACvD,qEAAmD;AACnD,6EAA2D;AAC3D,wEAAsD;AACtD,uEAAqD;AACrD,wEAAsD;AAKtD,0DAAwC;AACxC,wDAAsC;AACtC,4DAA0C;AAC1C,6DAA2C;AAC3C,sDAAoC;AAKpC,gEAA8C;AAK9C,gEAAuD;AAA9C,4GAAA,QAAQ,OAAA;AAKjB,wEAAsD;AACtD,uEAAqD;AACrD,gEAA8C;AAC9C,yEAAuD;AAKvD,iEAA+C;AAK/C,sDAAoC;AAKpC,2DAAyC;AACzC,yDAAuC;AACvC,sDAAoC;AACpC,4DAA0C;AAC1C,0DAAwC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-payload-factory.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/jwt-payload-factory.interface.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,kBAAkB;IASjC,aAAa,CACX,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,
|
|
1
|
+
{"version":3,"file":"jwt-payload-factory.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/jwt-payload-factory.interface.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,kBAAkB;IASjC,aAAa,CACX,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAClD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IAWpD,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CACrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realm-extractor.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/realm-extractor.interface.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,eAAe;IAQ9B,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CAC3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realm-extractor.interface.js","sourceRoot":"","sources":["../../src/interfaces/realm-extractor.interface.ts"],"names":[],"mappings":""}
|
|
@@ -11,11 +11,12 @@ export interface CreateUserData {
|
|
|
11
11
|
emailVerified?: boolean;
|
|
12
12
|
createdAt?: Date;
|
|
13
13
|
updatedAt?: Date;
|
|
14
|
+
realm?: string;
|
|
14
15
|
}
|
|
15
16
|
export interface IUserRepositoryCore<T extends IAuthUser = IAuthUser> {
|
|
16
|
-
findByEmail(email: string): Promise<T | null>;
|
|
17
|
+
findByEmail(email: string, realm?: string): Promise<T | null>;
|
|
17
18
|
findById(id: string): Promise<T | null>;
|
|
18
|
-
findByEmailWithRelations(email: string, relations: string[]): Promise<T | null>;
|
|
19
|
+
findByEmailWithRelations(email: string, relations: string[], realm?: string): Promise<T | null>;
|
|
19
20
|
findByIdWithRelations(id: string, relations: string[]): Promise<T | null>;
|
|
20
21
|
create(data: CreateUserData): Promise<T>;
|
|
21
22
|
update(id: string, data: Partial<T>): Promise<T>;
|
|
@@ -28,8 +29,8 @@ export interface IUserRepositoryCore<T extends IAuthUser = IAuthUser> {
|
|
|
28
29
|
delete(id: string): Promise<void>;
|
|
29
30
|
}
|
|
30
31
|
export interface IUserRepositoryOAuth<T extends IAuthUser = IAuthUser> {
|
|
31
|
-
findByOAuthProvider(provider: OAuthProviderKey, providerId: string): Promise<T | null>;
|
|
32
|
-
findByOAuthProviderWithRelations(provider: OAuthProviderKey, providerId: string, relations: string[]): Promise<T | null>;
|
|
32
|
+
findByOAuthProvider(provider: OAuthProviderKey, providerId: string, realm?: string): Promise<T | null>;
|
|
33
|
+
findByOAuthProviderWithRelations(provider: OAuthProviderKey, providerId: string, relations: string[], realm?: string): Promise<T | null>;
|
|
33
34
|
linkOAuthAccount(userId: string, provider: OAuthProviderKey, providerId: string): Promise<T>;
|
|
34
35
|
unlinkOAuthAccount(userId: string, provider: OAuthProviderKey): Promise<T>;
|
|
35
36
|
getOAuthAccounts(userId: string): Promise<OAuthAccountInfo[]>;
|
|
@@ -53,7 +54,7 @@ export interface IUserRepositoryBiometric<T extends IAuthUser = IAuthUser> {
|
|
|
53
54
|
updateLastBiometricLogin(userId: string): Promise<T>;
|
|
54
55
|
}
|
|
55
56
|
export interface IUserRepositoryPhone<T extends IAuthUser = IAuthUser> {
|
|
56
|
-
findByPhoneNumber(phoneNumber: string): Promise<T | null>;
|
|
57
|
+
findByPhoneNumber(phoneNumber: string, realm?: string): Promise<T | null>;
|
|
57
58
|
markPhoneVerified(id: string): Promise<T>;
|
|
58
59
|
}
|
|
59
60
|
export interface IUserRepository<T extends IAuthUser = IAuthUser> extends IUserRepositoryCore<T>, IUserRepositoryOAuth<T>, IUserRepositoryBiometric<T>, IUserRepositoryPhone<T> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-repository.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/user-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAK1E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"user-repository.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/user-repository.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NestMiddleware } from '@nestjs/common';
|
|
2
|
+
import { IRealmExtractor } from '../interfaces/realm-extractor.interface';
|
|
3
|
+
export declare class RealmMiddleware implements NestMiddleware {
|
|
4
|
+
private readonly realmExtractor?;
|
|
5
|
+
constructor(realmExtractor?: IRealmExtractor | undefined);
|
|
6
|
+
use(req: Record<string, any>, _res: any, next: () => void): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=realm.middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realm.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/realm.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAY1E,qBACa,eAAgB,YAAW,cAAc;IAIlD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAf,cAAc,CAAC,EAAE,eAAe,YAAA;IAGnD,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;CAajE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RealmMiddleware = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const constants_1 = require("../constants");
|
|
18
|
+
let RealmMiddleware = class RealmMiddleware {
|
|
19
|
+
constructor(realmExtractor) {
|
|
20
|
+
this.realmExtractor = realmExtractor;
|
|
21
|
+
}
|
|
22
|
+
use(req, _res, next) {
|
|
23
|
+
if (!this.realmExtractor) {
|
|
24
|
+
return next();
|
|
25
|
+
}
|
|
26
|
+
const realm = this.realmExtractor.extractRealm(req);
|
|
27
|
+
if (realm === null) {
|
|
28
|
+
throw new common_1.BadRequestException('Realm required');
|
|
29
|
+
}
|
|
30
|
+
req._realm = realm;
|
|
31
|
+
next();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.RealmMiddleware = RealmMiddleware;
|
|
35
|
+
exports.RealmMiddleware = RealmMiddleware = __decorate([
|
|
36
|
+
(0, common_1.Injectable)(),
|
|
37
|
+
__param(0, (0, common_1.Optional)()),
|
|
38
|
+
__param(0, (0, common_1.Inject)(constants_1.REALM_EXTRACTOR)),
|
|
39
|
+
__metadata("design:paramtypes", [Object])
|
|
40
|
+
], RealmMiddleware);
|
|
41
|
+
//# sourceMappingURL=realm.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realm.middleware.js","sourceRoot":"","sources":["../../src/middleware/realm.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAMwB;AAExB,4CAA+C;AAYxC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAGmB,cAAgC;QAAhC,mBAAc,GAAd,cAAc,CAAkB;IAChD,CAAC;IAEJ,GAAG,CAAC,GAAwB,EAAE,IAAS,EAAE,IAAgB;QACvD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC;QAED,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AApBY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,2BAAe,CAAC,CAAA;;GAHf,eAAe,CAoB3B"}
|
|
@@ -29,6 +29,7 @@ export declare abstract class BaseAuthResolver<T extends IAuthUser> {
|
|
|
29
29
|
protected readonly logger: Logger;
|
|
30
30
|
constructor(authService: AuthService, bruteForceProtection: BruteForceProtectionService, userRepository: IUserRepository<IAuthUser>, securityLogger: IAuthLogger);
|
|
31
31
|
protected getResponseFromContext(context: any): any | undefined;
|
|
32
|
+
protected getRealmFromContext(context: any): string | undefined;
|
|
32
33
|
protected setSecurityHeaders(context?: any): void;
|
|
33
34
|
protected buildAuthResponse(result: {
|
|
34
35
|
accessToken: string;
|
|
@@ -43,8 +44,8 @@ export declare abstract class BaseAuthResolver<T extends IAuthUser> {
|
|
|
43
44
|
protected performLogoutAll(user: T, context?: any): Promise<IAuthLogoutAllResponse>;
|
|
44
45
|
protected performCheckAccountLockStatus(email: string): Promise<IAuthAccountLockStatus>;
|
|
45
46
|
protected performVerifyEmail(input: IAuthVerifyEmailInput, context?: any): Promise<IAuthVerifyEmailResponse>;
|
|
46
|
-
protected performResendVerificationEmail(email: string): Promise<IAuthVerifyEmailResponse>;
|
|
47
|
-
protected performSendPhoneVerification(input: IAuthSendPhoneVerificationInput, user: T): Promise<IAuthPhoneVerificationResponse>;
|
|
47
|
+
protected performResendVerificationEmail(email: string, context?: any): Promise<IAuthVerifyEmailResponse>;
|
|
48
|
+
protected performSendPhoneVerification(input: IAuthSendPhoneVerificationInput, user: T, context?: any): Promise<IAuthPhoneVerificationResponse>;
|
|
48
49
|
protected performVerifyPhone(input: IAuthVerifyPhoneInput, user: T): Promise<IAuthVerifyPhoneResponse>;
|
|
49
50
|
protected performResendPhoneVerification(phoneNumber: string, user: T): Promise<IAuthPhoneVerificationResponse>;
|
|
50
51
|
protected performRemovePhoneNumber(user: T): Promise<IAuthRemovePhoneResponse>;
|
|
@@ -56,6 +57,6 @@ export declare abstract class BaseAuthResolver<T extends IAuthUser> {
|
|
|
56
57
|
message: string;
|
|
57
58
|
}>;
|
|
58
59
|
protected performGetCurrentUser(userId: string): Promise<T>;
|
|
59
|
-
protected performCompleteFacebookSignUp(input: IAuthCompleteFacebookSignUpInput): Promise<AuthResponseBase<T>>;
|
|
60
|
+
protected performCompleteFacebookSignUp(input: IAuthCompleteFacebookSignUpInput, context?: any): Promise<AuthResponseBase<T>>;
|
|
60
61
|
}
|
|
61
62
|
//# sourceMappingURL=base-auth.resolver.d.ts.map
|