@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.
Files changed (94) hide show
  1. package/dist/src/ExecutionContainer.d.ts +5 -2
  2. package/dist/src/ExecutionContainer.d.ts.map +1 -1
  3. package/dist/src/ExecutionContainer.js +7 -6
  4. package/dist/src/ExecutionContainer.js.map +1 -1
  5. package/dist/src/acl/PermissionFactory.d.ts +5 -4
  6. package/dist/src/acl/PermissionFactory.d.ts.map +1 -1
  7. package/dist/src/acl/PermissionFactory.js +10 -13
  8. package/dist/src/acl/PermissionFactory.js.map +1 -1
  9. package/dist/src/acl/index.d.ts +0 -1
  10. package/dist/src/acl/index.d.ts.map +1 -1
  11. package/dist/src/acl/index.js +0 -1
  12. package/dist/src/acl/index.js.map +1 -1
  13. package/dist/src/mapper/ErrorUtils.d.ts +3 -2
  14. package/dist/src/mapper/ErrorUtils.d.ts.map +1 -1
  15. package/dist/src/mapper/ErrorUtils.js +55 -35
  16. package/dist/src/mapper/ErrorUtils.js.map +1 -1
  17. package/dist/src/mapper/Mapper.d.ts +3 -1
  18. package/dist/src/mapper/Mapper.d.ts.map +1 -1
  19. package/dist/src/mapper/Mapper.js +9 -6
  20. package/dist/src/mapper/Mapper.js.map +1 -1
  21. package/dist/src/mapper/MapperFactory.d.ts +3 -2
  22. package/dist/src/mapper/MapperFactory.d.ts.map +1 -1
  23. package/dist/src/mapper/MapperFactory.js +3 -2
  24. package/dist/src/mapper/MapperFactory.js.map +1 -1
  25. package/dist/src/mapper/Result.d.ts +2 -1
  26. package/dist/src/mapper/Result.d.ts.map +1 -1
  27. package/dist/src/mapper/Result.js +2 -2
  28. package/dist/src/mapper/Result.js.map +1 -1
  29. package/dist/src/mapper/insert/Inserter.d.ts +3 -2
  30. package/dist/src/mapper/insert/Inserter.d.ts.map +1 -1
  31. package/dist/src/mapper/insert/Inserter.js +4 -3
  32. package/dist/src/mapper/insert/Inserter.js.map +1 -1
  33. package/dist/src/mapper/update/Updater.d.ts +3 -1
  34. package/dist/src/mapper/update/Updater.d.ts.map +1 -1
  35. package/dist/src/mapper/update/Updater.js +3 -2
  36. package/dist/src/mapper/update/Updater.js.map +1 -1
  37. package/dist/src/resolvers/MutationResolver.d.ts +3 -1
  38. package/dist/src/resolvers/MutationResolver.d.ts.map +1 -1
  39. package/dist/src/resolvers/MutationResolver.js +3 -2
  40. package/dist/src/resolvers/MutationResolver.js.map +1 -1
  41. package/dist/src/tsconfig.tsbuildinfo +1 -1
  42. package/dist/src/types.d.ts +1 -1
  43. package/dist/src/types.d.ts.map +1 -1
  44. package/dist/src/utils/index.d.ts +0 -1
  45. package/dist/src/utils/index.d.ts.map +1 -1
  46. package/dist/src/utils/index.js +0 -1
  47. package/dist/src/utils/index.js.map +1 -1
  48. package/dist/src/utils/uniqueWhereFields.js +1 -1
  49. package/dist/src/utils/uniqueWhereFields.js.map +1 -1
  50. package/dist/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.d.ts +2 -0
  51. package/dist/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.d.ts.map +1 -0
  52. package/dist/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.js +91 -0
  53. package/dist/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.js.map +1 -0
  54. package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.js +1 -1
  55. package/dist/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.js.map +1 -1
  56. package/dist/tests/cases/unit/orderbyHelper.test.js +2 -2
  57. package/dist/tests/cases/unit/permissionMerger.test.js +8 -3
  58. package/dist/tests/cases/unit/permissionMerger.test.js.map +1 -1
  59. package/dist/tests/cases/unit/predicatesInjector.test.js +1 -1
  60. package/dist/tests/cases/unit/predicatesInjector.test.js.map +1 -1
  61. package/dist/tests/src/test.d.ts.map +1 -1
  62. package/dist/tests/src/test.js +1 -0
  63. package/dist/tests/src/test.js.map +1 -1
  64. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  65. package/package.json +11 -11
  66. package/src/ExecutionContainer.ts +13 -9
  67. package/src/acl/PermissionFactory.ts +15 -13
  68. package/src/acl/index.ts +0 -1
  69. package/src/mapper/ErrorUtils.ts +66 -41
  70. package/src/mapper/Mapper.ts +9 -6
  71. package/src/mapper/MapperFactory.ts +3 -1
  72. package/src/mapper/Result.ts +3 -1
  73. package/src/mapper/insert/Inserter.ts +4 -4
  74. package/src/mapper/update/Updater.ts +3 -2
  75. package/src/resolvers/MutationResolver.ts +3 -1
  76. package/src/types.ts +1 -1
  77. package/src/utils/index.ts +0 -1
  78. package/src/utils/uniqueWhereFields.ts +1 -1
  79. package/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.ts +77 -0
  80. package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +1 -1
  81. package/tests/cases/unit/orderbyHelper.test.ts +2 -2
  82. package/tests/cases/unit/permissionMerger.test.ts +9 -4
  83. package/tests/cases/unit/predicatesInjector.test.ts +1 -1
  84. package/tests/src/test.ts +2 -1
  85. package/dist/src/acl/PermissionsByIdentityFactory.d.ts +0 -12
  86. package/dist/src/acl/PermissionsByIdentityFactory.d.ts.map +0 -1
  87. package/dist/src/acl/PermissionsByIdentityFactory.js +0 -15
  88. package/dist/src/acl/PermissionsByIdentityFactory.js.map +0 -1
  89. package/dist/src/utils/arrays.d.ts +0 -3
  90. package/dist/src/utils/arrays.d.ts.map +0 -1
  91. package/dist/src/utils/arrays.js +0 -22
  92. package/dist/src/utils/arrays.js.map +0 -1
  93. package/src/acl/PermissionsByIdentityFactory.ts +0 -21
  94. package/src/utils/arrays.ts +0 -19
@@ -9,9 +9,9 @@ const entity: Model.Entity = {
9
9
  primaryColumn: 'id',
10
10
  tableName: 'foo',
11
11
  fields: {},
12
- unique: {},
12
+ unique: [],
13
13
  eventLog: { enabled: true },
14
- indexes: {},
14
+ indexes: [],
15
15
  }
16
16
 
17
17
  describe('order by helper', () => {
@@ -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, assert } from 'vitest'
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 schema: Model.Schema = new SchemaBuilder()
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(schema)
18
+ const merger = new PermissionFactory()
18
19
  const initialAcl = JSON.parse(JSON.stringify(test.acl))
19
- const result = merger.create(test.acl, test.roles)
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(schema.model).create(schema.acl, ['reader'])
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,3 +0,0 @@
1
- declare const arrayEquals: (a: unknown[] | null, b: unknown[] | null) => boolean;
2
- export { arrayEquals };
3
- //# sourceMappingURL=arrays.d.ts.map
@@ -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"}
@@ -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
- }
@@ -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 }