@contember/engine-content-api 1.2.0-alpha.12 → 1.2.0-alpha.14

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 (101) hide show
  1. package/dist/src/acl/EvaluatedPredicateReplacer.d.ts +2 -2
  2. package/dist/src/acl/EvaluatedPredicateReplacer.d.ts.map +1 -1
  3. package/dist/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
  4. package/dist/src/acl/PredicateFactory.d.ts +9 -3
  5. package/dist/src/acl/PredicateFactory.d.ts.map +1 -1
  6. package/dist/src/acl/PredicateFactory.js +42 -24
  7. package/dist/src/acl/PredicateFactory.js.map +1 -1
  8. package/dist/src/acl/PredicatesInjector.d.ts.map +1 -1
  9. package/dist/src/acl/PredicatesInjector.js +1 -0
  10. package/dist/src/acl/PredicatesInjector.js.map +1 -1
  11. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js +31 -27
  12. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  13. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js +18 -14
  14. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
  15. package/dist/src/mapper/JunctionTableManager.js.map +1 -1
  16. package/dist/src/mapper/Mapper.js +3 -3
  17. package/dist/src/mapper/Mapper.js.map +1 -1
  18. package/dist/src/mapper/MapperContainer.d.ts.map +1 -1
  19. package/dist/src/mapper/MapperContainer.js +2 -2
  20. package/dist/src/mapper/MapperContainer.js.map +1 -1
  21. package/dist/src/mapper/delete/DeleteExecutor.js +1 -1
  22. package/dist/src/mapper/delete/DeleteExecutor.js.map +1 -1
  23. package/dist/src/mapper/insert/InsertBuilder.d.ts +1 -1
  24. package/dist/src/mapper/insert/InsertBuilder.d.ts.map +1 -1
  25. package/dist/src/mapper/insert/InsertBuilder.js.map +1 -1
  26. package/dist/src/mapper/select/RelationFetcher.js +1 -1
  27. package/dist/src/mapper/select/RelationFetcher.js.map +1 -1
  28. package/dist/src/mapper/select/SelectBuilder.d.ts +3 -1
  29. package/dist/src/mapper/select/SelectBuilder.d.ts.map +1 -1
  30. package/dist/src/mapper/select/SelectBuilder.js +50 -12
  31. package/dist/src/mapper/select/SelectBuilder.js.map +1 -1
  32. package/dist/src/mapper/select/SelectExecutionHandler.d.ts +15 -4
  33. package/dist/src/mapper/select/SelectExecutionHandler.d.ts.map +1 -1
  34. package/dist/src/mapper/select/SelectHydrator.d.ts +3 -2
  35. package/dist/src/mapper/select/SelectHydrator.d.ts.map +1 -1
  36. package/dist/src/mapper/select/SelectHydrator.js +4 -5
  37. package/dist/src/mapper/select/SelectHydrator.js.map +1 -1
  38. package/dist/src/mapper/select/WhereBuilder.d.ts +3 -3
  39. package/dist/src/mapper/select/WhereBuilder.d.ts.map +1 -1
  40. package/dist/src/mapper/select/WhereBuilder.js +4 -4
  41. package/dist/src/mapper/select/WhereBuilder.js.map +1 -1
  42. package/dist/src/mapper/select/handlers/FieldsVisitor.d.ts +1 -0
  43. package/dist/src/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  44. package/dist/src/mapper/select/handlers/FieldsVisitor.js +118 -91
  45. package/dist/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  46. package/dist/src/mapper/select/handlers/MetaHandler.d.ts.map +1 -1
  47. package/dist/src/mapper/select/handlers/MetaHandler.js +6 -11
  48. package/dist/src/mapper/select/handlers/MetaHandler.js.map +1 -1
  49. package/dist/src/mapper/select/optimizer/WhereOptimizer.d.ts +5 -1
  50. package/dist/src/mapper/select/optimizer/WhereOptimizer.d.ts.map +1 -1
  51. package/dist/src/mapper/select/optimizer/WhereOptimizer.js +76 -23
  52. package/dist/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
  53. package/dist/src/mapper/select/optimizer/WhereReplacer.d.ts +1 -4
  54. package/dist/src/mapper/select/optimizer/WhereReplacer.d.ts.map +1 -1
  55. package/dist/src/mapper/select/optimizer/WhereReplacer.js +27 -9
  56. package/dist/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
  57. package/dist/src/tsconfig.tsbuildinfo +1 -1
  58. package/dist/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.js +51 -4
  59. package/dist/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.js.map +1 -1
  60. package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js +26 -25
  61. package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js.map +1 -1
  62. package/dist/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.js +9 -6
  63. package/dist/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.js.map +1 -1
  64. package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.d.ts +2 -0
  65. package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.d.ts.map +1 -0
  66. package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.js +109 -0
  67. package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.js.map +1 -0
  68. package/dist/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.js +9 -13
  69. package/dist/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.js.map +1 -1
  70. package/dist/tests/cases/unit/predicatesInjector.test.js +31 -3
  71. package/dist/tests/cases/unit/predicatesInjector.test.js.map +1 -1
  72. package/dist/tests/cases/unit/whereOptimizer.test.js +24 -21
  73. package/dist/tests/cases/unit/whereOptimizer.test.js.map +1 -1
  74. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  75. package/package.json +10 -10
  76. package/src/acl/EvaluatedPredicateReplacer.ts +4 -4
  77. package/src/acl/PredicateFactory.ts +59 -36
  78. package/src/acl/PredicatesInjector.ts +2 -1
  79. package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.ts +5 -5
  80. package/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts +5 -5
  81. package/src/mapper/JunctionTableManager.ts +3 -3
  82. package/src/mapper/Mapper.ts +3 -3
  83. package/src/mapper/MapperContainer.ts +2 -1
  84. package/src/mapper/delete/DeleteExecutor.ts +1 -1
  85. package/src/mapper/insert/InsertBuilder.ts +2 -2
  86. package/src/mapper/select/RelationFetcher.ts +1 -1
  87. package/src/mapper/select/SelectBuilder.ts +69 -13
  88. package/src/mapper/select/SelectExecutionHandler.ts +15 -8
  89. package/src/mapper/select/SelectHydrator.ts +13 -7
  90. package/src/mapper/select/WhereBuilder.ts +5 -5
  91. package/src/mapper/select/handlers/FieldsVisitor.ts +53 -67
  92. package/src/mapper/select/handlers/MetaHandler.ts +6 -17
  93. package/src/mapper/select/optimizer/WhereOptimizer.ts +96 -40
  94. package/src/mapper/select/optimizer/WhereReplacer.ts +27 -15
  95. package/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts +54 -4
  96. package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +26 -25
  97. package/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts +9 -6
  98. package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +104 -0
  99. package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts +9 -13
  100. package/tests/cases/unit/predicatesInjector.test.ts +37 -7
  101. package/tests/cases/unit/whereOptimizer.test.ts +20 -17
