@merkaly/api 0.5.15 → 0.6.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.
Files changed (168) hide show
  1. package/dist/abstract.repository.d.ts +21 -31
  2. package/dist/abstract.validator.d.ts +10 -17
  3. package/dist/abstract.validator.js +54 -64
  4. package/dist/account/address/index.d.ts +1 -1
  5. package/dist/account/address/index.js +1 -1
  6. package/dist/account/address/request.validator.d.ts +16 -0
  7. package/dist/account/address/{address.validator.js → request.validator.js} +35 -18
  8. package/dist/account/payment/index.d.ts +1 -1
  9. package/dist/account/payment/index.js +1 -1
  10. package/dist/account/payment/request.validator.d.ts +19 -0
  11. package/dist/account/payment/{payment.validator.js → request.validator.js} +46 -18
  12. package/dist/account/user/index.d.ts +1 -1
  13. package/dist/account/user/index.js +1 -1
  14. package/dist/account/user/request.validator.d.ts +10 -0
  15. package/dist/account/user/{user.validator.js → request.validator.js} +18 -23
  16. package/dist/address.validator.d.ts +2 -2
  17. package/dist/finance/invoice/index.d.ts +1 -1
  18. package/dist/finance/invoice/index.js +1 -1
  19. package/dist/finance/invoice/request.validator.d.ts +21 -0
  20. package/dist/finance/invoice/{invoice.validator.js → request.validator.js} +41 -19
  21. package/dist/finance/payment/index.d.ts +1 -1
  22. package/dist/finance/payment/index.js +1 -1
  23. package/dist/finance/payment/payment.entity.d.ts +6 -6
  24. package/dist/finance/payment/payment.transition.d.ts +5 -3
  25. package/dist/finance/payment/payment.transition.js +10 -5
  26. package/dist/finance/payment/request.validator.d.ts +14 -0
  27. package/dist/finance/payment/{payment.validator.js → request.validator.js} +24 -12
  28. package/dist/finance/refund/index.d.ts +1 -1
  29. package/dist/finance/refund/index.js +1 -1
  30. package/dist/finance/refund/refund.entity.d.ts +2 -1
  31. package/dist/finance/refund/refund.transition.d.ts +5 -3
  32. package/dist/finance/refund/refund.transition.js +8 -14
  33. package/dist/finance/refund/request.validator.d.ts +16 -0
  34. package/dist/finance/refund/{refund.validator.js → request.validator.js} +32 -14
  35. package/dist/inventory/catalog/attribute/request.validator.d.ts +7 -4
  36. package/dist/inventory/catalog/attribute/request.validator.js +23 -15
  37. package/dist/inventory/catalog/brand/request.validator.d.ts +8 -5
  38. package/dist/inventory/catalog/brand/request.validator.js +17 -11
  39. package/dist/inventory/catalog/category/category.entity.d.ts +3 -1
  40. package/dist/inventory/catalog/category/request.validator.d.ts +8 -5
  41. package/dist/inventory/catalog/category/request.validator.js +17 -11
  42. package/dist/inventory/catalog/collection/request.validator.d.ts +9 -6
  43. package/dist/inventory/catalog/collection/request.validator.js +21 -14
  44. package/dist/inventory/catalog/product/product.entity.d.ts +12 -4
  45. package/dist/inventory/catalog/product/request.validator.d.ts +24 -11
  46. package/dist/inventory/catalog/product/request.validator.js +74 -44
  47. package/dist/inventory/catalog/variant/request.validator.d.ts +9 -7
  48. package/dist/inventory/catalog/variant/request.validator.js +33 -27
  49. package/dist/inventory/catalog/variant/variant.entity.d.ts +6 -4
  50. package/dist/inventory/configuration/measurement/index.d.ts +1 -1
  51. package/dist/inventory/configuration/measurement/index.js +1 -1
  52. package/dist/inventory/configuration/measurement/request.validator.d.ts +21 -0
  53. package/dist/inventory/configuration/measurement/{measurement.validator.js → request.validator.js} +57 -49
  54. package/dist/inventory/stock/balance/balance.entity.d.ts +9 -5
  55. package/dist/inventory/stock/balance/balance.status.enum.d.ts +6 -0
  56. package/dist/inventory/stock/balance/balance.status.enum.js +7 -0
  57. package/dist/inventory/stock/balance/index.d.ts +1 -1
  58. package/dist/inventory/stock/balance/index.js +1 -1
  59. package/dist/inventory/stock/transfer/index.d.ts +3 -2
  60. package/dist/inventory/stock/transfer/index.js +2 -2
  61. package/dist/inventory/stock/transfer/request.validator.d.ts +24 -0
  62. package/dist/inventory/stock/transfer/request.validator.js +111 -0
  63. package/dist/inventory/stock/transfer/transfer.entity.d.ts +9 -16
  64. package/dist/inventory/stock/transfer/{transfer.status.enum.d.ts → transfer.enum.d.ts} +5 -1
  65. package/dist/inventory/stock/transfer/{transfer.status.enum.js → transfer.enum.js} +6 -1
  66. package/dist/inventory/stock/transfer/transfer.item.entity.d.ts +12 -0
  67. package/dist/inventory/stock/transfer/transfer.transition.d.ts +3 -1
  68. package/dist/inventory/stock/transfer/transfer.transition.js +13 -6
  69. package/dist/inventory/stock/warehouse/index.d.ts +1 -1
  70. package/dist/inventory/stock/warehouse/index.js +1 -1
  71. package/dist/inventory/stock/warehouse/request.validator.d.ts +14 -0
  72. package/dist/inventory/stock/warehouse/{warehouse.validator.js → request.validator.js} +40 -44
  73. package/dist/inventory/stock/warehouse/warehouse.entity.d.ts +2 -2
  74. package/dist/order/purchase/item/index.d.ts +1 -1
  75. package/dist/order/purchase/item/index.js +1 -1
  76. package/dist/order/purchase/item/item.entity.d.ts +18 -11
  77. package/dist/order/purchase/item/request.validator.d.ts +12 -0
  78. package/dist/order/{service/item/item.validator.js → purchase/item/request.validator.js} +32 -15
  79. package/dist/order/purchase/transaction/index.d.ts +1 -1
  80. package/dist/order/purchase/transaction/index.js +1 -1
  81. package/dist/order/purchase/transaction/request.validator.d.ts +23 -0
  82. package/dist/order/purchase/transaction/request.validator.js +97 -0
  83. package/dist/order/purchase/transaction/transaction.entity.d.ts +3 -4
  84. package/dist/order/purchase/transaction/transaction.enum.d.ts +0 -1
  85. package/dist/order/purchase/transaction/transaction.enum.js +0 -3
  86. package/dist/order/purchase/transaction/transaction.transition.d.ts +2 -0
  87. package/dist/order/purchase/transaction/transaction.transition.js +10 -3
  88. package/dist/order/purchase/vendor/index.d.ts +1 -1
  89. package/dist/order/purchase/vendor/index.js +1 -1
  90. package/dist/order/purchase/vendor/request.validator.d.ts +16 -0
  91. package/dist/order/purchase/vendor/{vendor.validator.js → request.validator.js} +30 -28
  92. package/dist/order/sale/customer/index.d.ts +1 -1
  93. package/dist/order/sale/customer/index.js +1 -1
  94. package/dist/order/sale/customer/request.validator.d.ts +18 -0
  95. package/dist/order/sale/customer/{customer.validator.js → request.validator.js} +34 -30
  96. package/dist/order/sale/item/index.d.ts +1 -1
  97. package/dist/order/sale/item/index.js +1 -1
  98. package/dist/order/sale/item/item.entity.d.ts +18 -16
  99. package/dist/order/sale/item/request.validator.d.ts +12 -0
  100. package/dist/order/sale/item/{item.validator.js → request.validator.js} +23 -6
  101. package/dist/order/sale/transaction/index.d.ts +1 -1
  102. package/dist/order/sale/transaction/index.js +1 -1
  103. package/dist/order/sale/transaction/request.validator.d.ts +25 -0
  104. package/dist/order/sale/transaction/request.validator.js +104 -0
  105. package/dist/order/sale/transaction/transaction.entity.d.ts +3 -6
  106. package/dist/order/sale/transaction/transaction.enum.d.ts +0 -3
  107. package/dist/order/sale/transaction/transaction.enum.js +0 -9
  108. package/dist/order/sale/transaction/transaction.transition.d.ts +2 -0
  109. package/dist/order/sale/transaction/transaction.transition.js +11 -5
  110. package/dist/repository.types.d.ts +2 -2
  111. package/dist/settings/organization/index.d.ts +0 -1
  112. package/dist/settings/organization/index.js +0 -1
  113. package/dist/transaction.entity.d.ts +14 -5
  114. package/package.json +5 -6
  115. package/dist/account/address/address.validator.d.ts +0 -15
  116. package/dist/account/payment/payment.validator.d.ts +0 -14
  117. package/dist/account/user/user.validator.d.ts +0 -15
  118. package/dist/finance/invoice/invoice.validator.d.ts +0 -19
  119. package/dist/finance/payment/payment.validator.d.ts +0 -14
  120. package/dist/finance/refund/refund.validator.d.ts +0 -14
  121. package/dist/finance/subscription/index.d.ts +0 -3
  122. package/dist/finance/subscription/index.js +0 -2
  123. package/dist/finance/subscription/subscription.entity.d.ts +0 -14
  124. package/dist/finance/subscription/subscription.enum.d.ts +0 -15
  125. package/dist/finance/subscription/subscription.enum.js +0 -17
  126. package/dist/finance/subscription/subscription.validator.d.ts +0 -17
  127. package/dist/finance/subscription/subscription.validator.js +0 -69
  128. package/dist/finance/tax/index.d.ts +0 -3
  129. package/dist/finance/tax/index.js +0 -2
  130. package/dist/finance/tax/tax.entity.d.ts +0 -10
  131. package/dist/finance/tax/tax.enum.d.ts +0 -8
  132. package/dist/finance/tax/tax.enum.js +0 -9
  133. package/dist/finance/tax/tax.validator.d.ts +0 -15
  134. package/dist/finance/tax/tax.validator.js +0 -60
  135. package/dist/inventory/configuration/measurement/measurement.validator.d.ts +0 -20
  136. package/dist/inventory/stock/balance/balance.validator.d.ts +0 -13
  137. package/dist/inventory/stock/balance/balance.validator.js +0 -46
  138. package/dist/inventory/stock/transfer/transfer.validator.d.ts +0 -21
  139. package/dist/inventory/stock/transfer/transfer.validator.js +0 -101
  140. package/dist/inventory/stock/warehouse/warehouse.validator.d.ts +0 -19
  141. package/dist/order/purchase/item/item.validator.d.ts +0 -10
  142. package/dist/order/purchase/item/item.validator.js +0 -50
  143. package/dist/order/purchase/transaction/transaction.validator.d.ts +0 -18
  144. package/dist/order/purchase/transaction/transaction.validator.js +0 -78
  145. package/dist/order/purchase/vendor/vendor.validator.d.ts +0 -17
  146. package/dist/order/sale/customer/customer.validator.d.ts +0 -19
  147. package/dist/order/sale/item/item.validator.d.ts +0 -9
  148. package/dist/order/sale/payment/index.d.ts +0 -1
  149. package/dist/order/sale/payment/index.js +0 -1
  150. package/dist/order/sale/payment/payment.validator.d.ts +0 -7
  151. package/dist/order/sale/payment/payment.validator.js +0 -31
  152. package/dist/order/sale/transaction/transaction.validator.d.ts +0 -18
  153. package/dist/order/sale/transaction/transaction.validator.js +0 -77
  154. package/dist/order/service/item/index.d.ts +0 -2
  155. package/dist/order/service/item/index.js +0 -1
  156. package/dist/order/service/item/item.entity.d.ts +0 -14
  157. package/dist/order/service/item/item.validator.d.ts +0 -9
  158. package/dist/order/service/transaction/index.d.ts +0 -4
  159. package/dist/order/service/transaction/index.js +0 -3
  160. package/dist/order/service/transaction/transaction.entity.d.ts +0 -9
  161. package/dist/order/service/transaction/transaction.enum.d.ts +0 -8
  162. package/dist/order/service/transaction/transaction.enum.js +0 -9
  163. package/dist/order/service/transaction/transaction.transition.d.ts +0 -6
  164. package/dist/order/service/transaction/transaction.transition.js +0 -13
  165. package/dist/order/service/transaction/transaction.validator.d.ts +0 -17
  166. package/dist/order/service/transaction/transaction.validator.js +0 -76
  167. package/dist/settings/organization/organization.validator.d.ts +0 -10
  168. package/dist/settings/organization/organization.validator.js +0 -32
