@contember/engine-content-api 1.2.0-alpha.10 → 1.2.0-alpha.11

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 (236) hide show
  1. package/dist/src/acl/PredicateFactory.d.ts +1 -1
  2. package/dist/src/acl/PredicateFactory.d.ts.map +1 -1
  3. package/dist/src/acl/PredicateFactory.js +6 -13
  4. package/dist/src/acl/PredicateFactory.js.map +1 -1
  5. package/dist/src/acl/PredicatesInjector.d.ts +1 -1
  6. package/dist/src/acl/PredicatesInjector.d.ts.map +1 -1
  7. package/dist/src/acl/PredicatesInjector.js +13 -20
  8. package/dist/src/acl/PredicatesInjector.js.map +1 -1
  9. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.d.ts +0 -1
  10. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.d.ts.map +1 -1
  11. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js +14 -15
  12. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  13. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.d.ts +1 -1
  14. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.d.ts.map +1 -1
  15. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +1 -1
  16. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
  17. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.d.ts +5 -4
  18. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.d.ts.map +1 -1
  19. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js +11 -14
  20. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
  21. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.d.ts.map +1 -1
  22. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js +2 -2
  23. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
  24. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.d.ts +3 -3
  25. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.d.ts.map +1 -1
  26. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js +3 -3
  27. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
  28. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.d.ts +5 -4
  29. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.d.ts.map +1 -1
  30. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js +11 -15
  31. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
  32. package/dist/src/input-validation/ColumnValueResolver.d.ts +4 -3
  33. package/dist/src/input-validation/ColumnValueResolver.d.ts.map +1 -1
  34. package/dist/src/input-validation/ColumnValueResolver.js.map +1 -1
  35. package/dist/src/input-validation/EntityRulesResolver.js +4 -4
  36. package/dist/src/input-validation/EntityRulesResolver.js.map +1 -1
  37. package/dist/src/input-validation/QueryAstFactory.js +1 -1
  38. package/dist/src/input-validation/QueryAstFactory.js.map +1 -1
  39. package/dist/src/input-validation/ValidationDataSelector.js +1 -1
  40. package/dist/src/input-validation/ValidationDataSelector.js.map +1 -1
  41. package/dist/src/input-validation/preValidation/CreateInputPreValidationProcessor.d.ts +7 -8
  42. package/dist/src/input-validation/preValidation/CreateInputPreValidationProcessor.d.ts.map +1 -1
  43. package/dist/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  44. package/dist/src/input-validation/preValidation/InputPreValidator.js +4 -4
  45. package/dist/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  46. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.d.ts +7 -8
  47. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.d.ts.map +1 -1
  48. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  49. package/dist/src/inputProcessing/CreateInputProcessor.d.ts +8 -9
  50. package/dist/src/inputProcessing/CreateInputProcessor.d.ts.map +1 -1
  51. package/dist/src/inputProcessing/CreateInputVisitor.d.ts +7 -7
  52. package/dist/src/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
  53. package/dist/src/inputProcessing/CreateInputVisitor.js +15 -46
  54. package/dist/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  55. package/dist/src/inputProcessing/UpdateInputProcessor.d.ts +8 -9
  56. package/dist/src/inputProcessing/UpdateInputProcessor.d.ts.map +1 -1
  57. package/dist/src/inputProcessing/UpdateInputVisitor.d.ts +7 -7
  58. package/dist/src/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
  59. package/dist/src/inputProcessing/UpdateInputVisitor.js +13 -28
  60. package/dist/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  61. package/dist/src/inputProcessing/index.d.ts +0 -1
  62. package/dist/src/inputProcessing/index.d.ts.map +1 -1
  63. package/dist/src/inputProcessing/index.js +0 -1
  64. package/dist/src/inputProcessing/index.js.map +1 -1
  65. package/dist/src/introspection/IntrospectionSchemaFactory.js +7 -7
  66. package/dist/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
  67. package/dist/src/mapper/Mapper.d.ts +6 -6
  68. package/dist/src/mapper/Mapper.d.ts.map +1 -1
  69. package/dist/src/mapper/Mapper.js +28 -23
  70. package/dist/src/mapper/Mapper.js.map +1 -1
  71. package/dist/src/mapper/MapperContainer.d.ts.map +1 -1
  72. package/dist/src/mapper/MapperContainer.js +2 -2
  73. package/dist/src/mapper/MapperContainer.js.map +1 -1
  74. package/dist/src/mapper/delete/DeleteExecutor.js +3 -3
  75. package/dist/src/mapper/delete/DeleteExecutor.js.map +1 -1
  76. package/dist/src/mapper/insert/SqlCreateInputProcessor.d.ts +4 -2
  77. package/dist/src/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
  78. package/dist/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  79. package/dist/src/mapper/select/JoinVisitor.d.ts +6 -6
  80. package/dist/src/mapper/select/JoinVisitor.d.ts.map +1 -1
  81. package/dist/src/mapper/select/JoinVisitor.js +6 -6
  82. package/dist/src/mapper/select/JoinVisitor.js.map +1 -1
  83. package/dist/src/mapper/select/RelationFetcher.d.ts +11 -19
  84. package/dist/src/mapper/select/RelationFetcher.d.ts.map +1 -1
  85. package/dist/src/mapper/select/RelationFetcher.js +34 -25
  86. package/dist/src/mapper/select/RelationFetcher.js.map +1 -1
  87. package/dist/src/mapper/select/SelectBuilder.d.ts +2 -1
  88. package/dist/src/mapper/select/SelectBuilder.d.ts.map +1 -1
  89. package/dist/src/mapper/select/SelectBuilder.js +4 -2
  90. package/dist/src/mapper/select/SelectBuilder.js.map +1 -1
  91. package/dist/src/mapper/select/SelectBuilderFactory.d.ts +2 -1
  92. package/dist/src/mapper/select/SelectBuilderFactory.d.ts.map +1 -1
  93. package/dist/src/mapper/select/SelectExecutionHandler.d.ts +1 -0
  94. package/dist/src/mapper/select/SelectExecutionHandler.d.ts.map +1 -1
  95. package/dist/src/mapper/select/WhereBuilder.d.ts +3 -2
  96. package/dist/src/mapper/select/WhereBuilder.d.ts.map +1 -1
  97. package/dist/src/mapper/select/WhereBuilder.js +29 -24
  98. package/dist/src/mapper/select/WhereBuilder.js.map +1 -1
  99. package/dist/src/mapper/select/handlers/FieldsVisitor.d.ts +9 -8
  100. package/dist/src/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  101. package/dist/src/mapper/select/handlers/FieldsVisitor.js +33 -25
  102. package/dist/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  103. package/dist/src/mapper/select/handlers/FieldsVisitorFactory.d.ts.map +1 -1
  104. package/dist/src/mapper/select/handlers/FieldsVisitorFactory.js +1 -1
  105. package/dist/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  106. package/dist/src/mapper/select/optimizer/ConditionOptimizer.d.ts.map +1 -1
  107. package/dist/src/mapper/select/optimizer/ConditionOptimizer.js +6 -0
  108. package/dist/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
  109. package/dist/src/mapper/select/optimizer/WhereOptimizer.d.ts +2 -1
  110. package/dist/src/mapper/select/optimizer/WhereOptimizer.d.ts.map +1 -1
  111. package/dist/src/mapper/select/optimizer/WhereOptimizer.js +52 -20
  112. package/dist/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
  113. package/dist/src/mapper/select/optimizer/WhereReplacer.d.ts +4 -1
  114. package/dist/src/mapper/select/optimizer/WhereReplacer.d.ts.map +1 -1
  115. package/dist/src/mapper/select/optimizer/WhereReplacer.js +4 -3
  116. package/dist/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
  117. package/dist/src/mapper/update/SqlUpdateInputProcessor.d.ts +2 -3
  118. package/dist/src/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
  119. package/dist/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  120. package/dist/src/mapper/update/UpdateBuilder.js +3 -3
  121. package/dist/src/mapper/update/UpdateBuilder.js.map +1 -1
  122. package/dist/src/resolvers/MutationResolver.js +1 -1
  123. package/dist/src/resolvers/MutationResolver.js.map +1 -1
  124. package/dist/src/resolvers/ReadHelpers.js +3 -3
  125. package/dist/src/resolvers/ReadHelpers.js.map +1 -1
  126. package/dist/src/resolvers/ReadResolver.js +2 -2
  127. package/dist/src/resolvers/ReadResolver.js.map +1 -1
  128. package/dist/src/schema/FieldAccessVisitor.d.ts +2 -2
  129. package/dist/src/schema/FieldAccessVisitor.d.ts.map +1 -1
  130. package/dist/src/schema/FieldAccessVisitor.js +2 -2
  131. package/dist/src/schema/FieldAccessVisitor.js.map +1 -1
  132. package/dist/src/schema/OrderByTypeProvider.js +1 -1
  133. package/dist/src/schema/OrderByTypeProvider.js.map +1 -1
  134. package/dist/src/schema/WhereTypeProvider.js +4 -4
  135. package/dist/src/schema/WhereTypeProvider.js.map +1 -1
  136. package/dist/src/schema/entities/FieldArgsVisitor.d.ts +3 -3
  137. package/dist/src/schema/entities/FieldArgsVisitor.d.ts.map +1 -1
  138. package/dist/src/schema/entities/FieldArgsVisitor.js +3 -3
  139. package/dist/src/schema/entities/FieldArgsVisitor.js.map +1 -1
  140. package/dist/src/schema/entities/FieldTypeVisitor.d.ts +3 -3
  141. package/dist/src/schema/entities/FieldTypeVisitor.d.ts.map +1 -1
  142. package/dist/src/schema/entities/FieldTypeVisitor.js +3 -3
  143. package/dist/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  144. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.d.ts +3 -3
  145. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.d.ts.map +1 -1
  146. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.js +3 -3
  147. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  148. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.d.ts +6 -6
  149. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
  150. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js +6 -6
  151. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  152. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.d.ts +3 -3
  153. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  154. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js +5 -5
  155. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  156. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.d.ts +10 -4
  157. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.d.ts.map +1 -1
  158. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.js +3 -3
  159. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  160. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.d.ts +6 -6
  161. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
  162. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js +6 -6
  163. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  164. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts +2 -2
  165. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  166. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -2
  167. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  168. package/dist/src/tsconfig.tsbuildinfo +1 -1
  169. package/dist/src/utils/uniqueWhereFields.js +3 -3
  170. package/dist/src/utils/uniqueWhereFields.js.map +1 -1
  171. package/dist/tests/cases/unit/predicatesFactory.test.js +7 -1
  172. package/dist/tests/cases/unit/predicatesFactory.test.js.map +1 -1
  173. package/dist/tests/cases/unit/whereOptimizer.test.js +82 -0
  174. package/dist/tests/cases/unit/whereOptimizer.test.js.map +1 -1
  175. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  176. package/package.json +10 -10
  177. package/src/acl/PredicateFactory.ts +7 -14
  178. package/src/acl/PredicatesInjector.ts +13 -18
  179. package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.ts +17 -24
  180. package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts +1 -6
  181. package/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.ts +10 -28
  182. package/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts +6 -3
  183. package/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.ts +4 -22
  184. package/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.ts +10 -29
  185. package/src/input-validation/ColumnValueResolver.ts +2 -3
  186. package/src/input-validation/EntityRulesResolver.ts +4 -4
  187. package/src/input-validation/QueryAstFactory.ts +1 -1
  188. package/src/input-validation/ValidationDataSelector.ts +1 -1
  189. package/src/input-validation/preValidation/CreateInputPreValidationProcessor.ts +7 -8
  190. package/src/input-validation/preValidation/InputPreValidator.ts +4 -4
  191. package/src/input-validation/preValidation/UpdateInputPreValidationProcessor.ts +7 -8
  192. package/src/inputProcessing/CreateInputProcessor.ts +8 -9
  193. package/src/inputProcessing/CreateInputVisitor.ts +27 -89
  194. package/src/inputProcessing/UpdateInputProcessor.ts +8 -9
  195. package/src/inputProcessing/UpdateInputVisitor.ts +25 -71
  196. package/src/inputProcessing/index.ts +0 -1
  197. package/src/introspection/IntrospectionSchemaFactory.ts +7 -7
  198. package/src/mapper/Mapper.ts +36 -33
  199. package/src/mapper/MapperContainer.ts +3 -2
  200. package/src/mapper/delete/DeleteExecutor.ts +3 -3
  201. package/src/mapper/insert/SqlCreateInputProcessor.ts +3 -3
  202. package/src/mapper/select/JoinVisitor.ts +6 -33
  203. package/src/mapper/select/RelationFetcher.ts +49 -50
  204. package/src/mapper/select/SelectBuilder.ts +3 -1
  205. package/src/mapper/select/SelectBuilderFactory.ts +2 -1
  206. package/src/mapper/select/SelectExecutionHandler.ts +1 -0
  207. package/src/mapper/select/WhereBuilder.ts +45 -34
  208. package/src/mapper/select/handlers/FieldsVisitor.ts +32 -49
  209. package/src/mapper/select/handlers/FieldsVisitorFactory.ts +1 -0
  210. package/src/mapper/select/optimizer/ConditionOptimizer.ts +6 -0
  211. package/src/mapper/select/optimizer/WhereOptimizer.ts +58 -20
  212. package/src/mapper/select/optimizer/WhereReplacer.ts +8 -3
  213. package/src/mapper/update/SqlUpdateInputProcessor.ts +1 -1
  214. package/src/mapper/update/UpdateBuilder.ts +3 -3
  215. package/src/resolvers/MutationResolver.ts +1 -1
  216. package/src/resolvers/ReadHelpers.ts +3 -3
  217. package/src/resolvers/ReadResolver.ts +2 -2
  218. package/src/schema/FieldAccessVisitor.ts +2 -2
  219. package/src/schema/OrderByTypeProvider.ts +1 -1
  220. package/src/schema/WhereTypeProvider.ts +4 -4
  221. package/src/schema/entities/FieldArgsVisitor.ts +3 -3
  222. package/src/schema/entities/FieldTypeVisitor.ts +3 -3
  223. package/src/schema/mutations/CreateEntityInputFieldVisitor.ts +3 -6
  224. package/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.ts +6 -20
  225. package/src/schema/mutations/CreateEntityRelationInputFieldVisitor.ts +5 -18
  226. package/src/schema/mutations/UpdateEntityInputFieldVisitor.ts +3 -6
  227. package/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.ts +6 -20
  228. package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +2 -12
  229. package/src/utils/uniqueWhereFields.ts +3 -3
  230. package/tests/cases/unit/predicatesFactory.test.ts +8 -2
  231. package/tests/cases/unit/whereOptimizer.test.ts +94 -0
  232. package/dist/src/inputProcessing/InputContext.d.ts +0 -43
  233. package/dist/src/inputProcessing/InputContext.d.ts.map +0 -1
  234. package/dist/src/inputProcessing/InputContext.js +0 -3
  235. package/dist/src/inputProcessing/InputContext.js.map +0 -1
  236. package/src/inputProcessing/InputContext.ts +0 -49
