@goatlab/fluent 0.7.18 → 0.7.21

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 (260) hide show
  1. package/package.json +2 -2
  2. package/dist/BaseConnector.d.ts +0 -43
  3. package/dist/BaseConnector.js +0 -257
  4. package/dist/Fluent.d.ts +0 -7
  5. package/dist/Fluent.js +0 -22
  6. package/dist/FluentConnectorInterface.d.ts +0 -17
  7. package/dist/FluentConnectorInterface.js +0 -2
  8. package/dist/FluentEntity.d.ts +0 -7
  9. package/dist/FluentEntity.js +0 -28
  10. package/dist/TypeOrmConnector/TypeOrmConnector.d.ts +0 -38
  11. package/dist/TypeOrmConnector/TypeOrmConnector.js +0 -403
  12. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.d.ts +0 -7
  13. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.js +0 -148
  14. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.d.ts +0 -6
  15. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.js +0 -45
  16. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.d.ts +0 -4
  17. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.js +0 -19
  18. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.d.ts +0 -4
  19. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.js +0 -12
  20. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.d.ts +0 -6
  21. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.js +0 -166
  22. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.d.ts +0 -8
  23. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.js +0 -200
  24. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.d.ts +0 -6
  25. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.js +0 -207
  26. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.d.ts +0 -1
  27. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.js +0 -256
  28. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.d.ts +0 -116
  29. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.js +0 -74
  30. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.d.ts +0 -5
  31. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.js +0 -17
  32. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.d.ts +0 -5
  33. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.js +0 -17
  34. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.d.ts +0 -5
  35. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.js +0 -17
  36. package/dist/TypeOrmConnector/test/basic/basicTestSuite.d.ts +0 -1
  37. package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +0 -193
  38. package/dist/TypeOrmConnector/test/basic/goat.entity.d.ts +0 -53
  39. package/dist/TypeOrmConnector/test/basic/goat.entity.js +0 -53
  40. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.d.ts +0 -5
  41. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.js +0 -16
  42. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.d.ts +0 -5
  43. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.js +0 -16
  44. package/dist/TypeOrmConnector/test/basic/goat.repository.d.ts +0 -5
  45. package/dist/TypeOrmConnector/test/basic/goat.repository.js +0 -16
  46. package/dist/TypeOrmConnector/test/dbEntities.d.ts +0 -6
  47. package/dist/TypeOrmConnector/test/dbEntities.js +0 -17
  48. package/dist/TypeOrmConnector/test/docker/docker.d.ts +0 -35
  49. package/dist/TypeOrmConnector/test/docker/docker.js +0 -148
  50. package/dist/TypeOrmConnector/test/docker/mongo.d.ts +0 -16
  51. package/dist/TypeOrmConnector/test/docker/mongo.js +0 -93
  52. package/dist/TypeOrmConnector/test/docker/mysql.d.ts +0 -17
  53. package/dist/TypeOrmConnector/test/docker/mysql.js +0 -132
  54. package/dist/TypeOrmConnector/test/flock.d.ts +0 -4
  55. package/dist/TypeOrmConnector/test/flock.js +0 -25
  56. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.d.ts +0 -10
  57. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.js +0 -28
  58. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.d.ts +0 -2
  59. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.js +0 -12
  60. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.d.ts +0 -9
  61. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.js +0 -25
  62. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.d.ts +0 -6
  63. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.js +0 -17
  64. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.d.ts +0 -10
  65. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.js +0 -32
  66. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +0 -10
  67. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.js +0 -26
  68. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.d.ts +0 -2
  69. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.js +0 -16
  70. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.d.ts +0 -9
  71. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.js +0 -25
  72. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.d.ts +0 -6
  73. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.js +0 -17
  74. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.d.ts +0 -10
  75. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.js +0 -33
  76. package/dist/TypeOrmConnector/test/relations/car/car.entity.d.ts +0 -7
  77. package/dist/TypeOrmConnector/test/relations/car/car.entity.js +0 -32
  78. package/dist/TypeOrmConnector/test/relations/car/car.output.schema.d.ts +0 -511
  79. package/dist/TypeOrmConnector/test/relations/car/car.output.schema.js +0 -8
  80. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.d.ts +0 -10
  81. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.js +0 -26
  82. package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +0 -15
  83. package/dist/TypeOrmConnector/test/relations/car/car.schema.js +0 -9
  84. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +0 -1
  85. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +0 -548
  86. package/dist/TypeOrmConnector/test/relations/roles/role.output.schema.d.ts +0 -152
  87. package/dist/TypeOrmConnector/test/relations/roles/role.output.schema.js +0 -14
  88. package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +0 -12
  89. package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +0 -8
  90. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.d.ts +0 -6
  91. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.js +0 -29
  92. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.d.ts +0 -9
  93. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.js +0 -25
  94. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.d.ts +0 -5
  95. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.js +0 -23
  96. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.d.ts +0 -15
  97. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.js +0 -9
  98. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +0 -6
  99. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.js +0 -17
  100. package/dist/TypeOrmConnector/test/relations/user/user.entity.d.ts +0 -14
  101. package/dist/TypeOrmConnector/test/relations/user/user.entity.js +0 -56
  102. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.d.ts +0 -10
  103. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.js +0 -30
  104. package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +0 -546
  105. package/dist/TypeOrmConnector/test/relations/user/user.schema.js +0 -67
  106. package/dist/TypeOrmConnector/test/sqlite/memoryDataSource.d.ts +0 -2
  107. package/dist/TypeOrmConnector/test/sqlite/memoryDataSource.js +0 -12
  108. package/dist/TypeOrmConnector/util/clearEmpties.d.ts +0 -1
  109. package/dist/TypeOrmConnector/util/clearEmpties.js +0 -25
  110. package/dist/TypeOrmConnector/util/extractConditions.d.ts +0 -6
  111. package/dist/TypeOrmConnector/util/extractConditions.js +0 -80
  112. package/dist/TypeOrmConnector/util/extractInclude.d.ts +0 -2
  113. package/dist/TypeOrmConnector/util/extractInclude.js +0 -25
  114. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.d.ts +0 -12
  115. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.js +0 -42
  116. package/dist/TypeOrmConnector/util/extractOrderBy.d.ts +0 -4
  117. package/dist/TypeOrmConnector/util/extractOrderBy.js +0 -18
  118. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.d.ts +0 -19
  119. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.js +0 -26
  120. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.d.ts +0 -1
  121. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.js +0 -20
  122. package/dist/TypeOrmConnector/util/isAnyObject.d.ts +0 -1
  123. package/dist/TypeOrmConnector/util/isAnyObject.js +0 -7
  124. package/dist/TypeOrmConnector/util/nestQueryResults.d.ts +0 -2
  125. package/dist/TypeOrmConnector/util/nestQueryResults.js +0 -31
  126. package/dist/cache.d.ts +0 -9
  127. package/dist/cache.js +0 -43
  128. package/dist/core/Loopback/build-schema.d.ts +0 -31
  129. package/dist/core/Loopback/build-schema.js +0 -333
  130. package/dist/core/Loopback/common-types.d.ts +0 -36
  131. package/dist/core/Loopback/common-types.js +0 -13
  132. package/dist/core/Loopback/json-to-schema.d.ts +0 -6
  133. package/dist/core/Loopback/json-to-schema.js +0 -96
  134. package/dist/core/Loopback/mapValues.d.ts +0 -2
  135. package/dist/core/Loopback/mapValues.js +0 -835
  136. package/dist/core/Loopback/metadata.d.ts +0 -9
  137. package/dist/core/Loopback/metadata.js +0 -28
  138. package/dist/core/Loopback/model.d.ts +0 -87
  139. package/dist/core/Loopback/model.js +0 -244
  140. package/dist/core/Loopback/query.d.ts +0 -97
  141. package/dist/core/Loopback/query.js +0 -292
  142. package/dist/core/Loopback/relation.types.d.ts +0 -45
  143. package/dist/core/Loopback/relation.types.js +0 -13
  144. package/dist/core/Loopback/type-resolver.d.ts +0 -7
  145. package/dist/core/Loopback/type-resolver.js +0 -34
  146. package/dist/core/Loopback/type.d.ts +0 -9
  147. package/dist/core/Loopback/type.js +0 -2
  148. package/dist/core/Nestjs/applyDecorators.d.ts +0 -1
  149. package/dist/core/Nestjs/applyDecorators.js +0 -17
  150. package/dist/core/Nestjs/types/common.d.ts +0 -16
  151. package/dist/core/Nestjs/types/common.js +0 -37
  152. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.d.ts +0 -1
  153. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.js +0 -7
  154. package/dist/core/Nestjs/types/decorators/api-property.decorator.d.ts +0 -27
  155. package/dist/core/Nestjs/types/decorators/api-property.decorator.js +0 -65
  156. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +0 -5
  157. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.js +0 -131
  158. package/dist/core/Nestjs/types/decorators/args-type.decorator.d.ts +0 -1
  159. package/dist/core/Nestjs/types/decorators/args-type.decorator.js +0 -19
  160. package/dist/core/Nestjs/types/decorators/create-property.decorator.d.ts +0 -2
  161. package/dist/core/Nestjs/types/decorators/create-property.decorator.js +0 -55
  162. package/dist/core/Nestjs/types/decorators/directive.decorator.d.ts +0 -1
  163. package/dist/core/Nestjs/types/decorators/directive.decorator.js +0 -36
  164. package/dist/core/Nestjs/types/decorators/extensions.decorator.d.ts +0 -1
  165. package/dist/core/Nestjs/types/decorators/extensions.decorator.js +0 -25
  166. package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +0 -15
  167. package/dist/core/Nestjs/types/decorators/field.decorator.js +0 -56
  168. package/dist/core/Nestjs/types/decorators/input-type.decorator.d.ts +0 -7
  169. package/dist/core/Nestjs/types/decorators/input-type.decorator.js +0 -23
  170. package/dist/core/Nestjs/types/decorators/interface-type.decorator.d.ts +0 -9
  171. package/dist/core/Nestjs/types/decorators/interface-type.decorator.js +0 -27
  172. package/dist/core/Nestjs/types/decorators/partial-type.helper.d.ts +0 -3
  173. package/dist/core/Nestjs/types/decorators/partial-type.helper.js +0 -42
  174. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +0 -3
  175. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.js +0 -9
  176. package/dist/core/Nestjs/types/errors/directive-parsing.error.d.ts +0 -3
  177. package/dist/core/Nestjs/types/errors/directive-parsing.error.js +0 -9
  178. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.d.ts +0 -3
  179. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.js +0 -9
  180. package/dist/core/Nestjs/types/errors/undefined-type.error.d.ts +0 -3
  181. package/dist/core/Nestjs/types/errors/undefined-type.error.js +0 -10
  182. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +0 -3
  183. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.js +0 -10
  184. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.d.ts +0 -5
  185. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.js +0 -2
  186. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +0 -5
  187. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.js +0 -2
  188. package/dist/core/Nestjs/types/interfaces/complexity.interface.d.ts +0 -11
  189. package/dist/core/Nestjs/types/interfaces/complexity.interface.js +0 -2
  190. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.d.ts +0 -15
  191. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.js +0 -2
  192. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.d.ts +0 -235
  193. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.js +0 -2
  194. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +0 -2
  195. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.js +0 -2
  196. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.d.ts +0 -5
  197. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.js +0 -2
  198. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +0 -9
  199. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.js +0 -2
  200. package/dist/core/Nestjs/types/interfaces/type-options.interface.d.ts +0 -5
  201. package/dist/core/Nestjs/types/interfaces/type-options.interface.js +0 -2
  202. package/dist/core/Nestjs/types/lazy-metadata.storage.d.ts +0 -15
  203. package/dist/core/Nestjs/types/lazy-metadata.storage.js +0 -67
  204. package/dist/core/Nestjs/types/metadata/class.metadata.d.ts +0 -11
  205. package/dist/core/Nestjs/types/metadata/class.metadata.js +0 -2
  206. package/dist/core/Nestjs/types/metadata/directive.metadata.d.ts +0 -8
  207. package/dist/core/Nestjs/types/metadata/directive.metadata.js +0 -2
  208. package/dist/core/Nestjs/types/metadata/enum.metadata.d.ts +0 -11
  209. package/dist/core/Nestjs/types/metadata/enum.metadata.js +0 -2
  210. package/dist/core/Nestjs/types/metadata/extensions.metadata.d.ts +0 -8
  211. package/dist/core/Nestjs/types/metadata/extensions.metadata.js +0 -2
  212. package/dist/core/Nestjs/types/metadata/index.d.ts +0 -8
  213. package/dist/core/Nestjs/types/metadata/index.js +0 -11
  214. package/dist/core/Nestjs/types/metadata/interface.metadata.d.ts +0 -6
  215. package/dist/core/Nestjs/types/metadata/interface.metadata.js +0 -2
  216. package/dist/core/Nestjs/types/metadata/object-type.metadata.d.ts +0 -4
  217. package/dist/core/Nestjs/types/metadata/object-type.metadata.js +0 -2
  218. package/dist/core/Nestjs/types/metadata/param.metadata.d.ts +0 -18
  219. package/dist/core/Nestjs/types/metadata/param.metadata.js +0 -2
  220. package/dist/core/Nestjs/types/metadata/property.metadata.d.ts +0 -20
  221. package/dist/core/Nestjs/types/metadata/property.metadata.js +0 -2
  222. package/dist/core/Nestjs/types/metadata/resolver.metadata.d.ts +0 -34
  223. package/dist/core/Nestjs/types/metadata/resolver.metadata.js +0 -2
  224. package/dist/core/Nestjs/types/metadata/union.metadata.d.ts +0 -9
  225. package/dist/core/Nestjs/types/metadata/union.metadata.js +0 -2
  226. package/dist/core/Nestjs/types/object-type.decorator.d.ts +0 -8
  227. package/dist/core/Nestjs/types/object-type.decorator.js +0 -25
  228. package/dist/core/Nestjs/types/omit-type.d.ts +0 -2
  229. package/dist/core/Nestjs/types/omit-type.js +0 -34
  230. package/dist/core/Nestjs/types/reflection.utils.d.ts +0 -15
  231. package/dist/core/Nestjs/types/reflection.utils.js +0 -65
  232. package/dist/core/Nestjs/types/set-metadata.decorator.d.ts +0 -4
  233. package/dist/core/Nestjs/types/set-metadata.decorator.js +0 -16
  234. package/dist/core/Nestjs/types/type-metadata.storage.d.ts +0 -69
  235. package/dist/core/Nestjs/types/type-metadata.storage.js +0 -342
  236. package/dist/core/Nestjs/types/utils/enum.utils.d.ts +0 -3
  237. package/dist/core/Nestjs/types/utils/enum.utils.js +0 -29
  238. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +0 -3
  239. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.js +0 -72
  240. package/dist/core/Nestjs/types/utils/mapped-types.utils.d.ts +0 -2
  241. package/dist/core/Nestjs/types/utils/mapped-types.utils.js +0 -38
  242. package/dist/core/Nestjs/types/utils/model-properties-accessor.d.ts +0 -6
  243. package/dist/core/Nestjs/types/utils/model-properties-accessor.js +0 -36
  244. package/dist/core/Nestjs/types/utils/type-helpers.utils.d.ts +0 -2
  245. package/dist/core/Nestjs/types/utils/type-helpers.utils.js +0 -16
  246. package/dist/core/types.d.ts +0 -23
  247. package/dist/core/types.js +0 -29
  248. package/dist/decorators.d.ts +0 -47
  249. package/dist/decorators.js +0 -104
  250. package/dist/generatorDatasource.d.ts +0 -2
  251. package/dist/generatorDatasource.js +0 -12
  252. package/dist/index.d.ts +0 -29
  253. package/dist/index.js +0 -49
  254. package/dist/loadRelations.d.ts +0 -12
  255. package/dist/loadRelations.js +0 -133
  256. package/dist/outputKeys.d.ts +0 -2
  257. package/dist/outputKeys.js +0 -17
  258. package/dist/tsconfig.tsbuildinfo +0 -1
  259. package/dist/types.d.ts +0 -141
  260. package/dist/types.js +0 -22