@@ -1,56 +1,42 @@
1
1
  import { EventEmitter2 } from '@nestjs/event-emitter';
2
+ import { ClsService } from 'nestjs-cls';
2
3
  import { LoggerService } from './';
3
4
  import { MongoService } from './mongo.service.js';
4
5
  import { AbstractEntity } from './abstract.entity.js';
5
6
  import { AbstractSchema } from './abstract.schema.js';
6
- import { AbstractValidator, SearchValidator } from './abstract.validator.js';
7
+ import { SearchValidator } from './abstract.validator.js';
7
8
  import type { ClientSession, Document, FilterQuery, Model, PipelineStage, PopulateOptions, RootFilterQuery, UpdateQuery } from 'mongoose';
8
9
  type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
9
10
  type SystemKeys = '_id' | 'createdAt' | 'updatedAt' | 'deletedAt' | keyof Document;
10
- export type CreateEntityArgs<T> = {
11
- [K in keyof T as K extends SystemKeys ? never : T[K] extends Function ? never : Equal<{
11
+ export type SaveEntityArgs<T> = {
12
+ [K in keyof T as K extends SystemKeys ? never : T[K] extends (...args: any[]) => unknown ? never : Equal<{
12
13
  [Q in K]: T[K];
13
14
  }, {
14
15
  -readonly [Q in K]: T[K];
15
- }> extends true ? K : never]: T[K] extends AbstractEntity ? CreateEntityArgs<T[K]> : T[K];
16
+ }> extends true ? K : never]: T[K] extends Array<infer U> ? U extends object ? SaveEntityArgs<U>[] : T[K] : T[K] extends object ? T[K] extends Date ? T[K] : SaveEntityArgs<T[K]> | string : T[K];
16
17
  };
17
18
  export type EntityLocator<E extends AbstractEntity = AbstractEntity> = string | RootFilterQuery<E>;
18
- export type JoinOptions = string[] | PopulateOptions[];
19
19
  export interface ReadMethodOptions {
20
- join?: JoinOptions;
21
- session?: ClientSession;
22
- }
23
- export interface CreateMethodOptions<P extends AbstractValidator = AbstractValidator> {
24
- join?: JoinOptions;
25
- payload: P;
26
- session?: ClientSession;
27
- }
28
- export interface UpdateMethodOptions<P extends AbstractValidator = AbstractValidator> {
29
- join?: JoinOptions;
30
- payload: P;
31
- session?: ClientSession;
20
+ join?: PopulateOptions[];
21
+ select?: string;
32
22
  }
33
23
  export interface DeleteMethodOptions {
34
- join?: JoinOptions;
35
- session?: ClientSession;
24
+ soft?: boolean;
36
25
  }
37
26
  export interface SaveMethodOptions<E extends AbstractEntity> {
38
- join?: JoinOptions;
39
- param?: EntityLocator<E>;
27
+ locator?: EntityLocator<E>;
28
+ options?: ReadMethodOptions;
40
29
  payload: UpdateQuery<E>;
41
- session?: ClientSession;
42
30
  }
43
31
  export declare abstract class AbstractRepository<E extends AbstractEntity = AbstractEntity> {
44
32
  protected abstract readonly $schema: AbstractSchema<E>;
45
33
  protected readonly $logger: LoggerService;
46
34
  protected readonly $mongo: MongoService<E>;
47
35
  protected readonly $event: EventEmitter2;
36
+ protected readonly $cls: ClsService;
48
37
  get $builder(): Model<E>;
49
- get $user(): any;
38
+ get $auth(): import("../../app.types").AppAuth;
50
39
  get $identity(): string;
51
- private sanitizePaths;
52
- private applyPopulate;
53
- private handlePopulateError;
54
40
  count(filters?: FilterQuery<E>, session?: ClientSession): Promise<number>;
55
41
  search(validator?: SearchValidator<E>, session?: ClientSession): Promise<{
56
42
  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 {
@@ -62,12 +48,16 @@ export declare abstract class AbstractRepository<E extends AbstractEntity = Abst
62
48
  pages: number;
63
49
  total: number;
64
50
  }>;
65
- aggregate<R = unknown>(pipeline: PipelineStage[], session?: ClientSession): Promise<R[]>;
51
+ aggregate<P = any>(pipeline: PipelineStage[], session?: ClientSession): Promise<P[]>;
66
52
  read(locator: EntityLocator<E>, options?: ReadMethodOptions): Promise<E>;
67
- private hasUpdateOperators;
68
- protected save({ param, payload, join, session }: SaveMethodOptions<E>): Promise<E>;
69
- abstract create(options: CreateMethodOptions<AbstractValidator>): Promise<E>;
70
- abstract update(locator: EntityLocator<E>, options: UpdateMethodOptions<AbstractValidator>): Promise<E>;
53
+ create(payload: UpdateQuery<E>, options: ReadMethodOptions): Promise<E>;
54
+ update(locator: EntityLocator<E>, payload: UpdateQuery<E>, options?: ReadMethodOptions): Promise<E>;
71
55
  delete(locator: EntityLocator<E>, options?: DeleteMethodOptions): Promise<void>;
56
+ protected save({ locator, payload, options }: SaveMethodOptions<E>): Promise<E>;
57
+ private sanitizePaths;
58
+ private applyPopulate;
59
+ private handlePopulateError;
60
+ private compactPayload;
61
+ private hasUpdateOperators;
72
62
  }
73
63
  export {};
@@ -1,28 +1,21 @@
1
- import { AbstractEntity, MongoEntity } from './abstract.entity.js';
1
+ import { AbstractEntity } from './abstract.entity.js';
2
2
  import type { FilterQuery, PopulateOptions, SortOrder } from 'mongoose';
3
- export declare function toId<T extends AbstractEntity>(ref: MongoEntity<T> | undefined | null): string | undefined;
4
- export declare abstract class AbstractValidator {
5
- }
6
- type JoinPopulateOptions = string | PopulateOptions | Array<string | PopulateOptions>;
7
- export declare function transformJoinsIntoPopulate(value: JoinPopulateOptions): PopulateOptions[];
8
- export type KeyOfType<T, V> = keyof {
9
- [P in keyof T as T[P] extends V ? P : string]: any;
10
- };
11
- export declare class ReadValidator<E = AbstractEntity> extends AbstractValidator {
12
- join?: PopulateOptions[];
13
- }
14
- export declare class PaginationValidator {
3
+ declare class PaginationValidator {
15
4
  limit?: number;
16
5
  page?: number;
17
6
  }
18
- export declare class QueryValidator<E = AbstractEntity> {
7
+ export type AbstractEntityValidator = Record<string, any>;
8
+ export declare abstract class AbstractRequestValidator {
9
+ }
10
+ export declare class ReadValidator extends AbstractRequestValidator {
11
+ join?: PopulateOptions[];
12
+ select?: string;
13
+ }
14
+ export declare class SearchValidator<E = AbstractEntity> extends ReadValidator {
19
15
  pagination?: PaginationValidator;
20
16
  sort?: {
21
17
  [key: string]: SortOrder;
22
18
  };
23
19
  filters?: FilterQuery<E>;
24
20
  }
25
- export declare class SearchValidator<E = AbstractEntity> extends QueryValidator<E> {
26
- join?: PopulateOptions[];
27
- }
28
21
  export {};
@@ -9,56 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import * as class_transformer_1 from "class-transformer";
11
11
  import * as class_validator_1 from "class-validator";
12
- export function toId(ref) {
13
- if (!ref)
14
- return undefined;
15
- return typeof ref === 'string' ? ref : ref._id;
16
- }
17
- export class AbstractValidator {
18
- }
19
- export function transformJoinsIntoPopulate(value) {
20
- function transform(value) {
21
- if ((0, class_validator_1.isString)(value)) {
22
- try {
23
- const parsed = JSON.parse(value);
24
- return transform(parsed);
25
- }
26
- catch {
27
- return [{ path: value }];
28
- }
29
- }
30
- if ((0, class_validator_1.isArray)(value)) {
31
- return value.flatMap(transform);
32
- }
33
- if (typeof value === 'object' && value !== null && 'path' in value) {
34
- const result = { path: value.path };
35
- if (value.populate) {
36
- result.populate = transform(value.populate);
37
- }
38
- return [result];
39
- }
40
- return [];
41
- }
42
- return transform(value);
43
- }
44
- function transformStructuredValue(value) {
45
- if (!value) {
46
- return undefined;
47
- }
48
- if ((0, class_validator_1.isObject)(value) || (0, class_validator_1.isArray)(value)) {
49
- return value;
50
- }
51
- return JSON.parse(value);
52
- }
53
- export class ReadValidator extends AbstractValidator {
54
- join = [];
55
- }
56
- __decorate([
57
- (0, class_validator_1.IsOptional)(),
58
- (0, class_transformer_1.Transform)(({ value }) => transformJoinsIntoPopulate(value)),
59
- __metadata("design:type", Array)
60
- ], ReadValidator.prototype, "join", void 0);
61
- export class PaginationValidator {
12
+ class PaginationValidator {
62
13
  limit = 10;
63
14
  page = 1;
64
15
  }
@@ -74,7 +25,22 @@ __decorate([
74
25
  (0, class_validator_1.IsOptional)(),
75
26
  __metadata("design:type", Number)
76
27
  ], PaginationValidator.prototype, "page", void 0);
77
- export class QueryValidator {
28
+ export class AbstractRequestValidator {
29
+ }
30
+ export class ReadValidator extends AbstractRequestValidator {
31
+ join = [];
32
+ select;
33
+ }
34
+ __decorate([
35
+ (0, class_validator_1.IsOptional)(),
36
+ (0, class_transformer_1.Transform)(({ value }) => transformJoinsIntoPopulate(value)),
37
+ __metadata("design:type", Array)
38
+ ], ReadValidator.prototype, "join", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsOptional)(),
41
+ __metadata("design:type", String)
42
+ ], ReadValidator.prototype, "select", void 0);
43
+ export class SearchValidator extends ReadValidator {
78
44
  pagination = new PaginationValidator();
79
45
  sort = {};
80
46
  filters = {};
@@ -91,24 +57,48 @@ __decorate([
91
57
  (0, class_transformer_1.Type)(() => PaginationValidator),
92
58
  (0, class_validator_1.IsOptional)(),
93
59
  __metadata("design:type", PaginationValidator)
94
- ], QueryValidator.prototype, "pagination", void 0);
60
+ ], SearchValidator.prototype, "pagination", void 0);
95
61
  __decorate([
96
62
  (0, class_transformer_1.Transform)(({ value }) => transformStructuredValue(value)),
97
63
  (0, class_validator_1.IsOptional)(),
98
64
  __metadata("design:type", Object)
99
- ], QueryValidator.prototype, "sort", void 0);
65
+ ], SearchValidator.prototype, "sort", void 0);
100
66
  __decorate([
101
- (0, class_transformer_1.Transform)(({ value }) => {
102
- return transformStructuredValue(value);
103
- }),
67
+ (0, class_transformer_1.Transform)(({ value }) => transformStructuredValue(value)),
104
68
  (0, class_validator_1.IsOptional)(),
105
69
  __metadata("design:type", Object)
106
- ], QueryValidator.prototype, "filters", void 0);
107
- export class SearchValidator extends QueryValidator {
108
- join = [];
70
+ ], SearchValidator.prototype, "filters", void 0);
71
+ function transformStructuredValue(value) {
72
+ if (!value) {
73
+ return undefined;
74
+ }
75
+ if ((0, class_validator_1.isObject)(value) || (0, class_validator_1.isArray)(value)) {
76
+ return value;
77
+ }
78
+ return JSON.parse(value);
79
+ }
80
+ function transformJoinsIntoPopulate(value) {
81
+ function transform(value) {
82
+ if ((0, class_validator_1.isString)(value)) {
83
+ try {
84
+ const parsed = JSON.parse(value);
85
+ return transform(parsed);
86
+ }
87
+ catch {
88
+ return [{ path: value }];
89
+ }
90
+ }
91
+ if ((0, class_validator_1.isArray)(value)) {
92
+ return value.flatMap(transform);
93
+ }
94
+ if (typeof value === 'object' && value !== null && 'path' in value) {
95
+ const result = { path: value.path };
96
+ if (value.populate) {
97
+ result.populate = transform(value.populate);
98
+ }
99
+ return [result];
100
+ }
101
+ return [];
102
+ }
103
+ return transform(value);
109
104
  }
