@contember/schema-definition 1.1.0-alpha.7 → 1.1.0-beta.1
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/{EntityPermissionsBuilder.d.ts → builder/EntityPermissionsBuilder.d.ts} +1 -1
- package/dist/src/acl/builder/EntityPermissionsBuilder.d.ts.map +1 -0
- package/dist/src/acl/{EntityPermissionsBuilder.js → builder/EntityPermissionsBuilder.js} +1 -1
- package/dist/src/acl/builder/EntityPermissionsBuilder.js.map +1 -0
- package/dist/src/acl/{EntitySelector.d.ts → builder/EntitySelector.d.ts} +0 -0
- package/dist/src/acl/builder/EntitySelector.d.ts.map +1 -0
- package/dist/src/acl/{EntitySelector.js → builder/EntitySelector.js} +0 -0
- package/dist/src/acl/builder/EntitySelector.js.map +1 -0
- package/dist/src/acl/{FieldPermissionsBuilder.d.ts → builder/FieldPermissionsBuilder.d.ts} +1 -1
- package/dist/src/acl/builder/FieldPermissionsBuilder.d.ts.map +1 -0
- package/dist/src/acl/{FieldPermissionsBuilder.js → builder/FieldPermissionsBuilder.js} +0 -0
- package/dist/src/acl/builder/FieldPermissionsBuilder.js.map +1 -0
- package/dist/src/acl/{FieldSelector.d.ts → builder/FieldSelector.d.ts} +0 -0
- package/dist/src/acl/builder/FieldSelector.d.ts.map +1 -0
- package/dist/src/acl/{FieldSelector.js → builder/FieldSelector.js} +0 -0
- package/dist/src/acl/builder/FieldSelector.js.map +1 -0
- package/dist/src/acl/{PermissionOverrider.d.ts → builder/PermissionOverrider.d.ts} +0 -0
- package/dist/src/acl/builder/PermissionOverrider.d.ts.map +1 -0
- package/dist/src/acl/{PermissionOverrider.js → builder/PermissionOverrider.js} +1 -1
- package/dist/src/acl/builder/PermissionOverrider.js.map +1 -0
- package/dist/src/acl/{PermissionsBuilder.d.ts → builder/PermissionsBuilder.d.ts} +1 -1
- package/dist/src/acl/builder/PermissionsBuilder.d.ts.map +1 -0
- package/dist/src/acl/{PermissionsBuilder.js → builder/PermissionsBuilder.js} +3 -1
- package/dist/src/acl/builder/PermissionsBuilder.js.map +1 -0
- package/dist/src/acl/{PredicateReference.d.ts → builder/PredicateReference.d.ts} +0 -0
- package/dist/src/acl/builder/PredicateReference.d.ts.map +1 -0
- package/dist/src/acl/{PredicateReference.js → builder/PredicateReference.js} +0 -0
- package/dist/src/acl/builder/PredicateReference.js.map +1 -0
- package/dist/src/acl/definition/customPrimary.d.ts +4 -0
- package/dist/src/acl/definition/customPrimary.d.ts.map +1 -0
- package/dist/src/acl/definition/customPrimary.js +16 -0
- package/dist/src/acl/definition/customPrimary.js.map +1 -0
- package/dist/src/acl/definition/index.d.ts +8 -0
- package/dist/src/acl/definition/index.d.ts.map +1 -0
- package/dist/src/acl/definition/index.js +29 -0
- package/dist/src/acl/definition/index.js.map +1 -0
- package/dist/src/acl/definition/internal/AclFactory.d.ts +18 -0
- package/dist/src/acl/definition/internal/AclFactory.d.ts.map +1 -0
- package/dist/src/acl/definition/internal/AclFactory.js +112 -0
- package/dist/src/acl/definition/internal/AclFactory.js.map +1 -0
- package/dist/src/acl/definition/internal/EntityPredicateResolver.d.ts +16 -0
- package/dist/src/acl/definition/internal/EntityPredicateResolver.d.ts.map +1 -0
- package/dist/src/acl/definition/internal/EntityPredicateResolver.js +130 -0
- package/dist/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -0
- package/dist/src/acl/definition/internal/MetadataStore.d.ts +7 -0
- package/dist/src/acl/definition/internal/MetadataStore.d.ts.map +1 -0
- package/dist/src/acl/definition/internal/MetadataStore.js +22 -0
- package/dist/src/acl/definition/internal/MetadataStore.js.map +1 -0
- package/dist/src/acl/definition/internal/createPredicateName.d.ts +3 -0
- package/dist/src/acl/definition/internal/createPredicateName.d.ts.map +1 -0
- package/dist/src/acl/definition/internal/createPredicateName.js +9 -0
- package/dist/src/acl/definition/internal/createPredicateName.js.map +1 -0
- package/dist/src/acl/definition/internal/stores.d.ts +9 -0
- package/dist/src/acl/definition/internal/stores.d.ts.map +1 -0
- package/dist/src/acl/definition/internal/stores.js +8 -0
- package/dist/src/acl/definition/internal/stores.js.map +1 -0
- package/dist/src/acl/definition/permissions.d.ts +17 -0
- package/dist/src/acl/definition/permissions.d.ts.map +1 -0
- package/dist/src/acl/definition/permissions.js +13 -0
- package/dist/src/acl/definition/permissions.js.map +1 -0
- package/dist/src/acl/definition/references.d.ts +10 -0
- package/dist/src/acl/definition/references.d.ts.map +1 -0
- package/dist/src/acl/definition/references.js +27 -0
- package/dist/src/acl/definition/references.js.map +1 -0
- package/dist/src/acl/definition/roles.d.ts +13 -0
- package/dist/src/acl/definition/roles.d.ts.map +1 -0
- package/dist/src/acl/definition/roles.js +15 -0
- package/dist/src/acl/definition/roles.js.map +1 -0
- package/dist/src/acl/definition/variables.d.ts +11 -0
- package/dist/src/acl/definition/variables.d.ts.map +1 -0
- package/dist/src/acl/definition/variables.js +17 -0
- package/dist/src/acl/definition/variables.js.map +1 -0
- package/dist/src/createSchema.d.ts +3 -0
- package/dist/src/createSchema.d.ts.map +1 -0
- package/dist/src/createSchema.js +15 -0
- package/dist/src/createSchema.js.map +1 -0
- package/dist/src/index.d.ts +5 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/model/definition/index.d.ts +2 -2
- package/dist/src/model/definition/index.d.ts.map +1 -1
- package/dist/src/model/definition/index.js +2 -1
- package/dist/src/model/definition/index.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/filterEntityDefinition.d.ts +4 -0
- package/dist/src/utils/filterEntityDefinition.d.ts.map +1 -0
- package/dist/src/utils/filterEntityDefinition.js +11 -0
- package/dist/src/utils/filterEntityDefinition.js.map +1 -0
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +1 -0
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/validation/index.d.ts +1 -4
- package/dist/src/validation/index.d.ts.map +1 -1
- package/dist/src/validation/index.js +2 -3
- package/dist/src/validation/index.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -0
- package/dist/tests/unit/readAclDefinitions.test.d.ts +2 -0
- package/dist/tests/unit/readAclDefinitions.test.d.ts.map +1 -0
- package/dist/tests/unit/readAclDefinitions.test.js +449 -0
- package/dist/tests/unit/readAclDefinitions.test.js.map +1 -0
- package/package.json +4 -4
- package/src/acl/{EntityPermissionsBuilder.ts → builder/EntityPermissionsBuilder.ts} +2 -2
- package/src/acl/{EntitySelector.ts → builder/EntitySelector.ts} +0 -0
- package/src/acl/{FieldPermissionsBuilder.ts → builder/FieldPermissionsBuilder.ts} +1 -1
- package/src/acl/{FieldSelector.ts → builder/FieldSelector.ts} +0 -0
- package/src/acl/{PermissionOverrider.ts → builder/PermissionOverrider.ts} +1 -1
- package/src/acl/{PermissionsBuilder.ts → builder/PermissionsBuilder.ts} +1 -1
- package/src/acl/{PredicateReference.ts → builder/PredicateReference.ts} +0 -0
- package/src/acl/definition/customPrimary.ts +13 -0
- package/src/acl/definition/index.ts +16 -0
- package/src/acl/definition/internal/AclFactory.ts +130 -0
- package/src/acl/definition/internal/EntityPredicateResolver.ts +149 -0
- package/src/acl/definition/internal/MetadataStore.ts +23 -0
- package/src/acl/definition/internal/createPredicateName.ts +6 -0
- package/src/acl/definition/internal/stores.ts +13 -0
- package/src/acl/definition/permissions.ts +29 -0
- package/src/acl/definition/references.ts +21 -0
- package/src/acl/definition/roles.ts +19 -0
- package/src/acl/definition/variables.ts +27 -0
- package/src/createSchema.ts +12 -0
- package/src/index.ts +5 -5
- package/src/model/definition/index.ts +4 -3
- package/src/utils/filterEntityDefinition.ts +8 -0
- package/src/utils/index.ts +1 -0
- package/src/validation/index.ts +3 -3
- package/tests/tsconfig.json +13 -0
- package/tests/unit/readAclDefinitions.test.ts +406 -0
- package/tsconfig.json +4 -1
- package/dist/src/acl/EntityPermissionsBuilder.d.ts.map +0 -1
- package/dist/src/acl/EntityPermissionsBuilder.js.map +0 -1
- package/dist/src/acl/EntitySelector.d.ts.map +0 -1
- package/dist/src/acl/EntitySelector.js.map +0 -1
- package/dist/src/acl/FieldPermissionsBuilder.d.ts.map +0 -1
- package/dist/src/acl/FieldPermissionsBuilder.js.map +0 -1
- package/dist/src/acl/FieldSelector.d.ts.map +0 -1
- package/dist/src/acl/FieldSelector.js.map +0 -1
- package/dist/src/acl/PermissionOverrider.d.ts.map +0 -1
- package/dist/src/acl/PermissionOverrider.js.map +0 -1
- package/dist/src/acl/PermissionsBuilder.d.ts.map +0 -1
- package/dist/src/acl/PermissionsBuilder.js.map +0 -1
- package/dist/src/acl/PredicateReference.d.ts.map +0 -1
- package/dist/src/acl/PredicateReference.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPredicateName.d.ts","sourceRoot":"","sources":["../../../../../src/acl/definition/internal/createPredicateName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,eAAO,MAAM,mBAAmB,SAAU,cAAc,WAGvD,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPredicateName = void 0;
|
|
4
|
+
const createPredicateName = (when) => {
|
|
5
|
+
const json = JSON.stringify(when);
|
|
6
|
+
return json.replace(/[^A-Za-z0-9]+/g, '_').slice(0, 30).replace(/^_|_$/g, '');
|
|
7
|
+
};
|
|
8
|
+
exports.createPredicateName = createPredicateName;
|
|
9
|
+
//# sourceMappingURL=createPredicateName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPredicateName.js","sourceRoot":"","sources":["../../../../../src/acl/definition/internal/createPredicateName.ts"],"names":[],"mappings":";;;AAEO,MAAM,mBAAmB,GAAG,CAAC,IAAoB,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC9E,CAAC,CAAA;AAHY,QAAA,mBAAmB,uBAG/B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Role } from '../roles';
|
|
2
|
+
import { AllowDefinition } from '../permissions';
|
|
3
|
+
export declare const allowCustomPrimaryStore: import("./MetadataStore").MetadataStore<Role<string>[]>;
|
|
4
|
+
export declare const allowCustomPrimaryAllRolesStore: import("./MetadataStore").MetadataStore<boolean>;
|
|
5
|
+
export declare type EntityPermissionsDefinition = AllowDefinition<any> & {
|
|
6
|
+
role: Role<string>;
|
|
7
|
+
};
|
|
8
|
+
export declare const allowDefinitionsStore: import("./MetadataStore").MetadataStore<EntityPermissionsDefinition[]>;
|
|
9
|
+
//# sourceMappingURL=stores.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../../../src/acl/definition/internal/stores.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,eAAO,MAAM,uBAAuB,yDAAkC,CAAA;AACtE,eAAO,MAAM,+BAA+B,kDAAsC,CAAA;AAElF,oBAAY,2BAA2B,GACpC,eAAe,CAAC,GAAG,CAAC,GACpB;IACD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;CAClB,CAAA;AACF,eAAO,MAAM,qBAAqB,wEAAyD,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allowDefinitionsStore = exports.allowCustomPrimaryAllRolesStore = exports.allowCustomPrimaryStore = void 0;
|
|
4
|
+
const MetadataStore_1 = require("./MetadataStore");
|
|
5
|
+
exports.allowCustomPrimaryStore = (0, MetadataStore_1.createMetadataStore)([]);
|
|
6
|
+
exports.allowCustomPrimaryAllRolesStore = (0, MetadataStore_1.createMetadataStore)(false);
|
|
7
|
+
exports.allowDefinitionsStore = (0, MetadataStore_1.createMetadataStore)([]);
|
|
8
|
+
//# sourceMappingURL=stores.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../../../src/acl/definition/internal/stores.ts"],"names":[],"mappings":";;;AAAA,mDAAqD;AAIxC,QAAA,uBAAuB,GAAG,IAAA,mCAAmB,EAAS,EAAE,CAAC,CAAA;AACzD,QAAA,+BAA+B,GAAG,IAAA,mCAAmB,EAAU,KAAK,CAAC,CAAA;AAOrE,QAAA,qBAAqB,GAAG,IAAA,mCAAmB,EAAgC,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Acl } from '@contember/schema';
|
|
2
|
+
import { Role } from './roles';
|
|
3
|
+
import { VariableDefinition } from './variables';
|
|
4
|
+
import { PredicateEvaluationReference } from './references';
|
|
5
|
+
import { DecoratorFunction } from '../../model/definition/types';
|
|
6
|
+
export declare type PredicateExtra = PredicateEvaluationReference | VariableDefinition;
|
|
7
|
+
export declare type WhenDefinition = Acl.PredicateDefinition<PredicateExtra>;
|
|
8
|
+
export interface AllowDefinition<E> {
|
|
9
|
+
when?: WhenDefinition;
|
|
10
|
+
name?: string;
|
|
11
|
+
create?: true | (keyof E)[];
|
|
12
|
+
update?: true | (keyof E)[];
|
|
13
|
+
read?: true | (keyof E)[];
|
|
14
|
+
delete?: true;
|
|
15
|
+
}
|
|
16
|
+
export declare const allow: <E, R extends Role<string>>(role: R | R[], args: AllowDefinition<E>) => DecoratorFunction<E>;
|
|
17
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../src/acl/definition/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAqB,MAAM,8BAA8B,CAAA;AAEnF,oBAAY,cAAc,GAAG,4BAA4B,GAAG,kBAAkB,CAAA;AAC9E,oBAAY,cAAc,GAAG,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAA;AAEpE,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;IAC3B,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,IAAI,CAAA;CACb;AAED,eAAO,MAAM,KAAK,8FAMjB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allow = void 0;
|
|
4
|
+
const stores_1 = require("./internal/stores");
|
|
5
|
+
const allow = (role, args) => {
|
|
6
|
+
return (entity) => {
|
|
7
|
+
(Array.isArray(role) ? role : [role]).forEach(role => {
|
|
8
|
+
stores_1.allowDefinitionsStore.update(entity, val => [...val, { ...args, role }]);
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
exports.allow = allow;
|
|
13
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../src/acl/definition/permissions.ts"],"names":[],"mappings":";;;AAIA,8CAAyD;AAelD,MAAM,KAAK,GAAG,CAA4B,IAAa,EAAE,IAAwB,EAAwB,EAAE;IACjH,OAAO,CAAC,MAA4B,EAAE,EAAE;QACvC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpD,8BAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACzE,CAAC,CAAC,CAAA;IACH,CAAC,CAAA;AACF,CAAC,CAAA;AANY,QAAA,KAAK,SAMjB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class PredicateEvaluationReference {
|
|
2
|
+
readonly operation: 'update' | 'delete' | 'create' | 'read';
|
|
3
|
+
readonly field?: string | undefined;
|
|
4
|
+
constructor(operation: 'update' | 'delete' | 'create' | 'read', field?: string | undefined);
|
|
5
|
+
}
|
|
6
|
+
export declare const canUpdate: (field: string) => PredicateEvaluationReference;
|
|
7
|
+
export declare const canRead: (field: string) => PredicateEvaluationReference;
|
|
8
|
+
export declare const canCreate: (field: string) => PredicateEvaluationReference;
|
|
9
|
+
export declare const canDelete: () => PredicateEvaluationReference;
|
|
10
|
+
//# sourceMappingURL=references.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../../src/acl/definition/references.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA4B;aAEvB,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM;aAClD,KAAK,CAAC;gBADN,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAClD,KAAK,CAAC,oBAAQ;CAG/B;AAED,eAAO,MAAM,SAAS,UAAW,MAAM,iCAEtC,CAAA;AAED,eAAO,MAAM,OAAO,UAAW,MAAM,iCAEpC,CAAA;AACD,eAAO,MAAM,SAAS,UAAW,MAAM,iCAEtC,CAAA;AACD,eAAO,MAAM,SAAS,oCAErB,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canDelete = exports.canCreate = exports.canRead = exports.canUpdate = exports.PredicateEvaluationReference = void 0;
|
|
4
|
+
class PredicateEvaluationReference {
|
|
5
|
+
constructor(operation, field) {
|
|
6
|
+
this.operation = operation;
|
|
7
|
+
this.field = field;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.PredicateEvaluationReference = PredicateEvaluationReference;
|
|
11
|
+
const canUpdate = (field) => {
|
|
12
|
+
return new PredicateEvaluationReference('update', field);
|
|
13
|
+
};
|
|
14
|
+
exports.canUpdate = canUpdate;
|
|
15
|
+
const canRead = (field) => {
|
|
16
|
+
return new PredicateEvaluationReference('read', field);
|
|
17
|
+
};
|
|
18
|
+
exports.canRead = canRead;
|
|
19
|
+
const canCreate = (field) => {
|
|
20
|
+
return new PredicateEvaluationReference('create', field);
|
|
21
|
+
};
|
|
22
|
+
exports.canCreate = canCreate;
|
|
23
|
+
const canDelete = () => {
|
|
24
|
+
return new PredicateEvaluationReference('delete');
|
|
25
|
+
};
|
|
26
|
+
exports.canDelete = canDelete;
|
|
27
|
+
//# sourceMappingURL=references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../../../../src/acl/definition/references.ts"],"names":[],"mappings":";;;AAAA,MAAa,4BAA4B;IACxC,YACiB,SAAkD,EAClD,KAAc;QADd,cAAS,GAAT,SAAS,CAAyC;QAClD,UAAK,GAAL,KAAK,CAAS;IAE/B,CAAC;CACD;AAND,oEAMC;AAEM,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE;IAC1C,OAAO,IAAI,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACzD,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB;AAEM,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,OAAO,IAAI,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACvD,CAAC,CAAA;AAFY,QAAA,OAAO,WAEnB;AACM,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE;IAC1C,OAAO,IAAI,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACzD,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB;AACM,MAAM,SAAS,GAAG,GAAG,EAAE;IAC7B,OAAO,IAAI,4BAA4B,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Acl } from '@contember/schema';
|
|
2
|
+
export interface RoleOptions {
|
|
3
|
+
stages?: Acl.StagesDefinition;
|
|
4
|
+
tenant?: Acl.TenantPermissions;
|
|
5
|
+
system?: Acl.SystemPermissions;
|
|
6
|
+
}
|
|
7
|
+
export declare class Role<Name extends string = string> {
|
|
8
|
+
readonly name: Name;
|
|
9
|
+
readonly options: RoleOptions;
|
|
10
|
+
constructor(name: Name, options: RoleOptions);
|
|
11
|
+
}
|
|
12
|
+
export declare const createRole: <Name extends string>(name: Name, options?: RoleOptions) => Role<Name>;
|
|
13
|
+
//# sourceMappingURL=roles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../../src/acl/definition/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAEvC,MAAM,WAAW,WAAW;IAC3B,MAAM,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAA;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAA;IAC9B,MAAM,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAA;CAC9B;AAED,qBAAa,IAAI,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;aAE5B,IAAI,EAAE,IAAI;aACV,OAAO,EAAE,WAAW;gBADpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW;CAGrC;AAED,eAAO,MAAM,UAAU,8CAA8C,WAAW,eAE/E,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRole = exports.Role = void 0;
|
|
4
|
+
class Role {
|
|
5
|
+
constructor(name, options) {
|
|
6
|
+
this.name = name;
|
|
7
|
+
this.options = options;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.Role = Role;
|
|
11
|
+
const createRole = (name, options = {}) => {
|
|
12
|
+
return new Role(name, options);
|
|
13
|
+
};
|
|
14
|
+
exports.createRole = createRole;
|
|
15
|
+
//# sourceMappingURL=roles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../../src/acl/definition/roles.ts"],"names":[],"mappings":";;;AAQA,MAAa,IAAI;IAChB,YACiB,IAAU,EACV,OAAoB;QADpB,SAAI,GAAJ,IAAI,CAAM;QACV,YAAO,GAAP,OAAO,CAAa;IAErC,CAAC;CACD;AAND,oBAMC;AAEM,MAAM,UAAU,GAAG,CAAsB,IAAU,EAAE,UAAuB,EAAE,EAAc,EAAE;IACpG,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC/B,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Role } from './roles';
|
|
2
|
+
export declare class EntityVariableDefinition<Name extends string, Roles extends Role<string>> {
|
|
3
|
+
readonly name: Name;
|
|
4
|
+
readonly entityName: string;
|
|
5
|
+
readonly roles: Roles[];
|
|
6
|
+
readonly type: "entity";
|
|
7
|
+
constructor(name: Name, entityName: string, roles: Roles[]);
|
|
8
|
+
}
|
|
9
|
+
export declare type VariableDefinition = EntityVariableDefinition<string, Role<string>>;
|
|
10
|
+
export declare const createEntityVariable: <R extends Role<string>, Name extends string>(name: Name, entityName: string, roles: R | R[]) => EntityVariableDefinition<Name, R>;
|
|
11
|
+
//# sourceMappingURL=variables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../../src/acl/definition/variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,qBAAa,wBAAwB,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC;aAInE,IAAI,EAAE,IAAI;aACV,UAAU,EAAE,MAAM;aAClB,KAAK,EAAE,KAAK,EAAE;IAL/B,SAAgB,IAAI,WAAoB;gBAGvB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,EAAE;CAG/B;AAED,oBAAY,kBAAkB,GAC3B,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAEjD,eAAO,MAAM,oBAAoB,wEAEpB,MAAM,sDAQlB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createEntityVariable = exports.EntityVariableDefinition = void 0;
|
|
4
|
+
class EntityVariableDefinition {
|
|
5
|
+
constructor(name, entityName, roles) {
|
|
6
|
+
this.name = name;
|
|
7
|
+
this.entityName = entityName;
|
|
8
|
+
this.roles = roles;
|
|
9
|
+
this.type = 'entity';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.EntityVariableDefinition = EntityVariableDefinition;
|
|
13
|
+
const createEntityVariable = (name, entityName, roles) => {
|
|
14
|
+
return new EntityVariableDefinition(name, entityName, Array.isArray(roles) ? roles : [roles]);
|
|
15
|
+
};
|
|
16
|
+
exports.createEntityVariable = createEntityVariable;
|
|
17
|
+
//# sourceMappingURL=variables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../../src/acl/definition/variables.ts"],"names":[],"mappings":";;;AAEA,MAAa,wBAAwB;IAGpC,YACiB,IAAU,EACV,UAAkB,EAClB,KAAc;QAFd,SAAI,GAAJ,IAAI,CAAM;QACV,eAAU,GAAV,UAAU,CAAQ;QAClB,UAAK,GAAL,KAAK,CAAS;QALf,SAAI,GAAG,QAAiB,CAAA;IAOxC,CAAC;CACD;AATD,4DASC;AAKM,MAAM,oBAAoB,GAAG,CACnC,IAAU,EACV,UAAkB,EAClB,KAAc,EACsB,EAAE;IACtC,OAAO,IAAI,wBAAwB,CAClC,IAAI,EACJ,UAAU,EACV,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACtC,CAAA;AACF,CAAC,CAAA;AAVY,QAAA,oBAAoB,wBAUhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSchema.d.ts","sourceRoot":"","sources":["../../src/createSchema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,eAAO,MAAM,YAAY,gBAAiB,OAAO,MAAM,EAAE,GAAG,CAAC,6BAA4B,MAAM,KAAK,MAAM,kBAAG,MAM5G,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSchema = void 0;
|
|
4
|
+
const model_1 = require("./model");
|
|
5
|
+
const InputValidation = require("./validation");
|
|
6
|
+
const AclDefinition = require("./acl/definition");
|
|
7
|
+
const createSchema = (definitions, modifyCallback) => {
|
|
8
|
+
const model = model_1.SchemaDefinition.createModel(definitions);
|
|
9
|
+
const validation = InputValidation.parseDefinition(definitions);
|
|
10
|
+
const acl = AclDefinition.createAcl(definitions, model);
|
|
11
|
+
const schema = { model, validation, acl };
|
|
12
|
+
return modifyCallback ? modifyCallback(schema) : schema;
|
|
13
|
+
};
|
|
14
|
+
exports.createSchema = createSchema;
|
|
15
|
+
//# sourceMappingURL=createSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSchema.js","sourceRoot":"","sources":["../../src/createSchema.ts"],"names":[],"mappings":";;;AAAA,mCAA0C;AAC1C,gDAA+C;AAC/C,kDAAiD;AAG1C,MAAM,YAAY,GAAG,CAAC,WAAgC,EAAE,cAA2C,EAAU,EAAE;IACrH,MAAM,KAAK,GAAG,wBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IACvD,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;IAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IACvD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;IACzC,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxD,CAAC,CAAA;AANY,QAAA,YAAY,gBAMxB"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
export { AllowAllPermissionFactory } from '@contember/schema-utils';
|
|
2
|
+
export { PermissionsBuilder } from './acl/builder/PermissionsBuilder';
|
|
3
|
+
export * as InputValidation from './validation';
|
|
4
|
+
export * as AclDefinition from './acl/definition';
|
|
5
|
+
export * from './createSchema';
|
|
2
6
|
export * from './model';
|
|
3
|
-
import PermissionsBuilder from './acl/PermissionsBuilder';
|
|
4
|
-
import * as InputValidation from './validation';
|
|
5
|
-
export { AllowAllPermissionFactory, PermissionsBuilder, InputValidation };
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACnE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,KAAK,eAAe,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -14,12 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.InputValidation = exports.PermissionsBuilder = exports.AllowAllPermissionFactory = void 0;
|
|
18
|
-
|
|
17
|
+
exports.AclDefinition = exports.InputValidation = exports.PermissionsBuilder = exports.AllowAllPermissionFactory = void 0;
|
|
18
|
+
var schema_utils_1 = require("@contember/schema-utils");
|
|
19
19
|
Object.defineProperty(exports, "AllowAllPermissionFactory", { enumerable: true, get: function () { return schema_utils_1.AllowAllPermissionFactory; } });
|
|
20
|
+
var PermissionsBuilder_1 = require("./acl/builder/PermissionsBuilder");
|
|
21
|
+
Object.defineProperty(exports, "PermissionsBuilder", { enumerable: true, get: function () { return PermissionsBuilder_1.PermissionsBuilder; } });
|
|
22
|
+
exports.InputValidation = require("./validation");
|
|
23
|
+
exports.AclDefinition = require("./acl/definition");
|
|
24
|
+
__exportStar(require("./createSchema"), exports);
|
|
20
25
|
__exportStar(require("./model"), exports);
|
|
21
|
-
const PermissionsBuilder_1 = require("./acl/PermissionsBuilder");
|
|
22
|
-
exports.PermissionsBuilder = PermissionsBuilder_1.default;
|
|
23
|
-
const InputValidation = require("./validation");
|
|
24
|
-
exports.InputValidation = InputValidation;
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAmE;AAA1D,yHAAA,yBAAyB,OAAA;AAClC,uEAAqE;AAA5D,wHAAA,kBAAkB,OAAA;AAC3B,kDAA+C;AAC/C,oDAAiD;AACjD,iDAA8B;AAC9B,0CAAuB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Interface } from './types';
|
|
2
2
|
import { Model } from '@contember/schema';
|
|
3
3
|
import { EnumDefinition } from './EnumDefinition';
|
|
4
4
|
import 'reflect-metadata';
|
|
@@ -13,7 +13,7 @@ export declare abstract class Entity {
|
|
|
13
13
|
[key: string]: Interface<FieldDefinition<any>> | undefined;
|
|
14
14
|
}
|
|
15
15
|
export declare type ModelDefinition<M> = {
|
|
16
|
-
[K in keyof M]:
|
|
16
|
+
[K in keyof M]: unknown;
|
|
17
17
|
};
|
|
18
18
|
export declare function createModel<M extends ModelDefinition<M>>(definitions: M): Model.Schema;
|
|
19
19
|
export declare const OnDelete: typeof Model.OnDelete;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGpD,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE5D,8BAAsB,MAAM;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;CAC1D;AAED,oBAAY,eAAe,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CACvB,CAAA;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAWtF;AAED,eAAO,MAAM,QAAQ,uBAAiB,CAAA;AACtC,eAAO,MAAM,cAAc,6BAAuB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -21,6 +21,7 @@ Object.defineProperty(exports, "EnumDefinition", { enumerable: true, get: functi
|
|
|
21
21
|
const internal_1 = require("./internal");
|
|
22
22
|
const NamingConventions_1 = require("./NamingConventions");
|
|
23
23
|
require("reflect-metadata");
|
|
24
|
+
const utils_1 = require("../../utils");
|
|
24
25
|
__exportStar(require("./fieldDefinitions"), exports);
|
|
25
26
|
__exportStar(require("./EventLogDefinition"), exports);
|
|
26
27
|
__exportStar(require("./EnumDefinition"), exports);
|
|
@@ -37,7 +38,7 @@ function createModel(definitions) {
|
|
|
37
38
|
if (definition instanceof EnumDefinition_1.EnumDefinition) {
|
|
38
39
|
schemaBuilder.addEnum(name, definition);
|
|
39
40
|
}
|
|
40
|
-
else {
|
|
41
|
+
else if ((0, utils_1.isEntityConstructor)(definition)) {
|
|
41
42
|
schemaBuilder.addEntity(name, definition);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/model/definition/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAyC;AACzC,qDAAiD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/model/definition/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAyC;AACzC,qDAAiD;AAqCxC,+FArCA,+BAAc,OAqCA;AApCvB,yCAA0C;AAC1C,2DAA8D;AAC9D,4BAAyB;AAEzB,uCAAiD;AAEjD,qDAAkC;AAClC,uDAAoC;AACpC,mDAAgC;AAChC,qDAAkC;AAClC,mDAAgC;AAChC,2CAA4D;AAAnD,0GAAA,YAAY,OAAA;AAErB,MAAsB,MAAM;CAE3B;AAFD,wBAEC;AAMD,SAAgB,WAAW,CAA+B,WAAc;IACvE,MAAM,aAAa,GAAG,IAAI,wBAAa,CAAC,IAAI,4CAAwB,EAAE,CAAC,CAAA;IACvE,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC7D,IAAI,UAAU,YAAY,+BAAc,EAAE;YACzC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SACvC;aAAM,IAAI,IAAA,2BAAmB,EAAC,UAAU,CAAC,EAAE;YAC3C,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SACzC;KACD;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,EAAE,CAAA;IAC3C,OAAO,MAAM,CAAA;AACd,CAAC;AAXD,kCAWC;AAEY,QAAA,QAAQ,GAAG,cAAK,CAAC,QAAQ,CAAA;AACzB,QAAA,cAAc,GAAG,cAAK,CAAC,cAAc,CAAA"}
|