@@ -3,15 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FieldsVisitor = void 0;
4
4
  const schema_1 = require("@contember/schema");
5
5
  class FieldsVisitor {
6
- constructor(schema, relationFetcher, predicateFactory, whereBuilder, mapper, executionContext) {
6
+ constructor(schema, relationFetcher, predicateFactory, whereBuilder, mapper, executionContext, relationPath) {
7
7
  this.schema = schema;
8
8
  this.relationFetcher = relationFetcher;
9
9
  this.predicateFactory = predicateFactory;
10
10
  this.whereBuilder = whereBuilder;
11
11
  this.mapper = mapper;
12
12
  this.executionContext = executionContext;
13
+ this.relationPath = relationPath;
13
14
  }
14
- visitColumn(entity, column) {
15
+ visitColumn({ entity, column }) {
15
16
  const columnPath = this.executionContext.path;
16
17
  this.executionContext.addColumn(qb => {
17
18
  const tableAlias = columnPath.back().alias;
@@ -27,51 +28,47 @@ class FieldsVisitor {
27
28
  .else(elseExpr => elseExpr.raw('null'))), columnAlias));
28
29
  });
29
30
  }
30
- visitManyHasManyInverse(entity, relation, targetEntity, targetRelation) {
31
+ visitManyHasManyInverse(relationContext) {
31
32
  const field = this.executionContext.objectNode;
32
33
  if (!field) {
33
34
  throw new Error();
34
35
  }
35
- this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchManyHasManyGroups({
36
+ this.executionContext.addData(relationContext.entity.primary, async (ids) => this.relationFetcher.fetchManyHasManyGroups({
36
37
  mapper: this.mapper,
37
38
  field: field,
38
- targetEntity: targetEntity,
39
- sourceRelation: relation,
40
- targetRelation,
41
- directionFrom: 'inverse',
39
+ relationContext,
40
+ relationPath: this.relationPath,
42
41
  ids: ids,
43
42
  }), []);
44
43
  }
45
- visitManyHasManyOwning(entity, relation, targetEntity, targetRelation) {
44
+ visitManyHasManyOwning(relationContext) {
46
45
  const field = this.executionContext.objectNode;
47
46
  if (!field) {
48
47
  throw new Error();
49
48
  }
50
- this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchManyHasManyGroups({
49
+ this.executionContext.addData(relationContext.entity.primary, async (ids) => this.relationFetcher.fetchManyHasManyGroups({
51
50
  mapper: this.mapper,
52
51
  field: field,
53
- targetEntity: targetEntity,
54
- sourceRelation: relation,
55
- targetRelation,
56
- directionFrom: 'owning',
52
+ relationContext,
53
+ relationPath: this.relationPath,
57
54
  ids: ids,
58
55
  }), []);
59
56
  }
60
- visitOneHasMany(entity, relation, targetEntity, targetRelation) {
57
+ visitOneHasMany(relationContext) {
61
58
  const field = this.executionContext.objectNode;
62
59
  if (!field) {
63
60
  throw new Error();
64
61
  }
65
- this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchOneHasManyGroups({
62
+ this.executionContext.addData(relationContext.entity.primary, async (ids) => this.relationFetcher.fetchOneHasManyGroups({
66
63
  mapper: this.mapper,
67
64
  objectNode: field,
68
- targetEntity: targetEntity,
69
- relation: relation,
70
- targetRelation: targetRelation,
65
+ relationContext,
66
+ relationPath: this.relationPath,
71
67
  ids: ids,
72
68
  }), []);
73
69
  }
74
- visitOneHasOneInverse(entity, relation, targetEntity, targetRelation) {
70
+ visitOneHasOneInverse(relationContext) {
71
+ const { entity, targetRelation, targetEntity } = relationContext;
75
72
  this.executionContext.addData(entity.primary, async (ids) => {
76
73
  const idsWhere = {
77
74
  [targetRelation.name]: {
@@ -88,10 +85,14 @@ class FieldsVisitor {
88
85
  and: [idsWhere, field.args.filter].filter((it) => it !== undefined),
89
86
  };
90
87
  const objectWithWhere = field.withArg('filter', where);
91
- return this.mapper.select(targetEntity, objectWithWhere, targetRelation, targetRelation.name);
88
+ return this.mapper.selectAssoc(targetEntity, objectWithWhere, [
89
+ ...this.relationPath,
90
+ relationContext,
91
+ ], targetRelation.name);
92
92
  }, null);
93
93
  }
94
- visitOneHasOneOwning(entity, relation, targetEntity, targetRelation) {
94
+ visitOneHasOneOwning(relationContext) {
95
+ const { relation, targetEntity } = relationContext;
95
96
  this.executionContext.addData(relation.name, async (ids) => {
96
97
  const idsWhere = {
97
98
  [targetEntity.primary]: {
@@ -106,10 +107,14 @@ class FieldsVisitor {
106
107
  and: [idsWhere, objectNode.args.filter].filter((it) => it !== undefined),
107
108
  };
108
109
  const objectWithWhere = objectNode.withArg('filter', where);
109
- return this.mapper.select(targetEntity, objectWithWhere, targetRelation, targetEntity.primary);
110
+ return this.mapper.selectAssoc(targetEntity, objectWithWhere, [
111
+ ...this.relationPath,
112
+ relationContext,
113
+ ], targetEntity.primary);
110
114
  }, null);
111
115
  }
112
- visitManyHasOne(entity, relation, targetEntity, targetRelation) {
116
+ visitManyHasOne(relationContext) {
117
+ const { relation, targetEntity } = relationContext;
113
118
  this.executionContext.addData(relation.name, async (ids) => {
114
119
  const idsWhere = {
115
120
  [targetEntity.primary]: {
@@ -124,7 +129,10 @@ class FieldsVisitor {
124
129
  and: [idsWhere, objectNode.args.filter].filter((it) => it !== undefined),
125
130
  };
126
131
  const objectWithWhere = objectNode.withArg('filter', where);
127
- return this.mapper.select(targetEntity, objectWithWhere, targetRelation, targetEntity.primary);
132
+ return this.mapper.selectAssoc(targetEntity, objectWithWhere, [
133
+ ...this.relationPath,
134
+ relationContext,
135
+ ], targetEntity.primary);
128
136
  }, null);
129
137
  }
130
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FieldsVisitor.js","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitor.ts"],"names":[],"mappings":";;;AAAA,8CAAqD;AAOrD,MAAa,aAAa;IACzB,YACkB,MAAoB,EACpB,eAAgC,EAChC,gBAAkC,EAClC,YAA0B,EAC1B,MAAc,EACd,gBAA+C;QAL/C,WAAM,GAAN,MAAM,CAAc;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAA+B;IAC9D,CAAC;IAEJ,WAAW,CAAC,MAAoB,EAAE,MAAuB;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA;QAC7C,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACpC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAA;YAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CACzE,MAAM,EACN,YAAG,CAAC,SAAS,CAAC,IAAI,EAClB,MAAM,CAAC,IAAI,CACX;gBACA,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,YAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzE,CAAC,CAAC,SAAS,CAAA;YAEZ,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;aAC9D;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,CACtF,EAAE,CAAC,MAAM,CACR,IAAI,CAAC,EAAE,CACN,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACpB,QAAQ;iBACN,IAAI,CACJ,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,EACxC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAC5D;iBACA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACxC,EACF,WAAW,CACX,CACD,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAEM,uBAAuB,CAC7B,MAAoB,EACpB,QAA0C,EAC1C,YAA0B,EAC1B,cAA+C;QAE/C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;QAC9C,IAAI,CAAC,KAAK,EAAE;YACX,MAAM,IAAI,KAAK,EAAE,CAAA;SACjB;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,MAAM,CAAC,OAAO,EACd,KAAK,EAAC,GAAG,EAAC,EAAE,CACX,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAC1C;YACC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,KAAK;YACZ,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,QAAQ;YACxB,cAAc;YACd,aAAa,EAAE,SAAS;YACxB,GAAG,EAAE,GAAG;SACR,CACD,EACF,EAAE,CACF,CAAA;IACF,CAAC;IAEM,sBAAsB,CAC5B,MAAoB,EACpB,QAAyC,EACzC,YAA0B,EAC1B,cAAuD;QAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;QAC9C,IAAI,CAAC,KAAK,EAAE;YACX,MAAM,IAAI,KAAK,EAAE,CAAA;SACjB;QAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,MAAM,CAAC,OAAO,EACd,KAAK,EAAC,GAAG,EAAC,EAAE,CACX,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,KAAK;YACZ,YAAY,EAAE,YAAY;YAC1B,cAAc,EAAE,QAAQ;YACxB,cAAc;YACd,aAAa,EAAE,QAAQ;YACvB,GAAG,EAAE,GAAG;SACR,CAAC,EACH,EAAE,CACF,CAAA;IACF,CAAC;IAEM,eAAe,CACrB,MAAoB,EACpB,QAAkC,EAClC,YAA0B,EAC1B,cAAwC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;QAC9C,IAAI,CAAC,KAAK,EAAE;YACX,MAAM,IAAI,KAAK,EAAE,CAAA;SACjB;QAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,MAAM,CAAC,OAAO,EACd,KAAK,EAAC,GAAG,EAAC,EAAE,CACX,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC;YAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,cAAc;YAC9B,GAAG,EAAE,GAAG;SACR,CAAC,EACH,EAAE,CACF,CAAA;IACF,CAAC;IAEM,qBAAqB,CAC3B,MAAoB,EACpB,QAAwC,EACxC,YAA0B,EAC1B,cAA6C;QAE7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,MAAM,CAAC,OAAO,EACd,KAAK,EAAC,GAAG,EAAC,EAAE;YACX,MAAM,QAAQ,GAAgB;gBAC7B,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBACtB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBACjB,EAAE,EAAE,GAAG;qBACP;iBACD;aACD,CAAA;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;YAC9C,IAAI,CAAC,KAAK,EAAE;gBACX,MAAM,IAAI,KAAK,EAAE,CAAA;aACjB;YACD,MAAM,KAAK,GAAgB;gBAC1B,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAqB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;aACtF,CAAA;YACD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAEtD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;QAC9F,CAAC,EACD,IAAI,CACJ,CAAA;IACF,CAAC;IAEM,oBAAoB,CAC1B,MAAoB,EACpB,QAAuC,EACvC,YAA0B,EAC1B,cAAqD;QAErD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,QAAQ,CAAC,IAAI,EACb,KAAK,EAAC,GAAG,EAAC,EAAE;YACX,MAAM,QAAQ,GAAgB;gBAC7B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;oBACvB,EAAE,EAAE,GAAG;iBACP;aACD,CAAA;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;YACnD,IAAI,CAAC,UAAU,EAAE;gBAChB,MAAM,IAAI,KAAK,EAAE,CAAA;aACjB;YACD,MAAM,KAAK,GAAgB;gBAC1B,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAqB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;aAC3F,CAAA;YACD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAE3D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;QAC/F,CAAC,EACD,IAAI,CACJ,CAAA;IACF,CAAC;IAEM,eAAe,CAAC,MAAoB,EAAE,QAAkC,EAAE,YAA0B,EAAE,cAA+C;QAC3J,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,QAAQ,CAAC,IAAI,EACb,KAAK,EAAC,GAAG,EAAC,EAAE;YACX,MAAM,QAAQ,GAAgB;gBAC7B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;oBACvB,EAAE,EAAE,GAAG;iBACP;aACD,CAAA;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;YACnD,IAAI,CAAC,UAAU,EAAE;gBAChB,MAAM,IAAI,KAAK,EAAE,CAAA;aACjB;YACD,MAAM,KAAK,GAAgB;gBAC1B,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAqB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;aAC3F,CAAA;YACD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAE3D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;QAC/F,CAAC,EACD,IAAI,CACJ,CAAA;IACF,CAAC;CACD;AAhND,sCAgNC"}
1
+ {"version":3,"file":"FieldsVisitor.js","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldsVisitorFactory.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,qBAAa,oBAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAHZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY;IAG5C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,GAAG,aAAa;CAU7E"}
1
+ {"version":3,"file":"FieldsVisitorFactory.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,qBAAa,oBAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAHZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY;IAG5C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,GAAG,aAAa;CAW7E"}
@@ -10,7 +10,7 @@ class FieldsVisitorFactory {
10
10
  this.whereBuilder = whereBuilder;
11
11
  }
12
12
  create(mapper, context) {
13
- return new FieldsVisitor_1.FieldsVisitor(this.schema, this.relationFetcher, this.predicateFactory, this.whereBuilder, mapper, context);
13
+ return new FieldsVisitor_1.FieldsVisitor(this.schema, this.relationFetcher, this.predicateFactory, this.whereBuilder, mapper, context, context.relationPath);
14
14
  }
15
15
  }
16
16
  exports.FieldsVisitorFactory = FieldsVisitorFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"FieldsVisitorFactory.js","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitorFactory.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAQ/C,MAAa,oBAAoB;IAChC,YACkB,MAAoB,EACpB,eAAgC,EAChC,gBAAkC,EAClC,YAA0B;QAH1B,WAAM,GAAN,MAAM,CAAc;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,iBAAY,GAAZ,YAAY,CAAc;IACzC,CAAC;IAEJ,MAAM,CAAC,MAAc,EAAE,OAAsC;QAC5D,OAAO,IAAI,6BAAa,CACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,MAAM,EACN,OAAO,CACP,CAAA;IACF,CAAC;CACD;AAlBD,oDAkBC"}
1
+ {"version":3,"file":"FieldsVisitorFactory.js","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitorFactory.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAQ/C,MAAa,oBAAoB;IAChC,YACkB,MAAoB,EACpB,eAAgC,EAChC,gBAAkC,EAClC,YAA0B;QAH1B,WAAM,GAAN,MAAM,CAAc;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,iBAAY,GAAZ,YAAY,CAAc;IACzC,CAAC;IAEJ,MAAM,CAAC,MAAc,EAAE,OAAsC;QAC5D,OAAO,IAAI,6BAAa,CACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,MAAM,EACN,OAAO,EACP,OAAO,CAAC,YAAY,CACpB,CAAA;IACF,CAAC;CACD;AAnBD,oDAmBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionOptimizer.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/ConditionOptimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAKzC,qBAAa,kBAAkB;IACvB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,OAAO;CA4BhG"}
1
+ {"version":3,"file":"ConditionOptimizer.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/ConditionOptimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAKzC,qBAAa,kBAAkB;IACvB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,OAAO;CAkChG"}
@@ -20,6 +20,12 @@ class ConditionOptimizer {
20
20
  else if (key === 'or') {
21
21
  return (0, helpers_1.optimizeOr)(value.map(it => this.optimize(it)));
22
22
  }
23
+ else if (key === 'in' && value.length === 0) {
24
+ return false;
25
+ }
26
+ else if (key === 'notIn' && value.length === 0) {
27
+ return true;
28
+ }
23
29
  else if (key === 'not') {
24
30
  return (0, helpers_1.optimizeNot)(this.optimize(value));
25
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionOptimizer.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/ConditionOptimizer.ts"],"names":[],"mappings":";;;AACA,uCAAgE;AAIhE,MAAa,kBAAkB;IACvB,QAAQ,CAAC,SAA0B;QACzC,IAAI,SAAS,CAAC,KAAK,EAAE;YACpB,OAAO,KAAK,CAAA;SACZ;QAED,OAAO,IAAA,qBAAW,EAChB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAqC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;gBAC1C,OAAO,SAAS,CAAA;aAEhB;iBAAM,IAAI,GAAG,KAAK,QAAQ,EAAE;gBAC5B,OAAO,IAAI,CAAA;aAEX;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACzB,OAAO,IAAA,qBAAW,EAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAEtD;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE;gBACxB,OAAO,IAAA,oBAAU,EAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAErD;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACzB,OAAO,IAAA,qBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;aAExC;iBAAM;gBACN,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;aACvB;QACF,CAAC,CAAC,CACF,CAAA;IACF,CAAC;CACD;AA7BD,gDA6BC"}
1
+ {"version":3,"file":"ConditionOptimizer.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/ConditionOptimizer.ts"],"names":[],"mappings":";;;AACA,uCAAgE;AAIhE,MAAa,kBAAkB;IACvB,QAAQ,CAAC,SAA0B;QACzC,IAAI,SAAS,CAAC,KAAK,EAAE;YACpB,OAAO,KAAK,CAAA;SACZ;QAED,OAAO,IAAA,qBAAW,EAChB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAqC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;gBAC1C,OAAO,SAAS,CAAA;aAEhB;iBAAM,IAAI,GAAG,KAAK,QAAQ,EAAE;gBAC5B,OAAO,IAAI,CAAA;aAEX;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACzB,OAAO,IAAA,qBAAW,EAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAEtD;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE;gBACxB,OAAO,IAAA,oBAAU,EAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAErD;iBAAM,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9C,OAAO,KAAK,CAAA;aAEZ;iBAAM,IAAI,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjD,OAAO,IAAI,CAAA;aAEX;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACzB,OAAO,IAAA,qBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;aAExC;iBAAM;gBACN,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;aACvB;QACF,CAAC,CAAC,CACF,CAAA;IACF,CAAC;CACD;AAnCD,gDAmCC"}
@@ -3,8 +3,9 @@ import { ConditionOptimizer } from './ConditionOptimizer';
3
3
  export declare class WhereOptimizer {
4
4
  private readonly model;
5
5
  private readonly conditionOptimizer;
6
+ private static eliminableRelations;
6
7
  constructor(model: Model.Schema, conditionOptimizer: ConditionOptimizer);
7
- optimize(where: Input.OptionalWhere, entity: Model.Entity): Input.Where;
8
+ optimize(where: Input.OptionalWhere, entity: Model.Entity, relationPath?: Model.AnyRelationContext[]): Input.Where;
8
9
  private optimizeWhere;
9
10
  private optimizeOr;
10
11
  private optimizeAnd;
@@ -1 +1 @@
1
- {"version":3,"file":"WhereOptimizer.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereOptimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAKzD,qBAAa,cAAc;IAEzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,kBAAkB,EAAE,kBAAkB;IAIjD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;IAU9E,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;CAsBzB"}
1
+ {"version":3,"file":"WhereOptimizer.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereOptimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAYzD,qBAAa,cAAc;IAIzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAJpC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAmG;gBAGnH,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,kBAAkB,EAAE,kBAAkB;IAIjD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,GAAE,KAAK,CAAC,kBAAkB,EAAO,GAAG,KAAK,CAAC,KAAK;IAoB7H,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,iBAAiB;CAoCzB"}
@@ -9,61 +9,76 @@ class WhereOptimizer {
9
9
  this.model = model;
10
10
  this.conditionOptimizer = conditionOptimizer;
11
11
  }
12
- optimize(where, entity) {
13
- const result = this.optimizeWhere(where, entity);
12
+ optimize(where, entity, relationPath = []) {
13
+ let processedRelationPath = [];
14
+ for (const i in relationPath) {
15
+ const el = relationPath[i];
16
+ if (!WhereOptimizer.eliminableRelations.has(el.type)) {
17
+ processedRelationPath = [];
18
+ }
19
+ else {
20
+ processedRelationPath.push({ ...el, canEliminate: true, isLast: Number(i) === relationPath.length });
21
+ }
22
+ processedRelationPath.push({ ...el, canEliminate: true, isLast: Number(i) === relationPath.length });
23
+ }
24
+ const result = this.optimizeWhere(where, entity, processedRelationPath);
14
25
  if (typeof result === 'boolean') {
15
26
  return { [entity.primary]: { [result ? 'always' : 'never']: true } };
16
27
  }
17
28
  return result;
18
29
  }
19
- optimizeWhere(where, entity) {
30
+ optimizeWhere(where, entity, relationPath) {
20
31
  return this.optimizeAnd(Object.entries(where).map(([key, value]) => {
21
32
  if (value === undefined || value === null) {
22
33
  return undefined;
23
34
  }
24
35
  else if (key === 'and') {
25
- return this.optimizeAnd(value.map(it => this.optimizeWhere(it, entity)), entity);
36
+ return this.optimizeAnd(value.map(it => this.optimizeWhere(it, entity, relationPath)), entity, relationPath);
26
37
  }
27
38
  else if (key === 'or') {
28
- return this.optimizeOr(value.map(it => this.optimizeWhere(it, entity)), entity);
39
+ return this.optimizeOr(value.map(it => this.optimizeWhere(it, entity, relationPath)), entity, relationPath);
29
40
  }
30
41
  else if (key === 'not') {
31
- return (0, helpers_1.optimizeNot)(this.optimizeWhere(value, entity));
42
+ return (0, helpers_1.optimizeNot)(this.optimizeWhere(value, entity, relationPath));
32
43
  }
33
44
  else {
34
- return this.resolveFieldValue(entity, key, value);
45
+ return this.resolveFieldValue(entity, key, value, relationPath);
35
46
  }
36
- }), entity);
47
+ }), entity, relationPath);
37
48
  }
38
- optimizeOr(operands, entity) {
49
+ optimizeOr(operands, entity, relationPath) {
39
50
  const optimized = (0, helpers_1.optimizeOr)(operands);
40
51
  if (typeof optimized === 'boolean' || !Array.isArray(optimized.or)) {
41
52
  return optimized;
42
53
  }
43
- const result = this.crossOptimize(optimized.or, entity, { never: true });
44
- return (0, helpers_1.optimizeOr)(result.map(it => this.optimizeWhere(it, entity)));
54
+ const result = this.crossOptimize(optimized.or, entity, { never: true }, relationPath);
55
+ return (0, helpers_1.optimizeOr)(result);
45
56
  }
46
- optimizeAnd(operands, entity) {
57
+ optimizeAnd(operands, entity, relationPath) {
47
58
  const optimized = (0, helpers_1.optimizeAnd)(operands);
48
59
  if (typeof optimized === 'boolean' || !Array.isArray(optimized.and)) {
49
60
  return optimized;
50
61
  }
51
- const result = this.crossOptimize(optimized.and, entity, { always: true });
52
- return (0, helpers_1.optimizeAnd)(result.map(it => this.optimizeWhere(it, entity)));
62
+ const result = this.crossOptimize(optimized.and, entity, { always: true }, relationPath);
63
+ return (0, helpers_1.optimizeAnd)(result);
53
64
  }
54
- crossOptimize(operands, entity, replacement) {
65
+ crossOptimize(operands, entity, replacement, relationPath) {
55
66
  const result = [...operands];
56
67
  const count = result.length;
57
68
  for (let i = 0; i < count; i++) {
58
69
  for (let j = 0; j < count; j++) {
59
- if (i !== j) {
60
- result[j] = (0, WhereReplacer_1.replaceWhere)(result[j], result[i], { [entity.primary]: replacement });
70
+ const a = result[j];
71
+ const b = result[i];
72
+ if (i !== j && typeof a !== 'boolean' && typeof b !== 'boolean') {
73
+ const tracker = { count: 0 };
74
+ const elResult = (0, WhereReplacer_1.replaceWhere)(a, b, { [entity.primary]: replacement }, tracker);
75
+ result[j] = tracker.count > 0 ? this.optimizeWhere(elResult, entity, relationPath) : elResult;
61
76
  }
62
77
  }
63
78
  }
64
79
  return result;
65
80
  }
66
- resolveFieldValue(entity, key, value) {
81
+ resolveFieldValue(entity, key, value, relationPath) {
67
82
  return (0, schema_utils_1.acceptFieldVisitor)(this.model, entity, key, {
68
83
  visitColumn: () => {
69
84
  const optimizedCondition = this.conditionOptimizer.optimize(value);
@@ -72,8 +87,24 @@ class WhereOptimizer {
72
87
  }
73
88
  return { [key]: optimizedCondition };
74
89
  },
75
- visitRelation: (entity, relation, targetEntity) => {
76
- const optimizedWhere = this.optimizeWhere(value, targetEntity);
90
+ visitRelation: context => {
91
+ var _a;
92
+ const { targetEntity, relation } = context;
93
+ let where = value;
94
+ const newRelationPath = [...relationPath];
95
+ if (relationPath.length && ((_a = relationPath[relationPath.length - 1].targetRelation) === null || _a === void 0 ? void 0 : _a.name) === relation.name) {
96
+ const item = newRelationPath.pop();
97
+ if ((item === null || item === void 0 ? void 0 : item.canEliminate) && (item.type === 'oneHasMany' || item.type === 'oneHasOneOwning' || item.type === 'oneHasOneInverse')) {
98
+ where = (0, WhereReplacer_1.replaceWhere)(where, { [targetEntity.primary]: { isNull: true } }, { [targetEntity.primary]: { never: true } });
99
+ where = (0, WhereReplacer_1.replaceWhere)(where, { [targetEntity.primary]: { isNull: false } }, { [targetEntity.primary]: { always: true } });
100
+ }
101
+ }
102
+ else {
103
+ // first level relation - we are sure root exists
104
+ const canEliminate = relationPath.length === 0 || relationPath[relationPath.length - 1].isLast;
105
+ newRelationPath.push({ ...context, isLast: false, canEliminate });
106
+ }
107
+ const optimizedWhere = this.optimizeWhere(where, targetEntity, newRelationPath);
77
108
  if (typeof optimizedWhere === 'boolean') {
78
109
  return optimizedWhere;
79
110
  }
@@ -83,4 +114,5 @@ class WhereOptimizer {
83
114
  }
84
115
  }
85
116
  exports.WhereOptimizer = WhereOptimizer;
117
+ WhereOptimizer.eliminableRelations = new Set(['oneHasMany', 'oneHasOneInverse', 'oneHasOneOwning']);
86
118
  //# sourceMappingURL=WhereOptimizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhereOptimizer.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereOptimizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WhereOptimizer.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereOptimizer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  import { Input } from '@contember/schema';
2
- export declare const replaceWhere: (subject: Input.Where, find: Input.Where, replace: Input.Where) => Input.Where;
2
+ export interface ReplaceWhereResult {
3
+ count: number;
4
+ }
5
+ export declare const replaceWhere: (subject: Input.Where, find: Input.Where, replace: Input.Where, resultTracker?: ReplaceWhereResult) => Input.Where;
3
6
  //# sourceMappingURL=WhereReplacer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhereReplacer.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereReplacer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAA;AAGnD,eAAO,MAAM,YAAY,YAAa,MAAM,KAAK,QAAQ,MAAM,KAAK,WAAW,MAAM,KAAK,KAAG,MAAM,KAkBlG,CAAA"}
1
+ {"version":3,"file":"WhereReplacer.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereReplacer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAA;AAGnD,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,YAAY,YAAa,MAAM,KAAK,QAAQ,MAAM,KAAK,WAAW,MAAM,KAAK,kBAAiB,kBAAkB,KAAkB,MAAM,KAmBpJ,CAAA"}
@@ -5,17 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.replaceWhere = void 0;
7
7
  const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
8
- const replaceWhere = (subject, find, replace) => {
8
+ const replaceWhere = (subject, find, replace, resultTracker = { count: 0 }) => {
9
9
  if ((0, fast_deep_equal_1.default)(subject, find)) {
10
+ resultTracker.count++;
10
11
  return replace;
11
12
  }
12
13
  const result = {};
13
14
  for (const [key, value] of Object.entries(subject)) {
14
15
  if (key === 'not') {
15
- result['not'] = (0, exports.replaceWhere)(value, find, replace);
16
+ result['not'] = (0, exports.replaceWhere)(value, find, replace, resultTracker);
16
17
  }
17
18
  else if (key === 'and' || key === 'or') {
18
- result[key] = value.map(it => (0, exports.replaceWhere)(it, find, replace));
19
+ result[key] = value.map(it => (0, exports.replaceWhere)(it, find, replace, resultTracker));
19
20
  }
20
21
  else {
21
22
  result[key] = value;
@@ -1 +1 @@
1
- {"version":3,"file":"WhereReplacer.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereReplacer.ts"],"names":[],"mappings":";;;;;;AACA,sEAAuC;AAEhC,MAAM,YAAY,GAAG,CAAC,OAAoB,EAAE,IAAiB,EAAE,OAAoB,EAAe,EAAE;IAC1G,IAAI,IAAA,yBAAS,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE;QAC7B,OAAO,OAAO,CAAA;KACd;IACD,MAAM,MAAM,GAA0B,EAAE,CAAA;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACnD,IAAI,GAAG,KAAK,KAAK,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,oBAAY,EAAC,KAAoB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;SAEjE;aAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE;YACzC,MAAM,CAAC,GAAG,CAAC,GAAI,KAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,oBAAY,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;SAEjF;aAAM;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SACnB;KAED;IACD,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAlBY,QAAA,YAAY,gBAkBxB"}
1
+ {"version":3,"file":"WhereReplacer.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereReplacer.ts"],"names":[],"mappings":";;;;;;AACA,sEAAuC;AAMhC,MAAM,YAAY,GAAG,CAAC,OAAoB,EAAE,IAAiB,EAAE,OAAoB,EAAE,gBAAoC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAe,EAAE;IAC5J,IAAI,IAAA,yBAAS,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE;QAC7B,aAAa,CAAC,KAAK,EAAE,CAAA;QACrB,OAAO,OAAO,CAAA;KACd;IACD,MAAM,MAAM,GAA0B,EAAE,CAAA;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACnD,IAAI,GAAG,KAAK,KAAK,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,oBAAY,EAAC,KAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;SAEhF;aAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE;YACzC,MAAM,CAAC,GAAG,CAAC,GAAI,KAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,oBAAY,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAA;SAEhG;aAAM;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SACnB;KAED;IACD,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAnBY,QAAA,YAAY,gBAmBxB"}
@@ -1,8 +1,7 @@
1
- import { Input } from '@contember/schema';
1
+ import { Input, Model } from '@contember/schema';
2
2
  import { Mapper } from '../Mapper';
3
3
  import { UpdateBuilder } from './UpdateBuilder';
4
4
  import { UpdateInputProcessor } from '../../inputProcessing';
5
- import * as Context from '../../inputProcessing';
6
5
  import { MutationResultList } from '../Result';
7
6
  export declare class SqlUpdateInputProcessor implements UpdateInputProcessor<MutationResultList> {
8
7
  private readonly primaryValue;
@@ -10,7 +9,7 @@ export declare class SqlUpdateInputProcessor implements UpdateInputProcessor<Mut
10
9
  private readonly updateBuilder;
11
10
  private readonly mapper;
12
11
  constructor(primaryValue: Input.PrimaryValue, data: Input.UpdateDataInput, updateBuilder: UpdateBuilder, mapper: Mapper);
13
- column({ entity, column }: Context.ColumnContext): Promise<never[]>;
12
+ column({ entity, column }: Model.ColumnContext): Promise<never[]>;
14
13
  manyHasManyInverse: UpdateInputProcessor<MutationResultList>['manyHasManyInverse'];
15
14
  manyHasManyOwning: UpdateInputProcessor<MutationResultList>['manyHasManyOwning'];
16
15
  manyHasOne: UpdateInputProcessor<MutationResultList>['manyHasOne'];
@@ -1 +1 @@
1
- {"version":3,"file":"SqlUpdateInputProcessor.d.ts","sourceRoot":"","sources":["../../../../src/mapper/update/SqlUpdateInputProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAMN,kBAAkB,EAGlB,MAAM,WAAW,CAAA;AAMlB,qBAAa,uBAAwB,YAAW,oBAAoB,CAAC,kBAAkB,CAAC;IAEtF,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,IAAI,EAAE,KAAK,CAAC,eAAe,EAC3B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAGzB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,aAAa;IAOvD,kBAAkB,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,CAgEjF;IAED,iBAAiB,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAyD/E;IAED,UAAU,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CA2FjE;IAED,UAAU,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAoDjE;IAED,gBAAgB,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CA0D7E;IAED,eAAe,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CA+J3E;CACD"}
1
+ {"version":3,"file":"SqlUpdateInputProcessor.d.ts","sourceRoot":"","sources":["../../../../src/mapper/update/SqlUpdateInputProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAS,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,EAMN,kBAAkB,EAGlB,MAAM,WAAW,CAAA;AAMlB,qBAAa,uBAAwB,YAAW,oBAAoB,CAAC,kBAAkB,CAAC;IAEtF,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,IAAI,EAAE,KAAK,CAAC,eAAe,EAC3B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAGzB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,aAAa;IAOrD,kBAAkB,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,CAgEjF;IAED,iBAAiB,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAyD/E;IAED,UAAU,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CA2FjE;IAED,UAAU,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAoDjE;IAED,gBAAgB,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CA0D7E;IAED,eAAe,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CA+J3E;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"SqlUpdateInputProcessor.js","sourceRoot":"","sources":["../../../../src/mapper/update/SqlUpdateInputProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlUpdateInputProcessor.js","sourceRoot":"","sources":["../../../../src/mapper/update/SqlUpdateInputProcessor.ts"],"names":[],"mappings":"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"}
@@ -51,9 +51,9 @@ class UpdateBuilder {
51
51
  qb = resolvedData.reduce((qb, value) => qb.select(expr => expr.selectValue(value.resolvedValue, value.columnType), value.columnName), qb);
52
52
  const columns = new Set(resolvedData.map(it => it.columnName));
53
53
  const allColumns = Object.values((0, schema_utils_1.acceptEveryFieldVisitor)(this.schema, this.entity, {
54
- visitColumn: (entity, column) => column.columnName,
55
- visitManyHasOne: (entity, relation) => relation.joiningColumn.columnName,
56
- visitOneHasOneOwning: (entity, relation) => relation.joiningColumn.columnName,
54
+ visitColumn: ({ column }) => column.columnName,
55
+ visitManyHasOne: ({ relation }) => relation.joiningColumn.columnName,
56
+ visitOneHasOneOwning: ({ relation }) => relation.joiningColumn.columnName,
57
57
  visitManyHasManyInverse: () => null,
58
58
  visitManyHasManyOwning: () => null,
59
59
  visitOneHasOneInverse: () => null,
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateBuilder.js","sourceRoot":"","sources":["../../../../src/mapper/update/UpdateBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateBuilder.js","sourceRoot":"","sources":["../../../../src/mapper/update/UpdateBuilder.ts"],"names":[],"mappings":"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"}