@goatlab/fluent 0.7.31 → 0.7.33

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 (262) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +0 -0
  3. package/package.json +34 -34
  4. package/dist/BaseConnector.d.ts +0 -43
  5. package/dist/BaseConnector.js +0 -257
  6. package/dist/Fluent.d.ts +0 -7
  7. package/dist/Fluent.js +0 -22
  8. package/dist/FluentConnectorInterface.d.ts +0 -17
  9. package/dist/FluentConnectorInterface.js +0 -2
  10. package/dist/FluentEntity.d.ts +0 -7
  11. package/dist/FluentEntity.js +0 -28
  12. package/dist/TypeOrmConnector/TypeOrmConnector.d.ts +0 -39
  13. package/dist/TypeOrmConnector/TypeOrmConnector.js +0 -392
  14. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.d.ts +0 -7
  15. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.js +0 -149
  16. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.d.ts +0 -6
  17. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.js +0 -46
  18. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.d.ts +0 -4
  19. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.js +0 -19
  20. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.d.ts +0 -4
  21. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.js +0 -12
  22. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.d.ts +0 -6
  23. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.js +0 -166
  24. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.d.ts +0 -8
  25. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.js +0 -200
  26. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.d.ts +0 -6
  27. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.js +0 -207
  28. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.d.ts +0 -1
  29. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.js +0 -256
  30. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.d.ts +0 -116
  31. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.js +0 -74
  32. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.d.ts +0 -5
  33. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.js +0 -17
  34. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.d.ts +0 -5
  35. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.js +0 -17
  36. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.d.ts +0 -5
  37. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.js +0 -17
  38. package/dist/TypeOrmConnector/test/basic/basicTestSuite.d.ts +0 -1
  39. package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +0 -193
  40. package/dist/TypeOrmConnector/test/basic/goat.entity.d.ts +0 -53
  41. package/dist/TypeOrmConnector/test/basic/goat.entity.js +0 -53
  42. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.d.ts +0 -5
  43. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.js +0 -16
  44. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.d.ts +0 -5
  45. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.js +0 -16
  46. package/dist/TypeOrmConnector/test/basic/goat.repository.d.ts +0 -5
  47. package/dist/TypeOrmConnector/test/basic/goat.repository.js +0 -16
  48. package/dist/TypeOrmConnector/test/dbEntities.d.ts +0 -6
  49. package/dist/TypeOrmConnector/test/dbEntities.js +0 -17
  50. package/dist/TypeOrmConnector/test/docker/docker.d.ts +0 -35
  51. package/dist/TypeOrmConnector/test/docker/docker.js +0 -148
  52. package/dist/TypeOrmConnector/test/docker/mongo.d.ts +0 -16
  53. package/dist/TypeOrmConnector/test/docker/mongo.js +0 -93
  54. package/dist/TypeOrmConnector/test/docker/mysql.d.ts +0 -17
  55. package/dist/TypeOrmConnector/test/docker/mysql.js +0 -132
  56. package/dist/TypeOrmConnector/test/flock.d.ts +0 -4
  57. package/dist/TypeOrmConnector/test/flock.js +0 -25
  58. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.d.ts +0 -10
  59. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.js +0 -28
  60. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.d.ts +0 -2
  61. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.js +0 -12
  62. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.d.ts +0 -9
  63. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.js +0 -25
  64. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.d.ts +0 -6
  65. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.js +0 -17
  66. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.d.ts +0 -10
  67. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.js +0 -32
  68. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +0 -10
  69. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.js +0 -26
  70. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.d.ts +0 -2
  71. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.js +0 -16
  72. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.d.ts +0 -9
  73. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.js +0 -25
  74. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.d.ts +0 -6
  75. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.js +0 -17
  76. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.d.ts +0 -10
  77. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.js +0 -33
  78. package/dist/TypeOrmConnector/test/relations/car/car.entity.d.ts +0 -7
  79. package/dist/TypeOrmConnector/test/relations/car/car.entity.js +0 -32
  80. package/dist/TypeOrmConnector/test/relations/car/car.output.schema.d.ts +0 -511
  81. package/dist/TypeOrmConnector/test/relations/car/car.output.schema.js +0 -8
  82. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.d.ts +0 -10
  83. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.js +0 -26
  84. package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +0 -15
  85. package/dist/TypeOrmConnector/test/relations/car/car.schema.js +0 -9
  86. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +0 -1
  87. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +0 -575
  88. package/dist/TypeOrmConnector/test/relations/roles/role.output.schema.d.ts +0 -152
  89. package/dist/TypeOrmConnector/test/relations/roles/role.output.schema.js +0 -14
  90. package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +0 -12
  91. package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +0 -8
  92. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.d.ts +0 -6
  93. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.js +0 -29
  94. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.d.ts +0 -9
  95. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.js +0 -25
  96. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.d.ts +0 -5
  97. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.js +0 -23
  98. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.d.ts +0 -15
  99. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.js +0 -9
  100. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +0 -6
  101. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.js +0 -17
  102. package/dist/TypeOrmConnector/test/relations/user/user.entity.d.ts +0 -14
  103. package/dist/TypeOrmConnector/test/relations/user/user.entity.js +0 -56
  104. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.d.ts +0 -10
  105. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.js +0 -30
  106. package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +0 -546
  107. package/dist/TypeOrmConnector/test/relations/user/user.schema.js +0 -67
  108. package/dist/TypeOrmConnector/test/sqlite/memoryDataSource.d.ts +0 -2
  109. package/dist/TypeOrmConnector/test/sqlite/memoryDataSource.js +0 -12
  110. package/dist/TypeOrmConnector/util/clearEmpties.d.ts +0 -1
  111. package/dist/TypeOrmConnector/util/clearEmpties.js +0 -25
  112. package/dist/TypeOrmConnector/util/extractConditions.d.ts +0 -6
  113. package/dist/TypeOrmConnector/util/extractConditions.js +0 -80
  114. package/dist/TypeOrmConnector/util/extractInclude.d.ts +0 -2
  115. package/dist/TypeOrmConnector/util/extractInclude.js +0 -25
  116. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.d.ts +0 -12
  117. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.js +0 -42
  118. package/dist/TypeOrmConnector/util/extractOrderBy.d.ts +0 -4
  119. package/dist/TypeOrmConnector/util/extractOrderBy.js +0 -18
  120. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.d.ts +0 -19
  121. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.js +0 -26
  122. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.d.ts +0 -1
  123. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.js +0 -20
  124. package/dist/TypeOrmConnector/util/isAnyObject.d.ts +0 -1
  125. package/dist/TypeOrmConnector/util/isAnyObject.js +0 -7
  126. package/dist/TypeOrmConnector/util/nestQueryResults.d.ts +0 -2
  127. package/dist/TypeOrmConnector/util/nestQueryResults.js +0 -31
  128. package/dist/cache.d.ts +0 -9
  129. package/dist/cache.js +0 -43
  130. package/dist/core/Loopback/build-schema.d.ts +0 -31
  131. package/dist/core/Loopback/build-schema.js +0 -333
  132. package/dist/core/Loopback/common-types.d.ts +0 -36
  133. package/dist/core/Loopback/common-types.js +0 -13
  134. package/dist/core/Loopback/json-to-schema.d.ts +0 -6
  135. package/dist/core/Loopback/json-to-schema.js +0 -96
  136. package/dist/core/Loopback/mapValues.d.ts +0 -2
  137. package/dist/core/Loopback/mapValues.js +0 -835
  138. package/dist/core/Loopback/metadata.d.ts +0 -9
  139. package/dist/core/Loopback/metadata.js +0 -28
  140. package/dist/core/Loopback/model.d.ts +0 -87
  141. package/dist/core/Loopback/model.js +0 -244
  142. package/dist/core/Loopback/query.d.ts +0 -97
  143. package/dist/core/Loopback/query.js +0 -292
  144. package/dist/core/Loopback/relation.types.d.ts +0 -45
  145. package/dist/core/Loopback/relation.types.js +0 -13
  146. package/dist/core/Loopback/type-resolver.d.ts +0 -7
  147. package/dist/core/Loopback/type-resolver.js +0 -34
  148. package/dist/core/Loopback/type.d.ts +0 -9
  149. package/dist/core/Loopback/type.js +0 -2
  150. package/dist/core/Nestjs/applyDecorators.d.ts +0 -1
  151. package/dist/core/Nestjs/applyDecorators.js +0 -17
  152. package/dist/core/Nestjs/types/common.d.ts +0 -16
  153. package/dist/core/Nestjs/types/common.js +0 -37
  154. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.d.ts +0 -1
  155. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.js +0 -7
  156. package/dist/core/Nestjs/types/decorators/api-property.decorator.d.ts +0 -27
  157. package/dist/core/Nestjs/types/decorators/api-property.decorator.js +0 -65
  158. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +0 -5
  159. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.js +0 -131
  160. package/dist/core/Nestjs/types/decorators/args-type.decorator.d.ts +0 -1
  161. package/dist/core/Nestjs/types/decorators/args-type.decorator.js +0 -19
  162. package/dist/core/Nestjs/types/decorators/create-property.decorator.d.ts +0 -2
  163. package/dist/core/Nestjs/types/decorators/create-property.decorator.js +0 -55
  164. package/dist/core/Nestjs/types/decorators/directive.decorator.d.ts +0 -1
  165. package/dist/core/Nestjs/types/decorators/directive.decorator.js +0 -36
  166. package/dist/core/Nestjs/types/decorators/extensions.decorator.d.ts +0 -1
  167. package/dist/core/Nestjs/types/decorators/extensions.decorator.js +0 -25
  168. package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +0 -15
  169. package/dist/core/Nestjs/types/decorators/field.decorator.js +0 -56
  170. package/dist/core/Nestjs/types/decorators/input-type.decorator.d.ts +0 -7
  171. package/dist/core/Nestjs/types/decorators/input-type.decorator.js +0 -23
  172. package/dist/core/Nestjs/types/decorators/interface-type.decorator.d.ts +0 -9
  173. package/dist/core/Nestjs/types/decorators/interface-type.decorator.js +0 -27
  174. package/dist/core/Nestjs/types/decorators/partial-type.helper.d.ts +0 -3
  175. package/dist/core/Nestjs/types/decorators/partial-type.helper.js +0 -42
  176. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +0 -3
  177. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.js +0 -9
  178. package/dist/core/Nestjs/types/errors/directive-parsing.error.d.ts +0 -3
  179. package/dist/core/Nestjs/types/errors/directive-parsing.error.js +0 -9
  180. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.d.ts +0 -3
  181. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.js +0 -9
  182. package/dist/core/Nestjs/types/errors/undefined-type.error.d.ts +0 -3
  183. package/dist/core/Nestjs/types/errors/undefined-type.error.js +0 -10
  184. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +0 -3
  185. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.js +0 -10
  186. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.d.ts +0 -5
  187. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.js +0 -2
  188. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +0 -5
  189. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.js +0 -2
  190. package/dist/core/Nestjs/types/interfaces/complexity.interface.d.ts +0 -11
  191. package/dist/core/Nestjs/types/interfaces/complexity.interface.js +0 -2
  192. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.d.ts +0 -15
  193. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.js +0 -2
  194. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.d.ts +0 -235
  195. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.js +0 -2
  196. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +0 -2
  197. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.js +0 -2
  198. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.d.ts +0 -5
  199. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.js +0 -2
  200. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +0 -9
  201. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.js +0 -2
  202. package/dist/core/Nestjs/types/interfaces/type-options.interface.d.ts +0 -5
  203. package/dist/core/Nestjs/types/interfaces/type-options.interface.js +0 -2
  204. package/dist/core/Nestjs/types/lazy-metadata.storage.d.ts +0 -15
  205. package/dist/core/Nestjs/types/lazy-metadata.storage.js +0 -67
  206. package/dist/core/Nestjs/types/metadata/class.metadata.d.ts +0 -11
  207. package/dist/core/Nestjs/types/metadata/class.metadata.js +0 -2
  208. package/dist/core/Nestjs/types/metadata/directive.metadata.d.ts +0 -8
  209. package/dist/core/Nestjs/types/metadata/directive.metadata.js +0 -2
  210. package/dist/core/Nestjs/types/metadata/enum.metadata.d.ts +0 -11
  211. package/dist/core/Nestjs/types/metadata/enum.metadata.js +0 -2
  212. package/dist/core/Nestjs/types/metadata/extensions.metadata.d.ts +0 -8
  213. package/dist/core/Nestjs/types/metadata/extensions.metadata.js +0 -2
  214. package/dist/core/Nestjs/types/metadata/index.d.ts +0 -8
  215. package/dist/core/Nestjs/types/metadata/index.js +0 -11
  216. package/dist/core/Nestjs/types/metadata/interface.metadata.d.ts +0 -6
  217. package/dist/core/Nestjs/types/metadata/interface.metadata.js +0 -2
  218. package/dist/core/Nestjs/types/metadata/object-type.metadata.d.ts +0 -4
  219. package/dist/core/Nestjs/types/metadata/object-type.metadata.js +0 -2
  220. package/dist/core/Nestjs/types/metadata/param.metadata.d.ts +0 -18
  221. package/dist/core/Nestjs/types/metadata/param.metadata.js +0 -2
  222. package/dist/core/Nestjs/types/metadata/property.metadata.d.ts +0 -20
  223. package/dist/core/Nestjs/types/metadata/property.metadata.js +0 -2
  224. package/dist/core/Nestjs/types/metadata/resolver.metadata.d.ts +0 -34
  225. package/dist/core/Nestjs/types/metadata/resolver.metadata.js +0 -2
  226. package/dist/core/Nestjs/types/metadata/union.metadata.d.ts +0 -9
  227. package/dist/core/Nestjs/types/metadata/union.metadata.js +0 -2
  228. package/dist/core/Nestjs/types/object-type.decorator.d.ts +0 -8
  229. package/dist/core/Nestjs/types/object-type.decorator.js +0 -25
  230. package/dist/core/Nestjs/types/omit-type.d.ts +0 -2
  231. package/dist/core/Nestjs/types/omit-type.js +0 -34
  232. package/dist/core/Nestjs/types/reflection.utils.d.ts +0 -15
  233. package/dist/core/Nestjs/types/reflection.utils.js +0 -65
  234. package/dist/core/Nestjs/types/set-metadata.decorator.d.ts +0 -4
  235. package/dist/core/Nestjs/types/set-metadata.decorator.js +0 -16
  236. package/dist/core/Nestjs/types/type-metadata.storage.d.ts +0 -69
  237. package/dist/core/Nestjs/types/type-metadata.storage.js +0 -342
  238. package/dist/core/Nestjs/types/utils/enum.utils.d.ts +0 -3
  239. package/dist/core/Nestjs/types/utils/enum.utils.js +0 -29
  240. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +0 -3
  241. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.js +0 -72
  242. package/dist/core/Nestjs/types/utils/mapped-types.utils.d.ts +0 -2
  243. package/dist/core/Nestjs/types/utils/mapped-types.utils.js +0 -38
  244. package/dist/core/Nestjs/types/utils/model-properties-accessor.d.ts +0 -6
  245. package/dist/core/Nestjs/types/utils/model-properties-accessor.js +0 -36
  246. package/dist/core/Nestjs/types/utils/type-helpers.utils.d.ts +0 -2
  247. package/dist/core/Nestjs/types/utils/type-helpers.utils.js +0 -16
  248. package/dist/core/types.d.ts +0 -23
  249. package/dist/core/types.js +0 -29
  250. package/dist/decorators.d.ts +0 -47
  251. package/dist/decorators.js +0 -104
  252. package/dist/generatorDatasource.d.ts +0 -2
  253. package/dist/generatorDatasource.js +0 -12
  254. package/dist/index.d.ts +0 -30
  255. package/dist/index.js +0 -49
  256. package/dist/loadRelations.d.ts +0 -12
  257. package/dist/loadRelations.js +0 -133
  258. package/dist/outputKeys.d.ts +0 -2
  259. package/dist/outputKeys.js +0 -17
  260. package/dist/tsconfig.tsbuildinfo +0 -1
  261. package/dist/types.d.ts +0 -141
  262. package/dist/types.js +0 -22
