@punks/backend-entity-manager 0.0.68 → 0.0.70
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/dist/cjs/index.js +58 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/app/auth/services/index.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.query.d.ts +3 -2
- package/dist/cjs/types/platforms/nest/extensions/authentication/guards/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/index.d.ts +1 -0
- package/dist/esm/index.js +60 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/index.d.ts +4 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.query.d.ts +3 -2
- package/dist/esm/types/platforms/nest/extensions/authentication/guards/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/index.d.ts +1 -0
- package/dist/index.d.ts +15 -3
- package/package.json +1 -1
- /package/dist/cjs/types/platforms/nest/{__test__/server/infrastructure/authentication/guards/auth-guard/index.d.ts → extensions/authentication/guards/auth.d.ts} +0 -0
- /package/dist/esm/types/platforms/nest/{__test__/server/infrastructure/authentication/guards/auth-guard/index.d.ts → extensions/authentication/guards/auth.d.ts} +0 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AuthRolesService } from "./auth.roles.service";
|
|
2
|
+
import { AuthUserService } from "./auth.user.service";
|
|
3
|
+
import { AuthUserRolesService } from "./auth.userRoles.service";
|
|
4
|
+
export declare const AuthServices: (typeof AuthRolesService | typeof AuthUserService | typeof AuthUserRolesService)[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FindOptionsWhere } from "typeorm";
|
|
1
|
+
import { FindOptionsRelations, FindOptionsWhere } from "typeorm";
|
|
2
2
|
import { IAuthenticationContext, EntityManagerRegistry, NestTypeOrmQueryBuilder } from "../../../../../..";
|
|
3
3
|
import { RoleEntity } from "../../database/core/entities/role.entity";
|
|
4
4
|
import { RoleFacets, RoleSearchParameters, RoleSorting } from "./role.models";
|
|
@@ -6,6 +6,7 @@ import { AppAuthContext } from "../../infrastructure/authentication/types";
|
|
|
6
6
|
export declare class RoleQueryBuilder extends NestTypeOrmQueryBuilder<RoleEntity, RoleSearchParameters, RoleSorting, RoleFacets, AppAuthContext> {
|
|
7
7
|
constructor(registry: EntityManagerRegistry);
|
|
8
8
|
protected buildContextFilter(context?: IAuthenticationContext<AppAuthContext> | undefined): FindOptionsWhere<RoleEntity> | FindOptionsWhere<RoleEntity>[];
|
|
9
|
-
protected buildWhereClause(request: RoleSearchParameters): FindOptionsWhere<RoleEntity> | FindOptionsWhere<RoleEntity>[];
|
|
9
|
+
protected buildWhereClause(request: RoleSearchParameters, context?: IAuthenticationContext<AppAuthContext> | undefined): FindOptionsWhere<RoleEntity> | FindOptionsWhere<RoleEntity>[];
|
|
10
10
|
protected calculateFacets(request: RoleSearchParameters): Promise<RoleFacets | undefined>;
|
|
11
|
+
protected getRelationsToLoad(request: RoleSearchParameters, context?: IAuthenticationContext<AppAuthContext> | undefined): FindOptionsRelations<RoleEntity> | undefined;
|
|
11
12
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AuthGuard } from "./auth";
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Log, sort, byField, toDict, newUuid as newUuid$1, removeUndefinedProps } from '@punks/backend-core';
|
|
2
|
-
import { applyDecorators, Injectable, SetMetadata, Global, Module, Scope, Logger,
|
|
2
|
+
import { applyDecorators, Injectable, SetMetadata, Global, Module, Scope, Logger, HttpException, HttpStatus } from '@nestjs/common';
|
|
3
3
|
import { ApiProperty } from '@nestjs/swagger';
|
|
4
|
+
import { Reflector } from '@nestjs/core';
|
|
4
5
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
5
6
|
import { hash } from 'bcrypt';
|
|
6
7
|
import { PATH_METADATA } from '@nestjs/common/constants';
|
|
@@ -9,7 +10,6 @@ import { MetadataScanner } from '@nestjs/core/metadata-scanner';
|
|
|
9
10
|
import { JwtService, JwtModule } from '@nestjs/jwt';
|
|
10
11
|
import { EventEmitter2, EventEmitterModule } from '@nestjs/event-emitter';
|
|
11
12
|
import { In } from 'typeorm';
|
|
12
|
-
import { Reflector } from '@nestjs/core';
|
|
13
13
|
import { SendEmailCommand, SESClient } from '@aws-sdk/client-ses';
|
|
14
14
|
import require$$2 from 'fs';
|
|
15
15
|
import { MailService } from '@sendgrid/mail';
|
|
@@ -367,6 +367,59 @@ const AuthenticationEvents = {
|
|
|
367
367
|
UserPasswordResetCompleted: `${AUTHENTICATION_EVENTS_NAMESPACE}:user.passwordResetCompleted`,
|
|
368
368
|
};
|
|
369
369
|
|
|
370
|
+
let AuthGuard = class AuthGuard {
|
|
371
|
+
constructor(reflector) {
|
|
372
|
+
this.reflector = reflector;
|
|
373
|
+
}
|
|
374
|
+
canActivate(context) {
|
|
375
|
+
const isPublic = this.getIsPublic(context);
|
|
376
|
+
if (isPublic) {
|
|
377
|
+
return true;
|
|
378
|
+
}
|
|
379
|
+
const auth = this.getCurrentAuth(context);
|
|
380
|
+
const allowedRoles = this.getAllowedRoles(context);
|
|
381
|
+
if (allowedRoles) {
|
|
382
|
+
return this.isRoleMatching(allowedRoles, auth?.roles ?? []);
|
|
383
|
+
}
|
|
384
|
+
const isForAllAuthenticated = this.getIsForAllAuthenticated(context);
|
|
385
|
+
if (isForAllAuthenticated) {
|
|
386
|
+
return !!auth?.user;
|
|
387
|
+
}
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
isRoleMatching(allowedRoles, userRoles) {
|
|
391
|
+
return userRoles.some((role) => allowedRoles.includes(role.uid));
|
|
392
|
+
}
|
|
393
|
+
getIsForAllAuthenticated(context) {
|
|
394
|
+
return this.getMetadata(AuthenticationGuardsSymbols.Authenticated, context);
|
|
395
|
+
}
|
|
396
|
+
getIsPublic(context) {
|
|
397
|
+
return this.getMetadata(AuthenticationGuardsSymbols.Public, context);
|
|
398
|
+
}
|
|
399
|
+
getAllowedRoles(context) {
|
|
400
|
+
return this.getMetadata(AuthenticationGuardsSymbols.Roles, context);
|
|
401
|
+
}
|
|
402
|
+
getCurrentAuth(context) {
|
|
403
|
+
const request = context.switchToHttp()?.getRequest();
|
|
404
|
+
return request?.auth?.user
|
|
405
|
+
? {
|
|
406
|
+
user: request.auth.user,
|
|
407
|
+
roles: request.auth.roles,
|
|
408
|
+
}
|
|
409
|
+
: undefined;
|
|
410
|
+
}
|
|
411
|
+
getMetadata(symbol, context) {
|
|
412
|
+
return this.reflector.getAllAndOverride(symbol, [
|
|
413
|
+
context.getHandler(),
|
|
414
|
+
context.getClass(),
|
|
415
|
+
]);
|
|
416
|
+
}
|
|
417
|
+
};
|
|
418
|
+
AuthGuard = __decorate([
|
|
419
|
+
Injectable(),
|
|
420
|
+
__metadata("design:paramtypes", [Reflector])
|
|
421
|
+
], AuthGuard);
|
|
422
|
+
|
|
370
423
|
const asyncLocalStorage = new AsyncLocalStorage();
|
|
371
424
|
|
|
372
425
|
let AppSessionService = class AppSessionService {
|
|
@@ -20051,6 +20104,7 @@ const ModuleData$2 = {
|
|
|
20051
20104
|
providers: [
|
|
20052
20105
|
AuthenticationServicesResolver,
|
|
20053
20106
|
AuthenticationInitializer,
|
|
20107
|
+
AuthGuard,
|
|
20054
20108
|
...Services$2,
|
|
20055
20109
|
...UserHandlers,
|
|
20056
20110
|
...AuthenticationProviders,
|
|
@@ -20341,6 +20395,9 @@ class NestTypeOrmEntitySeeder extends TypeOrmEntitySeeder {
|
|
|
20341
20395
|
|
|
20342
20396
|
class AppExceptionsFilterBase {
|
|
20343
20397
|
catch(exception, host) {
|
|
20398
|
+
if (exception instanceof HttpException) {
|
|
20399
|
+
return;
|
|
20400
|
+
}
|
|
20344
20401
|
const ctx = host.switchToHttp();
|
|
20345
20402
|
const response = ctx.getResponse();
|
|
20346
20403
|
const request = ctx.getRequest();
|
|
@@ -25590,5 +25647,5 @@ SendgridEmailModule = SendgridEmailModule_1 = __decorate([
|
|
|
25590
25647
|
})
|
|
25591
25648
|
], SendgridEmailModule);
|
|
25592
25649
|
|
|
25593
|
-
export { AUTHENTICATION_EVENTS_NAMESPACE, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsEmailModule, AwsSesEmailTemplate, BooleanFacet, BooleanFacetItem, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntitySeeder, EventsService, InvalidCredentialsError, MemberOf, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, NumericFacet, NumericFacetItem, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, PlatformEvents, Public, QueryBuilderBase, ReplicationMode, Roles, SendgridEmailModule, SendgridEmailTemplate, SortDirection, StringFacet, StringFacetItem, TrackingService, UserRegistrationError, WpAppInitializer, WpAwsSesEmailTemplate, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEventsTracker, WpRolesService, WpSendgridEmailTemplate, WpUserRolesService, WpUserService, getLocalizedText, newUuid, renderHandlebarsTemplate };
|
|
25650
|
+
export { AUTHENTICATION_EVENTS_NAMESPACE, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, AuthGuard, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsEmailModule, AwsSesEmailTemplate, BooleanFacet, BooleanFacetItem, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntitySeeder, EventsService, InvalidCredentialsError, MemberOf, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, NumericFacet, NumericFacetItem, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, PlatformEvents, Public, QueryBuilderBase, ReplicationMode, Roles, SendgridEmailModule, SendgridEmailTemplate, SortDirection, StringFacet, StringFacetItem, TrackingService, UserRegistrationError, WpAppInitializer, WpAwsSesEmailTemplate, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEventsTracker, WpRolesService, WpSendgridEmailTemplate, WpUserRolesService, WpUserService, getLocalizedText, newUuid, renderHandlebarsTemplate };
|
|
25594
25651
|
//# sourceMappingURL=index.js.map
|