@@ -39,16 +39,18 @@ const permissions = {
39
39
  executes: [
40
40
  {
41
41
  sql: (0, tags_1.SQL) `
42
- select "root_"."id" as "root_id",
43
- case when "root_"."username" = ? then "root_"."username" else null end as "root_username"
44
- from "public"."author" as "root_"
45
- where not("root_"."username" is null)
42
+ select
43
+ "root_"."id" as "root_id",
44
+ "root_"."username" = ? as "root___predicate_authorPredicate",
45
+ "root_"."username" as "root_username"
46
+ from "public"."author" as "root_" where not("root_"."username" is null)
46
47
  `,
47
48
  parameters: ['johndoe'],
48
49
  response: {
49
50
  rows: [
50
51
  {
51
52
  root_id: (0, testUuid_1.testUuid)(1),
53
+ root___predicate_authorPredicate: true,
52
54
  root_username: 'johndoe',
53
55
  },
54
56
  ],
@@ -67,4 +69,49 @@ const permissions = {
67
69
  },
68
70
  });
69
71
  });
72
+ (0, vitest_1.test)('different predicate on row and field level - false', async () => {
73
+ await (0, test_1.execute)({
74
+ schema: schema,
75
+ permissions: permissions,
76
+ variables: {},
77
+ query: (0, tags_1.GQL) `
78
+ query {
79
+ listAuthor {
80
+ id
81
+ username
82
+ }
83
+ }`,
84
+ executes: [
85
+ {
86
+ sql: (0, tags_1.SQL) `
87
+ select
88
+ "root_"."id" as "root_id",
89
+ "root_"."username" = ? as "root___predicate_authorPredicate",
90
+ "root_"."username" as "root_username"
91
+ from "public"."author" as "root_" where not("root_"."username" is null)
92
+ `,
93
+ parameters: ['johndoe'],
94
+ response: {
95
+ rows: [
96
+ {
97
+ root_id: (0, testUuid_1.testUuid)(1),
98
+ root___predicate_authorPredicate: false,
99
+ root_username: 'johndoe',
100
+ },
101
+ ],
102
+ },
103
+ },
104
+ ],
105
+ return: {
106
+ data: {
107
+ listAuthor: [
108
+ {
109
+ id: (0, testUuid_1.testUuid)(1),
110
+ username: null,
111
+ },
112
+ ],
113
+ },
114
+ },
115
+ });
116
+ });
70
117
  //# sourceMappingURL=differentRowAndFieldPredicate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"differentRowAndFieldPredicate.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts"],"names":[],"mappings":";;AAAA,oEAA4D;AAE5D,mCAA6B;AAC7B,kDAAiD;AACjD,kDAAkD;AAClD,0DAAsD;AAEtD,MAAM,MAAM,GAAG,IAAI,iCAAa,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AAE5F,MAAM,WAAW,GAAoB;IACpC,MAAM,EAAE;QACP,UAAU,EAAE;YACX,eAAe,EAAE;gBAChB,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;aAC3B;YACD,gBAAgB,EAAE;gBACjB,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;aAC3B;SACD;QACD,UAAU,EAAE;YACX,IAAI,EAAE;gBACL,EAAE,EAAE,kBAAkB;gBACtB,QAAQ,EAAE,iBAAiB;aAC3B;SACD;KACD;CACD,CAAA;AAED,IAAA,aAAI,EAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC7D,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,IAAA,UAAG,EAAA;;;;;;UAMF;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;;;KAKP;gBACD,UAAU,EAAE,CAAC,SAAS,CAAC;gBACvB,QAAQ,EAAE;oBACT,IAAI,EAAE;wBACL;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,aAAa,EAAE,SAAS;yBACxB;qBACD;iBACD;aACD;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE;gBACL,UAAU,EAAE;oBACX;wBACC,EAAE,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;wBACf,QAAQ,EAAE,SAAS;qBACnB;iBACD;aACD;SACD;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"differentRowAndFieldPredicate.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts"],"names":[],"mappings":";;AAAA,oEAA4D;AAE5D,mCAA6B;AAC7B,kDAAiD;AACjD,kDAAkD;AAClD,0DAAsD;AAEtD,MAAM,MAAM,GAAG,IAAI,iCAAa,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AAE5F,MAAM,WAAW,GAAoB;IACpC,MAAM,EAAE;QACP,UAAU,EAAE;YACX,eAAe,EAAE;gBAChB,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;aAC3B;YACD,gBAAgB,EAAE;gBACjB,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;aAC3B;SACD;QACD,UAAU,EAAE;YACX,IAAI,EAAE;gBACL,EAAE,EAAE,kBAAkB;gBACtB,QAAQ,EAAE,iBAAiB;aAC3B;SACD;KACD;CACD,CAAA;AAED,IAAA,aAAI,EAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC7D,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,IAAA,UAAG,EAAA;;;;;;UAMF;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;;;;KAMP;gBACD,UAAU,EAAE,CAAC,SAAS,CAAC;gBACvB,QAAQ,EAAE;oBACT,IAAI,EAAE;wBACL;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,gCAAgC,EAAE,IAAI;4BACtC,aAAa,EAAE,SAAS;yBACxB;qBACD;iBACD;aACD;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE;gBACL,UAAU,EAAE;oBACX;wBACC,EAAE,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;wBACf,QAAQ,EAAE,SAAS;qBACnB;iBACD;aACD;SACD;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAIF,IAAA,aAAI,EAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IACrE,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,IAAA,UAAG,EAAA;;;;;;UAMF;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;;;;KAMP;gBACD,UAAU,EAAE,CAAC,SAAS,CAAC;gBACvB,QAAQ,EAAE;oBACT,IAAI,EAAE;wBACL;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,gCAAgC,EAAE,KAAK;4BACvC,aAAa,EAAE,SAAS;yBACxB;qBACD;iBACD;aACD;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE;gBACL,UAAU,EAAE;oBACX;wBACC,EAAE,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;wBACf,QAAQ,EAAE,IAAI;qBACd;iBACD;aACD;SACD;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -60,26 +60,23 @@ const permissions = {