@@ -1,9 +0,0 @@
1
- import { InspectionOptions, MetadataAccessor, MetadataMap } from '@loopback/metadata';
2
- import { ModelDefinition, ModelDefinitionSyntax, PropertyDefinition } from './model';
3
- export declare const MODEL_KEY: MetadataAccessor<Partial<ModelDefinitionSyntax>, ClassDecorator>;
4
- export declare const MODEL_PROPERTIES_KEY: MetadataAccessor<PropertyDefinition, PropertyDecorator>;
5
- export declare const MODEL_WITH_PROPERTIES_KEY: MetadataAccessor<ModelDefinition, ClassDecorator>;
6
- export declare type PropertyMap = MetadataMap<Partial<PropertyDefinition>>;
7
- export declare class ModelMetadataHelper {
8
- static getModelMetadata(target: Function, options?: InspectionOptions): ModelDefinition | {};
9
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelMetadataHelper = exports.MODEL_WITH_PROPERTIES_KEY = exports.MODEL_PROPERTIES_KEY = exports.MODEL_KEY = void 0;
4
- const metadata_1 = require("@loopback/metadata");
5
- const model_1 = require("./model");
6
- const RELATIONS_KEY = 'loopback:relations';
7
- exports.MODEL_KEY = metadata_1.MetadataAccessor.create('loopback:model');
8
- exports.MODEL_PROPERTIES_KEY = metadata_1.MetadataAccessor.create('loopback:model-properties');
9
- exports.MODEL_WITH_PROPERTIES_KEY = metadata_1.MetadataAccessor.create('loopback:model-and-properties');
10
- class ModelMetadataHelper {
11
- static getModelMetadata(target, options) {
12
- const classDef = metadata_1.MetadataInspector.getClassMetadata(exports.MODEL_WITH_PROPERTIES_KEY, target, { ...options, ownMetadataOnly: true });
13
- if (classDef) {
14
- return classDef;
15
- }
16
- const modelMeta = metadata_1.MetadataInspector.getClassMetadata(exports.MODEL_KEY, target, options);
17
- if (!modelMeta) {
18
- return {};
19
- }
20
- const meta = new model_1.ModelDefinition({ ...modelMeta });
21
- Object.assign(meta, modelMeta);
22
- meta.properties = Object.assign(meta.properties, metadata_1.MetadataInspector.getAllPropertyMetadata(exports.MODEL_PROPERTIES_KEY, target.prototype, options));
23
- meta.relations = Object.assign(meta.relations, metadata_1.MetadataInspector.getAllPropertyMetadata(RELATIONS_KEY, target.prototype, options));
24
- metadata_1.MetadataInspector.defineMetadata(exports.MODEL_WITH_PROPERTIES_KEY.key, meta, target);
25
- return meta;
26
- }
27
- }
28
- exports.ModelMetadataHelper = ModelMetadataHelper;
@@ -1,87 +0,0 @@
1
- import { SchemaObject as JsonSchema } from 'openapi3-ts';
2
- import { AnyObject, DataObject, Options, PrototypeOf } from './common-types';
3
- import { BelongsToDefinition, HasManyDefinition, HasOneDefinition, RelationMetadata } from './relation.types';
4
- import { TypeResolver } from './type-resolver';
5
- import { Type } from './type';
6
- export interface JsonSchemaWithExtensions extends JsonSchema {
7
- [attributes: string]: any;
8
- }
9
- export declare type PropertyType = string | Function | object | Type<any> | TypeResolver<Model>;
10
- export interface PropertyDefinition {
11
- type: PropertyType;
12
- id?: boolean | number;
13
- hidden?: boolean;
14
- json?: PropertyForm;
15
- jsonSchema?: JsonSchemaWithExtensions;
16
- store?: PropertyForm;
17
- itemType?: PropertyType;
18
- [attribute: string]: any;
19
- }
20
- export interface ModelSettings {
21
- description?: string;
22
- forceId?: boolean;
23
- hiddenProperties?: string[];
24
- scope?: object;
25
- strict?: boolean | 'filter';
26
- [name: string]: any;
27
- }
28
- export interface PropertyForm {
29
- in?: boolean;
30
- out?: boolean;
31
- name?: string;
32
- }
33
- export declare type RelationDefinitionMap = {
34
- [relationName: string]: RelationMetadata;
35
- };
36
- export interface ModelDefinitionSyntax {
37
- name: string;
38
- properties?: {
39
- [name: string]: PropertyDefinition | PropertyType;
40
- };
41
- settings?: ModelSettings;
42
- relations?: RelationDefinitionMap;
43
- jsonSchema?: JsonSchemaWithExtensions;
44
- [attribute: string]: any;
45
- }
46
- export declare class ModelDefinition {
47
- readonly name: string;
48
- properties: {
49
- [name: string]: PropertyDefinition;
50
- };
51
- settings: ModelSettings;
52
- relations: RelationDefinitionMap;
53
- [attribute: string]: any;
54
- constructor(nameOrDef: string | ModelDefinitionSyntax);
55
- addProperty(name: string, definitionOrType: PropertyDefinition | PropertyType): this;
56
- addSetting(name: string, value: any): this;
57
- addRelation(definition: RelationMetadata): this;
58
- belongsTo(name: string, definition: Omit<BelongsToDefinition, 'name' | 'type' | 'targetsMany'>): this;
59
- hasOne(name: string, definition: Omit<HasOneDefinition, 'name' | 'type' | 'targetsMany'>): this;
60
- hasMany(name: string, definition: Omit<HasManyDefinition, 'name' | 'type' | 'targetsMany'>): this;
61
- idProperties(): string[];
62
- }
63
- export declare class Model {
64
- static get modelName(): string;
65
- static definition: ModelDefinition;
66
- toJSON(): Object;
67
- toObject(options?: Options): Object;
68
- constructor(data?: DataObject<Model>);
69
- }
70
- export interface Persistable {
71
- }
72
- export declare abstract class ValueObject extends Model implements Persistable {
73
- }
74
- export declare class Entity extends Model implements Persistable {
75
- static getIdProperties(): string[];
76
- static getIdOf(entityOrData: AnyObject): any;
77
- getId(): any;
78
- getIdObject(): Object;
79
- static buildWhereForId(id: any): any;
80
- }
81
- export declare class Event {
82
- source: any;
83
- type: string;
84
- }
85
- export declare type EntityData = DataObject<Entity>;
86
- export declare type EntityResolver<T extends Entity> = TypeResolver<T, typeof Entity>;
87
- export declare function rejectNavigationalPropertiesInData<M extends typeof Entity>(modelClass: M, data: DataObject<PrototypeOf<M>>): void;
@@ -1,244 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rejectNavigationalPropertiesInData = exports.Event = exports.Entity = exports.ValueObject = exports.Model = exports.ModelDefinition = void 0;
4
- const relation_types_1 = require("./relation.types");
5
- class ModelDefinition {
6
- constructor(nameOrDef) {
7
- if (typeof nameOrDef === 'string') {
8
- nameOrDef = { name: nameOrDef };
9
- }
10
- const { name, properties, settings, relations } = nameOrDef;
11
- this.name = name;
12
- this.properties = {};
13
- if (properties) {
14
- for (const p in properties) {
15
- this.addProperty(p, properties[p]);
16
- }
17
- }
18
- this.settings = settings ?? new Map();
19
- this.relations = relations ?? {};
20
- }
21
- addProperty(name, definitionOrType) {
22
- const definition = definitionOrType.type
23
- ? definitionOrType
24
- : { type: definitionOrType };
25
- if (definition.id === true &&
26
- definition.generated === true &&
27
- definition.type !== undefined &&
28
- definition.useDefaultIdType === undefined) {
29
- definition.useDefaultIdType = false;
30
- }
31
- this.properties[name] = definition;
32
- return this;
33
- }
34
- addSetting(name, value) {
35
- this.settings[name] = value;
36
- return this;
37
- }
38
- addRelation(definition) {
39
- this.relations[definition.name] = definition;
40
- return this;
41
- }
42
- belongsTo(name, definition) {
43
- const meta = {
44
- ...definition,
45
- name,
46
- type: relation_types_1.RelationType.belongsTo,
47
- targetsMany: false
48
- };
49
- return this.addRelation(meta);
50
- }
51
- hasOne(name, definition) {
52
- const meta = {
53
- ...definition,
54
- name,
55
- type: relation_types_1.RelationType.hasOne,
56
- targetsMany: false
57
- };
58
- return this.addRelation(meta);
59
- }
60
- hasMany(name, definition) {
61
- const meta = {
62
- ...definition,
63
- name,
64
- type: relation_types_1.RelationType.hasMany,
65
- targetsMany: true
66
- };
67
- return this.addRelation(meta);
68
- }
69
- idProperties() {
70
- if (typeof this.settings.id === 'string') {
71
- return [this.settings.id];
72
- }
73
- if (Array.isArray(this.settings.id)) {
74
- return this.settings.id;
75
- }
76
- const idProps = Object.keys(this.properties).filter(prop => this.properties[prop].id);
77
- return idProps;
78
- }
79
- }
80
- exports.ModelDefinition = ModelDefinition;
81
- function asJSON(value) {
82
- if (value == null)
83
- return value;
84
- if (typeof value.toJSON === 'function') {
85
- return value.toJSON();
86
- }
87
- if (Array.isArray(value)) {
88
- return value.map(item => asJSON(item));
89
- }
90
- return value;
91
- }
92
- function asObject(value, options) {
93
- if (value == null)
94
- return value;
95
- if (typeof value.toObject === 'function') {
96
- return value.toObject(options);
97
- }
98
- if (Array.isArray(value)) {
99
- return value.map(item => asObject(item, options));
100
- }
101
- return value;
102
- }
103
- class Model {
104
- constructor(data) {
105
- Object.assign(this, data);
106
- }
107
- static get modelName() {
108
- return this.definition?.name || this.name;
109
- }
110
- toJSON() {
111
- const def = this.constructor.definition;
112
- if (def == null || def.settings.strict === false) {
113
- return this.toObject({ ignoreUnknownProperties: false });
114
- }
115
- const copyPropertyAsJson = (key) => {
116
- const val = asJSON(this[key]);
117
- if (val !== undefined) {
118
- json[key] = val;
119
- }
120
- };
121
- const json = {};
122
- const hiddenProperties = def.settings.hiddenProperties || [];
123
- for (const p in def.properties) {
124
- if (p in this && !hiddenProperties.includes(p)) {
125
- copyPropertyAsJson(p);
126
- }
127
- }
128
- for (const r in def.relations) {
129
- const relName = def.relations[r].name;
130
- if (relName in this) {
131
- copyPropertyAsJson(relName);
132
- }
133
- }
134
- return json;
135
- }
136
- toObject(options) {
137
- const def = this.constructor.definition;
138
- const obj = {};
139
- if (options?.ignoreUnknownProperties === false) {
140
- const hiddenProperties = def?.settings.hiddenProperties || [];
141
- for (const p in this) {
142
- if (!hiddenProperties.includes(p)) {
143
- const val = this[p];
144
- obj[p] = asObject(val, options);
145
- }
146
- }
147
- return obj;
148
- }
149
- if (def?.relations) {
150
- for (const r in def.relations) {
151
- const relName = def.relations[r].name;
152
- if (relName in this) {
153
- obj[relName] = asObject(this[relName], {
154
- ...options,
155
- ignoreUnknownProperties: false
156
- });
157
- }
158
- }
159
- }
160
- const props = def.properties;
161
- const keys = Object.keys(props);
162
- for (const i in keys) {
163
- const propertyName = keys[i];
164
- const val = this[propertyName];
165
- if (val === undefined)
166
- continue;
167
- obj[propertyName] = asObject(val, options);
168
- }
169
- return obj;
170
- }
171
- }
172
- exports.Model = Model;
173
- class ValueObject extends Model {
174
- }
175
- exports.ValueObject = ValueObject;
176
- class Entity extends Model {
177
- static getIdProperties() {
178
- return this.definition.idProperties();
179
- }
180
- static getIdOf(entityOrData) {
181
- if (typeof entityOrData.getId === 'function') {
182
- return entityOrData.getId();
183
- }
184
- const idName = this.getIdProperties()[0];
185
- return entityOrData[idName];
186
- }
187
- getId() {
188
- const { definition } = this.constructor;
189
- const idProps = definition.idProperties();
190
- if (idProps.length === 1) {
191
- return this[idProps[0]];
192
- }
193
- if (!idProps.length) {
194
- throw new Error(`Invalid Entity ${this.constructor.name}:` +
195
- 'missing primary key (id) property');
196
- }
197
- return this.getIdObject();
198
- }
199
- getIdObject() {
200
- const { definition } = this.constructor;
201
- const idProps = definition.idProperties();
202
- const idObj = {};
203
- for (const idProp of idProps) {
204
- idObj[idProp] = this[idProp];
205
- }
206
- return idObj;
207
- }
208
- static buildWhereForId(id) {
209
- const where = {};
210
- const idProps = this.definition.idProperties();
211
- if (idProps.length === 1) {
212
- where[idProps[0]] = id;
213
- }
214
- else {
215
- for (const idProp of idProps) {
216
- where[idProp] = id[idProp];
217
- }
218
- }
219
- return where;
220
- }
221
- }
222
- exports.Entity = Entity;
223
- class Event {
224
- }
225
- exports.Event = Event;
226
- function rejectNavigationalPropertiesInData(modelClass, data) {
227
- const def = modelClass.definition;
228
- const props = def.properties;
229
- for (const r in def.relations) {
230
- const relName = def.relations[r].name;
231
- if (!(relName in data))
232
- continue;
233
- let msg = 'Navigational properties are not allowed in model data ' +
234
- `(model "${modelClass.modelName}" property "${relName}"), ` +
235
- 'please remove it.';
236
- if (relName in props) {
237
- msg +=
238
- ' The error might be invoked by belongsTo relations, please make' +
239
- ' sure the relation name is not the same as the property name.';
240
- }
241
- throw new Error(msg);
242
- }
243
- }
244
- exports.rejectNavigationalPropertiesInData = rejectNavigationalPropertiesInData;
@@ -1,97 +0,0 @@
1
- declare type AnyObject = Record<string, any>;
2
- export declare type Operators = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'inq' | 'nin' | 'between' | 'exists' | 'and' | 'or' | 'like' | 'nlike' | 'ilike' | 'nilike' | 'regexp';
3
- export declare type PredicateComparison<PT> = {
4
- eq?: PT;
5
- neq?: PT;
6
- gt?: PT;
7
- gte?: PT;
8
- lt?: PT;
9
- lte?: PT;
10
- inq?: PT[];
11
- nin?: PT[];
12
- between?: [PT, PT];
13
- exists?: boolean;
14
- like?: PT;
15
- nlike?: PT;
16
- ilike?: PT;
17
- nilike?: PT;
18
- regexp?: string | RegExp;
19
- };
20
- export declare type ShortHandEqualType = string | number | boolean | Date;
21
- export declare type KeyOf<MT extends object> = Exclude<Extract<keyof MT, string>, Operators>;
22
- export declare type Condition<MT extends object> = {
23
- [P in KeyOf<MT>]?: PredicateComparison<MT[P]> | (MT[P] & ShortHandEqualType);
24
- };
25
- export declare type Where<MT extends object = AnyObject> = Condition<MT> | AndClause<MT> | OrClause<MT>;
26
- export interface AndClause<MT extends object> {
27
- and: Where<MT>[];
28
- }
29
- export interface OrClause<MT extends object> {
30
- or: Where<MT>[];
31
- }
32
- export declare type Direction = 'ASC' | 'DESC';
33
- export declare type Order<MT = AnyObject> = {
34
- [P in keyof MT]: Direction;
35
- };
36
- export declare type Fields<MT = AnyObject> = {
37
- [P in keyof MT]?: boolean;
38
- } | Extract<keyof MT, string>[];
39
- export interface Inclusion {
40
- relation: string;
41
- scope?: Filter<AnyObject> & {
42
- totalLimit?: number;
43
- };
44
- }
45
- export interface Filter<MT extends object = AnyObject> {
46
- where?: Where<MT>;
47
- fields?: Fields<MT>;
48
- order?: string[];
49
- limit?: number;
50
- skip?: number;
51
- offset?: number;
52
- include?: InclusionFilter[];
53
- }
54
- export declare type InclusionFilter = string | Inclusion;
55
- export declare type FilterExcludingWhere<MT extends object = AnyObject> = Omit<Filter<MT>, 'where'>;
56
- export declare function isFilter<MT extends object>(candidate: any): candidate is Filter<MT>;
57
- export declare class WhereBuilder<MT extends object = AnyObject> {
58
- where: Where<MT>;
59
- constructor(w?: Where<MT>);
60
- private add;
61
- cast(clause: AndClause<MT> | OrClause<MT> | Condition<MT>): Where<MT>;
62
- and(...w: (Where<MT> | Where<MT>[])[]): this;
63
- or(...w: (Where<MT> | Where<MT>[])[]): this;
64
- eq<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
65
- neq<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
66
- gt<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
67
- gte<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
68
- lt<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
69
- lte<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
70
- inq<K extends KeyOf<MT>>(key: K, val: MT[K][]): this;
71
- nin<K extends KeyOf<MT>>(key: K, val: MT[K][]): this;
72
- between<K extends KeyOf<MT>>(key: K, val1: MT[K], val2: MT[K]): this;
73
- exists<K extends KeyOf<MT>>(key: K, val?: boolean): this;
74
- impose(where: Where<MT>): this;
75
- like<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
76
- nlike<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
77
- ilike<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
78
- nilike<K extends KeyOf<MT>>(key: K, val: MT[K]): this;
79
- regexp<K extends KeyOf<MT>>(key: K, val: string | RegExp): this;
80
- build(): Where<MT>;
81
- }
82
- export declare class FilterBuilder<MT extends object = AnyObject> {
83
- filter: Filter<MT>;
84
- constructor(f?: Filter<MT>);
85
- limit(limit: number): this;
86
- offset(offset: number): this;
87
- skip(skip: number): this;
88
- fields(...f: (Fields<MT> | Extract<keyof MT, string>)[]): this;
89
- private validateOrder;
90
- order(...o: (string | string[] | Order<MT>)[]): this;
91
- include(...i: (string | string[] | Inclusion)[]): this;
92
- where(w: Where<MT>): this;
93
- impose(constraint: Filter<MT> | Where<MT>): this;
94
- build(): Filter<MT>;
95
- }
96
- export declare function filterTemplate(strings: TemplateStringsArray, ...keys: any[]): (ctx: AnyObject) => any;
97
- export {};