@contember/engine-content-api 1.3.0-alpha.6 → 1.3.0-alpha.8
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/ExecutionContainer.d.ts +5 -2
- package/dist/src/ExecutionContainer.d.ts.map +1 -1
- package/dist/src/ExecutionContainer.js +7 -6
- package/dist/src/ExecutionContainer.js.map +1 -1
- package/dist/src/acl/PermissionFactory.d.ts +5 -4
- package/dist/src/acl/PermissionFactory.d.ts.map +1 -1
- package/dist/src/acl/PermissionFactory.js +10 -13
- package/dist/src/acl/PermissionFactory.js.map +1 -1
- package/dist/src/acl/index.d.ts +0 -1
- package/dist/src/acl/index.d.ts.map +1 -1
- package/dist/src/acl/index.js +0 -1
- package/dist/src/acl/index.js.map +1 -1
- package/dist/src/mapper/ErrorUtils.d.ts +3 -2
- package/dist/src/mapper/ErrorUtils.d.ts.map +1 -1
- package/dist/src/mapper/ErrorUtils.js +55 -35
- package/dist/src/mapper/ErrorUtils.js.map +1 -1
- package/dist/src/mapper/Mapper.d.ts +3 -1
- package/dist/src/mapper/Mapper.d.ts.map +1 -1
- package/dist/src/mapper/Mapper.js +9 -6
- package/dist/src/mapper/Mapper.js.map +1 -1
- package/dist/src/mapper/MapperFactory.d.ts +3 -2
- package/dist/src/mapper/MapperFactory.d.ts.map +1 -1
- package/dist/src/mapper/MapperFactory.js +3 -2
- package/dist/src/mapper/MapperFactory.js.map +1 -1
- package/dist/src/mapper/Result.d.ts +2 -1
- package/dist/src/mapper/Result.d.ts.map +1 -1
- package/dist/src/mapper/Result.js +2 -2
- package/dist/src/mapper/Result.js.map +1 -1
- package/dist/src/mapper/insert/Inserter.d.ts +3 -2
- package/dist/src/mapper/insert/Inserter.d.ts.map +1 -1
- package/dist/src/mapper/insert/Inserter.js +4 -3
- package/dist/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/src/mapper/update/Updater.d.ts +3 -1
- package/dist/src/mapper/update/Updater.d.ts.map +1 -1
- package/dist/src/mapper/update/Updater.js +3 -2
- package/dist/src/mapper/update/Updater.js.map +1 -1
- package/dist/src/resolvers/MutationResolver.d.ts +3 -1
- package/dist/src/resolvers/MutationResolver.d.ts.map +1 -1
- package/dist/src/resolvers/MutationResolver.js +3 -2
- package/dist/src/resolvers/MutationResolver.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +0 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +0 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/uniqueWhereFields.js +1 -1
- package/dist/src/utils/uniqueWhereFields.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.js +91 -0
- package/dist/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.js.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.js +1 -1
- package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.js.map +1 -1
- package/dist/tests/cases/unit/orderbyHelper.test.js +2 -2
- package/dist/tests/cases/unit/permissionMerger.test.js +8 -3
- package/dist/tests/cases/unit/permissionMerger.test.js.map +1 -1
- package/dist/tests/cases/unit/predicatesInjector.test.js +1 -1
- package/dist/tests/cases/unit/predicatesInjector.test.js.map +1 -1
- package/dist/tests/src/test.d.ts.map +1 -1
- package/dist/tests/src/test.js +1 -0
- package/dist/tests/src/test.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/src/ExecutionContainer.ts +13 -9
- package/src/acl/PermissionFactory.ts +15 -13
- package/src/acl/index.ts +0 -1
- package/src/mapper/ErrorUtils.ts +66 -41
- package/src/mapper/Mapper.ts +9 -6
- package/src/mapper/MapperFactory.ts +3 -1
- package/src/mapper/Result.ts +3 -1
- package/src/mapper/insert/Inserter.ts +4 -4
- package/src/mapper/update/Updater.ts +3 -2
- package/src/resolvers/MutationResolver.ts +3 -1
- package/src/types.ts +1 -1
- package/src/utils/index.ts +0 -1
- package/src/utils/uniqueWhereFields.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.ts +77 -0
- package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +1 -1
- package/tests/cases/unit/orderbyHelper.test.ts +2 -2
- package/tests/cases/unit/permissionMerger.test.ts +9 -4
- package/tests/cases/unit/predicatesInjector.test.ts +1 -1
- package/tests/src/test.ts +2 -1
- package/dist/src/acl/PermissionsByIdentityFactory.d.ts +0 -12
- package/dist/src/acl/PermissionsByIdentityFactory.d.ts.map +0 -1
- package/dist/src/acl/PermissionsByIdentityFactory.js +0 -15
- package/dist/src/acl/PermissionsByIdentityFactory.js.map +0 -1
- package/dist/src/utils/arrays.d.ts +0 -3
- package/dist/src/utils/arrays.d.ts.map +0 -1
- package/dist/src/utils/arrays.js +0 -22
- package/dist/src/utils/arrays.js.map +0 -1
- package/src/acl/PermissionsByIdentityFactory.ts +0 -21
- package/src/utils/arrays.ts +0 -19
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Acl, Model } from '@contember/schema'
|
|
2
2
|
import { PermissionFactory } from '../../../src/acl'
|
|
3
3
|
import { SchemaBuilder } from '@contember/schema-definition'
|
|
4
|
-
import { describe, it
|
|
4
|
+
import { assert, describe, it } from 'vitest'
|
|
5
|
+
import { emptySchema } from '@contember/schema-utils'
|
|
5
6
|
|
|
6
7
|
interface Test {
|
|
7
8
|
acl: Acl.Schema
|
|
@@ -10,13 +11,17 @@ interface Test {
|
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
const execute = (test: Test) => {
|
|
13
|
-
const
|
|
14
|
+
const model: Model.Schema = new SchemaBuilder()
|
|
14
15
|
.entity('Entity1', e => e.column('lorem').column('bar'))
|
|
15
16
|
.entity('Entity2', e => e.oneHasOne('xyz', r => r.target('Entity1')))
|
|
16
17
|
.buildSchema()
|
|
17
|
-
const merger = new PermissionFactory(
|
|
18
|
+
const merger = new PermissionFactory()
|
|
18
19
|
const initialAcl = JSON.parse(JSON.stringify(test.acl))
|
|
19
|
-
const result = merger.create(
|
|
20
|
+
const result = merger.create({
|
|
21
|
+
...emptySchema,
|
|
22
|
+
model,
|
|
23
|
+
acl: test.acl,
|
|
24
|
+
}, test.roles)
|
|
20
25
|
assert.deepStrictEqual(result, test.result)
|
|
21
26
|
assert.deepStrictEqual(test.acl, initialAcl)
|
|
22
27
|
}
|
|
@@ -160,7 +160,7 @@ namespace DeepFilterModel {
|
|
|
160
160
|
|
|
161
161
|
describe('predicates injector elimination', () => {
|
|
162
162
|
const schema = createSchema(DeepFilterModel)
|
|
163
|
-
const permissions = new PermissionFactory(
|
|
163
|
+
const permissions = new PermissionFactory().create(schema, ['reader'])
|
|
164
164
|
|
|
165
165
|
const injector = new PredicatesInjector(
|
|
166
166
|
schema.model,
|
package/tests/src/test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Acl, Model, Schema, Validation } from '@contember/schema'
|
|
2
2
|
import { Authorizator, GraphQlSchemaBuilderFactory, ExecutionContainerFactory } from '../../src'
|
|
3
|
-
import { AllowAllPermissionFactory, emptySchema } from '@contember/schema-utils'
|
|
3
|
+
import { AllowAllPermissionFactory, dummySchemaDatabaseMetadata, emptySchema } from '@contember/schema-utils'
|
|
4
4
|
import { executeGraphQlTest } from './testGraphql'
|
|
5
5
|
import { Client } from '@contember/database'
|
|
6
6
|
import { createConnectionMock } from '@contember/database-tester'
|
|
@@ -111,6 +111,7 @@ export const execute = async (test: Test) => {
|
|
|
111
111
|
systemSchema: 'system',
|
|
112
112
|
stage: { id: '00000000-0000-0000-0000-000000000000', slug: 'live' },
|
|
113
113
|
project: { slug: 'test' },
|
|
114
|
+
schemaDatabaseMetadata: dummySchemaDatabaseMetadata,
|
|
114
115
|
}),
|
|
115
116
|
timer: (label: any, cb: any) => cb(),
|
|
116
117
|
},
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Acl, Schema } from '@contember/schema';
|
|
2
|
-
export declare class PermissionsByIdentityFactory {
|
|
3
|
-
createPermissions(schema: Schema, identity: Identity): PermissionResult;
|
|
4
|
-
}
|
|
5
|
-
export interface Identity {
|
|
6
|
-
projectRoles: string[];
|
|
7
|
-
}
|
|
8
|
-
export interface PermissionResult {
|
|
9
|
-
permissions: Acl.Permissions;
|
|
10
|
-
verifier: (identity: Identity) => boolean;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=PermissionsByIdentityFactory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionsByIdentityFactory.d.ts","sourceRoot":"","sources":["../../../src/acl/PermissionsByIdentityFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,qBAAa,4BAA4B;IACjC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB;CAM9E;AAED,MAAM,WAAW,QAAQ;IACxB,YAAY,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,gBAAgB;IAChC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAA;IAC5B,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAA;CACzC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PermissionsByIdentityFactory = void 0;
|
|
4
|
-
const PermissionFactory_1 = require("./PermissionFactory");
|
|
5
|
-
const utils_1 = require("../utils");
|
|
6
|
-
class PermissionsByIdentityFactory {
|
|
7
|
-
createPermissions(schema, identity) {
|
|
8
|
-
return {
|
|
9
|
-
permissions: new PermissionFactory_1.PermissionFactory(schema.model).create(schema.acl, identity.projectRoles),
|
|
10
|
-
verifier: otherIdentity => (0, utils_1.arrayEquals)(identity.projectRoles, otherIdentity.projectRoles),
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.PermissionsByIdentityFactory = PermissionsByIdentityFactory;
|
|
15
|
-
//# sourceMappingURL=PermissionsByIdentityFactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionsByIdentityFactory.js","sourceRoot":"","sources":["../../../src/acl/PermissionsByIdentityFactory.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AACvD,oCAAsC;AAGtC,MAAa,4BAA4B;IACjC,iBAAiB,CAAC,MAAc,EAAE,QAAkB;QAC1D,OAAO;YACN,WAAW,EAAE,IAAI,qCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC;YAC1F,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,IAAA,mBAAW,EAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC;SACzF,CAAA;IACF,CAAC;CACD;AAPD,oEAOC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../../src/utils/arrays.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,WAAW,MAAO,OAAO,EAAE,GAAG,IAAI,KAAK,OAAO,EAAE,GAAG,IAAI,KAAG,OAgB/D,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/src/utils/arrays.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.arrayEquals = void 0;
|
|
4
|
-
const arrayEquals = (a, b) => {
|
|
5
|
-
if (a === b) {
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
if (a === null || b === null) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
if (a.length !== b.length) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
for (let i = 0; i < a.length; ++i) {
|
|
15
|
-
if (a[i] !== b[i]) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return true;
|
|
20
|
-
};
|
|
21
|
-
exports.arrayEquals = arrayEquals;
|
|
22
|
-
//# sourceMappingURL=arrays.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../../src/utils/arrays.ts"],"names":[],"mappings":";;;AAAA,MAAM,WAAW,GAAG,CAAC,CAAmB,EAAE,CAAmB,EAAW,EAAE;IACzE,IAAI,CAAC,KAAK,CAAC,EAAE;QACZ,OAAO,IAAI,CAAA;KACX;IACD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,KAAK,CAAA;KACZ;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAA;KACZ;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAClB,OAAO,KAAK,CAAA;SACZ;KACD;IACD,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAEQ,kCAAW"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { PermissionFactory } from './PermissionFactory'
|
|
2
|
-
import { arrayEquals } from '../utils'
|
|
3
|
-
import { Acl, Schema } from '@contember/schema'
|
|
4
|
-
|
|
5
|
-
export class PermissionsByIdentityFactory {
|
|
6
|
-
public createPermissions(schema: Schema, identity: Identity): PermissionResult {
|
|
7
|
-
return {
|
|
8
|
-
permissions: new PermissionFactory(schema.model).create(schema.acl, identity.projectRoles),
|
|
9
|
-
verifier: otherIdentity => arrayEquals(identity.projectRoles, otherIdentity.projectRoles),
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface Identity {
|
|
15
|
-
projectRoles: string[]
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface PermissionResult {
|
|
19
|
-
permissions: Acl.Permissions
|
|
20
|
-
verifier: (identity: Identity) => boolean
|
|
21
|
-
}
|
package/src/utils/arrays.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const arrayEquals = (a: unknown[] | null, b: unknown[] | null): boolean => {
|
|
2
|
-
if (a === b) {
|
|
3
|
-
return true
|
|
4
|
-
}
|
|
5
|
-
if (a === null || b === null) {
|
|
6
|
-
return false
|
|
7
|
-
}
|
|
8
|
-
if (a.length !== b.length) {
|
|
9
|
-
return false
|
|
10
|
-
}
|
|
11
|
-
for (let i = 0; i < a.length; ++i) {
|
|
12
|
-
if (a[i] !== b[i]) {
|
|
13
|
-
return false
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return true
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { arrayEquals }
|