@merkaly/api 0.4.6 → 0.4.8

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.
@@ -3,8 +3,7 @@ import { MongoService } from './mongo.service.js';
3
3
  import { AbstractEntity } from './abstract.entity.js';
4
4
  import { AbstractSchema } from './abstract.schema.js';
5
5
  import { AbstractValidator, ReadValidator, SearchValidator } from './abstract.validator.js';
6
- import type { Request } from 'express';
7
- import type { Document, HydratedDocument, Model, RootFilterQuery, UpdateQuery } from 'mongoose';
6
+ import type { Document, FilterQuery, HydratedDocument, Model, RootFilterQuery, UpdateQuery } from 'mongoose';
8
7
  type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
9
8
  type SystemKeys = '_id' | 'createdAt' | 'updatedAt' | 'deletedAt' | keyof Document;
10
9
  export type CreateEntityArgs<T> = {
@@ -22,17 +21,15 @@ export interface SaveOptions<E extends AbstractEntity> {
22
21
  export declare abstract class AbstractRepository<E extends AbstractEntity = AbstractEntity> {
23
22
  protected abstract readonly $schema: AbstractSchema<E>;
24
23
  protected readonly $logger: LoggerService;
25
- protected readonly $request: Request;
26
24
  protected readonly $mongo: MongoService<E>;
27
25
  protected readonly $joins: Record<string, AbstractSchema<any> | null>;
28
- constructor($request: Request, $mongo: MongoService<E>, $logger: LoggerService);
29
26
  get $builder(): Model<E>;
30
- get $user(): import("../../app.types").AppAuthUser;
31
- set $identity(value: string);
27
+ get $user(): any;
32
28
  get $identity(): string;
33
29
  private sanitizePaths;
34
30
  private removeNonDeclaredSchemas;
35
31
  private applyPopulate;
32
+ count(filters?: FilterQuery<E>): Promise<number>;
36
33
  search(validator?: SearchValidator<E>): Promise<{
37
34
  data: import("mongoose").IfAny<E, any, Document<unknown, {}, E, {}, {}> & (import("mongoose").Require_id<E> extends infer T ? T extends import("mongoose").Require_id<E> ? T extends {
38
35
  __v?: infer U;
@@ -25,32 +25,27 @@ export class SaveAddressValidator extends abstract_validator_1.AbstractValidator
25
25
  __decorate([
26
26
  (0, class_validator_1.IsString)(),
27
27
  (0, class_validator_1.IsNotEmpty)(),
28
- (0, class_validator_1.Length)(0, 255),
29
28
  (0, class_validator_1.IsOptional)({ groups: ['update'] }),
30
29
  __metadata("design:type", String)
31
30
  ], SaveAddressValidator.prototype, "street", void 0);
32
31
  __decorate([
33
32
  (0, class_validator_1.IsString)(),
34
33
  (0, class_validator_1.IsNotEmpty)(),
35
- (0, class_validator_1.Length)(0, 100),
36
34
  (0, class_validator_1.IsOptional)({ groups: ['update'] }),
37
35
  __metadata("design:type", String)
38
36
  ], SaveAddressValidator.prototype, "name", void 0);
39
37
  __decorate([
40
38
  (0, class_validator_1.IsString)(),
41
- (0, class_validator_1.Length)(0, 255),
42
39
  (0, class_validator_1.IsOptional)(),
43
40
  __metadata("design:type", String)
44
41
  ], SaveAddressValidator.prototype, "complement", void 0);
45
42
  __decorate([
46
- (0, class_validator_1.IsString)(),
47
- (0, class_validator_1.Length)(2, 2),
43
+ (0, class_validator_1.IsISO31661Alpha2)(),
48
44
  (0, class_validator_1.IsOptional)({ groups: ['update'] }),
49
45
  __metadata("design:type", String)
50
46
  ], SaveAddressValidator.prototype, "country", void 0);
51
47
  __decorate([
52
48
  (0, class_validator_1.IsString)(),
53
- (0, class_validator_1.Length)(0, 10),
54
49
  (0, class_validator_1.IsOptional)(),
55
50
  __metadata("design:type", String)
56
51
  ], SaveAddressValidator.prototype, "code", void 0);
@@ -22,44 +22,41 @@ export class AddressValidator {
22
22
  }
23
23
  __decorate([
24
24
  (0, class_validator_1.IsString)(),
25
- (0, class_validator_1.Length)(0, 255),
25
+ (0, class_validator_1.IsNotEmpty)(),
26
26
  __metadata("design:type", String)
27
27
  ], AddressValidator.prototype, "line1", void 0);
28
28
  __decorate([
29
29
  (0, class_validator_1.IsString)(),
30
- (0, class_validator_1.Length)(0, 255),
31
30
  (0, class_validator_1.IsOptional)(),
32
31
  __metadata("design:type", String)
33
32
  ], AddressValidator.prototype, "line2", void 0);
34
33
  __decorate([
35
34
  (0, class_validator_1.IsString)(),
36
- (0, class_validator_1.Length)(0, 100),
35
+ (0, class_validator_1.IsNotEmpty)(),
37
36
  __metadata("design:type", String)
38
37
  ], AddressValidator.prototype, "name", void 0);
39
38
  __decorate([
40
39
  (0, class_validator_1.IsString)(),
41
- (0, class_validator_1.Length)(0, 100),
40
+ (0, class_validator_1.IsNotEmpty)(),
42
41
  __metadata("design:type", String)
43
42
  ], AddressValidator.prototype, "city", void 0);
44
43
  __decorate([
45
44
  (0, class_validator_1.IsString)(),
46
- (0, class_validator_1.Length)(0, 100),
45
+ (0, class_validator_1.IsNotEmpty)(),
47
46
  __metadata("design:type", String)
48
47
  ], AddressValidator.prototype, "state", void 0);
49
48
  __decorate([
50
49
  (0, class_validator_1.IsString)(),
51
- (0, class_validator_1.Length)(0, 100),
52
50
  (0, class_validator_1.IsOptional)(),
53
51
  __metadata("design:type", String)
54
52
  ], AddressValidator.prototype, "locality", void 0);
55
53
  __decorate([
56
- (0, class_validator_1.IsString)(),
57
- (0, class_validator_1.Length)(0, 100),
54
+ (0, class_validator_1.IsISO31661Alpha2)(),
58
55
  __metadata("design:type", String)
59
56
  ], AddressValidator.prototype, "country", void 0);
60
57
  __decorate([
61
58
  (0, class_validator_1.IsString)(),
62
- (0, class_validator_1.Length)(0, 10),
59
+ (0, class_validator_1.IsNotEmpty)(),
63
60
  __metadata("design:type", String)
64
61
  ], AddressValidator.prototype, "code", void 0);
65
62
  __decorate([
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './abstract.entity';
2
2
  export * from './abstract.validator';
3
3
  export * from './abstract.repository';
4
+ export * from './not-equal-to.decorator';
4
5
  export * from './address.entity';
5
6
  export * from './address.validator';
6
7
  export type { CreateEntityArgs } from './repository.types';
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './abstract.validator.js';
2
+ export * from './not-equal-to.decorator.js';
2
3
  export * from './address.validator.js';
@@ -27,4 +27,6 @@ export declare class CatalogProductEntity extends AbstractEntity {
27
27
  hashtags: string[];
28
28
  status: CatalogProductStatus;
29
29
  variants: MongoEntity<CatalogVariantEntity>[];
30
+ readonly hasVariants: boolean;
31
+ readonly stock: number;
30
32
  }
@@ -10,7 +10,7 @@ export declare class SaveStockWarehouseValidator extends AbstractValidator {
10
10
  name: string;
11
11
  code?: string;
12
12
  description?: string;
13
- address: AddressValidator;
13
+ address?: AddressValidator;
14
14
  isDefault?: boolean;
15
15
  active?: boolean;
16
16
  }
@@ -68,7 +68,7 @@ __decorate([
68
68
  (0, class_validator_1.IsNotEmptyObject)({}, { message: 'Address is required' }),
69
69
  (0, class_validator_1.ValidateNested)(),
70
70
  (0, class_transformer_1.Type)(() => address_validator_1.AddressValidator),
71
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
71
+ (0, class_validator_1.IsOptional)(),
72
72
  __metadata("design:type", address_validator_1.AddressValidator)
73
73
  ], SaveStockWarehouseValidator.prototype, "address", void 0);
74
74
  __decorate([
@@ -0,0 +1,2 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+ export declare function IsNotEqualTo<T = any>(fn: (it: T) => any, validationOptions?: ValidationOptions): (object: object, propertyName: string) => void;
@@ -0,0 +1,22 @@
1
+ import * as class_validator_1 from "class-validator";
2
+ export function IsNotEqualTo(fn, validationOptions) {
3
+ return function (object, propertyName) {
4
+ (0, class_validator_1.registerDecorator)({
5
+ name: 'isNotEqualTo',
6
+ target: object.constructor,
7
+ propertyName,
8
+ constraints: [fn],
9
+ options: validationOptions,
10
+ validator: {
11
+ validate(value, args) {
12
+ const [resolver] = args.constraints;
13
+ const relatedValue = resolver(args.object);
14
+ return !value || !relatedValue || value !== relatedValue;
15
+ },
16
+ defaultMessage(args) {
17
+ return `${args.property} must be different`;
18
+ },
19
+ },
20
+ });
21
+ };
22
+ }
@@ -6,6 +6,7 @@ export declare class SearchSaleCustomerValidator extends SearchValidator<SaleCus
6
6
  export declare class ReadSaleCustomerValidator extends ReadValidator<SaleCustomerEntity> {
7
7
  }
8
8
  export declare class SaveSaleCustomerValidator extends AbstractValidator {
9
+ constructor(entity?: SaleCustomerEntity);
9
10
  name: string;
10
11
  type: SaleCustomerTypeEnum;
11
12
  description: string;
@@ -15,6 +15,20 @@ export class SearchSaleCustomerValidator extends abstract_validator_1.SearchVali
15
15
  export class ReadSaleCustomerValidator extends abstract_validator_1.ReadValidator {
16
16
  }
17
17
  export class SaveSaleCustomerValidator extends abstract_validator_1.AbstractValidator {
18
+ constructor(entity) {
19
+ super();
20
+ if (!entity)
21
+ return;
22
+ this.name = entity.name;
23
+ this.type = entity.type;
24
+ this.description = entity.description;
25
+ this.email = entity.email;
26
+ this.phone = entity.phone;
27
+ this.website = entity.website;
28
+ this.logo = entity.logo;
29
+ this.taxId = entity.taxId;
30
+ this.active = entity.active;
31
+ }
18
32
  name;
19
33
  type = customer_enum_1.SaleCustomerTypeEnum.B2C;
20
34
  description;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@merkaly/api",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "type": "module",
5
5
  "description": "Shared TypeScript interfaces and enums for Merkaly API",
6
6
  "exports": {