110
- __decorate([
111
- (0, class_validator_1.IsOptional)(),
112
- (0, class_transformer_1.Transform)(({ value }) => transformJoinsIntoPopulate(value)),
113
- __metadata("design:type", Array)
114
- ], SearchValidator.prototype, "join", void 0);
@@ -1,2 +1,2 @@
1
1
  export * from './address.entity';
2
- export * from './address.validator';
2
+ export * from './request.validator';
@@ -1 +1 @@
1
- export * from './address.validator.js';
1
+ export * from './request.validator.js';
@@ -0,0 +1,16 @@
1
+ import { AbstractRequestValidator } from '../..';
2
+ import type { AccountAddressEntity } from './';
3
+ export declare class CreateAddressRequestValidator extends AbstractRequestValidator {
4
+ street: string;
5
+ name: string;
6
+ complement?: string;
7
+ country?: string;
8
+ code?: string;
9
+ longitude?: number;
10
+ latitude?: number;
11
+ constructor(address?: AccountAddressEntity);
12
+ }
13
+ export declare class UpdateAddressRequestValidator extends CreateAddressRequestValidator {
14
+ street: string;
15
+ name: string;
16
+ }
@@ -8,12 +8,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import * as class_validator_1 from "class-validator";
11
- import * as abstract_validator_1 from '../..';
12
- export class SearchAddressValidator extends abstract_validator_1.SearchValidator {
13
- }
14
- export class ReadAddressValidator extends abstract_validator_1.ReadValidator {
15
- }
16
- export class SaveAddressValidator extends abstract_validator_1.AbstractValidator {
11
+ import * as abstract_validator_1 from '../../index.js';
12
+ export class CreateAddressRequestValidator extends abstract_validator_1.AbstractRequestValidator {
17
13
  street;
18
14
  name;
19
15
  complement;
@@ -21,41 +17,62 @@ export class SaveAddressValidator extends abstract_validator_1.AbstractValidator
21
17
  code;
22
18
  longitude;
23
19
  latitude;
20
+ constructor(address) {
21
+ super();
22
+ if (!address) {
23
+ return;
24
+ }
25
+ this.street = address.line1;
26
+ this.name = address.name;
27
+ this.complement = address.line2;
28
+ this.country = address.country;
29
+ this.code = address.code;
30
+ this.longitude = address.location?.lng;
31
+ this.latitude = address.location?.lat;
32
+ }
24
33
  }
25
34
  __decorate([
26
35
  (0, class_validator_1.IsString)(),
27
36
  (0, class_validator_1.IsNotEmpty)(),
28
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
29
37
  __metadata("design:type", String)
30
- ], SaveAddressValidator.prototype, "street", void 0);
38
+ ], CreateAddressRequestValidator.prototype, "street", void 0);
31
39
  __decorate([
32
40
  (0, class_validator_1.IsString)(),
33
41
  (0, class_validator_1.IsNotEmpty)(),
34
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
35
42
  __metadata("design:type", String)
36
- ], SaveAddressValidator.prototype, "name", void 0);
43
+ ], CreateAddressRequestValidator.prototype, "name", void 0);
37
44
  __decorate([
38
45
  (0, class_validator_1.IsString)(),
39
46
  (0, class_validator_1.IsOptional)(),
40
47
  __metadata("design:type", String)
41
- ], SaveAddressValidator.prototype, "complement", void 0);
48
+ ], CreateAddressRequestValidator.prototype, "complement", void 0);
42
49
  __decorate([
43
50
  (0, class_validator_1.IsISO31661Alpha2)(),
44
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
51
+ (0, class_validator_1.IsOptional)(),
45
52
  __metadata("design:type", String)
46
- ], SaveAddressValidator.prototype, "country", void 0);
53
+ ], CreateAddressRequestValidator.prototype, "country", void 0);
47
54
  __decorate([
48
55
  (0, class_validator_1.IsString)(),
49
56
  (0, class_validator_1.IsOptional)(),
50
57
  __metadata("design:type", String)
51
- ], SaveAddressValidator.prototype, "code", void 0);
58
+ ], CreateAddressRequestValidator.prototype, "code", void 0);
52
59
  __decorate([
53
60
  (0, class_validator_1.IsLongitude)(),
54
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
61
+ (0, class_validator_1.IsOptional)(),
55
62
  __metadata("design:type", Number)
56
- ], SaveAddressValidator.prototype, "longitude", void 0);
63
+ ], CreateAddressRequestValidator.prototype, "longitude", void 0);
57
64
  __decorate([
58
65
  (0, class_validator_1.IsLatitude)(),
59
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
66
+ (0, class_validator_1.IsOptional)(),
60
67
  __metadata("design:type", Number)
61
- ], SaveAddressValidator.prototype, "latitude", void 0);
68
+ ], CreateAddressRequestValidator.prototype, "latitude", void 0);
69
+ export class UpdateAddressRequestValidator extends CreateAddressRequestValidator {
70
+ }
71
+ __decorate([
72
+ (0, class_validator_1.IsOptional)(),
73
+ __metadata("design:type", String)
74
+ ], UpdateAddressRequestValidator.prototype, "street", void 0);
75
+ __decorate([
76
+ (0, class_validator_1.IsOptional)(),
77
+ __metadata("design:type", String)
78
+ ], UpdateAddressRequestValidator.prototype, "name", void 0);
@@ -1,2 +1,2 @@
1
1
  export * from './payment.entity';
