@goatlab/fluent 0.6.23 → 0.7.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 (125) hide show
  1. package/dist/BaseConnector.d.ts +49 -82
  2. package/dist/BaseConnector.js +219 -319
  3. package/dist/Fluent.d.ts +2 -21
  4. package/dist/Fluent.js +0 -33
  5. package/dist/FluentEntity.d.ts +7 -0
  6. package/dist/FluentEntity.js +28 -0
  7. package/dist/TypeOrmConnector/TypeOrmConnector.d.ts +34 -27
  8. package/dist/TypeOrmConnector/TypeOrmConnector.js +599 -343
  9. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.js +182 -48
  10. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.d.ts +103 -3
  11. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.js +30 -13
  12. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.d.ts +5 -0
  13. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.js +17 -0
  14. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.d.ts +5 -0
  15. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.js +17 -0
  16. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.d.ts +3 -3
  17. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.js +8 -3
  18. package/dist/TypeOrmConnector/test/basic/basicTestSuite.d.ts +1 -1
  19. package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +42 -16
  20. package/dist/TypeOrmConnector/test/basic/goat.entity.d.ts +43 -0
  21. package/dist/TypeOrmConnector/test/basic/goat.entity.js +19 -8
  22. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.d.ts +5 -0
  23. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.js +16 -0
  24. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.d.ts +5 -0
  25. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.js +16 -0
  26. package/dist/TypeOrmConnector/test/basic/goat.repository.d.ts +3 -4
  27. package/dist/TypeOrmConnector/test/basic/goat.repository.js +7 -3
  28. package/dist/TypeOrmConnector/test/dbEntities.d.ts +6 -6
  29. package/dist/TypeOrmConnector/test/docker/docker.d.ts +35 -0
  30. package/dist/TypeOrmConnector/test/docker/docker.js +149 -0
  31. package/dist/TypeOrmConnector/test/docker/mysql.d.ts +17 -0
  32. package/dist/TypeOrmConnector/test/docker/mysql.js +132 -0
  33. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.d.ts +8 -0
  34. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.js +23 -0
  35. package/dist/TypeOrmConnector/test/mongo/mongo.memory.d.ts +4 -0
  36. package/dist/TypeOrmConnector/test/mongo/mongo.memory.js +43 -0
  37. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.d.ts +2 -0
  38. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.js +12 -0
  39. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.d.ts +8 -0
  40. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.js +23 -0
  41. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.d.ts +6 -0
  42. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.js +17 -0
  43. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.d.ts +10 -0
  44. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.js +31 -0
  45. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +6 -0
  46. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.js +17 -0
  47. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.d.ts +2 -0
  48. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.js +16 -0
  49. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.d.ts +8 -0
  50. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.js +23 -0
  51. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.d.ts +6 -0
  52. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.js +17 -0
  53. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.d.ts +10 -0
  54. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.js +32 -0
  55. package/dist/TypeOrmConnector/test/relations/car/car.entity.d.ts +1 -0
  56. package/dist/TypeOrmConnector/test/relations/car/car.entity.js +13 -5
  57. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.d.ts +3 -3
  58. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.js +11 -4
  59. package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +38 -0
  60. package/dist/TypeOrmConnector/test/relations/car/car.schema.js +14 -0
  61. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +85 -32
  62. package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +35 -0
  63. package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +16 -0
  64. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.js +4 -4
  65. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.d.ts +3 -3
  66. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.js +12 -4
  67. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.d.ts +2 -2
  68. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.js +4 -4
  69. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.d.ts +15 -0
  70. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.js +9 -0
  71. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +3 -3
  72. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.js +8 -3
  73. package/dist/TypeOrmConnector/test/relations/user/user.entity.js +10 -10
  74. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.d.ts +3 -3
  75. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.js +17 -5
  76. package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +150 -0
  77. package/dist/TypeOrmConnector/test/relations/user/user.schema.js +18 -0
  78. package/dist/TypeOrmConnector/test/{memoryDataSource.d.ts → sqlite/memoryDataSource.d.ts} +0 -0
  79. package/dist/TypeOrmConnector/test/{memoryDataSource.js → sqlite/memoryDataSource.js} +1 -1
  80. package/dist/core/Loopback/build-schema.js +1 -3
  81. package/dist/core/Loopback/json-to-schema.js +6 -6
  82. package/dist/core/Loopback/mapValues.d.ts +2 -0
  83. package/dist/core/Loopback/mapValues.js +835 -0
  84. package/dist/core/Loopback/query.js +6 -4
  85. package/dist/core/Loopback/type-resolver.d.ts +1 -1
  86. package/dist/core/Nestjs/applyDecorators.d.ts +1 -1
  87. package/dist/core/Nestjs/types/common.js +3 -1
  88. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +1 -1
  89. package/dist/core/Nestjs/types/decorators/create-property.decorator.js +9 -4
  90. package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +1 -1
  91. package/dist/core/Nestjs/types/decorators/field.decorator.js +6 -6
  92. package/dist/core/Nestjs/types/lazy-metadata.storage.js +3 -3
  93. package/dist/core/Nestjs/types/omit-type.js +6 -2
  94. package/dist/core/Nestjs/types/reflection.utils.d.ts +1 -1
  95. package/dist/core/Nestjs/types/reflection.utils.js +9 -2
  96. package/dist/core/Nestjs/types/type-metadata.storage.js +4 -4
  97. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +1 -11
  98. package/dist/core/Nestjs/types/utils/mapped-types.utils.js +2 -2
  99. package/dist/decorators.d.ts +25 -21
  100. package/dist/decorators.js +76 -70
  101. package/dist/index.d.ts +6 -7
  102. package/dist/index.js +5 -7
  103. package/dist/loadRelations.js +108 -68
  104. package/dist/tsconfig.tsbuildinfo +1 -1
  105. package/dist/types.d.ts +104 -60
  106. package/dist/types.js +20 -0
  107. package/package.json +11 -101
  108. package/dist/TypeOrmConnector/TypeOrmMongoConnector._bypass.d.ts +0 -1
  109. package/dist/TypeOrmConnector/TypeOrmMongoConnector._bypass.js +0 -52
  110. package/dist/TypeOrmConnector/TypeOrmMysqlConnector._bypass.d.ts +0 -1
  111. package/dist/TypeOrmConnector/TypeOrmMysqlConnector._bypass.js +0 -55
  112. package/dist/TypeOrmConnector/test/basic/goat.dto.d.ts +0 -8
  113. package/dist/TypeOrmConnector/test/basic/goat.dto.js +0 -18
  114. package/dist/TypeOrmConnector/test/relations/car/car.dto.d.ts +0 -5
  115. package/dist/TypeOrmConnector/test/relations/car/car.dto.js +0 -12
  116. package/dist/TypeOrmConnector/test/relations/roles/role.dto.d.ts +0 -5
  117. package/dist/TypeOrmConnector/test/relations/roles/role.dto.js +0 -12
  118. package/dist/TypeOrmConnector/test/relations/roles/roles_user.dto.d.ts +0 -5
  119. package/dist/TypeOrmConnector/test/relations/roles/roles_user.dto.js +0 -12
  120. package/dist/TypeOrmConnector/test/relations/user/user.dto.d.ts +0 -5
  121. package/dist/TypeOrmConnector/test/relations/user/user.dto.js +0 -12
  122. package/dist/core/dtos/access.dto.d.ts +0 -4
  123. package/dist/core/dtos/access.dto.js +0 -21
  124. package/dist/core/dtos/pagination.dto.d.ts +0 -13
  125. package/dist/core/dtos/pagination.dto.js +0 -62