60
60
  }`,
61
61
  executes: [
62
62
  {
63
- sql: (0, tags_1.SQL) `select
64
- "root_"."id" as "root_id",
65
- case when "root_"."locale" in (?) then "root_"."title" else null end as "root_title",
66
- "root_"."locale" in (?) as "root__meta_title_readable",
67
- false as "root__meta_title_updatable"
68
- from "public"."post_locale" as "root_"`,
69
- parameters: ['cs', 'cs'],
63
+ sql: (0, tags_1.SQL) `SELECT
64
+ "root_"."id" AS "root_id",
65
+ "root_"."locale" IN (?) AS "root___predicate_localePredicate",
66
+ "root_"."title" AS "root_title"
67
+ FROM "public"."post_locale" AS "root_"`,
68
+ parameters: ['cs'],
70
69
  response: {
71
70
  rows: [
72
71
  {
73
72
  root_id: (0, testUuid_1.testUuid)(1),
74
73
  root_title: null,
75
- root__meta_title_readable: false,
76
- root__meta_title_updatable: false,
74
+ root___predicate_localePredicate: false,
77
75
  },
78
76
  {
79
77
  root_id: (0, testUuid_1.testUuid)(2),
80
78
  root_title: 'bar',
81
- root__meta_title_readable: true,
82
- root__meta_title_updatable: false,
79
+ root___predicate_localePredicate: true,
83
80
  },
84
81
  ],
85
82
  },
@@ -130,8 +127,9 @@ const permissions = {
130
127
  executes: [
131
128
  {
132
129
  sql: (0, tags_1.SQL) `select
133
- "root_"."id" as "root_id",
134
- case when "root_"."locale" in (?) then "root_"."title" else null end as "root_title"
130
+ "root_"."id" as "root_id",
131
+ "root_"."locale" in (?) as "root___predicate_localePredicate",
132
+ "root_"."title" as "root_title"
135
133
  from "public"."post_locale" as "root_"
136
134
  where "root_"."title" = ? and "root_"."locale" in (?)`,
137
135
  parameters: ['cs', 'foo', 'cs'],
@@ -140,7 +138,7 @@ const permissions = {
140
138
  {
141
139
  root_id: (0, testUuid_1.testUuid)(1),
142
140
  root_title: 'foo',
143
- root_title__readable: true,
141
+ root___predicate_localePredicate: true,
144
142
  },
145
143
  ],
146
144
  },
@@ -211,10 +209,11 @@ const permissions = {
211
209
  }`,
