@alba-cars/common-modules 1.2.0

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 (84) hide show
  1. package/README.md +42 -0
  2. package/dist/features/blog/data/dto/BlogDTO.d.ts +41 -0
  3. package/dist/features/blog/data/dto/BlogDTO.js +128 -0
  4. package/dist/features/newsletter/data/dto/NewsletterDTO.d.ts +17 -0
  5. package/dist/features/newsletter/data/dto/NewsletterDTO.js +79 -0
  6. package/dist/features/sales-team/data/dto/SalesAgentDTO.d.ts +47 -0
  7. package/dist/features/sales-team/data/dto/SalesAgentDTO.js +134 -0
  8. package/dist/features/showroom-visit/data/dto/ShowroomVisit.d.ts +28 -0
  9. package/dist/features/showroom-visit/data/dto/ShowroomVisit.js +119 -0
  10. package/dist/features/test-drive-request/data/dto/TestDriveRequestDTO.d.ts +45 -0
  11. package/dist/features/test-drive-request/data/dto/TestDriveRequestDTO.js +163 -0
  12. package/dist/features/test-drive-request/data/enums/index.d.ts +24 -0
  13. package/dist/features/test-drive-request/data/enums/index.js +29 -0
  14. package/dist/features/test-drive-request/data/models/TestDriveRequest.d.ts +14 -0
  15. package/dist/features/test-drive-request/data/models/TestDriveRequest.js +7 -0
  16. package/dist/features/test-drive-request/data/models/index.d.ts +2 -0
  17. package/dist/features/test-drive-request/data/models/index.js +5 -0
  18. package/dist/features/test-drive-request/data/utilities.d.ts +29 -0
  19. package/dist/features/test-drive-request/data/utilities.js +95 -0
  20. package/dist/features/vehicle/data/dto/BaseDTO.d.ts +10 -0
  21. package/dist/features/vehicle/data/dto/BaseDTO.js +42 -0
  22. package/dist/features/vehicle/data/dto/PaymentDTO.d.ts +52 -0
  23. package/dist/features/vehicle/data/dto/PaymentDTO.js +161 -0
  24. package/dist/features/vehicle/data/dto/UserDTO.d.ts +16 -0
  25. package/dist/features/vehicle/data/dto/UserDTO.js +53 -0
  26. package/dist/features/vehicle/data/dto/VehicleDTO.d.ts +103 -0
  27. package/dist/features/vehicle/data/dto/VehicleDTO.js +425 -0
  28. package/dist/features/vehicle/data/dto/VehicleFeatureCategoriesDTO.d.ts +39 -0
  29. package/dist/features/vehicle/data/dto/VehicleFeatureCategoriesDTO.js +114 -0
  30. package/dist/features/vehicle/data/dto/VehicleFeatureDTO.d.ts +38 -0
  31. package/dist/features/vehicle/data/dto/VehicleFeatureDTO.js +121 -0
  32. package/dist/features/vehicle/data/dto/VehicleFinanceDTO.d.ts +46 -0
  33. package/dist/features/vehicle/data/dto/VehicleFinanceDTO.js +143 -0
  34. package/dist/features/vehicle/data/dto/VehicleMakeDTO.d.ts +46 -0
  35. package/dist/features/vehicle/data/dto/VehicleMakeDTO.js +169 -0
  36. package/dist/features/vehicle/data/dto/VehicleMedia.d.ts +28 -0
  37. package/dist/features/vehicle/data/dto/VehicleMedia.js +119 -0
  38. package/dist/features/vehicle/data/dto/VehicleModelDTO.d.ts +52 -0
  39. package/dist/features/vehicle/data/dto/VehicleModelDTO.js +189 -0
  40. package/dist/features/vehicle/data/dto/VehicleOrderDTO.d.ts +34 -0
  41. package/dist/features/vehicle/data/dto/VehicleOrderDTO.js +139 -0
  42. package/dist/features/vehicle/data/dto/VehicleTypeDTO.d.ts +35 -0
  43. package/dist/features/vehicle/data/dto/VehicleTypeDTO.js +102 -0
  44. package/dist/features/vehicle/data/enums/index.d.ts +4 -0
  45. package/dist/features/vehicle/data/enums/index.js +8 -0
  46. package/dist/features/vehicle/data/models/Base.d.ts +12 -0
  47. package/dist/features/vehicle/data/models/Base.js +6 -0
  48. package/dist/features/vehicle/data/models/Payment.d.ts +18 -0
  49. package/dist/features/vehicle/data/models/Payment.js +7 -0
  50. package/dist/features/vehicle/data/models/User.d.ts +15 -0
  51. package/dist/features/vehicle/data/models/User.js +6 -0
  52. package/dist/features/vehicle/data/models/Vehicle.d.ts +42 -0
  53. package/dist/features/vehicle/data/models/Vehicle.js +7 -0
  54. package/dist/features/vehicle/data/models/VehicleBodyType.d.ts +8 -0
  55. package/dist/features/vehicle/data/models/VehicleBodyType.js +7 -0
  56. package/dist/features/vehicle/data/models/VehicleCategory.d.ts +6 -0
  57. package/dist/features/vehicle/data/models/VehicleCategory.js +7 -0
  58. package/dist/features/vehicle/data/models/VehicleFeature.d.ts +8 -0
  59. package/dist/features/vehicle/data/models/VehicleFeature.js +7 -0
  60. package/dist/features/vehicle/data/models/VehicleFeatureCategory.d.ts +6 -0
  61. package/dist/features/vehicle/data/models/VehicleFeatureCategory.js +7 -0
  62. package/dist/features/vehicle/data/models/VehicleFinance.d.ts +16 -0
  63. package/dist/features/vehicle/data/models/VehicleFinance.js +7 -0
  64. package/dist/features/vehicle/data/models/VehicleMake.d.ts +14 -0
  65. package/dist/features/vehicle/data/models/VehicleMake.js +7 -0
  66. package/dist/features/vehicle/data/models/VehicleMedia.d.ts +11 -0
  67. package/dist/features/vehicle/data/models/VehicleMedia.js +7 -0
  68. package/dist/features/vehicle/data/models/VehicleMetaData.d.ts +11 -0
  69. package/dist/features/vehicle/data/models/VehicleMetaData.js +7 -0
  70. package/dist/features/vehicle/data/models/VehicleModel.d.ts +17 -0
  71. package/dist/features/vehicle/data/models/VehicleModel.js +7 -0
  72. package/dist/features/vehicle/data/models/VehicleOrder.d.ts +14 -0
  73. package/dist/features/vehicle/data/models/VehicleOrder.js +7 -0
  74. package/dist/features/vehicle/data/models/index.d.ts +14 -0
  75. package/dist/features/vehicle/data/models/index.js +29 -0
  76. package/dist/features/vehicle/data/utilities.d.ts +209 -0
  77. package/dist/features/vehicle/data/utilities.js +706 -0
  78. package/dist/global/dto/BaseGetDTO.d.ts +8 -0
  79. package/dist/global/dto/BaseGetDTO.js +18 -0
  80. package/dist/global/utilities.d.ts +48 -0
  81. package/dist/global/utilities.js +138 -0
  82. package/dist/index.d.ts +18 -0
  83. package/dist/index.js +34 -0
  84. package/package.json +49 -0