package/dist/types.d.ts CHANGED
@@ -1,80 +1,124 @@
1
1
  import { ObjectID } from 'bson';
2
- export interface BaseDataElement {
2
+ export interface AnyObject {
3
3
  id?: string;
4
4
  _id?: string;
5
5
  [key: string]: any;
6
6
  }
7
+ declare type Unpacked<T> = T extends (infer U)[] ? U : T;
8
+ export declare type Concrete<Type> = {
9
+ [Property in keyof Type]-?: Type[Property];
10
+ };
11
+ export declare type QueryFieldSelector<T> = Partial<{
12
+ [K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Unpacked<Partial<QueryFieldSelector<Concrete<T>[K]>>> : boolean | undefined;
13
+ }>;
14
+ export declare type QueryOrderSelector<T> = Partial<{
15
+ [K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Partial<QueryOrderSelector<Concrete<T>[K]>> : 'asc' | 'desc' | undefined;
16
+ }>;
17
+ export declare type QueryOperations<T> = {
18
+ [key in LogicOperator]: T;
19
+ };
20
+ export declare type QueryWhereFitler<T> = Partial<{
21
+ [K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Partial<QueryWhereFitler<Concrete<T>[K]>> : Partial<QueryOperations<Concrete<T>[K]>> | T[K];
22
+ }>;
23
+ export declare type QueryInsert<T> = {
24
+ [K in keyof T]: T[K] extends object ? QueryInsert<T[K]> : T[K];
25
+ };
26
+ export declare type ModelRelation<T> = T;
27
+ export declare type QueryIncludeRelation<T> = {
28
+ [K in keyof Partial<T>]: FluentQuery<Unpacked<T[K]>> | boolean;
29
+ };
30
+ export declare type FluentQuery<T> = {
31
+ select?: QueryFieldSelector<T>;
32
+ where?: {
33
+ OR: FluentQuery<T>['where'][];
34
+ AND: FluentQuery<T>['where'][];
35
+ } | QueryWhereFitler<T>;
36
+ orderBy?: QueryOrderSelector<T>[];
37
+ limit?: number;
38
+ offset?: number;
39
+ include?: QueryIncludeRelation<T>;
40
+ paginated?: Paginator;
41
+ };
42
+ export declare type AddUndefinedIfNullable<T> = T extends null | undefined ? undefined : never;
43
+ export declare type GetSelectedFromObject<T extends FluentQuery<Model>, Model, OutputDTO> = {
44
+ [P in keyof T['select']]: T['select'][P] extends object ? QueryOutput<{
45
+ select: T['select'][P];
46
+ }, NonNullable<Model[P]>, OutputDTO[P]> | AddUndefinedIfNullable<Model[P]> : OutputDTO[P];
47
+ };
48
+ export declare type QueryOutput<T extends FluentQuery<Model>, Model, OutputDTO> = T extends {
49
+ select: T['select'];
50
+ } ? T extends {
51
+ paginated: T['paginated'];
52
+ } ? PaginatedData<GetSelectedFromObject<T, Model, OutputDTO>> : GetSelectedFromObject<T, Model, OutputDTO>[] : T extends {
53
+ paginated: T['paginated'];
54
+ } ? PaginatedData<OutputDTO> : OutputDTO[];
55
+ export declare type SingleQueryOutput<T extends FluentQuery<Model>, Model, OutputDTO> = T extends {
56
+ select: T['select'];
57
+ } ? T extends {
58
+ paginated: T['paginated'];
59
+ } ? PaginatedData<GetSelectedFromObject<T, Model, OutputDTO>> : GetSelectedFromObject<T, Model, OutputDTO> : T extends {
60
+ paginated: T['paginated'];
61
+ } ? PaginatedData<OutputDTO> : OutputDTO;
7
62
  export interface PaginatedData<T> {
8
- current_page: number;
63
+ currentPage: number;
9
64
  data: T[];
10
- first_page_url: string;
11
- next_page_url: string;
12
- prev_page_url: string;
13
- path: string;
14
- per_page: number;
65
+ firstPageUrl?: string;
66
+ nextPageUrl?: string;
67
+ prevPageUrl?: string;
68
+ path?: string;
69
+ perPage: number;
15
70
  total: number;
71
+ lastPage: number;
72
+ firstPage: number;
73
+ nextPage: number;
74
+ prevPage: number | null;
75
+ from: number;
76
+ to: number;
16
77
  }
17
78
  export interface Paginator {
18
79
  page: number;
19
- perPage: any;
20
- }
21
- export interface Sure {
22
- sure: boolean;
80
+ perPage: number;
23
81
  }
24
82
  export interface Deleted {
25
83
  deleted: number;
26
84
  }
27
85
  export declare type Primitives = boolean | string | number | ObjectID;
28
86
  export declare type PrimitivesArray = boolean[] | string[] | number[] | ObjectID[];
29
- export declare type LogicOperator = '=' | '<' | '>' | '<=' | '>=' | '<>' | '!=' | 'in' | 'nin' | 'like' | 'regexp' | 'startsWith' | 'endsWith' | 'contains' | 'array-contains';
30
- export declare type DaoOutput<Input, Output> = {
31
- id: string;
32
- } & Input | {
33
- id: string;
34
- } & Output;
35
- export declare type WhereClause = [string, LogicOperator, Primitives];
36
- export declare type Filter = {
37
- fields?: string[];
87
+ export declare enum LogicOperator {
88
+ equals = "equals",
89
+ lessThan = "lessThan",
90
+ greaterThan = "greaterThan",
91
+ lessOrEqualThan = "lessOrEqualThan",
92
+ greaterOrEqualThan = "greaterOrEqualThan",
93
+ isNot = "isNot",
94
+ in = "in",
95
+ notIn = "notIn",
96
+ like = "like",
97
+ regexp = "regexp",
98
+ startsWith = "startsWith",
99
+ endsWith = "endsWith",
100
+ contains = "contains",
101
+ arrayContains = "arrayContains",
102
+ exists = "exists",
103
+ notExists = "notExists"
104
+ }
105
+ export declare type FluentHasManyRelatedAttribute<T> = Partial<{
106
+ [K in keyof Concrete<T>]: Concrete<T>[K] extends object ? Unpacked<Partial<FluentHasManyRelatedAttribute<Concrete<T>[K]>>> | boolean : boolean | undefined;
107
+ }>;
108
+ export declare type FluentHasManyParams<T extends FluentHasManyParams<T>> = {
109
+ repository: new () => InstanceType<T['repository']>;
110
+ };
111
+ export declare type FluentBelongsToParams<T extends FluentHasManyParams<T>> = {
112
+ repository: new () => InstanceType<T['repository']>;
113
+ };
114
+ export declare type FluentBelongsToManyParams<T extends FluentBelongsToManyParams<T>> = {
115
+ repository: new () => InstanceType<T['repository']>;
116
+ pivot: new () => InstanceType<T['pivot']>;
117
+ };
118
+ export declare type FindByIdFilter<T> = {
119
+ select?: FluentQuery<T>['select'];
120
+ include?: FluentQuery<T>['include'];
38
121
  limit?: number;
39
- offset?: number;
40
- order?: {
41
- field: string;
42
- asc?: boolean;
43
- type?: 'string' | 'number' | 'date';
44
- };
45
- skip?: number;
46
- where?: {
47
- and?: WhereClause[];
48
- or?: WhereClause[];
49
- };
50
122
  };
51
- declare type Cons<H, T> = T extends readonly any[] ? ((h: H, ...t: T) => void) extends (...r: infer R) => void ? R : never : never;
52
- declare type Prev = [
53
- never,
54
- 0,
55
- 1,
56
- 2,
57
- 3,
58
- 4,
59
- 5,
60
- 6,
61
- 7,
62
- 8,
63
- 9,
64
- 10,
65
- 11,
66
- 12,
67
- 13,
68
- 14,
69
- 15,
70
- 16,
71
- 17,
72
- 18,
73
- 19,
74
- 20,
75
- ...0[]
76
- ];
77
- export declare type Paths<T, D extends number = 10> = [D] extends [never] ? never : T extends object ? {
78
- [K in keyof T]-?: [K] | (Paths<T[K], Prev[D]> extends infer P ? P extends [] ? never : Cons<K, P> : never);
79
- }[keyof T] : [];
123
+ export declare type LoadedResult<T> = Omit<T, 'findMany' | 'insert' | 'insertMany' | 'loadFirst' | 'byId' | 'replaceById' | 'updateById' | 'clear' | 'requireById' | 'collect' | 'findByIds' | 'findFirst' | 'isMongoDB' | 'pluck' | 'raw' | 'associate' | 'attach' | 'withPivot' | 'loadById'>;
80
124
  export {};
package/dist/types.js CHANGED
@@ -1,2 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogicOperator = void 0;
4
+ var LogicOperator;
5
+ (function (LogicOperator) {
6
+ LogicOperator["equals"] = "equals";
7
+ LogicOperator["lessThan"] = "lessThan";
8
+ LogicOperator["greaterThan"] = "greaterThan";
9
+ LogicOperator["lessOrEqualThan"] = "lessOrEqualThan";
10
+ LogicOperator["greaterOrEqualThan"] = "greaterOrEqualThan";
11
+ LogicOperator["isNot"] = "isNot";
12
+ LogicOperator["in"] = "in";
13
+ LogicOperator["notIn"] = "notIn";
14
+ LogicOperator["like"] = "like";
15
+ LogicOperator["regexp"] = "regexp";
16
+ LogicOperator["startsWith"] = "startsWith";
17
+ LogicOperator["endsWith"] = "endsWith";
18
+ LogicOperator["contains"] = "contains";
19
+ LogicOperator["arrayContains"] = "arrayContains";
20
+ LogicOperator["exists"] = "exists";
21
+ LogicOperator["notExists"] = "notExists";
22
+ })(LogicOperator = exports.LogicOperator || (exports.LogicOperator = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goatlab/fluent",
3
- "version": "0.6.23",
3
+ "version": "0.7.0",
4
4
  "description": "Readable query Interface & API generator for TS and Node",
5
5
  "scripts": {
6
6
  "install-p": "yarn",
@@ -13,55 +13,31 @@
13
13
  "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
14
14
  "update:packages": "npm-check-updates -u && yarn",
15
15
  "serve": "tsc -w",
16
- "build": "tsc",
17
- "pack": "npm-pack-zip",
18
- "release": "release-it patch --no-npm.publish --ci",
19
- "release:patch": "release-it patch --no-npm.publish --ci",
20
- "release:minor": "release-it minor --no-npm.publish --ci",
21
- "release:major": "release-it major --no-npm.publish --ci ",
22
- "rc": "release-it --no-npm.publish --ci --preRelease=rc",
23
- "rc:patch": "release-it patch --no-npm.publish --ci --preRelease=rc",
24
- "rc:minor": "release-it minor --no-npm.publish --ci --preRelease=rc",
25
- "rc:major": "release-it major --no-npm.publish --ci --preRelease=rc",
26
- "changelog": "auto-changelog --template changelog-template.hbs -p -u --commit-limit false",
27
- "changelog-debug": "auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json"
16
+ "build": "tsc"
28
17
  },
29
18
  "dependencies": {
30
- "@goatlab/dates": "^0.6.5",
31
- "@goatlab/js-utils": "^0.7.10",
19
+ "@goatlab/js-utils": "^0.8.0",
32
20
  "@loopback/metadata": "^4.1.2",
33
- "assert": "^2.0.0",
34
21
  "bson": "^4.6.2",
35
- "class-transformer": "^0.5.1",
36
- "class-validator": "^0.13.2",
37
- "debug": "^4.3.4",
38
- "fireorm": "^0.23.3",
39
22
  "graphql": "^16.3.0",
40
23
  "keyv": "^4.2.2",
41
- "lodash": "^4.17.21",
42
- "mongodb": "^4.4.1",
43
24
  "openapi3-ts": "^2.0.2",
44
25
  "reflect-metadata": "^0.1.13",
45
- "typed-path": "^2.2.3",
46
- "typeorm": "^0.3.4"
26
+ "typeorm": "^0.3.7",
27
+ "zod": "^3.17.10"
47
28
  },
48
29
  "devDependencies": {
49
- "@commitlint/cli": "^16.2.3",
50
- "@commitlint/config-conventional": "^16.2.1",
51
- "@commitlint/prompt-cli": "^16.2.3",
52
- "@digitalroute/cz-conventional-changelog-for-jira": "^7.2.1",
53
- "auto-changelog": "^2.4.0",
54
- "commitizen": "^4.2.4",
55
- "cz-conventional-changelog": "^3.3.0",
56
- "cz-jira-smart-commit": "^3.0.0",
30
+ "cross-spawn": "^7.0.3",
31
+ "detect-port": "^1.3.0",
57
32
  "dotenv-cli": "^5.1.0",
58
33
  "eslint": "^8.5.0",
59
- "husky": "^7.0.4",
60
34
  "jest": "^27.5.1",
61
- "npm-pack-zip": "^1.3.0",
35
+ "modern-spawn": "^1.0.0",
36
+ "mongodb-memory-server": "^8.8.0",
37
+ "mysql2": "^2.3.3",
38
+ "net": "^1.0.2",
62
39
  "prettier": "^2.6.1",
63
40
  "pretty-quick": "^3.1.3",
64
- "release-it": "^14.13.1",
65
41
  "ts-jest": "^27.1.4",
66
42
  "ts-node": "^10.7.0",
67
43
  "turbo": "^1.1.10",
@@ -89,72 +65,6 @@
89
65
  ],
90
66
  "author": "ignacio.cabrera@goatlab.io",
91
67
  "license": "MIT",
92
- "commitlint": {
93
- "extends": [
94
- "@commitlint/config-conventional"
95
- ],
96
- "rules": {
97
- "subject-case": [
98
- 2,
99
- "never",
100
- []
101
- ]
102
- }
103
- },
104
- "husky": {
105
- "hooks": {
106
- "pre-commit": "pretty-quick --staged && npm test",
107
- "commit-msg": "exec < /dev/tty && git cz --hook || true && commitlint -E HUSKY_GIT_PARAMS",
108
- "pre-push": "npm run build"
109
- }
110
- },
111
- "release-it": {
112
- "src": {
113
- "commitMessage": "ci: CI-1 [Release] v%s"
114
- },
115
- "git": {
116
- "requireBranch": "master",
117
- "commitArgs": [
118
- "--no-verify"
119
- ]
120
- },
121
- "hooks": {
122
- "before:init": [
123
- "npm run build",
124
- "npm run pack"
125
- ],
126
- "after:bump": "npm run changelog",
127
- "after:release": "echo Successfully released ${name} v${version} to ${repo.repository}."
128
- },
129
- "github": {
130
- "release": true,
131
- "assets": [
132
- "./*.zip"
133
- ]
134
- }
135
- },
136
- "auto-changelog": {
137
- "commitLimit": false,
138
- "unreleased": true,
139
- "issueUrl": "https://goatlab.atlassian.net/browse/{id}",
140
- "replaceText": {
141
- "[Ff]eature:": "",
142
- "[Ff]ix:": "",
143
- "[Bb]reak:": "",
144
- "([A-Z]+-\\d+)": "[$1](https://goatlab.atlassian.net/browse//$1) - "
145
- },
146
- "includeBranch": [
147
- "master"
148
- ]
149
- },
150
- "config": {
151
- "commitizen": {
152
- "path": "./node_modules/@digitalroute/cz-conventional-changelog-for-jira"
153
- },
154
- "mongodbMemoryServer": {
155
- "version": "latest"
156
- }
157
- },
158
68
  "engines": {
159
69
  "node": ">=14.16.0"
160
70
  }
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const typeorm_1 = require("typeorm");
4
- const car_entity_1 = require("./test/relations/car/car.entity");
5
- const car_repositoryTypeOrm_1 = require("./test/relations/car/car.repositoryTypeOrm");
6
- const goat_entity_1 = require("./test/basic/goat.entity");
7
- const goat_repository_1 = require("./test/basic/goat.repository");
8
- const roles_entity_1 = require("./test/relations/roles/roles.entity");
9
- const roles_repositoryTypeOrm_1 = require("./test/relations/roles/roles.repositoryTypeOrm");
10
- const roles_user_entity_1 = require("./test/relations/roles/roles_user.entity");
11
- const typeOrm_entity_1 = require("./test/advanced/typeOrm.entity");
12
- const typeOrm_repository_1 = require("./test/advanced/typeOrm.repository");
13
- const user_repositoryTypeOrm_1 = require("./test/relations/user/user.repositoryTypeOrm");
14
- const user_entity_1 = require("./test/relations/user/user.entity");
15
- const advancedTestSuite_1 = require("./test/advanced/advancedTestSuite");
16
- const basicTestSuite_1 = require("./test/basic/basicTestSuite");
17
- const relationsTestsSuite_1 = require("./test/relations/relationsTestsSuite");
18
- jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000;
19
- let mongoConnection;
20
- beforeAll(async (done) => {
21
- mongoConnection = '';
22
- await (0, typeorm_1.createConnection)({
23
- type: 'mongodb',
24
- name: 'runningTest',
25
- url: mongoConnection.url,
26
- useNewUrlParser: true,
27
- useUnifiedTopology: true,
28
- entities: [
29
- goat_entity_1.GoatEntity,
30
- typeOrm_entity_1.TypeORMDataModel,
31
- car_entity_1.CarsEntity,
32
- user_entity_1.UsersEntity,
33
- roles_entity_1.RoleEntity,
34
- roles_user_entity_1.RolesUser
35
- ],
36
- synchronize: false,
37
- logging: false
38
- });
39
- done();
40
- });
41
- afterAll(async () => {
42
- await mongoConnection.instance.stop();
43
- });
44
- describe('Execute all basic test Suite', () => {
45
- (0, basicTestSuite_1.basicTestSuite)(goat_repository_1.GoatRepository);
46
- });
47
- describe('Execute all advanced test Suite', () => {
48
- (0, advancedTestSuite_1.advancedTestSuite)(typeOrm_repository_1.TypeOrmRepository);
49
- });
50
- describe('Execute all relations test suite', () => {
51
- (0, relationsTestsSuite_1.relationsTestSuite)(user_repositoryTypeOrm_1.UserRepository, car_repositoryTypeOrm_1.CarsRepository, roles_repositoryTypeOrm_1.RoleRepository);
52
- });
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const typeorm_1 = require("typeorm");
4
- const car_entity_1 = require("./test/relations/car/car.entity");
5
- const car_repositoryTypeOrm_1 = require("./test/relations/car/car.repositoryTypeOrm");
6
- const goat_entity_1 = require("./test/basic/goat.entity");
7
- const goat_repository_1 = require("./test/basic/goat.repository");
8
- const roles_entity_1 = require("./test/relations/roles/roles.entity");
9
- const roles_repositoryTypeOrm_1 = require("./test/relations/roles/roles.repositoryTypeOrm");
10
- const roles_user_entity_1 = require("./test/relations/roles/roles_user.entity");
11
- const typeOrm_entity_1 = require("./test/advanced/typeOrm.entity");
12
- const typeOrm_repository_1 = require("./test/advanced/typeOrm.repository");
13
- const user_repositoryTypeOrm_1 = require("./test/relations/user/user.repositoryTypeOrm");
14
- const user_entity_1 = require("./test/relations/user/user.entity");
15
- const advancedTestSuite_1 = require("./test/advanced/advancedTestSuite");
16
- const basicTestSuite_1 = require("./test/basic/basicTestSuite");
17
- const relationsTestsSuite_1 = require("./test/relations/relationsTestsSuite");
18
- jasmine.DEFAULT_TIMEOUT_INTERVAL = 600000;
19
- let tearDown;
20
- beforeAll(async (done) => {
21
- const { databaseURL, kill } = { databaseURL: '', kill: () => { } };
22
- tearDown = kill;
23
- const conn = new typeorm_1.DataSource({
24
- type: 'mysql',
25
- name: 'runningTest',
26
- database: 'test-db',
27
- username: 'test-user',
28
- password: 'password',
29
- port: 3306,
30
- entities: [
31
- goat_entity_1.GoatEntity,
32
- typeOrm_entity_1.TypeORMDataModel,
33
- car_entity_1.CarsEntity,
34
- user_entity_1.UsersEntity,
35
- roles_entity_1.RoleEntity,
36
- roles_user_entity_1.RolesUser
37
- ],
38
- synchronize: true,
39
- logging: false
40
- });
41
- await conn.initialize();
42
- done();
43
- });
44
- afterAll(() => {
45
- return tearDown();
46
- });
47
- describe('Execute all basic test Suite', () => {
48
- (0, basicTestSuite_1.basicTestSuite)(goat_repository_1.GoatRepository);
49
- });
50
- describe('Execute all advanced test Suite', () => {
51
- (0, advancedTestSuite_1.advancedTestSuite)(typeOrm_repository_1.TypeOrmRepository);
52
- });
53
- describe('Execute all relations test suite', () => {
54
- (0, relationsTestsSuite_1.relationsTestSuite)(user_repositoryTypeOrm_1.UserRepository, car_repositoryTypeOrm_1.CarsRepository, roles_repositoryTypeOrm_1.RoleRepository);
55
- });
@@ -1,8 +0,0 @@
1
- import { GoatEntity } from './goat.entity';
2
- declare const GoatEntityOut_base: import("../../../core/Nestjs/types/common").Type<Omit<GoatEntity, never>>;
3
- export declare class GoatEntityOut extends GoatEntityOut_base {
4
- }
5
- declare const GoatEntityIn_base: import("../../../core/Nestjs/types/common").Type<Omit<GoatEntity, "id">>;
6
- export declare class GoatEntityIn extends GoatEntityIn_base {
7
- }
8
- export {};
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GoatEntityIn = exports.GoatEntityOut = void 0;
4
- const tslib_1 = require("tslib");
5
- const goat_entity_1 = require("./goat.entity");
6
- const types_1 = require("../../../core/types");
7
- let GoatEntityOut = class GoatEntityOut extends (0, types_1.OmitType)(goat_entity_1.GoatEntity, []) {
8
- };
9
- GoatEntityOut = tslib_1.__decorate([
10
- (0, types_1.InputType)()
11
- ], GoatEntityOut);
12
- exports.GoatEntityOut = GoatEntityOut;
13
- let GoatEntityIn = class GoatEntityIn extends (0, types_1.OmitType)(goat_entity_1.GoatEntity, ['id']) {
14
- };
15
- GoatEntityIn = tslib_1.__decorate([
16
- (0, types_1.InputType)()
17
- ], GoatEntityIn);
18
- exports.GoatEntityIn = GoatEntityIn;
@@ -1,5 +0,0 @@
1
- import { CarsEntity } from './car.entity';
2
- declare const CarsEntityIn_base: import("../../../../core/Nestjs/types/common").Type<Omit<CarsEntity, "id">>;
3
- export declare class CarsEntityIn extends CarsEntityIn_base {
4
- }
5
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CarsEntityIn = void 0;
4
- const tslib_1 = require("tslib");
5
- const types_1 = require("../../../../core/types");
6
- const car_entity_1 = require("./car.entity");
7
- let CarsEntityIn = class CarsEntityIn extends (0, types_1.OmitType)(car_entity_1.CarsEntity, ['id']) {
8
- };
9
- CarsEntityIn = tslib_1.__decorate([
10
- (0, types_1.InputType)()
11
- ], CarsEntityIn);
12
- exports.CarsEntityIn = CarsEntityIn;
@@ -1,5 +0,0 @@
1
- import { RoleEntity } from './roles.entity';
2
- declare const RoleEntityIn_base: import("../../../../core/Nestjs/types/common").Type<Omit<RoleEntity, "id">>;
3
- export declare class RoleEntityIn extends RoleEntityIn_base {
4
- }
5
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RoleEntityIn = void 0;
4
- const tslib_1 = require("tslib");
5
- const types_1 = require("../../../../core/types");
6
- const roles_entity_1 = require("./roles.entity");
7
- let RoleEntityIn = class RoleEntityIn extends (0, types_1.OmitType)(roles_entity_1.RoleEntity, ['id']) {
8
- };
9
- RoleEntityIn = tslib_1.__decorate([
10
- (0, types_1.InputType)()
11
- ], RoleEntityIn);
12
- exports.RoleEntityIn = RoleEntityIn;
@@ -1,5 +0,0 @@
1
- import { RolesUser } from './roles_user.entity';
2
- declare const RoleUserEntityIn_base: import("../../../../core/Nestjs/types/common").Type<Omit<RolesUser, "id">>;
3
- export declare class RoleUserEntityIn extends RoleUserEntityIn_base {
4
- }
5
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RoleUserEntityIn = void 0;
4
- const tslib_1 = require("tslib");
5
- const types_1 = require("../../../../core/types");
6
- const roles_user_entity_1 = require("./roles_user.entity");
7
- let RoleUserEntityIn = class RoleUserEntityIn extends (0, types_1.OmitType)(roles_user_entity_1.RolesUser, ['id']) {
8
- };
9
- RoleUserEntityIn = tslib_1.__decorate([
10
- (0, types_1.InputType)()
11
- ], RoleUserEntityIn);
12
- exports.RoleUserEntityIn = RoleUserEntityIn;
@@ -1,5 +0,0 @@
1
- import { UsersEntity } from './user.entity';
2
- declare const UsersEntityIn_base: import("../../../../core/Nestjs/types/common").Type<Omit<UsersEntity, "id">>;
3
- export declare class UsersEntityIn extends UsersEntityIn_base {
4
- }
5
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UsersEntityIn = void 0;
4
- const tslib_1 = require("tslib");
5
- const types_1 = require("../../../../core/types");
6
- const user_entity_1 = require("./user.entity");
7
- let UsersEntityIn = class UsersEntityIn extends (0, types_1.OmitType)(user_entity_1.UsersEntity, ['id']) {
8
- };
9
- UsersEntityIn = tslib_1.__decorate([
10
- (0, types_1.InputType)()
11
- ], UsersEntityIn);
12
- exports.UsersEntityIn = UsersEntityIn;
@@ -1,4 +0,0 @@
1
- export declare class Access {
2
- type?: string;
3
- roles?: string[];
4
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Access = void 0;
4
- const tslib_1 = require("tslib");
5
- const types_1 = require("../types");
6
- let Access = class Access {
7
- };
8
- tslib_1.__decorate([
9
- (0, types_1.Column)({ nullable: true }),
10
- (0, types_1.ApiProperty)(),
11
- tslib_1.__metadata("design:type", String)
12
- ], Access.prototype, "type", void 0);
13
- tslib_1.__decorate([
14
- (0, types_1.Column)({ nullable: true, type: 'simple-array' }),
15
- (0, types_1.ApiProperty)(),
16
- tslib_1.__metadata("design:type", Array)
17
- ], Access.prototype, "roles", void 0);
18
- Access = tslib_1.__decorate([
19
- (0, types_1.ObjectType)()
20
- ], Access);
21
- exports.Access = Access;
@@ -1,13 +0,0 @@
1
- export declare class PaginationMeta {
2
- itemCount: number;
3
- totalItems: number;
4
- itemsPerPage: number;
5
- totalPages: number;
6
- currentPage: number;
7
- }
8
- export declare class PaginationLinks {
9
- first?: string;
10
- previous?: string;
11
- next?: string;
12
- last?: string;
13
- }