@@ -1,292 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterTemplate = exports.FilterBuilder = exports.WhereBuilder = exports.isFilter = void 0;
4
- const nonWhereFields = ['fields', 'order', 'limit', 'skip', 'offset', 'include'];
5
- const filterFields = ['where', ...nonWhereFields];
6
- function isFilter(candidate) {
7
- if (typeof candidate !== 'object')
8
- return false;
9
- for (const key in candidate) {
10
- if (!filterFields.includes(key)) {
11
- return false;
12
- }
13
- }
14
- return true;
15
- }
16
- exports.isFilter = isFilter;
17
- class WhereBuilder {
18
- constructor(w) {
19
- this.where = w ?? {};
20
- }
21
- add(w) {
22
- for (const k of Object.keys(w)) {
23
- if (k in this.where) {
24
- const where = { and: [this.where, w] };
25
- this.where = where;
26
- return this;
27
- }
28
- }
29
- this.where = Object.assign(this.where, w);
30
- return this;
31
- }
32
- cast(clause) {
33
- return clause;
34
- }
35
- and(...w) {
36
- let clauses = [];
37
- w.forEach(where => {
38
- clauses = clauses.concat(Array.isArray(where) ? where : [where]);
39
- });
40
- return this.add({ and: clauses });
41
- }
42
- or(...w) {
43
- let clauses = [];
44
- w.forEach(where => {
45
- clauses = clauses.concat(Array.isArray(where) ? where : [where]);
46
- });
47
- return this.add({ or: clauses });
48
- }
49
- eq(key, val) {
50
- const w = {};
51
- w[key] = val;
52
- return this.add(w);
53
- }
54
- neq(key, val) {
55
- const w = {};
56
- w[key] = { neq: val };
57
- return this.add(w);
58
- }
59
- gt(key, val) {
60
- const w = {};
61
- w[key] = { gt: val };
62
- return this.add(w);
63
- }
64
- gte(key, val) {
65
- const w = {};
66
- w[key] = { gte: val };
67
- return this.add(w);
68
- }
69
- lt(key, val) {
70
- const w = {};
71
- w[key] = { lt: val };
72
- return this.add(w);
73
- }
74
- lte(key, val) {
75
- const w = {};
76
- w[key] = { lte: val };
77
- return this.add(w);
78
- }
79
- inq(key, val) {
80
- const w = {};
81
- w[key] = { inq: val };
82
- return this.add(w);
83
- }
84
- nin(key, val) {
85
- const w = {};
86
- w[key] = { nin: val };
87
- return this.add(w);
88
- }
89
- between(key, val1, val2) {
90
- const w = {};
91
- w[key] = { between: [val1, val2] };
92
- return this.add(w);
93
- }
94
- exists(key, val) {
95
- const w = {};
96
- w[key] = { exists: !!val || val == null };
97
- return this.add(w);
98
- }
99
- impose(where) {
100
- if (!this.where) {
101
- this.where = where || {};
102
- }
103
- else {
104
- this.add(where);
105
- }
106
- return this;
107
- }
108
- like(key, val) {
109
- const w = {};
110
- w[key] = { like: val };
111
- return this.add(w);
112
- }
113
- nlike(key, val) {
114
- const w = {};
115
- w[key] = { nlike: val };
116
- return this.add(w);
117
- }
118
- ilike(key, val) {
119
- const w = {};
120
- w[key] = { ilike: val };
121
- return this.add(w);
122
- }
123
- nilike(key, val) {
124
- const w = {};
125
- w[key] = { nilike: val };
126
- return this.add(w);
127
- }
128
- regexp(key, val) {
129
- const w = {};
130
- w[key] = { regexp: val };
131
- return this.add(w);
132
- }
133
- build() {
134
- return this.where;
135
- }
136
- }
137
- exports.WhereBuilder = WhereBuilder;
138
- class FilterBuilder {
139
- constructor(f) {
140
- this.filter = f ?? {};
141
- }
142
- limit(limit) {
143
- if (!(limit >= 1)) {
144
- throw new Error(`Limit ${limit} must a positive number`);
145
- }
146
- this.filter.limit = limit;
147
- return this;
148
- }
149
- offset(offset) {
150
- this.filter.offset = offset;
151
- return this;
152
- }
153
- skip(skip) {
154
- return this.offset(skip);
155
- }
156
- fields(...f) {
157
- if (!this.filter.fields) {
158
- this.filter.fields = {};
159
- }
160
- else if (Array.isArray(this.filter.fields)) {
161
- this.filter.fields = this.filter.fields.reduce((prev, current) => ({ ...prev, [current]: true }), {});
162
- }
163
- const { fields } = this.filter;
164
- for (const field of f) {
165
- if (Array.isArray(field)) {
166
- field.forEach(i => (fields[i] = true));
167
- }
168
- else if (typeof field === 'string') {
169
- fields[field] = true;
170
- }
171
- else {
172
- Object.assign(fields, field);
173
- }
174
- }
175
- return this;
176
- }
177
- validateOrder(order) {
178
- if (!(order.match(/^[^\s]+( (ASC|DESC))?$/))) {
179
- throw new Error(`Invalid order: ${order}`);
180
- }
181
- }
182
- order(...o) {
183
- if (!this.filter.order) {
184
- this.filter.order = [];
185
- }
186
- o.forEach(order => {
187
- if (typeof order === 'string') {
188
- this.validateOrder(order);
189
- if (!order.endsWith(' ASC') && !order.endsWith(' DESC')) {
190
- order += ' ASC';
191
- }
192
- this.filter.order.push(order);
193
- return this;
194
- }
195
- if (Array.isArray(order)) {
196
- order.forEach(this.validateOrder);
197
- order = order.map(i => {
198
- if (!i.endsWith(' ASC') && !i.endsWith(' DESC')) {
199
- i += ' ASC';
200
- }
201
- return i;
202
- });
203
- this.filter.order = this.filter.order.concat(order);
204
- return this;
205
- }
206
- for (const i in order) {
207
- this.filter.order.push(`${i} ${order[i]}`);
208
- }
209
- });
210
- return this;
211
- }
212
- include(...i) {
213
- if (this.filter.include == null) {
214
- this.filter.include = [];
215
- }
216
- for (const include of i) {
217
- if (typeof include === 'string') {
218
- this.filter.include.push({ relation: include });
219
- }
220
- else if (Array.isArray(include)) {
221
- for (const inc of include)
222
- this.filter.include.push({ relation: inc });
223
- }
224
- else {
225
- this.filter.include.push(include);
226
- }
227
- }
228
- return this;
229
- }
230
- where(w) {
231
- this.filter.where = w;
232
- return this;
233
- }
234
- impose(constraint) {
235
- if (!this.filter) {
236
- if (!isFilter(constraint)) {
237
- constraint = { where: constraint };
238
- }
239
- this.filter = constraint || {};
240
- }
241
- else {
242
- if (isFilter(constraint)) {
243
- for (const key of Object.keys(constraint)) {
244
- if (nonWhereFields.includes(key)) {
245
- throw new Error('merging strategy for selection, pagination, and sorting not implemented');
246
- }
247
- }
248
- }
249
- this.filter.where = isFilter(constraint)
250
- ? new WhereBuilder(this.filter.where).impose(constraint.where).build()
251
- : new WhereBuilder(this.filter.where).impose(constraint).build();
252
- }
253
- return this;
254
- }
255
- build() {
256
- return this.filter;
257
- }
258
- }
259
- exports.FilterBuilder = FilterBuilder;
260
- function getDeepProperty(value, path) {
261
- const props = path.split('.');
262
- for (const p of props) {
263
- value = value[p];
264
- if (value == null) {
265
- return null;
266
- }
267
- }
268
- return value;
269
- }
270
- function filterTemplate(strings, ...keys) {
271
- return function filter(ctx) {
272
- const tokens = [strings[0]];
273
- keys.forEach((key, i) => {
274
- if (typeof key === 'object' ||
275
- typeof key === 'boolean' ||
276
- typeof key === 'number') {
277
- tokens.push(JSON.stringify(key), strings[i + 1]);
278
- return;
279
- }
280
- const value = getDeepProperty(ctx, key);
281
- tokens.push(JSON.stringify(value), strings[i + 1]);
282
- });
283
- const result = tokens.join('');
284
- try {
285
- return JSON.parse(result);
286
- }
287
- catch (e) {
288
- throw new Error(`Invalid JSON: ${result}`);
289
- }
290
- };
291
- }
292
- exports.filterTemplate = filterTemplate;
@@ -1,45 +0,0 @@
1
- import { InclusionFilter } from './query';
2
- import { Options } from './common-types';
3
- import { Entity } from './model';
4
- import { TypeResolver } from './type-resolver';
5
- export declare enum RelationType {
6
- belongsTo = "belongsTo",
7
- hasOne = "hasOne",
8
- hasMany = "hasMany",
9
- embedsOne = "embedsOne",
10
- embedsMany = "embedsMany",
11
- referencesOne = "referencesOne",
12
- referencesMany = "referencesMany"
13
- }
14
- export interface RelationDefinitionBase {
15
- type: RelationType;
16
- targetsMany: boolean;
17
- name: string;
18
- source: typeof Entity;
19
- target: TypeResolver<Entity, typeof Entity>;
20
- }
21
- export interface HasManyDefinition extends RelationDefinitionBase {
22
- type: RelationType.hasMany;
23
- targetsMany: true;
24
- keyTo?: string;
25
- keyFrom?: string;
26
- through?: {
27
- model: TypeResolver<Entity, typeof Entity>;
28
- keyFrom?: string;
29
- keyTo?: string;
30
- };
31
- }
32
- export interface BelongsToDefinition extends RelationDefinitionBase {
33
- type: RelationType.belongsTo;
34
- targetsMany: false;
35
- keyFrom?: string;
36
- keyTo?: string;
37
- }
38
- export interface HasOneDefinition extends RelationDefinitionBase {
39
- type: RelationType.hasOne;
40
- targetsMany: false;
41
- keyTo?: string;
42
- keyFrom?: string;
43
- }
44
- export declare type RelationMetadata = HasManyDefinition | BelongsToDefinition | HasOneDefinition | RelationDefinitionBase;
45
- export declare type InclusionResolver<S extends Entity, T extends Entity> = (sourceEntities: S[], inclusion: InclusionFilter, options?: Options) => Promise<(T | undefined)[] | (T[] | undefined)[]>;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelationType = void 0;
4
- var RelationType;
5
- (function (RelationType) {
6
- RelationType["belongsTo"] = "belongsTo";
7
- RelationType["hasOne"] = "hasOne";
8
- RelationType["hasMany"] = "hasMany";
9
- RelationType["embedsOne"] = "embedsOne";
10
- RelationType["embedsMany"] = "embedsMany";
11
- RelationType["referencesOne"] = "referencesOne";
12
- RelationType["referencesMany"] = "referencesMany";
13
- })(RelationType = exports.RelationType || (exports.RelationType = {}));
@@ -1,7 +0,0 @@
1
- import { Class } from './common-types';
2
- export declare type TypeResolver<Type extends Object, StaticMembers = Function> = () => Class<Type> & StaticMembers;
3
- export declare function isTypeResolver<T extends object>(fn: any): fn is TypeResolver<T>;
4
- export declare function Null(): null;
5
- export declare function isBuiltinType(fn: Function): boolean;
6
- export declare function resolveType<T extends Object>(fn: TypeResolver<T> | Class<T>): Class<T>;
7
- export declare function resolveType<T>(fn: T): T;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveType = exports.isBuiltinType = exports.Null = exports.isTypeResolver = void 0;
4
- function isTypeResolver(fn) {
5
- if (typeof fn !== 'function')
6
- return false;
7
- if (/^class/.test(fn.toString()))
8
- return false;
9
- if (isBuiltinType(fn))
10
- return false;
11
- return true;
12
- }
13
- exports.isTypeResolver = isTypeResolver;
14
- function Null() {
15
- return null;
16
- }
17
- exports.Null = Null;
18
- function isBuiltinType(fn) {
19
- return (fn === Number ||
20
- fn === Boolean ||
21
- fn === String ||
22
- fn === Object ||
23
- fn === Array ||
24
- fn === Date ||
25
- fn === RegExp ||
26
- fn === Buffer ||
27
- fn === Null ||
28
- fn === Function);
29
- }
30
- exports.isBuiltinType = isBuiltinType;
31
- function resolveType(fn) {
32
- return isTypeResolver(fn) ? fn() : fn;
33
- }
34
- exports.resolveType = resolveType;
@@ -1,9 +0,0 @@
1
- import { Options } from './common-types';
2
- export interface Type<T> {
3
- name: string;
4
- isInstance(value: any): boolean;
5
- defaultValue(): T | null | undefined;
6
- isCoercible(value: any, options?: Options): boolean;
7
- coerce(value: any, options?: Options): T | null | undefined;
8
- serialize(value: T | null | undefined, options?: Options): any;
9
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +0,0 @@
1
- export declare function applyDecorators(...decorators: Array<ClassDecorator | MethodDecorator | PropertyDecorator>): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyDecorators = void 0;
4
- function applyDecorators(...decorators) {
5
- return (target, propertyKey, descriptor) => {
6
- for (const decorator of decorators) {
7
- if (target instanceof Function && !descriptor) {
8
- ;
9
- decorator(target);
10
- continue;
11
- }
12
- ;
13
- decorator(target, propertyKey, descriptor);
14
- }
15
- };
16
- }
17
- exports.applyDecorators = applyDecorators;
@@ -1,16 +0,0 @@
1
- export declare const isString: (fn: any) => fn is string;
2
- export declare enum ClassType {
3
- ARGS = "args",
4
- OBJECT = "objectType",
5
- INPUT = "inputType",
6
- INTERFACE = "interface"
7
- }
8
- export interface Type<T = any> extends Function {
9
- new (...args: any[]): T;
10
- }
11
- export declare function flatten<T extends Array<unknown> = any>(arr: T): T extends Array<infer R> ? R : never;
12
- export declare const isUndefined: (obj: any) => obj is undefined;
13
- export declare const isFunction: (fn: any) => boolean;
14
- export declare type TargetHost = Record<'target', Function>;
15
- export declare function isTargetEqual<T extends TargetHost, U extends TargetHost>(a: T, b: U): boolean;
16
- export declare function isThrowing(func: () => unknown): boolean;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isThrowing = exports.isTargetEqual = exports.isFunction = exports.isUndefined = exports.flatten = exports.ClassType = exports.isString = void 0;
4
- const isString = (fn) => typeof fn === 'string';
5
- exports.isString = isString;
6
- var ClassType;
7
- (function (ClassType) {
8
- ClassType["ARGS"] = "args";
9
- ClassType["OBJECT"] = "objectType";
10
- ClassType["INPUT"] = "inputType";
11
- ClassType["INTERFACE"] = "interface";
12
- })(ClassType = exports.ClassType || (exports.ClassType = {}));
13
- function flatten(arr) {
14
- const flat = [].concat(...arr);
15
- return (flat.some(Array.isArray)
16
- ? flatten(flat)
17
- : flat);
18
- }
19
- exports.flatten = flatten;
20
- const isUndefined = (obj) => typeof obj === 'undefined';
21
- exports.isUndefined = isUndefined;
22
- const isFunction = (fn) => typeof fn === 'function';
23
- exports.isFunction = isFunction;
24
- function isTargetEqual(a, b) {
25
- return a.target === b.target;
26
- }
27
- exports.isTargetEqual = isTargetEqual;
28
- function isThrowing(func) {
29
- try {
30
- func();
31
- return false;
32
- }
33
- catch {
34
- return true;
35
- }
36
- }
37
- exports.isThrowing = isThrowing;
@@ -1 +0,0 @@
1
- export declare function ApiHideProperty(): PropertyDecorator;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiHideProperty = void 0;
4
- function ApiHideProperty() {
5
- return (target, propertyKey) => { };
6
- }
7
- exports.ApiHideProperty = ApiHideProperty;
@@ -1,27 +0,0 @@
1
- import { SchemaObjectMetadata } from '../interfaces/schema-object-metadata.interface';
2
- export declare const DECORATORS_PREFIX = "swagger";
3
- export declare const DECORATORS: {
4
- API_OPERATION: string;
5
- API_RESPONSE: string;
6
- API_PRODUCES: string;
7
- API_CONSUMES: string;
8
- API_TAGS: string;
9
- API_PARAMETERS: string;
10
- API_HEADERS: string;
11
- API_MODEL_PROPERTIES: string;
12
- API_MODEL_PROPERTIES_ARRAY: string;
13
- API_SECURITY: string;
14
- API_EXCLUDE_ENDPOINT: string;
15
- API_EXCLUDE_CONTROLLER: string;
16
- API_EXTRA_MODELS: string;
17
- API_EXTENSION: string;
18
- };
19
- export interface ApiPropertyOptions extends Omit<SchemaObjectMetadata, 'name' | 'enum'> {
20
- name?: string;
21
- enum?: any[] | Record<string, any>;
22
- enumName?: string;
23
- }
24
- export declare function ApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
25
- export declare function createApiPropertyDecorator(options?: ApiPropertyOptions, overrideExisting?: boolean): PropertyDecorator;
26
- export declare function ApiPropertyOptional(options?: ApiPropertyOptions): PropertyDecorator;
27
- export declare function ApiResponseProperty(options?: Pick<ApiPropertyOptions, 'type' | 'example' | 'format' | 'enum' | 'deprecated'>): PropertyDecorator;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiResponseProperty = exports.ApiPropertyOptional = exports.createApiPropertyDecorator = exports.ApiProperty = exports.DECORATORS = exports.DECORATORS_PREFIX = void 0;
4
- const enum_utils_1 = require("../utils/enum.utils");
5
- const create_property_decorator_1 = require("./create-property.decorator");
6
- exports.DECORATORS_PREFIX = 'swagger';
7
- exports.DECORATORS = {
8
- API_OPERATION: `${exports.DECORATORS_PREFIX}/apiOperation`,
9
- API_RESPONSE: `${exports.DECORATORS_PREFIX}/apiResponse`,
10
- API_PRODUCES: `${exports.DECORATORS_PREFIX}/apiProduces`,
11
- API_CONSUMES: `${exports.DECORATORS_PREFIX}/apiConsumes`,
12
- API_TAGS: `${exports.DECORATORS_PREFIX}/apiUseTags`,
13
- API_PARAMETERS: `${exports.DECORATORS_PREFIX}/apiParameters`,
14
- API_HEADERS: `${exports.DECORATORS_PREFIX}/apiHeaders`,
15
- API_MODEL_PROPERTIES: `${exports.DECORATORS_PREFIX}/apiModelProperties`,
16
- API_MODEL_PROPERTIES_ARRAY: `${exports.DECORATORS_PREFIX}/apiModelPropertiesArray`,
17
- API_SECURITY: `${exports.DECORATORS_PREFIX}/apiSecurity`,
18
- API_EXCLUDE_ENDPOINT: `${exports.DECORATORS_PREFIX}/apiExcludeEndpoint`,
19
- API_EXCLUDE_CONTROLLER: `${exports.DECORATORS_PREFIX}/apiExcludeController`,
20
- API_EXTRA_MODELS: `${exports.DECORATORS_PREFIX}/apiExtraModels`,
21
- API_EXTENSION: `${exports.DECORATORS_PREFIX}/apiExtension`
22
- };
23
- const isEnumArray = (obj) => obj.isArray && !!obj.enum;
24
- function ApiProperty(options = {}) {
25
- return createApiPropertyDecorator(options);
26
- }
27
- exports.ApiProperty = ApiProperty;
28
- function createApiPropertyDecorator(options = {}, overrideExisting = true) {
29
- const [type, isArray] = (0, create_property_decorator_1.getTypeIsArrayTuple)(options.type, options.isArray);
30
- options = {
31
- ...options,
32
- type,
33
- isArray
34
- };
35
- if (isEnumArray(options)) {
36
- options.type = 'array';
37
- const enumValues = (0, enum_utils_1.getEnumValues)(options.enum);
38
- options.items = {
39
- type: (0, enum_utils_1.getEnumType)(enumValues),
40
- enum: enumValues
41
- };
42
- delete options.enum;
43
- }
44
- else if (options.enum) {
45
- const enumValues = (0, enum_utils_1.getEnumValues)(options.enum);
46
- options.enum = enumValues;
47
- options.type = (0, enum_utils_1.getEnumType)(enumValues);
48
- }
49
- return (0, create_property_decorator_1.createPropertyDecorator)(exports.DECORATORS.API_MODEL_PROPERTIES, options, overrideExisting);
50
- }
51
- exports.createApiPropertyDecorator = createApiPropertyDecorator;
52
- function ApiPropertyOptional(options = {}) {
53
- return ApiProperty({
54
- ...options,
55
- required: false
56
- });
57
- }
58
- exports.ApiPropertyOptional = ApiPropertyOptional;
59
- function ApiResponseProperty(options = {}) {
60
- return ApiProperty({
61
- readOnly: true,
62
- ...options
63
- });
64
- }
65
- exports.ApiResponseProperty = ApiResponseProperty;
@@ -1,5 +0,0 @@
1
- import { Type } from '../common';
2
- export declare function applyIsOptionalDecorator(targetClass: Function, propertyKey: string): void;
3
- export declare function inheritValidationMetadata(parentClass: Type<any>, targetClass: Function, isPropertyInherited?: (key: string) => boolean): string[] | undefined;
4
- export declare function inheritTransformationMetadata(parentClass: Type<any>, targetClass: Function, isPropertyInherited?: (key: string) => boolean): void;
5
- export declare function inheritPropertyInitializers(target: Record<string, any>, sourceClass: Type<any>, isPropertyInherited?: (key: string) => boolean): void;