2
- export * from './payment.validator';
2
+ export * from './request.validator';
@@ -1 +1 @@
1
- export * from './payment.validator.js';
1
+ export * from './request.validator.js';
@@ -0,0 +1,19 @@
1
+ import { AbstractRequestValidator } from '../..';
2
+ import type { AccountPaymentEntity } from './';
3
+ export declare class CreatePaymentRequestValidator extends AbstractRequestValidator {
4
+ holder: string;
5
+ hash: string;
6
+ last4: string;
7
+ brand: string;
8
+ expMonth: number;
9
+ expYear: number;
10
+ constructor(payment?: AccountPaymentEntity);
11
+ }
12
+ export declare class UpdatePaymentRequestValidator extends CreatePaymentRequestValidator {
13
+ holder: string;
14
+ hash: never;
15
+ last4: never;
16
+ brand: never;
17
+ expMonth: number;
18
+ expYear: number;
19
+ }
@@ -8,59 +8,87 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import * as class_validator_1 from "class-validator";
11
- import * as abstract_validator_1 from '../..';
12
- export class SearchPaymentValidator extends abstract_validator_1.SearchValidator {
13
- }
14
- export class ReadPaymentValidator extends abstract_validator_1.ReadValidator {
15
- }
16
- export class SavePaymentValidator extends abstract_validator_1.AbstractValidator {
11
+ import * as abstract_validator_1 from '../../index.js';
12
+ export class CreatePaymentRequestValidator extends abstract_validator_1.AbstractRequestValidator {
17
13
  holder;
18
14
  hash;
19
15
  last4;
20
16
  brand;
21
17
  expMonth;
22
18
  expYear;
19
+ constructor(payment) {
20
+ super();
21
+ if (!payment) {
22
+ return;
23
+ }
24
+ this.holder = payment.holder;
25
+ this.hash = payment.hash;
26
+ this.last4 = payment.last4;
27
+ this.brand = payment.brand;
28
+ this.expMonth = payment.expMonth;
29
+ this.expYear = payment.expYear;
30
+ }
23
31
  }
24
32
  __decorate([
25
33
  (0, class_validator_1.IsString)(),
26
34
  (0, class_validator_1.IsNotEmpty)(),
27
35
  (0, class_validator_1.Length)(0, 100),
28
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
29
36
  __metadata("design:type", String)
30
- ], SavePaymentValidator.prototype, "holder", void 0);
37
+ ], CreatePaymentRequestValidator.prototype, "holder", void 0);
31
38
  __decorate([
32
39
  (0, class_validator_1.IsString)(),
33
40
  (0, class_validator_1.IsNotEmpty)(),
34
41
  (0, class_validator_1.Length)(0, 255),
35
- (0, class_validator_1.ValidateIf)(() => false, { groups: ['update'] }),
36
42
  __metadata("design:type", String)
37
- ], SavePaymentValidator.prototype, "hash", void 0);
43
+ ], CreatePaymentRequestValidator.prototype, "hash", void 0);
38
44
  __decorate([
39
45
  (0, class_validator_1.IsString)(),
40
46
  (0, class_validator_1.Length)(4, 4),
41
47
  (0, class_validator_1.IsNotEmpty)(),
42
- (0, class_validator_1.ValidateIf)(() => false, { groups: ['update'] }),
43
48
  __metadata("design:type", String)
44
- ], SavePaymentValidator.prototype, "last4", void 0);
49
+ ], CreatePaymentRequestValidator.prototype, "last4", void 0);
45
50
  __decorate([
46
51
  (0, class_validator_1.IsString)(),
47
52
  (0, class_validator_1.IsNotEmpty)(),
48
53
  (0, class_validator_1.Length)(0, 50),
49
- (0, class_validator_1.ValidateIf)(() => false, { groups: ['update'] }),
50
54
  __metadata("design:type", String)
51
- ], SavePaymentValidator.prototype, "brand", void 0);
55
+ ], CreatePaymentRequestValidator.prototype, "brand", void 0);
52
56
  __decorate([
53
57
  (0, class_validator_1.IsInt)(),
54
58
  (0, class_validator_1.Min)(1),
55
59
  (0, class_validator_1.Max)(12),
56
60
  (0, class_validator_1.IsNotEmpty)(),
57
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
58
61
  __metadata("design:type", Number)
59
- ], SavePaymentValidator.prototype, "expMonth", void 0);
62
+ ], CreatePaymentRequestValidator.prototype, "expMonth", void 0);
60
63
  __decorate([
61
64
  (0, class_validator_1.IsInt)(),
62
65
  (0, class_validator_1.Min)(2000),
63
66
  (0, class_validator_1.IsNotEmpty)(),
64
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
65
67
  __metadata("design:type", Number)
66
- ], SavePaymentValidator.prototype, "expYear", void 0);
68
+ ], CreatePaymentRequestValidator.prototype, "expYear", void 0);
69
+ export class UpdatePaymentRequestValidator extends CreatePaymentRequestValidator {
70
+ }
71
+ __decorate([
72
+ (0, class_validator_1.IsOptional)(),
73
+ __metadata("design:type", String)
74
+ ], UpdatePaymentRequestValidator.prototype, "holder", void 0);
75
+ __decorate([
76
+ (0, class_validator_1.IsOptional)(),
77
+ __metadata("design:type", void 0)
78
+ ], UpdatePaymentRequestValidator.prototype, "hash", void 0);
79
+ __decorate([
80
+ (0, class_validator_1.IsOptional)(),
81
+ __metadata("design:type", void 0)
82
+ ], UpdatePaymentRequestValidator.prototype, "last4", void 0);
83
+ __decorate([
84
+ (0, class_validator_1.IsOptional)(),
85
+ __metadata("design:type", void 0)
86
+ ], UpdatePaymentRequestValidator.prototype, "brand", void 0);
87
+ __decorate([
88
+ (0, class_validator_1.IsOptional)(),
89
+ __metadata("design:type", Number)
90
+ ], UpdatePaymentRequestValidator.prototype, "expMonth", void 0);
91
+ __decorate([
92
+ (0, class_validator_1.IsOptional)(),
93
+ __metadata("design:type", Number)
94
+ ], UpdatePaymentRequestValidator.prototype, "expYear", void 0);
@@ -1,2 +1,2 @@
1
1
  export * from './user.entity';
