@contember/engine-content-api 1.2.0-alpha.1 → 1.2.0-alpha.2

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 (42) hide show
  1. package/dist/src/acl/VariableInjector.d.ts.map +1 -1
  2. package/dist/src/acl/VariableInjector.js +9 -7
  3. package/dist/src/acl/VariableInjector.js.map +1 -1
  4. package/dist/src/acl/VariableUtils.d.ts.map +1 -1
  5. package/dist/src/acl/VariableUtils.js +18 -12
  6. package/dist/src/acl/VariableUtils.js.map +1 -1
  7. package/dist/src/tsconfig.tsbuildinfo +1 -1
  8. package/dist/tests/cases/integration/graphQlRequests/delete/aclDelete.test.js +6 -1
  9. package/dist/tests/cases/integration/graphQlRequests/delete/aclDelete.test.js.map +1 -1
  10. package/dist/tests/cases/integration/graphQlRequests/insert/acl/setField.test.js +12 -2
  11. package/dist/tests/cases/integration/graphQlRequests/insert/acl/setField.test.js.map +1 -1
  12. package/dist/tests/cases/integration/graphQlRequests/insert/aclInsert.test.js +6 -1
  13. package/dist/tests/cases/integration/graphQlRequests/insert/aclInsert.test.js.map +1 -1
  14. package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js +24 -4
  15. package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js.map +1 -1
  16. package/dist/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.js +6 -1
  17. package/dist/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.js.map +1 -1
  18. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js +24 -4
  19. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js.map +1 -1
  20. package/dist/tests/cases/unit/aclVariablesFactory.test.js +8 -6
  21. package/dist/tests/cases/unit/aclVariablesFactory.test.js.map +1 -1
  22. package/dist/tests/cases/unit/predicatesInjector.test.js +12 -6
  23. package/dist/tests/cases/unit/predicatesInjector.test.js.map +1 -1
  24. package/dist/tests/cases/unit/variableInjector.test.js +15 -3
  25. package/dist/tests/cases/unit/variableInjector.test.js.map +1 -1
  26. package/dist/tests/src/testGraphql.d.ts.map +1 -1
  27. package/dist/tests/src/testGraphql.js +4 -1
  28. package/dist/tests/src/testGraphql.js.map +1 -1
  29. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +10 -10
  31. package/src/acl/VariableInjector.ts +10 -8
  32. package/src/acl/VariableUtils.ts +18 -13
  33. package/tests/cases/integration/graphQlRequests/delete/aclDelete.test.ts +7 -2
  34. package/tests/cases/integration/graphQlRequests/insert/acl/setField.test.ts +13 -3
  35. package/tests/cases/integration/graphQlRequests/insert/aclInsert.test.ts +7 -2
  36. package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +24 -4
  37. package/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts +6 -1
  38. package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +25 -5
  39. package/tests/cases/unit/aclVariablesFactory.test.ts +8 -6
  40. package/tests/cases/unit/predicatesInjector.test.ts +12 -6
  41. package/tests/cases/unit/variableInjector.test.ts +17 -5
  42. package/tests/src/testGraphql.ts +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VariableInjector.d.ts","sourceRoot":"","sources":["../../../src/acl/VariableInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGrD,qBAAa,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAgB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAhD,MAAM,EAAE,KAAK,CAAC,MAAM,EAAmB,SAAS,EAAE,GAAG,CAAC,YAAY;IAExF,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,mBAAmB,GAAG,KAAK,CAAC,KAAK;IAmBhF,OAAO,CAAC,eAAe;CAYvB"}
