-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1434 from undb-xyz/release/v0.7.1
- Loading branch information
Showing
304 changed files
with
6,624 additions
and
743 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
## v0.7.1 | ||
|
||
## v0.7.0 | ||
|
||
## v0.6.5 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,10 @@ | ||
{ | ||
"$schema": "https://json.schemastore.org/nest-cli", | ||
"collection": "@nestjs/schematics", | ||
"sourceRoot": "src" | ||
"sourceRoot": "src", | ||
"compilerOptions": { | ||
"builder": "swc", | ||
"watchAssets": true, | ||
"assets": ["**/*.hbs"] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,16 @@ | ||
import { CommandHandler } from '@nestjs/cqrs' | ||
import { type IUserRepository } from '@undb/core' | ||
import { RegisterCommand, RegisterCommandHandler } from '@undb/cqrs' | ||
import { NestMemberCreateService } from '../../authz/member/member-create.service.js' | ||
import { InjectUserRepository } from '../../core/user/adapters/index.js' | ||
|
||
@CommandHandler(RegisterCommand) | ||
export class NestRegisterCommandHandler extends RegisterCommandHandler { | ||
constructor(@InjectUserRepository() protected readonly repo: IUserRepository) { | ||
super(repo) | ||
constructor( | ||
@InjectUserRepository() | ||
protected readonly repo: IUserRepository, | ||
protected readonly memberService: NestMemberCreateService, | ||
) { | ||
super(repo, memberService) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,18 @@ | ||
import { QueryHandler } from '@nestjs/cqrs' | ||
import type { ClsStore, IClsService } from '@undb/core' | ||
import { type IUserQueryModel } from '@undb/core' | ||
import { GetMeQuery, GetMeQueryHandler } from '@undb/cqrs' | ||
import { ClsService } from 'nestjs-cls' | ||
import { InjectUserQueryModel } from '../../core/user/adapters/index.js' | ||
|
||
@QueryHandler(GetMeQuery) | ||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment | ||
// @ts-ignore | ||
export class NestGetMeQueryHandler extends GetMeQueryHandler { | ||
constructor(@InjectUserQueryModel() protected readonly rm: IUserQueryModel) { | ||
super(rm) | ||
constructor( | ||
@InjectUserQueryModel() protected readonly rm: IUserQueryModel, | ||
protected readonly cls: ClsService<ClsStore>, | ||
) { | ||
super(rm, cls as IClsService<ClsStore>) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import type { CanActivate, ExecutionContext } from '@nestjs/common' | ||
import { Injectable } from '@nestjs/common' | ||
import { Reflector } from '@nestjs/core' | ||
import type { PermissionAction } from '@undb/authz' | ||
import { NestMemberService } from './member/member.service.js' | ||
|
||
@Injectable() | ||
export class AuthzGuard implements CanActivate { | ||
constructor( | ||
private readonly memberService: NestMemberService, | ||
private readonly reflect: Reflector, | ||
) {} | ||
|
||
async canActivate(context: ExecutionContext): Promise<boolean> { | ||
await this.memberService.setCurrentMember() | ||
|
||
const permissions = this.reflect.get<PermissionAction[]>('permissions', context.getHandler()) | ||
if (!permissions?.length) return true | ||
|
||
return this.memberService.verify(permissions) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,12 @@ | ||
import { Module } from '@nestjs/common' | ||
import { Global, Module } from '@nestjs/common' | ||
import { AuthzGuard } from './authz.guard.js' | ||
import { MemberModule } from './member/member.module.js' | ||
import { RLSModule } from './rls/rls.module.js' | ||
|
||
@Global() | ||
@Module({ | ||
imports: [RLSModule], | ||
imports: [RLSModule, MemberModule], | ||
providers: [AuthzGuard], | ||
exports: [AuthzGuard], | ||
}) | ||
export class AuthzModule {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import type { Provider } from '@nestjs/common' | ||
import { MEMBER_QUERY_MODEL, NestMemberSqliteQueryModel } from './member-sqlite.query-model.js' | ||
import { MEMBER_REPOSITORY, NestMemberSqliteRepository } from './member-sqlite.respository.js' | ||
|
||
export const adapters: Provider[] = [ | ||
{ | ||
provide: MEMBER_REPOSITORY, | ||
useClass: NestMemberSqliteRepository, | ||
}, | ||
{ | ||
provide: MEMBER_QUERY_MODEL, | ||
useClass: NestMemberSqliteQueryModel, | ||
}, | ||
] |
25 changes: 25 additions & 0 deletions
25
apps/backend/src/authz/member/adapters/member-sqlite.query-model.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import { MikroORM, UseRequestContext } from '@mikro-orm/core' | ||
import { Inject, Injectable } from '@nestjs/common' | ||
import type { IQueryMember } from '@undb/authz' | ||
import { type MemberSpecification } from '@undb/authz' | ||
import { EntityManager, MemberSqliteQueryModel } from '@undb/sqlite' | ||
import { Option } from 'oxide.ts' | ||
|
||
export const MEMBER_QUERY_MODEL = Symbol('MEMBER_QUERY_MODEL') | ||
|
||
export const InjectMemberQueryModel = () => Inject(MEMBER_QUERY_MODEL) | ||
|
||
@Injectable() | ||
export class NestMemberSqliteQueryModel extends MemberSqliteQueryModel { | ||
constructor( | ||
protected readonly orm: MikroORM, | ||
protected readonly em: EntityManager, | ||
) { | ||
super(em) | ||
} | ||
|
||
@UseRequestContext() | ||
find(spec: Option<MemberSpecification>): Promise<IQueryMember[]> { | ||
return super.find(spec) | ||
} | ||
} |
44 changes: 44 additions & 0 deletions
44
apps/backend/src/authz/member/adapters/member-sqlite.respository.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import { MikroORM, UseRequestContext } from '@mikro-orm/core' | ||
import { Inject, Injectable } from '@nestjs/common' | ||
import { Member, type MemberSpecification } from '@undb/authz' | ||
import { EntityManager, MemberSqliteRepository } from '@undb/sqlite' | ||
import type { Option } from 'oxide.ts' | ||
|
||
export const MEMBER_REPOSITORY = Symbol('MEMBER_REPOSITORY') | ||
|
||
export const InjectMemberRespository = () => Inject(MEMBER_REPOSITORY) | ||
|
||
@Injectable() | ||
export class NestMemberSqliteRepository extends MemberSqliteRepository { | ||
constructor( | ||
protected readonly orm: MikroORM, | ||
protected readonly em: EntityManager, | ||
) { | ||
super(em) | ||
} | ||
|
||
@UseRequestContext() | ||
insert(member: Member): Promise<void> { | ||
return super.insert(member) | ||
} | ||
|
||
@UseRequestContext() | ||
findOne(spec: MemberSpecification): Promise<Option<Member>> { | ||
return super.findOne(spec) | ||
} | ||
|
||
@UseRequestContext() | ||
findOneById(id: string): Promise<Option<Member>> { | ||
return super.findOneById(id) | ||
} | ||
|
||
@UseRequestContext() | ||
updateOneById(id: string, spec: MemberSpecification): Promise<void> { | ||
return super.updateOneById(id, spec) | ||
} | ||
|
||
@UseRequestContext() | ||
count(): Promise<number> { | ||
return super.count() | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import { NestUpdateRoleCommandHandler } from './update-role.command.handler.js' | ||
|
||
export const commands = [NestUpdateRoleCommandHandler] |
15 changes: 15 additions & 0 deletions
15
apps/backend/src/authz/member/commands/update-role.command.handler.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import type { ICommandHandler } from '@nestjs/cqrs' | ||
import { CommandHandler } from '@nestjs/cqrs' | ||
import { type IMemberRepository } from '@undb/authz' | ||
import { UpdateRoleCommandHandler as DomainHandler, UpdateRoleCommand } from '@undb/cqrs' | ||
import { InjectMemberRespository } from '../adapters/member-sqlite.respository.js' | ||
|
||
@CommandHandler(UpdateRoleCommand) | ||
export class NestUpdateRoleCommandHandler extends DomainHandler implements ICommandHandler<UpdateRoleCommand> { | ||
constructor( | ||
@InjectMemberRespository() | ||
protected readonly repo: IMemberRepository, | ||
) { | ||
super(repo) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import { Injectable } from '@nestjs/common' | ||
import { MemberCreateService, type IMemberRepository } from '@undb/authz' | ||
import { InjectMemberRespository } from './adapters/member-sqlite.respository.js' | ||
|
||
@Injectable() | ||
export class NestMemberCreateService extends MemberCreateService { | ||
constructor( | ||
@InjectMemberRespository() | ||
protected readonly repo: IMemberRepository, | ||
) { | ||
super(repo) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import { Global, Module } from '@nestjs/common' | ||
import { CqrsModule } from '@nestjs/cqrs' | ||
import { adapters } from './adapters/index.js' | ||
import { commands } from './commands/index.js' | ||
import { NestMemberCreateService } from './member-create.service.js' | ||
import { NestMemberService } from './member.service.js' | ||
import { queries } from './queries/index.js' | ||
|
||
@Global() | ||
@Module({ | ||
imports: [CqrsModule], | ||
providers: [NestMemberCreateService, NestMemberService, ...adapters, ...queries, ...commands], | ||
exports: [NestMemberCreateService, NestMemberService], | ||
}) | ||
export class MemberModule {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import { Injectable } from '@nestjs/common' | ||
import { MemberService, type IMemberRepository } from '@undb/authz' | ||
import type { IClsService } from '@undb/core' | ||
import { type ClsStore } from '@undb/core' | ||
import { ClsService } from 'nestjs-cls' | ||
import { InjectMemberRespository } from './adapters/member-sqlite.respository.js' | ||
|
||
@Injectable() | ||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment | ||
// @ts-ignore | ||
export class NestMemberService extends MemberService { | ||
constructor( | ||
protected readonly cls: ClsService<ClsStore>, | ||
@InjectMemberRespository() | ||
protected readonly repo: IMemberRepository, | ||
) { | ||
super(cls as IClsService<ClsStore>, repo) | ||
} | ||
} |
14 changes: 14 additions & 0 deletions
14
apps/backend/src/authz/member/queries/get-members.query.handler.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import { QueryHandler } from '@nestjs/cqrs' | ||
import { type IMemberQueryModel } from '@undb/authz' | ||
import { GetMembersQuery, GetMembersQueryHandler } from '@undb/cqrs' | ||
import { InjectMemberQueryModel } from '../adapters/member-sqlite.query-model.js' | ||
|
||
@QueryHandler(GetMembersQuery) | ||
export class NestGetMembersQueryHandler extends GetMembersQueryHandler { | ||
constructor( | ||
@InjectMemberQueryModel() | ||
protected readonly rm: IMemberQueryModel, | ||
) { | ||
super(rm) | ||
} | ||
} |
Oops, something went wrong.