2
- export * from './user.validator';
2
+ export * from './request.validator';
@@ -1 +1 @@
1
- export * from './user.validator.js';
1
+ export * from './request.validator.js';
@@ -0,0 +1,10 @@
1
+ import { AbstractRequestValidator } from '../..';
2
+ import type { AccountUserEntity } from './';
3
+ export declare class UpdateUserRequestValidator extends AbstractRequestValidator {
4
+ name: string;
5
+ picture: string;
6
+ email: string;
7
+ phone?: string;
8
+ active: boolean;
9
+ constructor(user?: AccountUserEntity);
10
+ }
@@ -8,56 +8,51 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import * as class_validator_1 from "class-validator";
11
- import * as abstract_validator_1 from '../..';
12
- export class SearchUserValidator extends abstract_validator_1.SearchValidator {
13
- }
14
- export class ReadUserValidator extends abstract_validator_1.ReadValidator {
15
- }
16
- export class SaveUserValidator extends abstract_validator_1.AbstractValidator {
11
+ import * as abstract_validator_1 from '../../index.js';
12
+ export class UpdateUserRequestValidator extends abstract_validator_1.AbstractRequestValidator {
17
13
  name;
18
14
  picture;
19
15
  email;
20
16
  phone;
21
- _id;
22
- identities = [];
23
17
  active;
18
+ constructor(user) {
19
+ super();
20
+ if (!user) {
21
+ return;
22
+ }
23
+ this.name = user.name;
24
+ this.picture = user.picture;
25
+ this.email = user.email;
26
+ this.phone = user.phone;
27
+ this.active = user.active;
28
+ }
24
29
  }
25
30
  __decorate([
26
31
  (0, class_validator_1.IsString)(),
27
32
  (0, class_validator_1.IsNotEmpty)(),
28
33
  (0, class_validator_1.Length)(0, 100),
29
34
  __metadata("design:type", String)
30
- ], SaveUserValidator.prototype, "name", void 0);
35
+ ], UpdateUserRequestValidator.prototype, "name", void 0);
31
36
  __decorate([
32
37
  (0, class_validator_1.IsString)(),
33
38
  (0, class_validator_1.IsOptional)(),
34
39
  (0, class_validator_1.Length)(0, 2048),
35
40
  __metadata("design:type", String)
36
- ], SaveUserValidator.prototype, "picture", void 0);
41
+ ], UpdateUserRequestValidator.prototype, "picture", void 0);
37
42
  __decorate([
38
43
  (0, class_validator_1.IsEmail)(),
39
44
  (0, class_validator_1.IsOptional)(),
40
45
  (0, class_validator_1.Length)(0, 254),
41
46
  __metadata("design:type", String)
42
- ], SaveUserValidator.prototype, "email", void 0);
47
+ ], UpdateUserRequestValidator.prototype, "email", void 0);
43
48
  __decorate([
44
49
  (0, class_validator_1.IsString)(),
45
50
  (0, class_validator_1.IsOptional)(),
46
51
  (0, class_validator_1.Length)(0, 20),
47
52
  __metadata("design:type", String)
48
- ], SaveUserValidator.prototype, "phone", void 0);
49
- __decorate([
50
- (0, class_validator_1.IsString)(),
51
- (0, class_validator_1.IsNotEmpty)(),
52
- (0, class_validator_1.IsOptional)({ groups: ['update'] }),
53
- __metadata("design:type", String)
54
- ], SaveUserValidator.prototype, "_id", void 0);
55
- __decorate([
56
- (0, class_validator_1.IsOptional)(),
57
- __metadata("design:type", Array)
58
- ], SaveUserValidator.prototype, "identities", void 0);
53
+ ], UpdateUserRequestValidator.prototype, "phone", void 0);
59
54
  __decorate([
60
55
  (0, class_validator_1.IsBoolean)(),
61
56
  (0, class_validator_1.IsOptional)(),
62
57
  __metadata("design:type", Boolean)
63
- ], SaveUserValidator.prototype, "active", void 0);
58
+ ], UpdateUserRequestValidator.prototype, "active", void 0);
@@ -7,6 +7,6 @@ export declare class AddressValidator {
7
7
  locality?: string;
8
8
  country: string;
9
9
  code: string;
10
- latitude?: number;
11
- longitude?: number;
10
+ latitude: number;
11
+ longitude: number;
12
12
  }
