@sisques-labs/nestjs-kit 0.3.1 → 0.4.1
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 +32 -12
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/shared/application/commands/update/base-update/base-update.command-handler.d.ts +1 -1
- package/dist/shared/application/dtos/queries/find-by-criteria/find-by-criteria-query.dto.d.ts +1 -1
- package/dist/shared/domain/aggregates/base-aggregate/base.aggregate.d.ts +1 -1
- package/dist/shared/domain/entities/criteria.d.ts +2 -2
- package/dist/shared/domain/events/base-event.interface.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-boolean/invalid-boolean.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-color/invalid-color.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-dimensions/invalid-dimensions.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-email/invalid-email.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-enum-value/invalid-enum-value.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-hex/invalid-hex.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-ip/invalid-ip.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-json/invalid-json.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-locale/invalid-locale.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-number/invalid-number.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-password/invalid-password.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-phone/invalid-phone.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-string/invalid-string.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-timezone/invalid-timezone.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-url/invalid-url.exception.d.ts +1 -1
- package/dist/shared/domain/exceptions/value-objects/invalid-uuid/invalid-uuid.exception.d.ts +1 -1
- package/dist/shared/domain/interfaces/base-aggregate-dto.interface.d.ts +1 -1
- package/dist/shared/domain/interfaces/repository/base-read-repository.interface.d.ts +2 -2
- package/dist/shared/domain/interfaces/repository/base-write-repository.interface.d.ts +2 -2
- package/dist/shared/domain/value-objects/boolean/boolean.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/color/color.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/date/date.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/dimensions/dimensions.vo.d.ts +2 -2
- package/dist/shared/domain/value-objects/email/email.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/enum/enum.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/hex/hex.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/ip/ip.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/json/json.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/length-unit/length-unit.vo.d.ts +2 -2
- package/dist/shared/domain/value-objects/locale/locale.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/number/number.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/numeric-range/numeric-range.vo.d.ts +2 -2
- package/dist/shared/domain/value-objects/password/password.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/phone/phone.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/phone-code/phone-code.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/slug/slug.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/string/string.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/timezone/timezone.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/url/url.vo.d.ts +1 -1
- package/dist/shared/domain/value-objects/uuid/uuid.vo.d.ts +1 -1
- package/dist/shared/infrastructure/database/base-database.repository.d.ts +1 -1
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.d.ts +6 -3
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.js +6 -2
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.js.map +1 -1
- package/dist/shared/infrastructure/database/mongodb/mappers/base-mongodb.mapper.d.ts +7 -0
- package/dist/shared/infrastructure/database/mongodb/mappers/base-mongodb.mapper.js +20 -0
- package/dist/shared/infrastructure/database/mongodb/mappers/base-mongodb.mapper.js.map +1 -0
- package/dist/shared/infrastructure/database/mongodb/mongodb.module.js +2 -2
- package/dist/shared/infrastructure/database/mongodb/mongodb.module.js.map +1 -1
- package/dist/shared/infrastructure/database/mongodb/services/{mongo-master/mongo-master.service.d.ts → mongo.service.d.ts} +1 -1
- package/dist/shared/infrastructure/database/mongodb/services/{mongo-master/mongo-master.service.js → mongo.service.js} +14 -14
- package/dist/shared/infrastructure/database/mongodb/services/mongo.service.js.map +1 -0
- package/dist/shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository.d.ts +2 -2
- package/dist/shared/infrastructure/logging/factories/create-shared-winston-logger-options.d.ts +1 -1
- package/dist/shared/transport/graphql/dtos/requests/base-filter/base-filter.input.d.ts +1 -1
- package/dist/shared/transport/graphql/dtos/requests/base-find-by-criteria/base-find-by-criteria.input.d.ts +3 -3
- package/dist/shared/transport/graphql/dtos/requests/base-sort/base-sort.input.d.ts +1 -1
- package/dist/shared/transport/graphql/mappers/mutation-response/mutation-response.mapper.d.ts +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.d.ts +0 -6
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.js +0 -12
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.js.map +0 -1
- package/dist/shared/infrastructure/database/mongodb/services/mongo-master/mongo-master.service.js.map +0 -1
package/README.md
CHANGED
|
@@ -147,7 +147,7 @@ The library is **opt-in by feature**. Import **`MongoModule`**, **`TypeOrmModule
|
|
|
147
147
|
|
|
148
148
|
**Optional database modules:**
|
|
149
149
|
|
|
150
|
-
- **`MongoModule`** — provides `
|
|
150
|
+
- **`MongoModule`** — provides `MongoService` (`MONGODB_URI`, `MONGODB_DATABASE` via `ConfigService`).
|
|
151
151
|
- **`TypeOrmModule`** — registers `TypeOrmModule.forRootAsync` using `DATABASE_*` config; requires **`ConfigModule`** in the app (for example `ConfigModule.forRoot({ isGlobal: true })`).
|
|
152
152
|
|
|
153
153
|
```typescript
|
|
@@ -463,7 +463,7 @@ Import **`MongoModule`** from this package when you use MongoDB repositories. It
|
|
|
463
463
|
|
|
464
464
|
#### Environment Variables
|
|
465
465
|
|
|
466
|
-
The shared `
|
|
466
|
+
The shared `MongoService` reads:
|
|
467
467
|
|
|
468
468
|
```env
|
|
469
469
|
MONGODB_URI=mongodb://localhost:27017
|
|
@@ -472,26 +472,46 @@ MONGODB_DATABASE=my_database
|
|
|
472
472
|
|
|
473
473
|
#### Base Repository
|
|
474
474
|
|
|
475
|
-
Extend `
|
|
475
|
+
Extend **`BaseMongoDatabaseRepository`** (do not only `implements IBaseReadRepository`) so **`this`** includes **`MongoService`**, **`getCollection`**, **`buildMongoQuery`**, **`buildSortQuery`**, **`executeQueryWithPagination`**, and **`calculatePagination`** from **`BaseDatabaseRepository`**.
|
|
476
|
+
|
|
477
|
+
Published **`dist/**/*.d.ts`** use **relative** imports (rewritten at build with **`tsc-alias`**), so consumers do not need the kit’s `@/` path aliases to resolve inherited types.
|
|
476
478
|
|
|
477
479
|
```typescript
|
|
478
480
|
import {
|
|
479
|
-
|
|
480
|
-
|
|
481
|
+
BaseMongoDatabaseRepository,
|
|
482
|
+
MongoService,
|
|
481
483
|
Criteria,
|
|
482
484
|
PaginatedResult,
|
|
483
485
|
} from '@sisques-labs/nestjs-kit';
|
|
484
486
|
|
|
485
487
|
@Injectable()
|
|
486
|
-
export class
|
|
487
|
-
|
|
488
|
-
|
|
488
|
+
export class UserMongoReadRepository extends BaseMongoDatabaseRepository {
|
|
489
|
+
private static readonly COLLECTION = 'users';
|
|
490
|
+
|
|
491
|
+
constructor(mongoService: MongoService) {
|
|
492
|
+
super(mongoService);
|
|
489
493
|
}
|
|
490
494
|
|
|
491
|
-
async findByCriteria(
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
+
async findByCriteria(
|
|
496
|
+
criteria: Criteria,
|
|
497
|
+
): Promise<PaginatedResult<UserViewModel>> {
|
|
498
|
+
const collection = this.getCollection(UserMongoReadRepository.COLLECTION);
|
|
499
|
+
const mongoQuery = this.buildMongoQuery(criteria);
|
|
500
|
+
const sortQuery = this.buildSortQuery(criteria);
|
|
501
|
+
const { skip, limit } = await this.calculatePagination(criteria);
|
|
502
|
+
const [rows, total] = await this.executeQueryWithPagination(
|
|
503
|
+
collection,
|
|
504
|
+
mongoQuery,
|
|
505
|
+
sortQuery,
|
|
506
|
+
skip,
|
|
507
|
+
limit,
|
|
508
|
+
);
|
|
509
|
+
return new PaginatedResult<UserViewModel>(
|
|
510
|
+
rows.map((doc) => /* yourMongoMapper.toViewModel(doc) */ doc as UserViewModel),
|
|
511
|
+
total,
|
|
512
|
+
criteria.pagination.page,
|
|
513
|
+
criteria.pagination.perPage,
|
|
514
|
+
);
|
|
495
515
|
}
|
|
496
516
|
}
|
|
497
517
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -73,10 +73,10 @@ export * from './shared/infrastructure/logging/factories/create-shared-winston-l
|
|
|
73
73
|
export * from './shared/infrastructure/logging/formats/shared-winston.formats';
|
|
74
74
|
export * from './shared/infrastructure/logging/interfaces/shared-winston-logger-factory-options.interface';
|
|
75
75
|
export * from './shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository';
|
|
76
|
-
export * from './shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository';
|
|
77
76
|
export * from './shared/infrastructure/database/mongodb/dtos/base-mongo.dto';
|
|
77
|
+
export * from './shared/infrastructure/database/mongodb/mappers/base-mongodb.mapper';
|
|
78
78
|
export * from './shared/infrastructure/database/mongodb/mongodb.module';
|
|
79
|
-
export * from './shared/infrastructure/database/mongodb/services/mongo
|
|
79
|
+
export * from './shared/infrastructure/database/mongodb/services/mongo.service';
|
|
80
80
|
export * from './shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository';
|
|
81
81
|
export * from './shared/infrastructure/database/typeorm/dtos/base-typeorm.dto';
|
|
82
82
|
export * from './shared/infrastructure/database/typeorm/entities/base-typeorm.entity';
|
package/dist/index.js
CHANGED
|
@@ -89,10 +89,10 @@ __exportStar(require("./shared/infrastructure/logging/factories/create-shared-wi
|
|
|
89
89
|
__exportStar(require("./shared/infrastructure/logging/formats/shared-winston.formats"), exports);
|
|
90
90
|
__exportStar(require("./shared/infrastructure/logging/interfaces/shared-winston-logger-factory-options.interface"), exports);
|
|
91
91
|
__exportStar(require("./shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository"), exports);
|
|
92
|
-
__exportStar(require("./shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository"), exports);
|
|
93
92
|
__exportStar(require("./shared/infrastructure/database/mongodb/dtos/base-mongo.dto"), exports);
|
|
93
|
+
__exportStar(require("./shared/infrastructure/database/mongodb/mappers/base-mongodb.mapper"), exports);
|
|
94
94
|
__exportStar(require("./shared/infrastructure/database/mongodb/mongodb.module"), exports);
|
|
95
|
-
__exportStar(require("./shared/infrastructure/database/mongodb/services/mongo
|
|
95
|
+
__exportStar(require("./shared/infrastructure/database/mongodb/services/mongo.service"), exports);
|
|
96
96
|
__exportStar(require("./shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository"), exports);
|
|
97
97
|
__exportStar(require("./shared/infrastructure/database/typeorm/dtos/base-typeorm.dto"), exports);
|
|
98
98
|
__exportStar(require("./shared/infrastructure/database/typeorm/entities/base-typeorm.entity"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,0FAAwE;AACxE,0GAAwF;AACxF,+GAA6F;AAC7F,+FAA6E;AAC7E,kHAAgG;AAChG,+FAA6E;AAC7E,gHAA8F;AAC9F,oGAAkF;AAClF,oGAAkF;AAKlF,2FAAyE;AAGzE,oEAAkD;AAClD,mFAAiE;AAGjE,6EAA2D;AAC3D,qFAAmE;AACnE,4EAA0D;AAC1D,mGAAiF;AACjF,uGAAqF;AAGrF,8EAA4D;AAG5D,4EAA0D;AAC1D,qHAAmG;AACnG,iHAA+F;AAC/F,2HAAyG;AACzG,iHAA+F;AAC/F,2HAAyG;AACzG,6GAA2F;AAC3F,2GAAyF;AACzF,+GAA6F;AAC7F,mHAAiG;AACjG,mHAAiG;AACjG,iIAA+G;AAC/G,uHAAqG;AACrG,iHAA+F;AAC/F,mHAAiG;AACjG,uHAAqG;AACrG,6GAA2F;AAC3F,+GAA6F;AAG7F,0FAAwE;AACxE,2FAAyE;AACzE,sFAAoE;AACpE,8FAA4E;AAC5E,8FAA4E;AAC5E,+FAA6E;AAC7E,qFAAmE;AACnE,uGAAqF;AACrF,wGAAsF;AACtF,qFAAmE;AAGnE,6FAA2E;AAG3E,uFAAqE;AACrE,mFAAiE;AACjE,+EAA6D;AAC7D,6EAA2D;AAC3D,yFAAuE;AACvE,+EAA6D;AAC7D,6EAA2D;AAC3D,2EAAyD;AACzD,yEAAuD;AACvD,6EAA2D;AAC3D,2FAAyE;AACzE,iFAA+D;AAC/D,iFAA+D;AAC/D,+FAA6E;AAC7E,qFAAmE;AACnE,yFAAuE;AACvE,+EAA6D;AAC7D,6EAA2D;AAC3D,iFAA+D;AAC/D,qFAAmE;AACnE,2EAAyD;AACzD,6EAA2D;AAG3D,8FAA4E;AAI5E,4FAA0E;AAG1E,iHAA+F;AAC/F,iGAA+E;AAC/E,6HAA2G;AAG3G,qHAAmG;AACnG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,0FAAwE;AACxE,0GAAwF;AACxF,+GAA6F;AAC7F,+FAA6E;AAC7E,kHAAgG;AAChG,+FAA6E;AAC7E,gHAA8F;AAC9F,oGAAkF;AAClF,oGAAkF;AAKlF,2FAAyE;AAGzE,oEAAkD;AAClD,mFAAiE;AAGjE,6EAA2D;AAC3D,qFAAmE;AACnE,4EAA0D;AAC1D,mGAAiF;AACjF,uGAAqF;AAGrF,8EAA4D;AAG5D,4EAA0D;AAC1D,qHAAmG;AACnG,iHAA+F;AAC/F,2HAAyG;AACzG,iHAA+F;AAC/F,2HAAyG;AACzG,6GAA2F;AAC3F,2GAAyF;AACzF,+GAA6F;AAC7F,mHAAiG;AACjG,mHAAiG;AACjG,iIAA+G;AAC/G,uHAAqG;AACrG,iHAA+F;AAC/F,mHAAiG;AACjG,uHAAqG;AACrG,6GAA2F;AAC3F,+GAA6F;AAG7F,0FAAwE;AACxE,2FAAyE;AACzE,sFAAoE;AACpE,8FAA4E;AAC5E,8FAA4E;AAC5E,+FAA6E;AAC7E,qFAAmE;AACnE,uGAAqF;AACrF,wGAAsF;AACtF,qFAAmE;AAGnE,6FAA2E;AAG3E,uFAAqE;AACrE,mFAAiE;AACjE,+EAA6D;AAC7D,6EAA2D;AAC3D,yFAAuE;AACvE,+EAA6D;AAC7D,6EAA2D;AAC3D,2EAAyD;AACzD,yEAAuD;AACvD,6EAA2D;AAC3D,2FAAyE;AACzE,iFAA+D;AAC/D,iFAA+D;AAC/D,+FAA6E;AAC7E,qFAAmE;AACnE,yFAAuE;AACvE,+EAA6D;AAC7D,6EAA2D;AAC3D,iFAA+D;AAC/D,qFAAmE;AACnE,2EAAyD;AACzD,6EAA2D;AAG3D,8FAA4E;AAI5E,4FAA0E;AAG1E,iHAA+F;AAC/F,iGAA+E;AAC/E,6HAA2G;AAG3G,qHAAmG;AACnG,+FAA6E;AAC7E,uGAAqF;AACrF,0FAAwE;AACxE,kGAAgF;AAGhF,2IAAyH;AACzH,iGAA+E;AAC/E,wGAAsF;AACtF,0HAAwG;AACxG,0GAAwF;AACxF,0FAAwE;AAKxE,2FAAyE;AAGzE,yGAAuF;AACvF,6HAA2G;AAC3G,iHAA+F;AAC/F,qGAAmF;AACnF,6GAA2F;AAG3F,4HAA0G;AAC1G,4GAA0F;AAC1F,kHAAgG;AAChG,6FAA2E;AAG3E,gHAA8F;AAG9F,uFAAqE"}
|
package/dist/shared/application/commands/update/base-update/base-update.command-handler.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Logger } from '@nestjs/common';
|
|
2
2
|
import { AggregateRoot, EventBus } from '@nestjs/cqrs';
|
|
3
|
-
import { BaseCommandHandler } from '
|
|
3
|
+
import { BaseCommandHandler } from '../../../../application/commands/base/base-command.handler';
|
|
4
4
|
export declare abstract class BaseUpdateCommandHandler<TCommand, TUpdateDto, TAggregate extends AggregateRoot = AggregateRoot> extends BaseCommandHandler<TCommand, TAggregate> {
|
|
5
5
|
protected readonly logger: Logger;
|
|
6
6
|
constructor(eventBus: EventBus);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DateValueObject } from '
|
|
1
|
+
import { DateValueObject } from '../../../domain/value-objects/date/date.vo';
|
|
2
2
|
import { AggregateRoot } from '@nestjs/cqrs';
|
|
3
3
|
export declare class BaseAggregate extends AggregateRoot {
|
|
4
4
|
protected readonly _createdAt: DateValueObject;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FilterOperator } from '
|
|
2
|
-
import { SortDirection } from '
|
|
1
|
+
import { FilterOperator } from '../../domain/enums/filter-operator.enum';
|
|
2
|
+
import { SortDirection } from '../../domain/enums/sort-direction.enum';
|
|
3
3
|
export interface Filter {
|
|
4
4
|
field: string;
|
|
5
5
|
operator: FilterOperator;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IEventMetadata } from '
|
|
1
|
+
import { IEventMetadata } from '../../domain/interfaces/event-metadata.interface';
|
|
2
2
|
export declare abstract class BaseEvent<TData> {
|
|
3
3
|
readonly eventId: string;
|
|
4
4
|
readonly eventType: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseException } from '
|
|
1
|
+
import { BaseException } from '../../../../domain/exceptions/base.exception';
|
|
2
2
|
export declare class InvalidNumericRangeException extends BaseException {
|
|
3
3
|
constructor(min: number, max: number);
|
|
4
4
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Criteria } from '
|
|
2
|
-
import { PaginatedResult } from '
|
|
1
|
+
import { Criteria } from '../../../domain/entities/criteria';
|
|
2
|
+
import { PaginatedResult } from '../../../domain/entities/paginated-result.entity';
|
|
3
3
|
export interface IBaseReadRepository<TViewModel> {
|
|
4
4
|
findById(id: string): Promise<TViewModel | null>;
|
|
5
5
|
findByCriteria(criteria: Criteria): Promise<PaginatedResult<TViewModel>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Criteria } from '
|
|
2
|
-
import { PaginatedResult } from '
|
|
1
|
+
import { Criteria } from '../../../domain/entities/criteria';
|
|
2
|
+
import { PaginatedResult } from '../../../domain/entities/paginated-result.entity';
|
|
3
3
|
export interface IBaseWriteRepository<TEntity> {
|
|
4
4
|
findById(id: string): Promise<TEntity | null>;
|
|
5
5
|
findByCriteria(criteria: Criteria): Promise<PaginatedResult<TEntity>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class BooleanValueObject extends ValueObject<boolean> {
|
|
3
3
|
private readonly options;
|
|
4
4
|
private readonly _value;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class ColorValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class DateValueObject extends ValueObject<Date> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(date?: Date);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
2
|
-
import { LengthUnitValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
|
+
import { LengthUnitValueObject } from '../../../domain/value-objects/length-unit/length-unit.vo';
|
|
3
3
|
export declare class DimensionsValueObject extends ValueObject<{
|
|
4
4
|
length: number;
|
|
5
5
|
width: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class EmailValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare abstract class EnumValueObject<T extends Record<string, string | number>> extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class HexValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class IpValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class JsonValueObject extends ValueObject<Record<string, any>> {
|
|
3
3
|
private readonly options;
|
|
4
4
|
private readonly _value;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { LengthUnitEnum } from '
|
|
2
|
-
import { EnumValueObject } from '
|
|
1
|
+
import { LengthUnitEnum } from '../../../domain/enums/length-unit/length-unit.enum';
|
|
2
|
+
import { EnumValueObject } from '../../../domain/value-objects/enum/enum.vo';
|
|
3
3
|
export declare class LengthUnitValueObject extends EnumValueObject<typeof LengthUnitEnum> {
|
|
4
4
|
protected get enumObject(): typeof LengthUnitEnum;
|
|
5
5
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StringValueObject } from '
|
|
1
|
+
import { StringValueObject } from '../../../domain/value-objects/string/string.vo';
|
|
2
2
|
export declare class LocaleValueObject extends StringValueObject {
|
|
3
3
|
private static readonly LOCALE_PATTERN;
|
|
4
4
|
private static readonly MIN_LENGTH;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class NumberValueObject extends ValueObject<number> {
|
|
3
3
|
private readonly options;
|
|
4
4
|
private readonly _value;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { INumericRange } from '
|
|
2
|
-
import { ValueObject } from '
|
|
1
|
+
import { INumericRange } from '../../../domain/interfaces/numeric-range.interface';
|
|
2
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
3
3
|
export declare class NumericRangeValueObject extends ValueObject<INumericRange> {
|
|
4
4
|
protected readonly _min: number;
|
|
5
5
|
protected readonly _max: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class PasswordValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class PhoneValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StringValueObject } from '
|
|
1
|
+
import { StringValueObject } from '../../../domain/value-objects/string/string.vo';
|
|
2
2
|
export declare class PhoneCodeValueObject extends StringValueObject {
|
|
3
3
|
private static readonly PHONE_CODE_PATTERN;
|
|
4
4
|
private static readonly MIN_LENGTH;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StringValueObject } from '
|
|
1
|
+
import { StringValueObject } from '../../../domain/value-objects/string/string.vo';
|
|
2
2
|
export declare class SlugValueObject extends StringValueObject {
|
|
3
3
|
private static readonly SLUG_PATTERN;
|
|
4
4
|
private static readonly MIN_LENGTH;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class StringValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly options;
|
|
4
4
|
private readonly _value;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StringValueObject } from '
|
|
1
|
+
import { StringValueObject } from '../../../domain/value-objects/string/string.vo';
|
|
2
2
|
export declare class TimezoneValueObject extends StringValueObject {
|
|
3
3
|
private static readonly MIN_LENGTH;
|
|
4
4
|
private static readonly MAX_LENGTH;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class UrlValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueObject } from '
|
|
1
|
+
import { ValueObject } from '../../../domain/value-objects/base/value-object.base';
|
|
2
2
|
export declare class UuidValueObject extends ValueObject<string> {
|
|
3
3
|
private readonly _value;
|
|
4
4
|
constructor(value?: string);
|
package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { Criteria } from '../../../../domain/entities/criteria';
|
|
2
|
+
import { BaseDatabaseRepository } from '../../../../infrastructure/database/base-database.repository';
|
|
3
|
+
import { MongoService } from '../../../../infrastructure/database/mongodb/services/mongo.service';
|
|
1
4
|
import { Collection } from 'mongodb';
|
|
2
|
-
import { Criteria } from '@/shared/domain/entities/criteria';
|
|
3
|
-
import { BaseDatabaseRepository } from '@/shared/infrastructure/database/base-database.repository';
|
|
4
5
|
export declare abstract class BaseMongoDatabaseRepository extends BaseDatabaseRepository {
|
|
5
|
-
|
|
6
|
+
protected readonly mongoService: MongoService;
|
|
7
|
+
constructor(mongoService: MongoService);
|
|
8
|
+
protected getCollection(collectionName: string): Collection;
|
|
6
9
|
protected buildMongoQuery(criteria: Criteria): any;
|
|
7
10
|
protected buildSortQuery(criteria: Criteria): any;
|
|
8
11
|
protected executeQueryWithPagination(collection: Collection, mongoQuery: any, sortQuery: any, skip: number, limit: number): Promise<[any[], number]>;
|
package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseMongoDatabaseRepository = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
4
|
const filter_operator_enum_1 = require("../../../../domain/enums/filter-operator.enum");
|
|
6
5
|
const sort_direction_enum_1 = require("../../../../domain/enums/sort-direction.enum");
|
|
7
6
|
const base_database_repository_1 = require("../../base-database.repository");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
8
|
class BaseMongoDatabaseRepository extends base_database_repository_1.BaseDatabaseRepository {
|
|
9
|
-
constructor() {
|
|
9
|
+
constructor(mongoService) {
|
|
10
10
|
super();
|
|
11
|
+
this.mongoService = mongoService;
|
|
11
12
|
this.logger = new common_1.Logger(this.constructor.name);
|
|
12
13
|
}
|
|
14
|
+
getCollection(collectionName) {
|
|
15
|
+
return this.mongoService.getCollection(collectionName);
|
|
16
|
+
}
|
|
13
17
|
buildMongoQuery(criteria) {
|
|
14
18
|
this.logger.log(`Building MongoDB query from criteria: ${JSON.stringify(criteria)}`);
|
|
15
19
|
const query = {};
|
package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-mongo-database.repository.js","sourceRoot":"","sources":["../../../../../../src/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base-mongo-database.repository.js","sourceRoot":"","sources":["../../../../../../src/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseMongoDto } from '../../../../infrastructure/database/mongodb/dtos/base-mongo.dto';
|
|
2
|
+
export declare abstract class BaseMongoDBMapper<TViewModel, TMongoDto extends BaseMongoDto, TAggregate> {
|
|
3
|
+
abstract toViewModel(doc: TMongoDto): TViewModel;
|
|
4
|
+
abstract toMongoData(viewModel: TViewModel): TMongoDto;
|
|
5
|
+
abstract toAggregate(doc: TMongoDto): TAggregate;
|
|
6
|
+
protected normalizeMongoDate(value: Date | string): Date;
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BaseMongoDBMapper = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let BaseMongoDBMapper = class BaseMongoDBMapper {
|
|
12
|
+
normalizeMongoDate(value) {
|
|
13
|
+
return value instanceof Date ? value : new Date(value);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
exports.BaseMongoDBMapper = BaseMongoDBMapper;
|
|
17
|
+
exports.BaseMongoDBMapper = BaseMongoDBMapper = __decorate([
|
|
18
|
+
(0, common_1.Injectable)()
|
|
19
|
+
], BaseMongoDBMapper);
|
|
20
|
+
//# sourceMappingURL=base-mongodb.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-mongodb.mapper.js","sourceRoot":"","sources":["../../../../../../src/shared/infrastructure/database/mongodb/mappers/base-mongodb.mapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAYrC,IAAe,iBAAiB,GAAhC,MAAe,iBAAiB;IA0B3B,kBAAkB,CAAC,KAAoB;QAC/C,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AA7BqB,8CAAiB;4BAAjB,iBAAiB;IADtC,IAAA,mBAAU,GAAE;GACS,iBAAiB,CA6BtC"}
|
|
@@ -8,8 +8,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.MongoModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
-
const
|
|
12
|
-
const SERVICES = [
|
|
11
|
+
const mongo_service_1 = require("./services/mongo.service");
|
|
12
|
+
const SERVICES = [mongo_service_1.MongoService];
|
|
13
13
|
let MongoModule = class MongoModule {
|
|
14
14
|
};
|
|
15
15
|
exports.MongoModule = MongoModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.module.js","sourceRoot":"","sources":["../../../../../src/shared/infrastructure/database/mongodb/mongodb.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAEhD,
|
|
1
|
+
{"version":3,"file":"mongodb.module.js","sourceRoot":"","sources":["../../../../../src/shared/infrastructure/database/mongodb/mongodb.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAEhD,4DAA+F;AAE/F,MAAM,QAAQ,GAAG,CAAC,4BAAY,CAAC,CAAC;AAWzB,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC;QACxB,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;KACvB,CAAC;GACW,WAAW,CAAG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
|
2
2
|
import { ConfigService } from '@nestjs/config';
|
|
3
3
|
import { Db } from 'mongodb';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class MongoService implements OnModuleInit, OnModuleDestroy {
|
|
5
5
|
private readonly configService;
|
|
6
6
|
private readonly logger;
|
|
7
7
|
private client;
|