@@ -0,0 +1,8 @@
1
+ import { TypedFilter, TypedOptions } from "../utilities";
2
+ export declare abstract class BaseGetDTO<TEntity extends Record<string, any>, TFilter extends TypedFilter> {
3
+ filters?: TFilter;
4
+ options?: TypedOptions<TEntity>;
5
+ validate(): string[];
6
+ static fromPlain<T extends BaseGetDTO<any, any>>(this: new () => T, plain: Record<string, unknown>): T;
7
+ static toPlain(entity: any): Record<string, unknown>;
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseGetDTO = void 0;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ class BaseGetDTO {
7
+ validate() {
8
+ const errors = (0, class_validator_1.validateSync)(this);
9
+ return errors.map((error) => { var _a; return Object.values((_a = error.constraints) !== null && _a !== void 0 ? _a : {}); }).flat();
10
+ }
11
+ static fromPlain(plain) {
12
+ return (0, class_transformer_1.plainToClass)(this, plain);
13
+ }
14
+ static toPlain(entity) {
15
+ return (0, class_transformer_1.instanceToPlain)(entity);
16
+ }
17
+ }
18
+ exports.BaseGetDTO = BaseGetDTO;
@@ -0,0 +1,48 @@
1
+ import { ValidationOptions } from "class-validator";
2
+ export type Numeric = number | `${number}`;
3
+ export type Booleanish = boolean | "true" | "1" | "false" | "0";
4
+ export type Optional<T> = T | undefined;
5
+ export type Nullable<T> = T | null;
6
+ export type Maybe<T> = T | null | undefined;
7
+ export type Prettify<T> = {
8
+ [K in keyof T]: T[K];
9
+ } & {};
10
+ export declare function IsDateOrConvertible(validationOptions?: ValidationOptions): (object: Record<string, unknown>, propertyName: string) => void;
11
+ export declare class PaginationOptions {
12
+ limit?: number;
13
+ page?: number;
14
+ }
15
+ export declare class DateFilter {
16
+ from?: Date | string | number;
17
+ to?: Date | string | number;
18
+ }
19
+ export declare class NumberRange {
20
+ min?: number;
21
+ max?: number;
22
+ }
23
+ export declare class BaseFilter {
24
+ id?: string | string[];
25
+ createdBy?: string | string[];
26
+ updatedBy?: string | string[];
27
+ deletedBy?: string | string[];
28
+ isDeleted?: boolean;
29
+ isActive?: boolean;
30
+ createdAt?: DateFilter;
31
+ updatedAt?: DateFilter;
32
+ deletedAt?: DateFilter;
33
+ }
34
+ export type TypedSort<T> = Partial<Record<keyof T, "asc" | "desc">>;
35
+ export type PrefixedKeys<T extends Record<string, any>, Prefix extends string> = `${Prefix}.${keyof T & string}`;
36
+ export type TypedSelect<T, Nested extends Record<string, any>> = keyof T | {
37
+ [K in keyof Nested]: PrefixedKeys<Nested[K], K & string>;
38
+ }[keyof Nested];
39
+ export declare class TypedFilter extends BaseFilter {
40
+ [key: string]: unknown;
41
+ }
42
+ export declare class TypedOptions<T extends Record<string, any>> extends PaginationOptions {
43
+ sort?: TypedSort<T>;
44
+ select?: string | string[];
45
+ validate(): string[];
46
+ static fromPlain(plain: Record<string, unknown>): TypedOptions<Record<string, any>>;
47
+ static toPlain(entity: any): Record<string, unknown>;
48
+ }
@@ -0,0 +1,138 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TypedOptions = exports.TypedFilter = exports.BaseFilter = exports.NumberRange = exports.DateFilter = exports.PaginationOptions = exports.IsDateOrConvertible = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
15
+ function IsDateOrConvertible(validationOptions) {
16
+ return function (object, propertyName) {
17
+ (0, class_validator_1.registerDecorator)({
18
+ name: "isDateOrConvertible",
19
+ target: object.constructor,
20
+ propertyName: propertyName,
21
+ options: validationOptions,
22
+ validator: {
23
+ validate(value, _args) {
24
+ return value instanceof Date || typeof value === "string" || typeof value === "number";
25
+ },
26
+ defaultMessage(args) {
27
+ return `${args.property} must be a Date, string, or number`;
28
+ },
29
+ },
30
+ });
31
+ };
32
+ }
33
+ exports.IsDateOrConvertible = IsDateOrConvertible;
34
+ class PaginationOptions {
35
+ }
36
+ __decorate([
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_validator_1.IsNumber)(),
39
+ (0, class_validator_1.Max)(100),
40
+ __metadata("design:type", Number)
41
+ ], PaginationOptions.prototype, "limit", void 0);
42
+ __decorate([
43
+ (0, class_validator_1.IsOptional)(),
44
+ (0, class_validator_1.IsNumber)(),
45
+ __metadata("design:type", Number)
46
+ ], PaginationOptions.prototype, "page", void 0);
47
+ exports.PaginationOptions = PaginationOptions;
48
+ class DateFilter {
49
+ }
50
+ __decorate([
51
+ (0, class_validator_1.IsOptional)(),
52
+ (0, class_validator_1.Validate)(IsDateOrConvertible),
53
+ __metadata("design:type", Object)
54
+ ], DateFilter.prototype, "from", void 0);
55
+ __decorate([
56
+ (0, class_validator_1.IsOptional)(),
57
+ (0, class_validator_1.Validate)(IsDateOrConvertible),
58
+ __metadata("design:type", Object)
59
+ ], DateFilter.prototype, "to", void 0);
60
+ exports.DateFilter = DateFilter;
61
+ class NumberRange {
62
+ }
63
+ __decorate([
64
+ (0, class_validator_1.IsOptional)(),
65
+ (0, class_validator_1.IsNumber)(),
66
+ __metadata("design:type", Number)
67
+ ], NumberRange.prototype, "min", void 0);
68
+ __decorate([
69
+ (0, class_validator_1.IsOptional)(),
70
+ (0, class_validator_1.IsNumber)(),
71
+ __metadata("design:type", Number)
72
+ ], NumberRange.prototype, "max", void 0);
73
+ exports.NumberRange = NumberRange;
74
+ class BaseFilter {
75
+ }
76
+ __decorate([
77
+ (0, class_validator_1.IsOptional)(),
78
+ (0, class_validator_1.IsString)({ each: true }),
79
+ __metadata("design:type", Object)
80
+ ], BaseFilter.prototype, "id", void 0);
81
+ __decorate([
82
+ (0, class_validator_1.IsOptional)(),
83
+ (0, class_validator_1.IsString)({ each: true }),
84
+ __metadata("design:type", Object)
85
+ ], BaseFilter.prototype, "createdBy", void 0);
86
+ __decorate([
87
+ (0, class_validator_1.IsOptional)(),
88
+ (0, class_validator_1.IsString)({ each: true }),
89
+ __metadata("design:type", Object)
90
+ ], BaseFilter.prototype, "updatedBy", void 0);
91
+ __decorate([
92
+ (0, class_validator_1.IsOptional)(),
93
+ (0, class_validator_1.IsString)({ each: true }),
94
+ __metadata("design:type", Object)
95
+ ], BaseFilter.prototype, "deletedBy", void 0);
96
+ __decorate([
97
+ (0, class_validator_1.IsOptional)(),
98
+ (0, class_validator_1.IsBoolean)(),
99
+ __metadata("design:type", Boolean)
100
+ ], BaseFilter.prototype, "isDeleted", void 0);
101
+ __decorate([
102
+ (0, class_validator_1.IsOptional)(),
103
+ (0, class_validator_1.IsBoolean)(),
104
+ __metadata("design:type", Boolean)
105
+ ], BaseFilter.prototype, "isActive", void 0);
106
+ __decorate([
107
+ (0, class_validator_1.IsOptional)(),
108
+ (0, class_validator_1.Validate)(DateFilter),
109
+ __metadata("design:type", DateFilter)
110
+ ], BaseFilter.prototype, "createdAt", void 0);
111
+ __decorate([
112
+ (0, class_validator_1.IsOptional)(),
113
+ (0, class_validator_1.Validate)(DateFilter),
114
+ __metadata("design:type", DateFilter)
115
+ ], BaseFilter.prototype, "updatedAt", void 0);
116
+ __decorate([
117
+ (0, class_validator_1.IsOptional)(),
118
+ (0, class_validator_1.Validate)(DateFilter),
119
+ __metadata("design:type", DateFilter)
120
+ ], BaseFilter.prototype, "deletedAt", void 0);
121
+ exports.BaseFilter = BaseFilter;
122
+ class TypedFilter extends BaseFilter {
123
+ }
124
+ exports.TypedFilter = TypedFilter;
125
+ class TypedOptions extends PaginationOptions {
126
+ validate() {
127
+ const errors = (0, class_validator_1.validateSync)(this);
128
+ return errors.map((error) => { var _a; return Object.values((_a = error.constraints) !== null && _a !== void 0 ? _a : {}); }).flat();
129
+ }
130
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
131
+ static fromPlain(plain) {
132
+ return (0, class_transformer_1.plainToClass)(TypedOptions, plain);
133
+ }
134
+ static toPlain(entity) {
135
+ return (0, class_transformer_1.instanceToPlain)(entity);
136
+ }
137
+ }
138
+ exports.TypedOptions = TypedOptions;
@@ -0,0 +1,18 @@
1
+ import 'reflect-metadata';
2
+ export * from "./features/vehicle/data/dto/UserDTO";
3
+ export * from "./features/vehicle/data/dto/VehicleMakeDTO";
4
+ export * from "./features/vehicle/data/dto/VehicleModelDTO";
5
+ export * from "./features/vehicle/data/dto/VehicleTypeDTO";
6
+ export * from "./features/vehicle/data/dto/VehicleDTO";
7
+ export * from "./features/vehicle/data/dto/VehicleFinanceDTO";
8
+ export * from "./features/vehicle/data/dto/VehicleOrderDTO";
9
+ export * from "./features/vehicle/data/dto/PaymentDTO";
10
+ export * from './features/sales-team/data/dto/SalesAgentDTO';
11
+ export * from "./features/vehicle/data/dto/VehicleFeatureCategoriesDTO";
12
+ export * from "./features/vehicle/data/dto/VehicleFeatureDTO";
13
+ export * from "./features/test-drive-request/data/dto/TestDriveRequestDTO";
14
+ export * from "./global/utilities";
15
+ export * from "./features/test-drive-request/data/models/";
16
+ export * from "./features/vehicle/data/models/";
17
+ export * from './features/vehicle/data/enums';
18
+ export * from './features/test-drive-request/data/enums';
package/dist/index.js ADDED
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ require("reflect-metadata");
18
+ __exportStar(require("./features/vehicle/data/dto/UserDTO"), exports);
19
+ __exportStar(require("./features/vehicle/data/dto/VehicleMakeDTO"), exports);
20
+ __exportStar(require("./features/vehicle/data/dto/VehicleModelDTO"), exports);
21
+ __exportStar(require("./features/vehicle/data/dto/VehicleTypeDTO"), exports);
22
+ __exportStar(require("./features/vehicle/data/dto/VehicleDTO"), exports);
23
+ __exportStar(require("./features/vehicle/data/dto/VehicleFinanceDTO"), exports);
24
+ __exportStar(require("./features/vehicle/data/dto/VehicleOrderDTO"), exports);
25
+ __exportStar(require("./features/vehicle/data/dto/PaymentDTO"), exports);
26
+ __exportStar(require("./features/sales-team/data/dto/SalesAgentDTO"), exports);
27
+ __exportStar(require("./features/vehicle/data/dto/VehicleFeatureCategoriesDTO"), exports);
28
+ __exportStar(require("./features/vehicle/data/dto/VehicleFeatureDTO"), exports);
29
+ __exportStar(require("./features/test-drive-request/data/dto/TestDriveRequestDTO"), exports);
30
+ __exportStar(require("./global/utilities"), exports);
31
+ __exportStar(require("./features/test-drive-request/data/models/"), exports);
32
+ __exportStar(require("./features/vehicle/data/models/"), exports);
33
+ __exportStar(require("./features/vehicle/data/enums"), exports);
34
+ __exportStar(require("./features/test-drive-request/data/enums"), exports);
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@alba-cars/common-modules",
3
+ "publishConfig": {
4
+ "access": "public"
5
+ },
6
+ "version": "1.2.0",
7
+ "description": "A package containing DTOs, validation classes and common modules and interfaces for Alba Cars",
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "prepare": "npm run build",
13
+ "test": "jest"
14
+ },
15
+ "keywords": [
16
+ "DTO",
17
+ "validation",
18
+ "alba-cars",
19
+ "typescript"
20
+ ],
21
+ "author": "Alba Cars",
22
+ "license": "UNLICENSED",
23
+ "private": false,
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/alba-cars/AlbaCarsCommonModules.git"
27
+ },
28
+ "dependencies": {
29
+ "class-transformer": "^0.5.1",
30
+ "class-validator": "^0.14.1"
31
+ },
32
+ "devDependencies": {
33
+ "@types/node": "^16.11.12",
34
+ "@types/validator": "^13.12.1",
35
+ "typescript": "^4.5.5",
36
+ "jest": "^27.4.7",
37
+ "@types/jest": "^27.4.0"
38
+ },
39
+ "peerDependencies": {
40
+ "reflect-metadata": "^0.2.2"
41
+ },
42
+ "files": [
43
+ "dist"
44
+ ],
45
+ "bugs": {
46
+ "url": "https://github.com/alba-cars/AlbaCarsCommonModules/issues"
47
+ },
48
+ "homepage": "https://github.com/alba-cars/AlbaCarsCommonModules#readme"
49
+ }