1
+ {"version":3,"file":"VariableInjector.d.ts","sourceRoot":"","sources":["../../../src/acl/VariableInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGrD,qBAAa,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAgB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAhD,MAAM,EAAE,KAAK,CAAC,MAAM,EAAmB,SAAS,EAAE,GAAG,CAAC,YAAY;IAExF,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,mBAAmB,GAAG,KAAK,CAAC,KAAK;IAmBhF,OAAO,CAAC,eAAe;CAcvB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VariableInjector = void 0;
4
+ const schema_1 = require("@contember/schema");
4
5
  const schema_utils_1 = require("@contember/schema-utils");
5
6
  class VariableInjector {
6
7
  constructor(schema, variables) {
@@ -25,16 +26,17 @@ class VariableInjector {
25
26
  });
26
27
  }
27
28
  createCondition(variable) {
28
- if (variable === undefined) {
29
+ if (variable === undefined || variable.value.length === 0) {
29
30
  return { never: true };
30
31
  }
31
- if (Array.isArray(variable)) {
32
- return { in: variable };
32
+ const { value, definition } = variable;
33
+ if (definition.type === schema_1.Acl.VariableType.condition) {
34
+ if (value.length === 1) {
35
+ return value[0];
36
+ }
37
+ return { or: value };
33
38
  }
34
- if (typeof variable === 'string' || typeof variable === 'number') {
35
- return { eq: variable };
36
- }
37
- throw new Error('not implemented');
39
+ return { in: value };
38
40
  }
39
41
  }
40
42
  exports.VariableInjector = VariableInjector;
@@ -1 +1 @@
1
- {"version":3,"file":"VariableInjector.js","sourceRoot":"","sources":["../../../src/acl/VariableInjector.ts"],"names":[],"mappings":";;;AACA,0DAAsE;AAEtE,MAAa,gBAAgB;IAC5B,YAA6B,MAAoB,EAAmB,SAA2B;QAAlE,WAAM,GAAN,MAAM,CAAc;QAAmB,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAE5F,MAAM,CAAC,MAAoB,EAAE,KAA8B;QACjE,MAAM,4BAA4B,GAAG,IAAI,2CAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAElF,OAAO,4BAA4B,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;YAC1D,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAA;iBAC/D;gBACD,OAAO,KAAwB,CAAA;YAChC,CAAC;YACD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;gBAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC9B,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAA;iBAC3F;gBACD,OAAO,KAAK,CAAA;YACb,CAAC;SACD,CAAC,CAAA;IACH,CAAC;IAEO,eAAe,CAAC,QAAuC;QAC9D,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;SACtB;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;SACvB;QACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YACjE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;SACvB;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACnC,CAAC;CACD;AAlCD,4CAkCC"}
1
+ {"version":3,"file":"VariableInjector.js","sourceRoot":"","sources":["../../../src/acl/VariableInjector.ts"],"names":[],"mappings":";;;AAAA,8CAAqD;AACrD,0DAAsE;AAEtE,MAAa,gBAAgB;IAC5B,YAA6B,MAAoB,EAAmB,SAA2B;QAAlE,WAAM,GAAN,MAAM,CAAc;QAAmB,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAE5F,MAAM,CAAC,MAAoB,EAAE,KAA8B;QACjE,MAAM,4BAA4B,GAAG,IAAI,2CAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAElF,OAAO,4BAA4B,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;YAC1D,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAA;iBAC/D;gBACD,OAAO,KAAwB,CAAA;YAChC,CAAC;YACD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;gBAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC9B,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAA;iBAC3F;gBACD,OAAO,KAAK,CAAA;YACb,CAAC;SACD,CAAC,CAAA;IACH,CAAC;IAEO,eAAe,CAAC,QAA0C;QACjE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;SACtB;QAED,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAA;QACtC,IAAI,UAAU,CAAC,IAAI,KAAK,YAAG,CAAC,YAAY,CAAC,SAAS,EAAE;YACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,KAAK,CAAC,CAAC,CAAoB,CAAA;aAClC;YACD,OAAO,EAAE,EAAE,EAAE,KAA0B,EAAE,CAAA;SACzC;QACD,OAAO,EAAE,EAAE,EAAE,KAA4B,EAAE,CAAA;IAC5C,CAAC;CACD;AApCD,4CAoCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VariableUtils.d.ts","sourceRoot":"","sources":["../../../src/acl/VariableUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAGvC,aAAK,WAAW,GAAG,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,CAAA;AAEjH,eAAO,MAAM,kBAAkB,cACnB,IAAI,MAAM,YACX;IACT,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;CACxB,KACC,IAAI,YA0BN,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,MAAM,gBAAgB,MAAM,WAA+B,CAAA"}
1
+ {"version":3,"file":"VariableUtils.d.ts","sourceRoot":"","sources":["../../../src/acl/VariableUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAGvC,aAAK,WAAW,GAAG,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,CAAA;AAEjH,eAAO,MAAM,kBAAkB,cACnB,IAAI,MAAM,YACX;IACT,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;CACxB,KACC,IAAI,YA+BN,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,MAAM,gBAAgB,MAAM,WAA+B,CAAA"}
@@ -8,19 +8,25 @@ const createAclVariables = (aclSchema, identity) => {
8
8
  const roleVariables = (0, schema_utils_1.getRoleVariables)(membership.role, aclSchema);
9
9
  const membershipVariablesMap = Object.fromEntries(membership.variables.map(it => [it.name, it.values]));
10
10
  return Object.entries(roleVariables).map(([name, def]) => {
11
- var _a;
12
11
  const prefixed = (0, exports.prefixVariable)(membership.role, name);
13
- switch (def.type) {
14
- case schema_1.Acl.VariableType.entity:
15
- return [prefixed, (_a = membershipVariablesMap[name]) !== null && _a !== void 0 ? _a : []];
16
- case schema_1.Acl.VariableType.predefined:
17
- switch (def.value) {
18
- case 'identityID':
19
- return [prefixed, [identity.identityId]];
20
- case 'personID':
21
- return [prefixed, identity.personId ? [identity.personId] : []];
22
- }
23
- }
12
+ const value = (() => {
13
+ var _a, _b;
14
+ switch (def.type) {
15
+ case schema_1.Acl.VariableType.entity:
16
+ return (_a = membershipVariablesMap[name]) !== null && _a !== void 0 ? _a : [];
17
+ case schema_1.Acl.VariableType.predefined:
18
+ switch (def.value) {
19
+ case 'identityID':
20
+ return [identity.identityId];
21
+ case 'personID':
22
+ return identity.personId ? [identity.personId] : [];
23
+ }
24
+ throw new Error(`Unknown predefined variable ${def.value}`);
25
+ case schema_1.Acl.VariableType.condition:
26
+ return ((_b = membershipVariablesMap[name]) !== null && _b !== void 0 ? _b : []).map(it => JSON.parse(it));
27
+ }
28
+ })();
29
+ return [prefixed, { value: value, definition: def }];
24
30
  });
25
31
  });
26
32
  return Object.fromEntries(variablesEntries);
@@ -1 +1 @@
1
- {"version":3,"file":"VariableUtils.js","sourceRoot":"","sources":["../../../src/acl/VariableUtils.ts"],"names":[],"mappings":";;;AAAA,8CAAuC;AACvC,0DAA0D;AAInD,MAAM,kBAAkB,GAAG,CACjC,SAAqB,EACrB,QAIC,EACkB,EAAE;IAErB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CACpD,UAAU,CAAC,EAAE;QACZ,MAAM,aAAa,GAAG,IAAA,+BAAgB,EAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAClE,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAEvG,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;;YACxD,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAEtD,QAAQ,GAAG,CAAC,IAAI,EAAE;gBACjB,KAAK,YAAG,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,CAAC,QAAQ,EAAE,MAAA,sBAAsB,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAA;gBACtD,KAAK,YAAG,CAAC,YAAY,CAAC,UAAU;oBAC/B,QAAQ,GAAG,CAAC,KAAK,EAAE;wBAClB,KAAK,YAAY;4BAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;wBACzC,KAAK,UAAU;4BACd,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;qBAChE;aACF;QACF,CAAC,CAAC,CAAA;IACH,CAAC,CACD,CAAA;IAED,OAAO,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;AAC5C,CAAC,CAAA;AAjCY,QAAA,kBAAkB,sBAiC9B;AAEM,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,YAAY,EAAE,CAAA;AAAnF,QAAA,cAAc,kBAAqE"}
1
+ {"version":3,"file":"VariableUtils.js","sourceRoot":"","sources":["../../../src/acl/VariableUtils.ts"],"names":[],"mappings":";;;AAAA,8CAAuC;AACvC,0DAA0D;AAInD,MAAM,kBAAkB,GAAG,CACjC,SAAqB,EACrB,QAIC,EACkB,EAAE;IAErB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CACpD,UAAU,CAAC,EAAE;QACZ,MAAM,aAAa,GAAG,IAAA,+BAAgB,EAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAClE,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAEvG,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAkC,EAAE;YACxF,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACtD,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE;;gBACnB,QAAQ,GAAG,CAAC,IAAI,EAAE;oBACjB,KAAK,YAAG,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,MAAA,sBAAsB,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAA;oBAC1C,KAAK,YAAG,CAAC,YAAY,CAAC,UAAU;wBAC/B,QAAQ,GAAG,CAAC,KAAK,EAAE;4BAClB,KAAK,YAAY;gCAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;4BAC7B,KAAK,UAAU;gCACd,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;yBACpD;wBACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;oBAC5D,KAAK,YAAG,CAAC,YAAY,CAAC,SAAS;wBAC9B,OAAO,CAAC,MAAA,sBAAsB,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;iBACtE;YACF,CAAC,CAAC,EAAE,CAAA;YACJ,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;IACH,CAAC,CACD,CAAA;IAED,OAAO,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;AAC5C,CAAC,CAAA;AAtCY,QAAA,kBAAkB,sBAsC9B;AAEM,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,YAAoB,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,YAAY,EAAE,CAAA;AAAnF,QAAA,cAAc,kBAAqE"}