@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.
- package/dist/src/acl/EvaluatedPredicateReplacer.d.ts +2 -2
- package/dist/src/acl/EvaluatedPredicateReplacer.d.ts.map +1 -1
- package/dist/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
- package/dist/src/acl/PredicateFactory.d.ts +9 -3
- package/dist/src/acl/PredicateFactory.d.ts.map +1 -1
- package/dist/src/acl/PredicateFactory.js +42 -24
- package/dist/src/acl/PredicateFactory.js.map +1 -1
- package/dist/src/acl/PredicatesInjector.d.ts.map +1 -1
- package/dist/src/acl/PredicatesInjector.js +1 -0
- package/dist/src/acl/PredicatesInjector.js.map +1 -1
- package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js +31 -27
- package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
- package/dist/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js +18 -14
- package/dist/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
- package/dist/src/mapper/JunctionTableManager.js.map +1 -1
- package/dist/src/mapper/Mapper.js +3 -3
- package/dist/src/mapper/Mapper.js.map +1 -1
- package/dist/src/mapper/MapperContainer.d.ts.map +1 -1
- package/dist/src/mapper/MapperContainer.js +2 -2
- package/dist/src/mapper/MapperContainer.js.map +1 -1
- package/dist/src/mapper/delete/DeleteExecutor.js +1 -1
- package/dist/src/mapper/delete/DeleteExecutor.js.map +1 -1
- package/dist/src/mapper/insert/InsertBuilder.d.ts +1 -1
- package/dist/src/mapper/insert/InsertBuilder.d.ts.map +1 -1
- package/dist/src/mapper/insert/InsertBuilder.js.map +1 -1
- package/dist/src/mapper/select/RelationFetcher.js +1 -1
- package/dist/src/mapper/select/RelationFetcher.js.map +1 -1
- package/dist/src/mapper/select/SelectBuilder.d.ts +3 -1
- package/dist/src/mapper/select/SelectBuilder.d.ts.map +1 -1
- package/dist/src/mapper/select/SelectBuilder.js +50 -12
- package/dist/src/mapper/select/SelectBuilder.js.map +1 -1
- package/dist/src/mapper/select/SelectExecutionHandler.d.ts +15 -4
- package/dist/src/mapper/select/SelectExecutionHandler.d.ts.map +1 -1
- package/dist/src/mapper/select/SelectHydrator.d.ts +3 -2
- package/dist/src/mapper/select/SelectHydrator.d.ts.map +1 -1
- package/dist/src/mapper/select/SelectHydrator.js +4 -5
- package/dist/src/mapper/select/SelectHydrator.js.map +1 -1
- package/dist/src/mapper/select/WhereBuilder.d.ts +3 -3
- package/dist/src/mapper/select/WhereBuilder.d.ts.map +1 -1
- package/dist/src/mapper/select/WhereBuilder.js +4 -4
- package/dist/src/mapper/select/WhereBuilder.js.map +1 -1
- package/dist/src/mapper/select/handlers/FieldsVisitor.d.ts +1 -0
- package/dist/src/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
- package/dist/src/mapper/select/handlers/FieldsVisitor.js +118 -91
- package/dist/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
- package/dist/src/mapper/select/handlers/MetaHandler.d.ts.map +1 -1
- package/dist/src/mapper/select/handlers/MetaHandler.js +6 -11
- package/dist/src/mapper/select/handlers/MetaHandler.js.map +1 -1
- package/dist/src/mapper/select/optimizer/WhereOptimizer.d.ts +5 -1
- package/dist/src/mapper/select/optimizer/WhereOptimizer.d.ts.map +1 -1
- package/dist/src/mapper/select/optimizer/WhereOptimizer.js +76 -23
- package/dist/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
- package/dist/src/mapper/select/optimizer/WhereReplacer.d.ts +1 -4
- package/dist/src/mapper/select/optimizer/WhereReplacer.d.ts.map +1 -1
- package/dist/src/mapper/select/optimizer/WhereReplacer.js +27 -9
- package/dist/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.js +51 -4
- package/dist/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js +26 -25
- package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.js +9 -6
- package/dist/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.js +109 -0
- package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.js.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.js +9 -13
- package/dist/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.js.map +1 -1
- package/dist/tests/cases/unit/predicatesInjector.test.js +31 -3
- package/dist/tests/cases/unit/predicatesInjector.test.js.map +1 -1
- package/dist/tests/cases/unit/whereOptimizer.test.js +24 -21
- package/dist/tests/cases/unit/whereOptimizer.test.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/acl/EvaluatedPredicateReplacer.ts +4 -4
- package/src/acl/PredicateFactory.ts +59 -36
- package/src/acl/PredicatesInjector.ts +2 -1
- package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.ts +5 -5
- package/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts +5 -5
- package/src/mapper/JunctionTableManager.ts +3 -3
- package/src/mapper/Mapper.ts +3 -3
- package/src/mapper/MapperContainer.ts +2 -1
- package/src/mapper/delete/DeleteExecutor.ts +1 -1
- package/src/mapper/insert/InsertBuilder.ts +2 -2
- package/src/mapper/select/RelationFetcher.ts +1 -1
- package/src/mapper/select/SelectBuilder.ts +69 -13
- package/src/mapper/select/SelectExecutionHandler.ts +15 -8
- package/src/mapper/select/SelectHydrator.ts +13 -7
- package/src/mapper/select/WhereBuilder.ts +5 -5
- package/src/mapper/select/handlers/FieldsVisitor.ts +53 -67
- package/src/mapper/select/handlers/MetaHandler.ts +6 -17
- package/src/mapper/select/optimizer/WhereOptimizer.ts +96 -40
- package/src/mapper/select/optimizer/WhereReplacer.ts +27 -15
- package/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts +54 -4
- package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +26 -25
- package/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts +9 -6
- package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +104 -0
- package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts +9 -13
- package/tests/cases/unit/predicatesInjector.test.ts +37 -7
- package/tests/cases/unit/whereOptimizer.test.ts +20 -17
package/dist/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.js
CHANGED
|
@@ -39,16 +39,18 @@ const permissions = {
|
|
|
39
39
|
executes: [
|
|
40
40
|
{
|
|
41
41
|
sql: (0, tags_1.SQL) `
|
|
42
|
-
select
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
|
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"}
|
package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js
CHANGED
|
@@ -60,26 +60,23 @@ const permissions = {
|
|
|
60
60
|
}`,
|
|
61
61
|
executes: [
|
|
62
62
|
{
|
|
63
|
-
sql: (0, tags_1.SQL) `
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
134
|
-
|
|
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
|
-
|
|
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) `
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
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) `
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
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
|
-
|
|
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
|
],
|
package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRestrictedByLocale.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts"],"names":[],"mappings":";;AAAA,oEAA4D;AAC5D,8CAA8C;AAC9C,mCAA6B;AAC7B,kDAAiD;AACjD,kDAAkD;AAClD,0DAAsD;AAEtD,MAAM,MAAM,GAAG,IAAI,iCAAa,EAAE;KAChC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC5B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KACjH,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAC9B,MAAM;KACJ,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KAC/D,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CACxF;KACA,WAAW,EAAE,CAAA;AAEf,MAAM,WAAW,GAAoB;IACpC,IAAI,EAAE;QACL,UAAU,EAAE,EAAE;QACd,UAAU,EAAE;YACX,IAAI,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,IAAI;aACb;SACD;KACD;IACD,UAAU,EAAE;QACX,UAAU,EAAE;YACX,eAAe,EAAE;gBAChB,MAAM,EAAE,gBAAgB;aACxB;SACD;QACD,UAAU,EAAE;YACX,IAAI,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,iBAAiB;aACxB;SACD;KACD;CACD,CAAA;AAED,IAAA,aAAI,EAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IACxC,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE;YACV,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;SAC9B;QACD,KAAK,EAAE,IAAA,UAAG,EAAA;;;;;;;;;;;;UAYF;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA
|
|
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) `
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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":";;AAAA,oEAA4D;AAC5D,8CAA8C;AAC9C,mCAA6B;AAC7B,kDAAiD;AACjD,kDAAkD;AAClD,0DAAsD;AAEtD,MAAM,MAAM,GAAG,IAAI,iCAAa,EAAE;KAChC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC5B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAC/B,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CACtC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CACtB,CAAC;KACC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KACpD,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,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,CAAC,CAC9G,CACD,CACD;KACA,WAAW,EAAE,CAAA;AAEf,MAAM,WAAW,GAAoB;IACpC,IAAI,EAAE;QACL,UAAU,EAAE,EAAE;QACd,UAAU,EAAE;YACX,IAAI,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,IAAI;aACZ;SACD;KACD;IACD,MAAM,EAAE;QACP,UAAU,EAAE;YACX,gBAAgB,EAAE;gBACjB,OAAO,EAAE;oBACR,IAAI,EAAE,iBAAiB;iBACvB;aACD;SACD;QACD,UAAU,EAAE;YACX,IAAI,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,kBAAkB;aACxB;SACD;KACD;IACD,OAAO,EAAE;QACR,UAAU,EAAE,EAAE;QACd,UAAU,EAAE;YACX,IAAI,EAAE;gBACL,EAAE,EAAE,IAAI;aACR;SACD;KACD;CACD,CAAA;AAED,IAAA,aAAI,EAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,IAAA,cAAO,EAAC;QACb,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE;YACV,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE;SACpC;QACD,KAAK,EAAE,IAAA,UAAG,EAAA;;;;;;;;UAQF;QACR,QAAQ,EAAE;YACT;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA;;;uDAG2C;gBACnD,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE;oBACT,IAAI,EAAE;wBACL;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,WAAW,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;yBACxB;wBACD;4BACC,OAAO,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;4BACpB,WAAW,EAAE,IAAA,mBAAQ,EAAC,CAAC,CAAC;yBACxB;qBACD;iBACD;aACD;YACD;gBACC,GAAG,EAAE,IAAA,UAAG,EAAA
|
|
1
|
+
{"version":3,"file":"nestedPredicate.test.js","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts"],"names":[],"mappings":"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"}
|
package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.d.ts.map
ADDED
|
@@ -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) `
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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:
|
|
110
|
+
updatable1: true,
|
|
115
111
|
},
|
|
116
112
|
},
|
|
117
113
|
name1: 'John',
|
package/dist/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.js.map
CHANGED
|
@@ -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
|
|
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":";;;;;;;;AAAA,0CAA4G;AAC5G,oEAAyH;AACzH,8CAA8C;AAC9C,mCAA6C;AAE7C,wFAAoF;AACpF,gGAA4F;
|
|
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
|
-
|
|
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
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
});
|