@@ -1,3 +1,3 @@
1
1
  export * from './invoice.entity';
2
2
  export * from './invoice.enum';
3
- export * from './invoice.validator';
3
+ export * from './request.validator';
@@ -1,2 +1,2 @@
1
1
  export * from './invoice.enum.js';
2
- export * from './invoice.validator.js';
2
+ export * from './request.validator.js';
@@ -0,0 +1,21 @@
1
+ import { FinanceInvoiceStatusEnum, FinanceInvoiceTypeEnum } from './';
2
+ import { AbstractRequestValidator } from '../..';
3
+ import type { FinanceInvoiceEntity } from './';
4
+ export declare class CreateFinanceInvoiceRequestValidator extends AbstractRequestValidator {
5
+ order: string;
6
+ orderModel: string;
7
+ customer?: string;
8
+ type: FinanceInvoiceTypeEnum;
9
+ total?: number;
10
+ subtotal?: number;
11
+ tax?: number;
12
+ dueDate?: Date;
13
+ notes?: string;
14
+ status?: FinanceInvoiceStatusEnum;
15
+ constructor(invoice?: FinanceInvoiceEntity);
16
+ }
17
+ export declare class UpdateFinanceInvoiceRequestValidator extends CreateFinanceInvoiceRequestValidator {
18
+ order: string;
19
+ orderModel: string;
20
+ type: FinanceInvoiceTypeEnum;
21
+ }