212
210
  executes: [
213
211
  {
214
- sql: (0, tags_1.SQL) `select
215
- "root_"."id" as "root_id",
216
- case when false then "root_"."title" else null end as "root_title"
217
- from "public"."post_locale" as "root_"`,
212
+ sql: (0, tags_1.SQL) `
213
+ select "root_"."id" as "root_id",
214
+ false as "root___predicate_localePredicate",
215
+ "root_"."title" as "root_title"
216
+ from "public"."post_locale" as "root_"`,
218
217
  parameters: [],
219
218
  response: {
220
219
  rows: [],
@@ -263,23 +262,25 @@ const permissions = {
263
262
  },
264
263
  },
265
264
  {
266
- sql: (0, tags_1.SQL) `select
267
- "root_"."post_id" as "__grouping_key",
268
- "root_"."id" as "root_id",
269
- case when "root_"."locale" in (?) then "root_"."title" else null end as "root_title"
270
- from "public"."post_locale" as "root_"
271
- where "root_"."post_id" in (?, ?)`,
265
+ sql: (0, tags_1.SQL) `
266
+ select "root_"."post_id" as "__grouping_key",
267
+ "root_"."id" as "root_id",
268
+ "root_"."locale" in (?) as "root___predicate_localePredicate",
269
+ "root_"."title" as "root_title"
270
+ from "public"."post_locale" as "root_" where "root_"."post_id" in (?, ?)`,
272
271
  parameters: ['cs', (0, testUuid_1.testUuid)(1), (0, testUuid_1.testUuid)(2)],
273
272
  response: {
274
273
  rows: [
275
274
  {
276
275
  __grouping_key: (0, testUuid_1.testUuid)(1),
277
276
  root_id: (0, testUuid_1.testUuid)(3),
278
- root_title: null,
277
+ root___predicate_localePredicate: false,
278
+ root_title: 'foo',
279
279
  },
280
280
  {
281
281
  __grouping_key: (0, testUuid_1.testUuid)(2),
282
282
  root_id: (0, testUuid_1.testUuid)(4),
283
+ root___predicate_localePredicate: true,
283
284
  root_title: 'bar',
284
285
  },
285
286
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"fieldRestrictedByLocale.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fieldRestrictedByLocale.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts"],"names":[],"mappings":"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"}
@@ -83,17 +83,20 @@ const permissions = {
83
83
  },
84
84
  },
85
85
  {
86
- sql: (0, tags_1.SQL) `select
87
- "root_"."id" as "root_id",
88
- case when "root_country"."name" in (?) then "root_"."name" else null end as "root_name",
89
- "root_"."id" as "root_id"
90
- from "public"."author" as "root_" left join "public"."country" as "root_country" on "root_"."country_id" = "root_country"."id"
91
- where "root_"."id" in (?, ?)`,
86
+ sql: (0, tags_1.SQL) `SELECT
87
+ "root_"."id" AS "root_id",
88
+ "root_country"."name" IN (?) AS "root___predicate_countryPredicate",
89
+ "root_"."name" AS "root_name",
90
+ "root_"."id" AS "root_id"
91
+ FROM "public"."author" AS "root_"
92
+ LEFT JOIN "public"."country" AS "root_country" ON "root_"."country_id" = "root_country"."id"
93
+ WHERE "root_"."id" IN (?, ?)`,
92
94
  parameters: ['Czechia', (0, testUuid_1.testUuid)(3), (0, testUuid_1.testUuid)(4)],
93
95
  response: {
94
96
  rows: [
95
97
  {
96
98
  root_id: (0, testUuid_1.testUuid)(3),
99
+ root___predicate_countryPredicate: true,
97
100
  root_name: 'John',
98
101
  },
99
102
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"nestedPredicate.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nestedPredicate.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rowPredicateSubset.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowPredicateSubset.test.d.ts","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const schema_definition_1 = require("@contember/schema-definition");
10
+ const vitest_1 = require("vitest");
11
+ const test_1 = require("../../../../../src/test");
12
+ const tags_1 = require("../../../../../src/tags");
13
+ const testUuid_1 = require("../../../../../src/testUuid");
14
+ const src_1 = require("../../../../../../src");
15
+ var RowPredicateSubset;
16
+ (function (RowPredicateSubset) {
17
+ RowPredicateSubset.readerRole = schema_definition_1.AclDefinition.createRole('reader');
18
+ let Article = class Article {
19
+ constructor() {
20
+ this.isPublished = schema_definition_1.SchemaDefinition.boolColumn();
21
+ this.isUnlocked = schema_definition_1.SchemaDefinition.boolColumn();
22
+ this.title = schema_definition_1.SchemaDefinition.stringColumn();
23
+ this.content = schema_definition_1.SchemaDefinition.stringColumn();
24
+ }
25
+ };
26
+ Article = __decorate([
27
+ schema_definition_1.AclDefinition.allow(RowPredicateSubset.readerRole, {
28
+ when: {
29
+ isPublished: { eq: true },
30
+ },
31
+ read: ['isPublished', 'isUnlocked', 'title'],
32
+ }),
33
+ schema_definition_1.AclDefinition.allow(RowPredicateSubset.readerRole, {
34
+ when: {
35
+ and: [
36
+ { isUnlocked: { eq: true } },
37
+ { isPublished: { eq: true } },
38
+ ],
39
+ },
40
+ read: ['content'],
41
+ })
42
+ ], Article);
43
+ RowPredicateSubset.Article = Article;
44
+ })(RowPredicateSubset || (RowPredicateSubset = {}));
45
+ (0, vitest_1.test)('row level predicate includes main predicate', async () => {
46
+ const schema = (0, schema_definition_1.createSchema)(RowPredicateSubset);
47
+ const permissions = new src_1.PermissionFactory(schema.model).create(schema.acl, ['reader']);
48
+ await (0, test_1.execute)({
49
+ schema: schema.model,
50
+ permissions: permissions,
51
+ variables: {},
52
+ query: (0, tags_1.GQL) `
53
+ query {
54
+ listArticle {
55
+ id
56
+ title
57
+ content
58
+ }
59
+ }`,
60
+ executes: [
61
+ {
62
+ sql: (0, tags_1.SQL) `SELECT
63
+ "root_"."id" AS "root_id",
64
+ TRUE AS "root___predicate_isPublished_eq_true",
65
+ "root_"."title" AS "root_title",
66
+ "root_"."is_unlocked" = ? AS "root___predicate_and_isUnlocked_eq_true_isPubl",
67
+ "root_"."content" AS "root_content"
68
+ FROM "public"."article" AS "root_"
69
+ WHERE "root_"."is_published" = ?`,
70
+ parameters: [true, true],
71
+ response: {
72
+ rows: [
73
+ {
74
+ root_id: (0, testUuid_1.testUuid)(1),
75
+ root___predicate_isPublished_eq_true: true,
76
+ root_title: 'Hello',
77
+ root___predicate_and_isUnlocked_eq_true_isPubl: false,
78
+ root_content: 'Foo bar',
79
+ },
80
+ {
81
+ root_id: (0, testUuid_1.testUuid)(2),
82
+ root___predicate_isPublished_eq_true: true,
83
+ root_title: 'Hello 2',
84
+ root___predicate_and_isUnlocked_eq_true_isPubl: true,
85
+ root_content: 'Lorem ipsum',
86
+ },
87
+ ],
88
+ },
89
+ },
90
+ ],
91
+ return: {
92
+ data: {
93
+ listArticle: [
94
+ {
95
+ id: (0, testUuid_1.testUuid)(1),
96
+ title: 'Hello',
97
+ content: null,
98
+ },
99
+ {
100
+ id: (0, testUuid_1.testUuid)(2),
101
+ title: 'Hello 2',
102
+ content: 'Lorem ipsum',
103
+ },
104
+ ],
105
+ },
106
+ },
107
+ });
108
+ });
109
+ //# sourceMappingURL=rowPredicateSubset.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowPredicateSubset.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts"],"names":[],"mappings":";;;;;;;;AAAA,oEAA0G;AAE1G,mCAA6B;AAC7B,kDAAiD;AACjD,kDAAkD;AAClD,0DAAsD;AACtD,+CAAyD;AAGzD,IAAU,kBAAkB,CAuB3B;AAvBD,WAAU,kBAAkB;IACd,6BAAU,GAAG,iCAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAgBlD,IAAa,OAAO,GAApB,MAAa,OAAO;QAApB;YACC,gBAAW,GAAG,oCAAG,CAAC,UAAU,EAAE,CAAA;YAC9B,eAAU,GAAG,oCAAG,CAAC,UAAU,EAAE,CAAA;YAC7B,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;YAC1B,YAAO,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;QAC7B,CAAC;KAAA,CAAA;IALY,OAAO;QAfnB,iCAAG,CAAC,KAAK,CAAC,mBAAA,UAAU,EAAE;YACtB,IAAI,EAAE;gBACL,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;aACzB;YACD,IAAI,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC;SAC5C,CAAC;QACD,iCAAG,CAAC,KAAK,CAAC,mBAAA,UAAU,EAAE;YACtB,IAAI,EAAE;gBACL,GAAG,EAAE;oBACJ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;oBAC5B,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;iBAC7B;aACD;YACD,IAAI,EAAE,CAAC,SAAS,CAAC;SACjB,CAAC;OACW,OAAO,CAKnB;IALY,0BAAO,UAKnB,CAAA;AACF,CAAC,EAvBS,kBAAkB,KAAlB,kBAAkB,QAuB3B;AAID,IAAA,aAAI,EAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,MAAM,GAAG,IAAA,gCAAY,EAAC,kBAAkB,CAAC,CAAA;IAE/C,MAAM,WAAW,GAAG,IAAI,uBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEtF,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,IAAA,UAAG,EAAA;;;;;;;UAOF;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;;;;;wCAO4B;gBACpC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;gBACxB,QAAQ,EAAE;oBACT,IAAI,EAAE;wBACL;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,oCAAoC,EAAE,IAAI;4BAC1C,UAAU,EAAE,OAAO;4BACnB,8CAA8C,EAAE,KAAK;4BACrD,YAAY,EAAE,SAAS;yBACvB;wBACD;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,oCAAoC,EAAE,IAAI;4BAC1C,UAAU,EAAE,SAAS;4BACrB,8CAA8C,EAAE,IAAI;4BACpD,YAAY,EAAE,aAAa;yBAC3B;qBACD;iBACD;aACD;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE;gBACL,WAAW,EAAE;oBACZ;wBACC,EAAE,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;wBACf,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,IAAI;qBACb;oBACD;wBACC,EAAE,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;wBACf,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,aAAa;qBACtB;iBACD;aACD;SACD;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -77,15 +77,13 @@ const testUuid_1 = require("../../../../../src/testUuid");
77
77
  }`,
78
78
  executes: [
79
79
  {
80
- sql: (0, tags_1.SQL) `select
81
- "root_"."id" as "root_idx",
82
- "root_"."name" as "root_name1",
83
- "root_"."name" as "root_name2",
84
- true as "root_meta_name1_readable1",
85
- true as "root_meta_name1_readable2",
86
- "root_"."name" = ? as "root_meta_name1_updatable1",
87
- "root_"."id" as "root_id"
88
- from "public"."author" as "root_"`,
80
+ sql: (0, tags_1.SQL) `SELECT
81
+ "root_"."id" AS "root_idx",
82
+ "root_"."name" AS "root_name1",
83
+ "root_"."name" AS "root_name2",
84
+ "root_"."name" = ? AS "root___predicate_name_eq",
85
+ "root_"."id" AS "root_id"
86
+ FROM "public"."author" AS "root_"`,
89
87
  parameters: ['John'],
90
88
  response: {
91
89
  rows: [
@@ -94,9 +92,7 @@ const testUuid_1 = require("../../../../../src/testUuid");
94
92
  root_idx: (0, testUuid_1.testUuid)(1),
95
93
  root_name1: 'John',
96
94
  root_name2: 'John',
97
- root_meta_name1_readable1: true,
98
- root_meta_name1_readable2: true,
99
- root_meta_name1_updatable1: false,
95
+ root___predicate_name_eq: true,
100
96
  },
101
97
  ],
102
98
  },
@@ -111,7 +107,7 @@ const testUuid_1 = require("../../../../../src/testUuid");
111
107
  name1: {
112
108
  readable1: true,
113
109
  readable2: true,
114
- updatable1: false,
110
+ updatable1: true,
115
111
  },
116
112
  },
117
113
  name1: 'John',
@@ -1 +1 @@
1
- {"version":3,"file":"alias.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts"],"names":[],"mappings":";;AAAA,mCAA6B;AAC7B,kDAAiD;AACjD,oEAA4D;AAC5D,8CAAyC;AACzC,kDAAkD;AAClD,0DAAsD;AAEtD,IAAA,aAAI,EAAC,aAAa,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,IAAI,iCAAa,EAAE;aACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;aAChG,WAAW,EAAE;QACf,KAAK,EAAE,IAAA,UAAG,EAAA;;8BAEkB,IAAA,mBAAQ,EAAC,CAAC,CAAC;;;UAG/B;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;;4CAIgC;gBACxC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE;gBAC/C,UAAU,EAAE,CAAC,IAAA,mBAAQ,EAAC,CAAC,CAAC,CAAC;aACzB;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE;gBACL,OAAO,EAAE;oBACR,OAAO,EAAE,OAAO;iBAChB;aACD;SACD;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC1B,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,IAAI,iCAAa,EAAE;aACzB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;aAC7E,WAAW,EAAE;QACf,WAAW,EAAE;YACZ,MAAM,EAAE;gBACP,UAAU,EAAE;oBACX,OAAO,EAAE;wBACR,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;qBACpB;iBACD;gBACD,UAAU,EAAE;oBACX,IAAI,EAAE;wBACL,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,IAAI;qBACV;oBACD,MAAM,EAAE;wBACP,IAAI,EAAE,SAAS;qBACf;iBACD;aACD;SACD;QACD,KAAK,EAAE,IAAA,UAAG,EAAA;;;;;;;;;;;;;;UAcF;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;;;;;;qDAQyC;gBACjD,UAAU,EAAE,CAAC,MAAM,CAAC;gBACpB,QAAQ,EAAE;oBACT,IAAI,EAAE;wBACL;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,QAAQ,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACrB,UAAU,EAAE,MAAM;4BAClB,UAAU,EAAE,MAAM;4BAClB,yBAAyB,EAAE,IAAI;4BAC/B,yBAAyB,EAAE,IAAI;4BAC/B,0BAA0B,EAAE,KAAK;yBACjC;qBACD;iBACD;aACD;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE;gBACL,UAAU,EAAE;oBACX;wBACC,GAAG,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;wBAChB,IAAI,EAAE;4BACL,KAAK,EAAE;gCACN,SAAS,EAAE,IAAI;gCACf,SAAS,EAAE,IAAI;gCACf,UAAU,EAAE,KAAK;6BACjB;yBACD;wBACD,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,MAAM;qBACb;iBACD;aACD;SACD;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"alias.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts"],"names":[],"mappings":";;AAAA,mCAA6B;AAC7B,kDAAiD;AACjD,oEAA4D;AAC5D,8CAAyC;AACzC,kDAAkD;AAClD,0DAAsD;AAEtD,IAAA,aAAI,EAAC,aAAa,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,IAAI,iCAAa,EAAE;aACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;aAChG,WAAW,EAAE;QACf,KAAK,EAAE,IAAA,UAAG,EAAA;;8BAEkB,IAAA,mBAAQ,EAAC,CAAC,CAAC;;;UAG/B;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;;4CAIgC;gBACxC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE;gBAC/C,UAAU,EAAE,CAAC,IAAA,mBAAQ,EAAC,CAAC,CAAC,CAAC;aACzB;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE;gBACL,OAAO,EAAE;oBACR,OAAO,EAAE,OAAO;iBAChB;aACD;SACD;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC1B,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,IAAI,iCAAa,EAAE;aACzB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;aAC7E,WAAW,EAAE;QACf,WAAW,EAAE;YACZ,MAAM,EAAE;gBACP,UAAU,EAAE;oBACX,OAAO,EAAE;wBACR,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;qBACpB;iBACD;gBACD,UAAU,EAAE;oBACX,IAAI,EAAE;wBACL,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,IAAI;qBACV;oBACD,MAAM,EAAE;wBACP,IAAI,EAAE,SAAS;qBACf;iBACD;aACD;SACD;QACD,KAAK,EAAE,IAAA,UAAG,EAAA;;;;;;;;;;;;;;UAcF;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;;;;yCAM6B;gBACrC,UAAU,EAAE,CAAC,MAAM,CAAC;gBACpB,QAAQ,EAAE;oBACT,IAAI,EAAE;wBACL;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,QAAQ,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACrB,UAAU,EAAE,MAAM;4BAClB,UAAU,EAAE,MAAM;4BAClB,wBAAwB,EAAE,IAAI;yBAC9B;qBACD;iBACD;aACD;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE;gBACL,UAAU,EAAE;oBACX;wBACC,GAAG,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;wBAChB,IAAI,EAAE;4BACL,KAAK,EAAE;gCACN,SAAS,EAAE,IAAI;gCACf,SAAS,EAAE,IAAI;gCACf,UAAU,EAAE,IAAI;6BAChB;yBACD;wBACD,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,MAAM;qBACb;iBACD;aACD;SACD;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -12,6 +12,8 @@ const schema_1 = require("@contember/schema");
12
12
  const vitest_1 = require("vitest");
13
13
  const WhereOptimizer_1 = require("../../../src/mapper/select/optimizer/WhereOptimizer");
14
14
  const ConditionOptimizer_1 = require("../../../src/mapper/select/optimizer/ConditionOptimizer");
15
+ const schema_utils_1 = require("@contember/schema-utils");
16
+ const engine_api_tester_1 = require("@contember/engine-api-tester");
15
17
  const schema = new schema_definition_1.SchemaBuilder()
16
18
  .enum('locale', ['cs', 'en'])
17
19
  .entity('Post', entityBuilder => entityBuilder.oneHasMany('locales', c => c.target('PostLocale')))
@@ -152,10 +154,10 @@ var DeepFilterModel;
152
154
  DeepFilterModel.Tag = Tag;
153
155
  })(DeepFilterModel || (DeepFilterModel = {}));
154
156
  (0, vitest_1.describe)('predicates injector elimination', () => {
157
+ const schema = (0, schema_definition_1.createSchema)(DeepFilterModel);
158
+ const permissions = new acl_1.PermissionFactory(schema.model).create(schema.acl, ['reader']);
159
+ const injector = new acl_1.PredicatesInjector(schema.model, new acl_1.PredicateFactory(permissions, schema.model, new acl_1.VariableInjector(schema.model, {})));
155
160
  (0, vitest_1.it)('eliminates predicates in where', () => {
156
- const schema = (0, schema_definition_1.createSchema)(DeepFilterModel);
157
- const permissions = new acl_1.PermissionFactory(schema.model).create(schema.acl, ['reader']);
158
- const injector = new acl_1.PredicatesInjector(schema.model, new acl_1.PredicateFactory(permissions, schema.model, new acl_1.VariableInjector(schema.model, {})));
159
161
  const injected = injector.inject(schema.model.entities.Article, {
160
162
  coverPhoto: { image: { tags: { label: { eq: 'foo' } } } },
161
163
  });
@@ -163,5 +165,31 @@ var DeepFilterModel;
163
165
  const result = optimizer.optimize(injected, schema.model.entities.Article);
164
166
  vitest_1.assert.deepStrictEqual(result, { and: [{ coverPhoto: { image: { tags: { label: { eq: 'foo' } } } } }, { isPublished: { eq: true } }] });
165
167
  });
168
+ (0, vitest_1.it)('eliminate back referencing predicate', () => {
169
+ const relation = (0, schema_utils_1.acceptFieldVisitor)(schema.model, schema.model.entities.Article, 'coverPhoto', {
170
+ visitColumn: () => {
171
+ throw new Error();
172
+ },
173
+ visitRelation: ctx => ctx,
174
+ });
175
+ const injected = injector.inject(schema.model.entities.ImageUse, {
176
+ articles: { id: { in: [(0, engine_api_tester_1.testUuid)(1)] } },
177
+ }, relation);
178
+ vitest_1.assert.deepStrictEqual(injected, {
179
+ and: [
180
+ {
181
+ articles: {
182
+ and: [
183
+ { id: { in: [(0, engine_api_tester_1.testUuid)(1)] } },
184
+ { id: { always: true } },
185
+ ],
186
+ },
187
+ },
188
+ {
189
+ articles: { id: { always: true } },
190
+ },
191
+ ],
192
+ });
193
+ });
166
194
  });
167
195
  //# sourceMappingURL=predicatesInjector.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"predicatesInjector.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/predicatesInjector.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predicatesInjector.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/predicatesInjector.test.ts"],"names":[],"mappings":"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"}
@@ -184,52 +184,52 @@ var TestModel;
184
184
  });
185
185
  (0, vitest_1.describe)('remove id predicates', () => {
186
186
  (0, vitest_1.it)('remove ID predicate when traversing from a relation - always', () => {
187
- vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
188
- image: { id: { isNull: false } },
189
- }, model.entities.Author, [(0, schema_utils_1.acceptFieldVisitor)(model, 'Image', 'authors', {
187
+ const relationPath = [(0, schema_utils_1.acceptFieldVisitor)(model, 'Image', 'authors', {
190
188
  visitColumn: () => {
191
189
  throw new Error();
192
190
  },
193
191
  visitRelation: context => context,
194
- })]), {
192
+ })];
193
+ vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
194
+ image: { id: { isNull: false } },
195
+ }, model.entities.Author, { relationPath }), {
195
196
  id: { always: true },
196
197
  });
197
198
  });
198
199
  (0, vitest_1.it)('remove ID predicate when traversing from a relation - never', () => {
199
200
  vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
200
201
  image: { id: { isNull: true } },
201
- }, model.entities.Author, [(0, schema_utils_1.acceptFieldVisitor)(model, 'Image', 'authors', {
202
- visitColumn: () => {
203
- throw new Error();
204
- },
205
- visitRelation: context => context,
206
- })]), {
202
+ }, model.entities.Author, { relationPath: [(0, schema_utils_1.acceptFieldVisitor)(model, 'Image', 'authors', {
203
+ visitColumn: () => {
204
+ throw new Error();
205
+ },
206
+ visitRelation: context => context,
207
+ })] }), {
207
208
  id: { never: true },
208
209
  });
209
210
  });
210
211
  (0, vitest_1.it)('remove ID predicate when traversing in where', () => {
211
212
  vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
212
213
  authors: { image: { id: { isNull: false } } },
213
- }, model.entities.Image, []), {
214
+ }, model.entities.Image), {
214
215
  id: { always: true },
215
216
  });
216
217
  });
217
218
  (0, vitest_1.it)('do not remove ID predicate when traversing from a has-many relation', () => {
218
- vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
219
- authors: { id: { isNull: false } },
220
- }, model.entities.Image, [(0, schema_utils_1.acceptFieldVisitor)(model, 'Author', 'image', {
219
+ const relationPath = [(0, schema_utils_1.acceptFieldVisitor)(model, 'Author', 'image', {
221
220
  visitColumn: () => {
222
221
  throw new Error();
223
222
  },
224
223
  visitRelation: context => context,
225
- })]), {
224
+ })];
225
+ vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
226
+ authors: { id: { isNull: false } },
227
+ }, model.entities.Image, { relationPath }), {
226
228
  authors: { id: { isNull: false } },
227
229
  });
228
230
  });
229
231
  (0, vitest_1.it)('do not remove ID predicate when traversing from a nested has-many relation', () => {
230
- vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
231
- articles: { author: { id: { isNull: false } } },
232
- }, model.entities.Image, [
232
+ const relationPath = [
233
233
  (0, schema_utils_1.acceptFieldVisitor)(model, 'Author', 'articles', {
234
234
  visitColumn: () => {
235
235
  throw new Error();
@@ -242,21 +242,24 @@ var TestModel;
242
242
  },
243
243
  visitRelation: context => context,
244
244
  }),
245
- ]), {
245
+ ];
246
+ vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
247
+ articles: { author: { id: { isNull: false } } },
248
+ }, model.entities.Image, { relationPath }), {
246
249
  articles: { author: { id: { isNull: false } } },
247
250
  });
248
251
  });
249
252
  (0, vitest_1.it)('do not remove ID predicate when traversing in where over has-many relation', () => {
250
253
  vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
251
254
  image: { authors: { id: { isNull: false } } },
252
- }, model.entities.Author, []), {
255
+ }, model.entities.Author), {
253
256
  image: { authors: { id: { isNull: false } } },
254
257
  });
255
258
  });
256
259
  (0, vitest_1.it)('do not remove ID predicate when traversing in where over has-many relation - nested', () => {
257
260
  vitest_1.assert.deepStrictEqual(whereOptimizer.optimize({
258
261
  image: { authors: { image: { id: { isNull: false } } } },
259
- }, model.entities.Author, []), {
262
+ }, model.entities.Author), {
260
263
  image: { authors: { image: { id: { isNull: false } } } },
261
264
  });
262
265
  });