@contember/schema-definition 2.0.0-alpha.9 → 2.0.0-beta.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.
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js.map +1 -1
- package/dist/development/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -1
- package/dist/development/src/acl/builder/EntityPermissionsBuilder.js.map +1 -1
- package/dist/development/src/acl/builder/EntitySelector.cjs.map +1 -1
- package/dist/development/src/acl/builder/EntitySelector.js.map +1 -1
- package/dist/development/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -1
- package/dist/development/src/acl/builder/FieldPermissionsBuilder.js.map +1 -1
- package/dist/development/src/acl/builder/FieldSelector.cjs.map +1 -1
- package/dist/development/src/acl/builder/FieldSelector.js.map +1 -1
- package/dist/development/src/acl/builder/PermissionOverrider.cjs.map +1 -1
- package/dist/development/src/acl/builder/PermissionOverrider.js.map +1 -1
- package/dist/development/src/acl/builder/PermissionsBuilder.cjs.map +1 -1
- package/dist/development/src/acl/builder/PermissionsBuilder.js.map +1 -1
- package/dist/development/src/acl/builder/PredicateReference.cjs.map +1 -1
- package/dist/development/src/acl/builder/PredicateReference.js.map +1 -1
- package/dist/development/src/acl/definition/customPrimary.cjs.map +1 -1
- package/dist/development/src/acl/definition/customPrimary.js.map +1 -1
- package/dist/development/src/acl/definition/index.cjs.map +1 -1
- package/dist/development/src/acl/definition/internal/AclFactory.cjs.map +1 -1
- package/dist/development/src/acl/definition/internal/AclFactory.js.map +1 -1
- package/dist/development/src/acl/definition/internal/EntityPredicateResolver.cjs +2 -2
- package/dist/development/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -1
- package/dist/development/src/acl/definition/internal/EntityPredicateResolver.js +2 -2
- package/dist/development/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -1
- package/dist/development/src/acl/definition/internal/stores.cjs.map +1 -1
- package/dist/development/src/acl/definition/internal/stores.js.map +1 -1
- package/dist/development/src/acl/definition/permissions.cjs.map +1 -1
- package/dist/development/src/acl/definition/permissions.js.map +1 -1
- package/dist/development/src/acl/definition/references.cjs.map +1 -1
- package/dist/development/src/acl/definition/references.js.map +1 -1
- package/dist/development/src/acl/definition/roles.cjs.map +1 -1
- package/dist/development/src/acl/definition/roles.js.map +1 -1
- package/dist/development/src/acl/definition/variables.cjs.map +1 -1
- package/dist/development/src/acl/definition/variables.js.map +1 -1
- package/dist/development/src/actions/definition/index.cjs.map +1 -1
- package/dist/development/src/actions/definition/index.js.map +1 -1
- package/dist/development/src/actions/definition/internal/ActionsFactory.cjs.map +1 -1
- package/dist/development/src/actions/definition/internal/ActionsFactory.js.map +1 -1
- package/dist/development/src/actions/definition/targets.cjs.map +1 -1
- package/dist/development/src/actions/definition/targets.js.map +1 -1
- package/dist/development/src/actions/definition/triggers.cjs.map +1 -1
- package/dist/development/src/actions/definition/triggers.js.map +1 -1
- package/dist/development/src/createSchema.cjs.map +1 -1
- package/dist/development/src/createSchema.js.map +1 -1
- package/dist/development/src/model/builder/ColumnBuilder.cjs.map +1 -1
- package/dist/development/src/model/builder/ColumnBuilder.js.map +1 -1
- package/dist/development/src/model/builder/EntityBuilder.cjs.map +1 -1
- package/dist/development/src/model/builder/EntityBuilder.js.map +1 -1
- package/dist/development/src/model/builder/FieldBuilder.cjs.map +1 -1
- package/dist/development/src/model/builder/FieldBuilder.js.map +1 -1
- package/dist/development/src/model/builder/ManyHasManyBuilder.cjs.map +1 -1
- package/dist/development/src/model/builder/ManyHasManyBuilder.js.map +1 -1
- package/dist/development/src/model/builder/ManyHasOneBuilder.cjs.map +1 -1
- package/dist/development/src/model/builder/ManyHasOneBuilder.js.map +1 -1
- package/dist/development/src/model/builder/OneHasManyBuilder.cjs.map +1 -1
- package/dist/development/src/model/builder/OneHasManyBuilder.js.map +1 -1
- package/dist/development/src/model/builder/OneHasOneBuilder.cjs.map +1 -1
- package/dist/development/src/model/builder/OneHasOneBuilder.js.map +1 -1
- package/dist/development/src/model/builder/SchemaBuilder.cjs.map +1 -1
- package/dist/development/src/model/builder/SchemaBuilder.js.map +1 -1
- package/dist/development/src/model/builder/SchemaBuilderInternal.cjs.map +1 -1
- package/dist/development/src/model/builder/SchemaBuilderInternal.js.map +1 -1
- package/dist/development/src/model/builder/internal/ColumnProcessor.cjs.map +1 -1
- package/dist/development/src/model/builder/internal/ColumnProcessor.js.map +1 -1
- package/dist/development/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -1
- package/dist/development/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -1
- package/dist/development/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -1
- package/dist/development/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -1
- package/dist/development/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -1
- package/dist/development/src/model/builder/internal/OneHasManyProcessor.js.map +1 -1
- package/dist/development/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -1
- package/dist/development/src/model/builder/internal/OneHasOneProcessor.js.map +1 -1
- package/dist/development/src/model/definition/EnumDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/EnumDefinition.js.map +1 -1
- package/dist/development/src/model/definition/IndexDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/IndexDefinition.js.map +1 -1
- package/dist/development/src/model/definition/OrderByDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/OrderByDefinition.js.map +1 -1
- package/dist/development/src/model/definition/UniqueDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/UniqueDefinition.js.map +1 -1
- package/dist/development/src/model/definition/ViewDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/ViewDefinition.js.map +1 -1
- package/dist/development/src/model/definition/extensions.cjs.map +1 -1
- package/dist/development/src/model/definition/extensions.js.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +9 -2
- package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js +9 -2
- package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs +0 -3
- package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js +0 -3
- package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs +6 -3
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +6 -3
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs +6 -7
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +7 -8
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs +6 -3
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +6 -3
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs +6 -3
- package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +6 -3
- package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs +6 -3
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +6 -3
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs +6 -7
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +7 -8
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
- package/dist/development/src/model/definition/index.cjs +6 -8
- package/dist/development/src/model/definition/index.cjs.map +1 -1
- package/dist/development/src/model/definition/index.js +12 -14
- package/dist/development/src/model/definition/index.js.map +1 -1
- package/dist/development/src/model/definition/internal/EntityRegistry.cjs.map +1 -1
- package/dist/development/src/model/definition/internal/EntityRegistry.js.map +1 -1
- package/dist/development/src/model/definition/internal/EnumRegistry.cjs.map +1 -1
- package/dist/development/src/model/definition/internal/EnumRegistry.js.map +1 -1
- package/dist/development/src/model/definition/internal/SchemaBuilder.cjs +5 -0
- package/dist/development/src/model/definition/internal/SchemaBuilder.cjs.map +1 -1
- package/dist/development/src/model/definition/internal/SchemaBuilder.js +5 -0
- package/dist/development/src/model/definition/internal/SchemaBuilder.js.map +1 -1
- package/dist/development/src/presets.cjs +13 -1
- package/dist/development/src/presets.cjs.map +1 -1
- package/dist/development/src/presets.js +13 -1
- package/dist/development/src/presets.js.map +1 -1
- package/dist/development/src/strict.cjs.map +1 -1
- package/dist/development/src/strict.js.map +1 -1
- package/dist/development/src/utils/MetadataStore.cjs.map +1 -1
- package/dist/development/src/utils/MetadataStore.js.map +1 -1
- package/dist/development/src/validation/index.cjs.map +1 -1
- package/dist/development/src/validation/index.js.map +1 -1
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js.map +1 -1
- package/dist/production/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -1
- package/dist/production/src/acl/builder/EntityPermissionsBuilder.js.map +1 -1
- package/dist/production/src/acl/builder/EntitySelector.cjs.map +1 -1
- package/dist/production/src/acl/builder/EntitySelector.js.map +1 -1
- package/dist/production/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -1
- package/dist/production/src/acl/builder/FieldPermissionsBuilder.js.map +1 -1
- package/dist/production/src/acl/builder/FieldSelector.cjs.map +1 -1
- package/dist/production/src/acl/builder/FieldSelector.js.map +1 -1
- package/dist/production/src/acl/builder/PermissionOverrider.cjs.map +1 -1
- package/dist/production/src/acl/builder/PermissionOverrider.js.map +1 -1
- package/dist/production/src/acl/builder/PermissionsBuilder.cjs.map +1 -1
- package/dist/production/src/acl/builder/PermissionsBuilder.js.map +1 -1
- package/dist/production/src/acl/builder/PredicateReference.cjs.map +1 -1
- package/dist/production/src/acl/builder/PredicateReference.js.map +1 -1
- package/dist/production/src/acl/definition/customPrimary.cjs.map +1 -1
- package/dist/production/src/acl/definition/customPrimary.js.map +1 -1
- package/dist/production/src/acl/definition/index.cjs.map +1 -1
- package/dist/production/src/acl/definition/internal/AclFactory.cjs.map +1 -1
- package/dist/production/src/acl/definition/internal/AclFactory.js.map +1 -1
- package/dist/production/src/acl/definition/internal/EntityPredicateResolver.cjs +2 -2
- package/dist/production/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -1
- package/dist/production/src/acl/definition/internal/EntityPredicateResolver.js +2 -2
- package/dist/production/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -1
- package/dist/production/src/acl/definition/internal/stores.cjs.map +1 -1
- package/dist/production/src/acl/definition/internal/stores.js.map +1 -1
- package/dist/production/src/acl/definition/permissions.cjs.map +1 -1
- package/dist/production/src/acl/definition/permissions.js.map +1 -1
- package/dist/production/src/acl/definition/references.cjs.map +1 -1
- package/dist/production/src/acl/definition/references.js.map +1 -1
- package/dist/production/src/acl/definition/roles.cjs.map +1 -1
- package/dist/production/src/acl/definition/roles.js.map +1 -1
- package/dist/production/src/acl/definition/variables.cjs.map +1 -1
- package/dist/production/src/acl/definition/variables.js.map +1 -1
- package/dist/production/src/actions/definition/index.cjs.map +1 -1
- package/dist/production/src/actions/definition/index.js.map +1 -1
- package/dist/production/src/actions/definition/internal/ActionsFactory.cjs.map +1 -1
- package/dist/production/src/actions/definition/internal/ActionsFactory.js.map +1 -1
- package/dist/production/src/actions/definition/targets.cjs.map +1 -1
- package/dist/production/src/actions/definition/targets.js.map +1 -1
- package/dist/production/src/actions/definition/triggers.cjs.map +1 -1
- package/dist/production/src/actions/definition/triggers.js.map +1 -1
- package/dist/production/src/createSchema.cjs.map +1 -1
- package/dist/production/src/createSchema.js.map +1 -1
- package/dist/production/src/model/builder/ColumnBuilder.cjs.map +1 -1
- package/dist/production/src/model/builder/ColumnBuilder.js.map +1 -1
- package/dist/production/src/model/builder/EntityBuilder.cjs.map +1 -1
- package/dist/production/src/model/builder/EntityBuilder.js.map +1 -1
- package/dist/production/src/model/builder/FieldBuilder.cjs.map +1 -1
- package/dist/production/src/model/builder/FieldBuilder.js.map +1 -1
- package/dist/production/src/model/builder/ManyHasManyBuilder.cjs.map +1 -1
- package/dist/production/src/model/builder/ManyHasManyBuilder.js.map +1 -1
- package/dist/production/src/model/builder/ManyHasOneBuilder.cjs.map +1 -1
- package/dist/production/src/model/builder/ManyHasOneBuilder.js.map +1 -1
- package/dist/production/src/model/builder/OneHasManyBuilder.cjs.map +1 -1
- package/dist/production/src/model/builder/OneHasManyBuilder.js.map +1 -1
- package/dist/production/src/model/builder/OneHasOneBuilder.cjs.map +1 -1
- package/dist/production/src/model/builder/OneHasOneBuilder.js.map +1 -1
- package/dist/production/src/model/builder/SchemaBuilder.cjs.map +1 -1
- package/dist/production/src/model/builder/SchemaBuilder.js.map +1 -1
- package/dist/production/src/model/builder/SchemaBuilderInternal.cjs.map +1 -1
- package/dist/production/src/model/builder/SchemaBuilderInternal.js.map +1 -1
- package/dist/production/src/model/builder/internal/ColumnProcessor.cjs.map +1 -1
- package/dist/production/src/model/builder/internal/ColumnProcessor.js.map +1 -1
- package/dist/production/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -1
- package/dist/production/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -1
- package/dist/production/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -1
- package/dist/production/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -1
- package/dist/production/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -1
- package/dist/production/src/model/builder/internal/OneHasManyProcessor.js.map +1 -1
- package/dist/production/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -1
- package/dist/production/src/model/builder/internal/OneHasOneProcessor.js.map +1 -1
- package/dist/production/src/model/definition/EnumDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/EnumDefinition.js.map +1 -1
- package/dist/production/src/model/definition/IndexDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/IndexDefinition.js.map +1 -1
- package/dist/production/src/model/definition/OrderByDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/OrderByDefinition.js.map +1 -1
- package/dist/production/src/model/definition/UniqueDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/UniqueDefinition.js.map +1 -1
- package/dist/production/src/model/definition/ViewDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/ViewDefinition.js.map +1 -1
- package/dist/production/src/model/definition/extensions.cjs.map +1 -1
- package/dist/production/src/model/definition/extensions.js.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +9 -2
- package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js +9 -2
- package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs +0 -3
- package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js +0 -3
- package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs +6 -3
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +6 -3
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs +6 -7
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +7 -8
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs +6 -3
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +6 -3
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs +6 -3
- package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +6 -3
- package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs +6 -3
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +6 -3
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs +6 -7
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +7 -8
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
- package/dist/production/src/model/definition/index.cjs +6 -8
- package/dist/production/src/model/definition/index.cjs.map +1 -1
- package/dist/production/src/model/definition/index.js +12 -14
- package/dist/production/src/model/definition/index.js.map +1 -1
- package/dist/production/src/model/definition/internal/EntityRegistry.cjs.map +1 -1
- package/dist/production/src/model/definition/internal/EntityRegistry.js.map +1 -1
- package/dist/production/src/model/definition/internal/EnumRegistry.cjs.map +1 -1
- package/dist/production/src/model/definition/internal/EnumRegistry.js.map +1 -1
- package/dist/production/src/model/definition/internal/SchemaBuilder.cjs +5 -0
- package/dist/production/src/model/definition/internal/SchemaBuilder.cjs.map +1 -1
- package/dist/production/src/model/definition/internal/SchemaBuilder.js +5 -0
- package/dist/production/src/model/definition/internal/SchemaBuilder.js.map +1 -1
- package/dist/production/src/presets.cjs +13 -1
- package/dist/production/src/presets.cjs.map +1 -1
- package/dist/production/src/presets.js +13 -1
- package/dist/production/src/presets.js.map +1 -1
- package/dist/production/src/strict.cjs.map +1 -1
- package/dist/production/src/strict.js.map +1 -1
- package/dist/production/src/utils/MetadataStore.cjs.map +1 -1
- package/dist/production/src/utils/MetadataStore.js.map +1 -1
- package/dist/production/src/validation/index.cjs.map +1 -1
- package/dist/production/src/validation/index.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +10 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model/builder/EntityBuilder.d.ts +1 -1
- package/dist/types/model/builder/EntityBuilder.d.ts.map +1 -1
- package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts +12 -10
- package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts.map +1 -1
- package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts +0 -3
- package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts.map +1 -1
- package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts +6 -6
- package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts.map +1 -1
- package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts +4 -8
- package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts.map +1 -1
- package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts +10 -10
- package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts.map +1 -1
- package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts +4 -4
- package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts.map +1 -1
- package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts +11 -11
- package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts.map +1 -1
- package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts +4 -8
- package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts.map +1 -1
- package/dist/types/model/definition/index.d.ts +1 -2
- package/dist/types/model/definition/index.d.ts.map +1 -1
- package/dist/types/model/definition/internal/SchemaBuilder.d.ts.map +1 -1
- package/dist/types/model/definition/types.d.ts +2 -5
- package/dist/types/model/definition/types.d.ts.map +1 -1
- package/dist/types/presets.d.ts +1 -0
- package/dist/types/presets.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -6
- package/src/acl/definition/internal/EntityPredicateResolver.ts +2 -2
- package/src/index.ts +15 -0
- package/src/model/definition/fieldDefinitions/ColumnDefinition.ts +27 -19
- package/src/model/definition/fieldDefinitions/FieldDefinition.ts +1 -5
- package/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts +11 -7
- package/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts +8 -12
- package/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts +14 -12
- package/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts +8 -5
- package/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts +16 -12
- package/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts +8 -11
- package/src/model/definition/index.ts +1 -2
- package/src/model/definition/internal/SchemaBuilder.ts +6 -0
- package/src/model/definition/types.ts +2 -3
- package/src/presets.ts +12 -0
- package/tests/cases/unit/__snapshots__/readActions.test.ts.snap +33 -0
- package/tests/cases/unit/createSchema.test.ts +78 -80
- package/tests/cases/unit/extendEntity.test.ts +2 -2
- package/tests/cases/unit/orderBy.test.ts +10 -6
- package/tests/cases/unit/readAclDefinitions.test.ts +197 -208
- package/tests/cases/unit/readActions.test.ts +2 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../packages/schema-definition/src/validation/index.ts"],"sourcesContent":["import { tuple } from '../utils'\nimport { SchemaDefinition } from '../model'\nimport 'reflect-metadata'\nimport { Validation } from '@contember/schema'\nimport { filterEntityDefinition } from '../utils'\n\ntype MessageOrString = Validation.Message | string\n\nexport type ContextPath = Validation.ContextPath | string | undefined\nexport const parsePath = (path: ContextPath): readonly string[] => {\n\tif (!path) {\n\t\treturn []\n\t}\n\tif (typeof path === 'string') {\n\t\treturn path.split('.')\n\t}\n\treturn path\n}\n\nconst ArgumentFactory = {\n\tvalidator: (validator: Validation.Validator): Validation.ValidatorArgument => ({\n\t\ttype: Validation.ArgumentType.validator,\n\t\tvalidator,\n\t}),\n\tpath: (path?: ContextPath): Validation.PathArgument => ({\n\t\ttype: Validation.ArgumentType.path,\n\t\tpath: parsePath(path),\n\t}),\n\tliteral: <V = any>(value: V): Validation.LiteralArgument<V> => ({ type: Validation.ArgumentType.literal, value }),\n}\n\nconst RuleMetaKey = Symbol('Rule')\n\nfunction updateMetadata<T>(\n\t{ key, target, propertyKey }: { key: symbol; target: any; propertyKey: string | symbol },\n\tgenerator: (previous: T) => T,\n\tinitialValue: T,\n) {\n\tconst metadata = Reflect.hasMetadata(key, target, propertyKey)\n\t\t? Reflect.getMetadata(key, target, propertyKey)\n\t\t: initialValue\n\n\tconst newMetadata = generator(metadata)\n\tReflect.defineMetadata(key, newMetadata, target, propertyKey)\n}\n\nfunction addRuleToMetadata(target: any, propertyKey: string | symbol, ...rule: Validation.ValidationRule[]) {\n\tupdateMetadata<Validation.ValidationRule[]>({ key: RuleMetaKey, target, propertyKey }, prev => [...rule, ...prev], [])\n}\n\nexport function fluent() {\n\treturn new RuleBranch([], [])\n}\n\nexport class RuleBranch {\n\tconstructor(private conditions: Validation.Validator[], private branchRules: Validation.ValidationRule[]) {}\n\n\tpublic buildRules = (): Validation.ValidationRule[] => {\n\t\tif (this.conditions.length === 0) {\n\t\t\treturn this.branchRules\n\t\t}\n\t\treturn this.branchRules.map(rule => ({\n\t\t\tvalidator: rules.conditional(\n\t\t\t\tthis.conditions.length === 1 ? this.conditions[0] : rules.and(...this.conditions),\n\t\t\t\trule.validator,\n\t\t\t),\n\t\t\tmessage: rule.message,\n\t\t}))\n\t}\n\n\tpublic assert = (validator: Validation.Validator, message: MessageOrString): RuleBranch & PropertyDecorator => {\n\t\tconst messageParsed: Validation.Message = typeof message === 'string' ? { text: message } : message\n\t\tconst newRules = [...this.branchRules, { validator, message: messageParsed }]\n\t\tconst branch = new RuleBranch(this.conditions, newRules)\n\t\tconst propertyDecorator: PropertyDecorator = (target: any, propertykey: string | symbol) => {\n\t\t\taddRuleToMetadata(target, propertykey, ...branch.buildRules())\n\t\t}\n\t\treturn Object.assign(propertyDecorator, branch)\n\t}\n\n\tassertPattern = (pattern: RegExp, message: MessageOrString) => this.assert(rules.pattern(pattern), message)\n\tassertEquals = (value: any, message: MessageOrString) => this.assert(rules.equals(value), message)\n\tassertDefined = (message: MessageOrString) => this.assert(rules.defined(), message)\n\tassertNotEmpty = (message: MessageOrString) => this.assert(rules.notEmpty(), message)\n\tassertMinLength = (minLength: number, message: MessageOrString) => this.assert(rules.minLength(minLength), message)\n\tassertMaxLength = (minLength: number, message: MessageOrString) => this.assert(rules.maxLength(minLength), message)\n}\n\nconst andOperation = (...conditions: Validation.Validator[]): Validation.Validator => ({\n\toperation: 'and',\n\targs: conditions.map(validator => ArgumentFactory.validator(validator)),\n})\nconst orOperation = (...conditions: Validation.Validator[]): Validation.Validator => ({\n\toperation: 'or',\n\targs: conditions.map(validator => ArgumentFactory.validator(validator)),\n})\nconst conditionalOperation = (condition: Validation.Validator, rule: Validation.Validator): Validation.Validator => ({\n\toperation: 'conditional',\n\targs: [ArgumentFactory.validator(condition), ArgumentFactory.validator(rule)],\n})\n\nconst patternOperation = (pattern: RegExp): Validation.Validator => ({\n\toperation: 'pattern',\n\targs: [ArgumentFactory.literal([pattern.source, pattern.flags])],\n})\n\nconst lengthRangeOperation = (min: number | null, max: number | null): Validation.Validator => ({\n\toperation: 'lengthRange',\n\targs: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)],\n})\n\nconst rangeOperation = (min: number | null, max: number | null): Validation.Validator => ({\n\toperation: 'range',\n\targs: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)],\n})\n\nconst equalsOperation = (value: any): Validation.Validator => ({\n\toperation: 'equals',\n\targs: [ArgumentFactory.literal(value)],\n})\nconst notOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'not',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst emptyOperation = (): Validation.Validator => ({ operation: 'empty', args: [] })\nconst definedOperation = (): Validation.Validator => ({ operation: 'defined', args: [] })\n\nexport const InContextOperation = 'inContext' as const\nconst onOperation = (path: ContextPath, validator: Validation.Validator): Validation.Validator => ({\n\toperation: InContextOperation,\n\targs: [ArgumentFactory.path(path), ArgumentFactory.validator(validator)],\n})\n\nconst everyOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'every',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst anyOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'any',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst filterOperation = (filter: Validation.Validator, validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'filter',\n\targs: [ArgumentFactory.validator(filter), ArgumentFactory.validator(validator)],\n})\n\nexport const rules = {\n\tequals: equalsOperation,\n\tin: (...value: any[]) => orOperation(...value.map(it => equalsOperation(it))),\n\tpattern: patternOperation,\n\n\tlengthRange: lengthRangeOperation,\n\tminLength: (min: number) => lengthRangeOperation(min, null),\n\tmaxLength: (max: number) => lengthRangeOperation(null, max),\n\n\trange: rangeOperation,\n\tmin: (min: number) => rangeOperation(min, null),\n\tmax: (max: number) => rangeOperation(null, max),\n\n\tdefined: definedOperation,\n\t['empty']: emptyOperation,\n\tnotEmpty: () => notOperation(emptyOperation()),\n\t['null']: () => equalsOperation(null),\n\tnotNull: () => notOperation(equalsOperation(null)),\n\n\tand: andOperation,\n\tor: orOperation,\n\tnot: notOperation,\n\n\tconditional: conditionalOperation,\n\ton: onOperation,\n\n\tfilter: filterOperation,\n\tany: anyOperation,\n\tevery: everyOperation,\n}\n\nexport function when(...conditions: Validation.Validator[]) {\n\treturn new RuleBranch(conditions, [])\n}\n\nexport const assert = (validator: Validation.Validator, message: MessageOrString) => fluent().assert(validator, message)\n/** alias for assertDefined */\nexport const required = (message: MessageOrString) => fluent().assertDefined(message)\nexport const assertDefined = (message: MessageOrString) => fluent().assertDefined(message)\nexport const assertNotEmpty = (message: MessageOrString) => fluent().assertNotEmpty(message)\nexport const assertPattern = (pattern: RegExp, message: MessageOrString) => fluent().assertPattern(pattern, message)\nexport const assertMinLength = (min: number, message: MessageOrString) => fluent().assertMinLength(min, message)\nexport const assertMaxLength = (min: number, message: MessageOrString) => fluent().assertMaxLength(min, message)\n\nexport const combine =\n\t(...decorators: PropertyDecorator[]): PropertyDecorator =>\n\t\t(target, propertyKey) =>\n\t\t\tdecorators.forEach(it => it(target, propertyKey))\n\nexport function parseDefinition(\n\tdefinitions: Record<string, any>,\n): Validation.Schema {\n\treturn filterEntityDefinition(definitions)\n\t\t.map(([name, definition]) => {\n\t\t\tconst target = definition.prototype\n\t\t\tconst defInstance = new definition()\n\t\t\tconst fields = Object.keys(defInstance)\n\t\t\treturn tuple(\n\t\t\t\tname,\n\t\t\t\tfields\n\t\t\t\t\t.map(field => {\n\t\t\t\t\t\tconst fieldRules: Validation.ValidationRule[] | undefined = Reflect.getMetadata(RuleMetaKey, target, field)\n\t\t\t\t\t\tif (fieldRules === undefined) {\n\t\t\t\t\t\t\treturn tuple(field, [])\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn tuple(field, fieldRules)\n\t\t\t\t\t})\n\t\t\t\t\t.reduce<Validation.EntityRules>(\n\t\t\t\t\t\t(ruleSet, [field, rules]) => (rules.length > 0 ? { ...ruleSet, [field]: rules } : ruleSet),\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t)\n\t\t})\n\t\t.reduce<Validation.Schema>(\n\t\t\t(acc, [name, defs]) => (Object.keys(defs).length > 0 ? { ...acc, [name]: defs } : acc),\n\t\t\t{},\n\t\t)\n}\n"],"names":["Validation","filterEntityDefinition","tuple","rules"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../packages/schema-definition/src/validation/index.ts"],"sourcesContent":["import { tuple } from '../utils'\nimport { SchemaDefinition } from '../model'\nimport 'reflect-metadata'\nimport { Validation } from '@contember/schema'\nimport { filterEntityDefinition } from '../utils'\n\ntype MessageOrString = Validation.Message | string\n\nexport type ContextPath = Validation.ContextPath | string | undefined\nexport const parsePath = (path: ContextPath): readonly string[] => {\n\tif (!path) {\n\t\treturn []\n\t}\n\tif (typeof path === 'string') {\n\t\treturn path.split('.')\n\t}\n\treturn path\n}\n\nconst ArgumentFactory = {\n\tvalidator: (validator: Validation.Validator): Validation.ValidatorArgument => ({\n\t\ttype: Validation.ArgumentType.validator,\n\t\tvalidator,\n\t}),\n\tpath: (path?: ContextPath): Validation.PathArgument => ({\n\t\ttype: Validation.ArgumentType.path,\n\t\tpath: parsePath(path),\n\t}),\n\tliteral: <V = any>(value: V): Validation.LiteralArgument<V> => ({ type: Validation.ArgumentType.literal, value }),\n}\n\nconst RuleMetaKey = Symbol('Rule')\n\nfunction updateMetadata<T>(\n\t{ key, target, propertyKey }: { key: symbol; target: any; propertyKey: string | symbol },\n\tgenerator: (previous: T) => T,\n\tinitialValue: T,\n) {\n\tconst metadata = Reflect.hasMetadata(key, target, propertyKey)\n\t\t? Reflect.getMetadata(key, target, propertyKey)\n\t\t: initialValue\n\n\tconst newMetadata = generator(metadata)\n\tReflect.defineMetadata(key, newMetadata, target, propertyKey)\n}\n\nfunction addRuleToMetadata(target: any, propertyKey: string | symbol, ...rule: Validation.ValidationRule[]) {\n\tupdateMetadata<Validation.ValidationRule[]>({ key: RuleMetaKey, target, propertyKey }, prev => [...rule, ...prev], [])\n}\n\nexport function fluent() {\n\treturn new RuleBranch([], [])\n}\n\nexport class RuleBranch {\n\tconstructor(private conditions: Validation.Validator[], private branchRules: Validation.ValidationRule[]) {}\n\n\tpublic buildRules = (): Validation.ValidationRule[] => {\n\t\tif (this.conditions.length === 0) {\n\t\t\treturn this.branchRules\n\t\t}\n\t\treturn this.branchRules.map(rule => ({\n\t\t\tvalidator: rules.conditional(\n\t\t\t\tthis.conditions.length === 1 ? this.conditions[0] : rules.and(...this.conditions),\n\t\t\t\trule.validator,\n\t\t\t),\n\t\t\tmessage: rule.message,\n\t\t}))\n\t}\n\n\tpublic assert = (validator: Validation.Validator, message: MessageOrString): RuleBranch & PropertyDecorator => {\n\t\tconst messageParsed: Validation.Message = typeof message === 'string' ? { text: message } : message\n\t\tconst newRules = [...this.branchRules, { validator, message: messageParsed }]\n\t\tconst branch = new RuleBranch(this.conditions, newRules)\n\t\tconst propertyDecorator: PropertyDecorator = (target: any, propertykey: string | symbol) => {\n\t\t\taddRuleToMetadata(target, propertykey, ...branch.buildRules())\n\t\t}\n\t\treturn Object.assign(propertyDecorator, branch)\n\t}\n\n\tassertPattern = (pattern: RegExp, message: MessageOrString) => this.assert(rules.pattern(pattern), message)\n\tassertEquals = (value: any, message: MessageOrString) => this.assert(rules.equals(value), message)\n\tassertDefined = (message: MessageOrString) => this.assert(rules.defined(), message)\n\tassertNotEmpty = (message: MessageOrString) => this.assert(rules.notEmpty(), message)\n\tassertMinLength = (minLength: number, message: MessageOrString) => this.assert(rules.minLength(minLength), message)\n\tassertMaxLength = (minLength: number, message: MessageOrString) => this.assert(rules.maxLength(minLength), message)\n}\n\nconst andOperation = (...conditions: Validation.Validator[]): Validation.Validator => ({\n\toperation: 'and',\n\targs: conditions.map(validator => ArgumentFactory.validator(validator)),\n})\nconst orOperation = (...conditions: Validation.Validator[]): Validation.Validator => ({\n\toperation: 'or',\n\targs: conditions.map(validator => ArgumentFactory.validator(validator)),\n})\nconst conditionalOperation = (condition: Validation.Validator, rule: Validation.Validator): Validation.Validator => ({\n\toperation: 'conditional',\n\targs: [ArgumentFactory.validator(condition), ArgumentFactory.validator(rule)],\n})\n\nconst patternOperation = (pattern: RegExp): Validation.Validator => ({\n\toperation: 'pattern',\n\targs: [ArgumentFactory.literal([pattern.source, pattern.flags])],\n})\n\nconst lengthRangeOperation = (min: number | null, max: number | null): Validation.Validator => ({\n\toperation: 'lengthRange',\n\targs: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)],\n})\n\nconst rangeOperation = (min: number | null, max: number | null): Validation.Validator => ({\n\toperation: 'range',\n\targs: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)],\n})\n\nconst equalsOperation = (value: any): Validation.Validator => ({\n\toperation: 'equals',\n\targs: [ArgumentFactory.literal(value)],\n})\nconst notOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'not',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst emptyOperation = (): Validation.Validator => ({ operation: 'empty', args: [] })\nconst definedOperation = (): Validation.Validator => ({ operation: 'defined', args: [] })\n\nexport const InContextOperation = 'inContext' as const\nconst onOperation = (path: ContextPath, validator: Validation.Validator): Validation.Validator => ({\n\toperation: InContextOperation,\n\targs: [ArgumentFactory.path(path), ArgumentFactory.validator(validator)],\n})\n\nconst everyOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'every',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst anyOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'any',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst filterOperation = (filter: Validation.Validator, validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'filter',\n\targs: [ArgumentFactory.validator(filter), ArgumentFactory.validator(validator)],\n})\n\nexport const rules = {\n\tequals: equalsOperation,\n\tin: (...value: any[]) => orOperation(...value.map(it => equalsOperation(it))),\n\tpattern: patternOperation,\n\n\tlengthRange: lengthRangeOperation,\n\tminLength: (min: number) => lengthRangeOperation(min, null),\n\tmaxLength: (max: number) => lengthRangeOperation(null, max),\n\n\trange: rangeOperation,\n\tmin: (min: number) => rangeOperation(min, null),\n\tmax: (max: number) => rangeOperation(null, max),\n\n\tdefined: definedOperation,\n\t['empty']: emptyOperation,\n\tnotEmpty: () => notOperation(emptyOperation()),\n\t['null']: () => equalsOperation(null),\n\tnotNull: () => notOperation(equalsOperation(null)),\n\n\tand: andOperation,\n\tor: orOperation,\n\tnot: notOperation,\n\n\tconditional: conditionalOperation,\n\ton: onOperation,\n\n\tfilter: filterOperation,\n\tany: anyOperation,\n\tevery: everyOperation,\n}\n\nexport function when(...conditions: Validation.Validator[]) {\n\treturn new RuleBranch(conditions, [])\n}\n\nexport const assert = (validator: Validation.Validator, message: MessageOrString) => fluent().assert(validator, message)\n/** alias for assertDefined */\nexport const required = (message: MessageOrString) => fluent().assertDefined(message)\nexport const assertDefined = (message: MessageOrString) => fluent().assertDefined(message)\nexport const assertNotEmpty = (message: MessageOrString) => fluent().assertNotEmpty(message)\nexport const assertPattern = (pattern: RegExp, message: MessageOrString) => fluent().assertPattern(pattern, message)\nexport const assertMinLength = (min: number, message: MessageOrString) => fluent().assertMinLength(min, message)\nexport const assertMaxLength = (min: number, message: MessageOrString) => fluent().assertMaxLength(min, message)\n\nexport const combine =\n\t(...decorators: PropertyDecorator[]): PropertyDecorator =>\n\t\t(target, propertyKey) =>\n\t\t\tdecorators.forEach(it => it(target, propertyKey))\n\nexport function parseDefinition(\n\tdefinitions: Record<string, any>,\n): Validation.Schema {\n\treturn filterEntityDefinition(definitions)\n\t\t.map(([name, definition]) => {\n\t\t\tconst target = definition.prototype\n\t\t\tconst defInstance = new definition()\n\t\t\tconst fields = Object.keys(defInstance)\n\t\t\treturn tuple(\n\t\t\t\tname,\n\t\t\t\tfields\n\t\t\t\t\t.map(field => {\n\t\t\t\t\t\tconst fieldRules: Validation.ValidationRule[] | undefined = Reflect.getMetadata(RuleMetaKey, target, field)\n\t\t\t\t\t\tif (fieldRules === undefined) {\n\t\t\t\t\t\t\treturn tuple(field, [])\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn tuple(field, fieldRules)\n\t\t\t\t\t})\n\t\t\t\t\t.reduce<Validation.EntityRules>(\n\t\t\t\t\t\t(ruleSet, [field, rules]) => (rules.length > 0 ? { ...ruleSet, [field]: rules } : ruleSet),\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t)\n\t\t})\n\t\t.reduce<Validation.Schema>(\n\t\t\t(acc, [name, defs]) => (Object.keys(defs).length > 0 ? { ...acc, [name]: defs } : acc),\n\t\t\t{},\n\t\t)\n}\n"],"names":["Validation","filterEntityDefinition","tuple","rules"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../packages/schema-definition/src/validation/index.ts"],"sourcesContent":["import { tuple } from '../utils'\nimport { SchemaDefinition } from '../model'\nimport 'reflect-metadata'\nimport { Validation } from '@contember/schema'\nimport { filterEntityDefinition } from '../utils'\n\ntype MessageOrString = Validation.Message | string\n\nexport type ContextPath = Validation.ContextPath | string | undefined\nexport const parsePath = (path: ContextPath): readonly string[] => {\n\tif (!path) {\n\t\treturn []\n\t}\n\tif (typeof path === 'string') {\n\t\treturn path.split('.')\n\t}\n\treturn path\n}\n\nconst ArgumentFactory = {\n\tvalidator: (validator: Validation.Validator): Validation.ValidatorArgument => ({\n\t\ttype: Validation.ArgumentType.validator,\n\t\tvalidator,\n\t}),\n\tpath: (path?: ContextPath): Validation.PathArgument => ({\n\t\ttype: Validation.ArgumentType.path,\n\t\tpath: parsePath(path),\n\t}),\n\tliteral: <V = any>(value: V): Validation.LiteralArgument<V> => ({ type: Validation.ArgumentType.literal, value }),\n}\n\nconst RuleMetaKey = Symbol('Rule')\n\nfunction updateMetadata<T>(\n\t{ key, target, propertyKey }: { key: symbol; target: any; propertyKey: string | symbol },\n\tgenerator: (previous: T) => T,\n\tinitialValue: T,\n) {\n\tconst metadata = Reflect.hasMetadata(key, target, propertyKey)\n\t\t? Reflect.getMetadata(key, target, propertyKey)\n\t\t: initialValue\n\n\tconst newMetadata = generator(metadata)\n\tReflect.defineMetadata(key, newMetadata, target, propertyKey)\n}\n\nfunction addRuleToMetadata(target: any, propertyKey: string | symbol, ...rule: Validation.ValidationRule[]) {\n\tupdateMetadata<Validation.ValidationRule[]>({ key: RuleMetaKey, target, propertyKey }, prev => [...rule, ...prev], [])\n}\n\nexport function fluent() {\n\treturn new RuleBranch([], [])\n}\n\nexport class RuleBranch {\n\tconstructor(private conditions: Validation.Validator[], private branchRules: Validation.ValidationRule[]) {}\n\n\tpublic buildRules = (): Validation.ValidationRule[] => {\n\t\tif (this.conditions.length === 0) {\n\t\t\treturn this.branchRules\n\t\t}\n\t\treturn this.branchRules.map(rule => ({\n\t\t\tvalidator: rules.conditional(\n\t\t\t\tthis.conditions.length === 1 ? this.conditions[0] : rules.and(...this.conditions),\n\t\t\t\trule.validator,\n\t\t\t),\n\t\t\tmessage: rule.message,\n\t\t}))\n\t}\n\n\tpublic assert = (validator: Validation.Validator, message: MessageOrString): RuleBranch & PropertyDecorator => {\n\t\tconst messageParsed: Validation.Message = typeof message === 'string' ? { text: message } : message\n\t\tconst newRules = [...this.branchRules, { validator, message: messageParsed }]\n\t\tconst branch = new RuleBranch(this.conditions, newRules)\n\t\tconst propertyDecorator: PropertyDecorator = (target: any, propertykey: string | symbol) => {\n\t\t\taddRuleToMetadata(target, propertykey, ...branch.buildRules())\n\t\t}\n\t\treturn Object.assign(propertyDecorator, branch)\n\t}\n\n\tassertPattern = (pattern: RegExp, message: MessageOrString) => this.assert(rules.pattern(pattern), message)\n\tassertEquals = (value: any, message: MessageOrString) => this.assert(rules.equals(value), message)\n\tassertDefined = (message: MessageOrString) => this.assert(rules.defined(), message)\n\tassertNotEmpty = (message: MessageOrString) => this.assert(rules.notEmpty(), message)\n\tassertMinLength = (minLength: number, message: MessageOrString) => this.assert(rules.minLength(minLength), message)\n\tassertMaxLength = (minLength: number, message: MessageOrString) => this.assert(rules.maxLength(minLength), message)\n}\n\nconst andOperation = (...conditions: Validation.Validator[]): Validation.Validator => ({\n\toperation: 'and',\n\targs: conditions.map(validator => ArgumentFactory.validator(validator)),\n})\nconst orOperation = (...conditions: Validation.Validator[]): Validation.Validator => ({\n\toperation: 'or',\n\targs: conditions.map(validator => ArgumentFactory.validator(validator)),\n})\nconst conditionalOperation = (condition: Validation.Validator, rule: Validation.Validator): Validation.Validator => ({\n\toperation: 'conditional',\n\targs: [ArgumentFactory.validator(condition), ArgumentFactory.validator(rule)],\n})\n\nconst patternOperation = (pattern: RegExp): Validation.Validator => ({\n\toperation: 'pattern',\n\targs: [ArgumentFactory.literal([pattern.source, pattern.flags])],\n})\n\nconst lengthRangeOperation = (min: number | null, max: number | null): Validation.Validator => ({\n\toperation: 'lengthRange',\n\targs: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)],\n})\n\nconst rangeOperation = (min: number | null, max: number | null): Validation.Validator => ({\n\toperation: 'range',\n\targs: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)],\n})\n\nconst equalsOperation = (value: any): Validation.Validator => ({\n\toperation: 'equals',\n\targs: [ArgumentFactory.literal(value)],\n})\nconst notOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'not',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst emptyOperation = (): Validation.Validator => ({ operation: 'empty', args: [] })\nconst definedOperation = (): Validation.Validator => ({ operation: 'defined', args: [] })\n\nexport const InContextOperation = 'inContext' as const\nconst onOperation = (path: ContextPath, validator: Validation.Validator): Validation.Validator => ({\n\toperation: InContextOperation,\n\targs: [ArgumentFactory.path(path), ArgumentFactory.validator(validator)],\n})\n\nconst everyOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'every',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst anyOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'any',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst filterOperation = (filter: Validation.Validator, validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'filter',\n\targs: [ArgumentFactory.validator(filter), ArgumentFactory.validator(validator)],\n})\n\nexport const rules = {\n\tequals: equalsOperation,\n\tin: (...value: any[]) => orOperation(...value.map(it => equalsOperation(it))),\n\tpattern: patternOperation,\n\n\tlengthRange: lengthRangeOperation,\n\tminLength: (min: number) => lengthRangeOperation(min, null),\n\tmaxLength: (max: number) => lengthRangeOperation(null, max),\n\n\trange: rangeOperation,\n\tmin: (min: number) => rangeOperation(min, null),\n\tmax: (max: number) => rangeOperation(null, max),\n\n\tdefined: definedOperation,\n\t['empty']: emptyOperation,\n\tnotEmpty: () => notOperation(emptyOperation()),\n\t['null']: () => equalsOperation(null),\n\tnotNull: () => notOperation(equalsOperation(null)),\n\n\tand: andOperation,\n\tor: orOperation,\n\tnot: notOperation,\n\n\tconditional: conditionalOperation,\n\ton: onOperation,\n\n\tfilter: filterOperation,\n\tany: anyOperation,\n\tevery: everyOperation,\n}\n\nexport function when(...conditions: Validation.Validator[]) {\n\treturn new RuleBranch(conditions, [])\n}\n\nexport const assert = (validator: Validation.Validator, message: MessageOrString) => fluent().assert(validator, message)\n/** alias for assertDefined */\nexport const required = (message: MessageOrString) => fluent().assertDefined(message)\nexport const assertDefined = (message: MessageOrString) => fluent().assertDefined(message)\nexport const assertNotEmpty = (message: MessageOrString) => fluent().assertNotEmpty(message)\nexport const assertPattern = (pattern: RegExp, message: MessageOrString) => fluent().assertPattern(pattern, message)\nexport const assertMinLength = (min: number, message: MessageOrString) => fluent().assertMinLength(min, message)\nexport const assertMaxLength = (min: number, message: MessageOrString) => fluent().assertMaxLength(min, message)\n\nexport const combine =\n\t(...decorators: PropertyDecorator[]): PropertyDecorator =>\n\t\t(target, propertyKey) =>\n\t\t\tdecorators.forEach(it => it(target, propertyKey))\n\nexport function parseDefinition(\n\tdefinitions: Record<string, any>,\n): Validation.Schema {\n\treturn filterEntityDefinition(definitions)\n\t\t.map(([name, definition]) => {\n\t\t\tconst target = definition.prototype\n\t\t\tconst defInstance = new definition()\n\t\t\tconst fields = Object.keys(defInstance)\n\t\t\treturn tuple(\n\t\t\t\tname,\n\t\t\t\tfields\n\t\t\t\t\t.map(field => {\n\t\t\t\t\t\tconst fieldRules: Validation.ValidationRule[] | undefined = Reflect.getMetadata(RuleMetaKey, target, field)\n\t\t\t\t\t\tif (fieldRules === undefined) {\n\t\t\t\t\t\t\treturn tuple(field, [])\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn tuple(field, fieldRules)\n\t\t\t\t\t})\n\t\t\t\t\t.reduce<Validation.EntityRules>(\n\t\t\t\t\t\t(ruleSet, [field, rules]) => (rules.length > 0 ? { ...ruleSet, [field]: rules } : ruleSet),\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t)\n\t\t})\n\t\t.reduce<Validation.Schema>(\n\t\t\t(acc, [name, defs]) => (Object.keys(defs).length > 0 ? { ...acc, [name]: defs } : acc),\n\t\t\t{},\n\t\t)\n}\n"],"names":["rules"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../packages/schema-definition/src/validation/index.ts"],"sourcesContent":["import { tuple } from '../utils'\nimport { SchemaDefinition } from '../model'\nimport 'reflect-metadata'\nimport { Validation } from '@contember/schema'\nimport { filterEntityDefinition } from '../utils'\n\ntype MessageOrString = Validation.Message | string\n\nexport type ContextPath = Validation.ContextPath | string | undefined\nexport const parsePath = (path: ContextPath): readonly string[] => {\n\tif (!path) {\n\t\treturn []\n\t}\n\tif (typeof path === 'string') {\n\t\treturn path.split('.')\n\t}\n\treturn path\n}\n\nconst ArgumentFactory = {\n\tvalidator: (validator: Validation.Validator): Validation.ValidatorArgument => ({\n\t\ttype: Validation.ArgumentType.validator,\n\t\tvalidator,\n\t}),\n\tpath: (path?: ContextPath): Validation.PathArgument => ({\n\t\ttype: Validation.ArgumentType.path,\n\t\tpath: parsePath(path),\n\t}),\n\tliteral: <V = any>(value: V): Validation.LiteralArgument<V> => ({ type: Validation.ArgumentType.literal, value }),\n}\n\nconst RuleMetaKey = Symbol('Rule')\n\nfunction updateMetadata<T>(\n\t{ key, target, propertyKey }: { key: symbol; target: any; propertyKey: string | symbol },\n\tgenerator: (previous: T) => T,\n\tinitialValue: T,\n) {\n\tconst metadata = Reflect.hasMetadata(key, target, propertyKey)\n\t\t? Reflect.getMetadata(key, target, propertyKey)\n\t\t: initialValue\n\n\tconst newMetadata = generator(metadata)\n\tReflect.defineMetadata(key, newMetadata, target, propertyKey)\n}\n\nfunction addRuleToMetadata(target: any, propertyKey: string | symbol, ...rule: Validation.ValidationRule[]) {\n\tupdateMetadata<Validation.ValidationRule[]>({ key: RuleMetaKey, target, propertyKey }, prev => [...rule, ...prev], [])\n}\n\nexport function fluent() {\n\treturn new RuleBranch([], [])\n}\n\nexport class RuleBranch {\n\tconstructor(private conditions: Validation.Validator[], private branchRules: Validation.ValidationRule[]) {}\n\n\tpublic buildRules = (): Validation.ValidationRule[] => {\n\t\tif (this.conditions.length === 0) {\n\t\t\treturn this.branchRules\n\t\t}\n\t\treturn this.branchRules.map(rule => ({\n\t\t\tvalidator: rules.conditional(\n\t\t\t\tthis.conditions.length === 1 ? this.conditions[0] : rules.and(...this.conditions),\n\t\t\t\trule.validator,\n\t\t\t),\n\t\t\tmessage: rule.message,\n\t\t}))\n\t}\n\n\tpublic assert = (validator: Validation.Validator, message: MessageOrString): RuleBranch & PropertyDecorator => {\n\t\tconst messageParsed: Validation.Message = typeof message === 'string' ? { text: message } : message\n\t\tconst newRules = [...this.branchRules, { validator, message: messageParsed }]\n\t\tconst branch = new RuleBranch(this.conditions, newRules)\n\t\tconst propertyDecorator: PropertyDecorator = (target: any, propertykey: string | symbol) => {\n\t\t\taddRuleToMetadata(target, propertykey, ...branch.buildRules())\n\t\t}\n\t\treturn Object.assign(propertyDecorator, branch)\n\t}\n\n\tassertPattern = (pattern: RegExp, message: MessageOrString) => this.assert(rules.pattern(pattern), message)\n\tassertEquals = (value: any, message: MessageOrString) => this.assert(rules.equals(value), message)\n\tassertDefined = (message: MessageOrString) => this.assert(rules.defined(), message)\n\tassertNotEmpty = (message: MessageOrString) => this.assert(rules.notEmpty(), message)\n\tassertMinLength = (minLength: number, message: MessageOrString) => this.assert(rules.minLength(minLength), message)\n\tassertMaxLength = (minLength: number, message: MessageOrString) => this.assert(rules.maxLength(minLength), message)\n}\n\nconst andOperation = (...conditions: Validation.Validator[]): Validation.Validator => ({\n\toperation: 'and',\n\targs: conditions.map(validator => ArgumentFactory.validator(validator)),\n})\nconst orOperation = (...conditions: Validation.Validator[]): Validation.Validator => ({\n\toperation: 'or',\n\targs: conditions.map(validator => ArgumentFactory.validator(validator)),\n})\nconst conditionalOperation = (condition: Validation.Validator, rule: Validation.Validator): Validation.Validator => ({\n\toperation: 'conditional',\n\targs: [ArgumentFactory.validator(condition), ArgumentFactory.validator(rule)],\n})\n\nconst patternOperation = (pattern: RegExp): Validation.Validator => ({\n\toperation: 'pattern',\n\targs: [ArgumentFactory.literal([pattern.source, pattern.flags])],\n})\n\nconst lengthRangeOperation = (min: number | null, max: number | null): Validation.Validator => ({\n\toperation: 'lengthRange',\n\targs: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)],\n})\n\nconst rangeOperation = (min: number | null, max: number | null): Validation.Validator => ({\n\toperation: 'range',\n\targs: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)],\n})\n\nconst equalsOperation = (value: any): Validation.Validator => ({\n\toperation: 'equals',\n\targs: [ArgumentFactory.literal(value)],\n})\nconst notOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'not',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst emptyOperation = (): Validation.Validator => ({ operation: 'empty', args: [] })\nconst definedOperation = (): Validation.Validator => ({ operation: 'defined', args: [] })\n\nexport const InContextOperation = 'inContext' as const\nconst onOperation = (path: ContextPath, validator: Validation.Validator): Validation.Validator => ({\n\toperation: InContextOperation,\n\targs: [ArgumentFactory.path(path), ArgumentFactory.validator(validator)],\n})\n\nconst everyOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'every',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst anyOperation = (validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'any',\n\targs: [ArgumentFactory.validator(validator)],\n})\n\nconst filterOperation = (filter: Validation.Validator, validator: Validation.Validator): Validation.Validator => ({\n\toperation: 'filter',\n\targs: [ArgumentFactory.validator(filter), ArgumentFactory.validator(validator)],\n})\n\nexport const rules = {\n\tequals: equalsOperation,\n\tin: (...value: any[]) => orOperation(...value.map(it => equalsOperation(it))),\n\tpattern: patternOperation,\n\n\tlengthRange: lengthRangeOperation,\n\tminLength: (min: number) => lengthRangeOperation(min, null),\n\tmaxLength: (max: number) => lengthRangeOperation(null, max),\n\n\trange: rangeOperation,\n\tmin: (min: number) => rangeOperation(min, null),\n\tmax: (max: number) => rangeOperation(null, max),\n\n\tdefined: definedOperation,\n\t['empty']: emptyOperation,\n\tnotEmpty: () => notOperation(emptyOperation()),\n\t['null']: () => equalsOperation(null),\n\tnotNull: () => notOperation(equalsOperation(null)),\n\n\tand: andOperation,\n\tor: orOperation,\n\tnot: notOperation,\n\n\tconditional: conditionalOperation,\n\ton: onOperation,\n\n\tfilter: filterOperation,\n\tany: anyOperation,\n\tevery: everyOperation,\n}\n\nexport function when(...conditions: Validation.Validator[]) {\n\treturn new RuleBranch(conditions, [])\n}\n\nexport const assert = (validator: Validation.Validator, message: MessageOrString) => fluent().assert(validator, message)\n/** alias for assertDefined */\nexport const required = (message: MessageOrString) => fluent().assertDefined(message)\nexport const assertDefined = (message: MessageOrString) => fluent().assertDefined(message)\nexport const assertNotEmpty = (message: MessageOrString) => fluent().assertNotEmpty(message)\nexport const assertPattern = (pattern: RegExp, message: MessageOrString) => fluent().assertPattern(pattern, message)\nexport const assertMinLength = (min: number, message: MessageOrString) => fluent().assertMinLength(min, message)\nexport const assertMaxLength = (min: number, message: MessageOrString) => fluent().assertMaxLength(min, message)\n\nexport const combine =\n\t(...decorators: PropertyDecorator[]): PropertyDecorator =>\n\t\t(target, propertyKey) =>\n\t\t\tdecorators.forEach(it => it(target, propertyKey))\n\nexport function parseDefinition(\n\tdefinitions: Record<string, any>,\n): Validation.Schema {\n\treturn filterEntityDefinition(definitions)\n\t\t.map(([name, definition]) => {\n\t\t\tconst target = definition.prototype\n\t\t\tconst defInstance = new definition()\n\t\t\tconst fields = Object.keys(defInstance)\n\t\t\treturn tuple(\n\t\t\t\tname,\n\t\t\t\tfields\n\t\t\t\t\t.map(field => {\n\t\t\t\t\t\tconst fieldRules: Validation.ValidationRule[] | undefined = Reflect.getMetadata(RuleMetaKey, target, field)\n\t\t\t\t\t\tif (fieldRules === undefined) {\n\t\t\t\t\t\t\treturn tuple(field, [])\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn tuple(field, fieldRules)\n\t\t\t\t\t})\n\t\t\t\t\t.reduce<Validation.EntityRules>(\n\t\t\t\t\t\t(ruleSet, [field, rules]) => (rules.length > 0 ? { ...ruleSet, [field]: rules } : ruleSet),\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t)\n\t\t})\n\t\t.reduce<Validation.Schema>(\n\t\t\t(acc, [name, defs]) => (Object.keys(defs).length > 0 ? { ...acc, [name]: defs } : acc),\n\t\t\t{},\n\t\t)\n}\n"],"names":["rules"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","AclDefinition.createRole","AclDefinition.createConditionVariable","AclDefinition.createEntityVariable","AclDefinition.createPredefinedVariable","AclDefinition.canCreate","AclDefinition.canRead","AclDefinition.canUpdate","AclDefinition.canDelete","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","SchemaDefinition.Index","SchemaDefinition.Unique","SchemaDefinition.View","SchemaDefinition.DisableEventLog","SchemaDefinition.OrderBy","SchemaDefinition.column","SchemaDefinition.boolColumn","SchemaDefinition.intColumn","SchemaDefinition.doubleColumn","SchemaDefinition.dateColumn","SchemaDefinition.dateTimeColumn","SchemaDefinition.jsonColumn","SchemaDefinition.stringColumn","SchemaDefinition.enumColumn","SchemaDefinition.uuidColumn","SchemaDefinition.manyHasMany","SchemaDefinition.manyHasManyInverse","SchemaDefinition.manyHasOne","SchemaDefinition.oneHasOne","SchemaDefinition.oneHasOneInverse","SchemaDefinition.oneHasMany","SchemaDefinition.createEnum","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when","InputValidation.rules"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport { Role } from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport type { Role }\nexport type { VariableDefinition } from './acl/definition'\nexport type {\n\tColumnDefinition,\n\tFieldDefinition,\n\tOneHasOneDefinition,\n\tOneHasOneInverseDefinition,\n\tOneHasManyDefinition,\n\tManyHasOneDefinition,\n\tManyHasManyDefinition,\n\tManyHasManyInverseDefinition,\n\tEnumDefinition,\n} from './model/definition'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","AclDefinition.createRole","AclDefinition.createConditionVariable","AclDefinition.createEntityVariable","AclDefinition.createPredefinedVariable","AclDefinition.canCreate","AclDefinition.canRead","AclDefinition.canUpdate","AclDefinition.canDelete","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","SchemaDefinition.Index","SchemaDefinition.Unique","SchemaDefinition.View","SchemaDefinition.DisableEventLog","SchemaDefinition.OrderBy","SchemaDefinition.column","SchemaDefinition.boolColumn","SchemaDefinition.intColumn","SchemaDefinition.doubleColumn","SchemaDefinition.dateColumn","SchemaDefinition.dateTimeColumn","SchemaDefinition.jsonColumn","SchemaDefinition.stringColumn","SchemaDefinition.enumColumn","SchemaDefinition.uuidColumn","SchemaDefinition.manyHasMany","SchemaDefinition.manyHasManyInverse","SchemaDefinition.manyHasOne","SchemaDefinition.oneHasOne","SchemaDefinition.oneHasOneInverse","SchemaDefinition.oneHasMany","SchemaDefinition.createEnum","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when","InputValidation.rules"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,IAAI;AAAA;AAAA;AAAA,EAIhB,oBAAoBA,cAAc;AAAA,EAClC,OAAOC,YAAc;AAAA;AAAA,EAErB,YAAYC,MAAc;AAAA,EAC1B,yBAAyBC,UAAc;AAAA,EACvC,sBAAsBC,UAAc;AAAA,EACpC,0BAA0BC,UAAc;AAAA;AAAA,EAExC,WAAWC,WAAc;AAAA,EACzB,SAASC,WAAc;AAAA,EACvB,WAAWC,WAAc;AAAA,EACzB,WAAWC,WAAc;AAAA;AAAA;AAAA,EAKzB,OAAOC,SAAkB;AAAA,EACzB,SAASC,SAAkB;AAAA;AAAA,EAE3B,qBAAqBC,QAAkB;AAAA;AAAA;AAAA,EAKvC,cAAcC,WAAiB;AAAA,EAC/B,OAAOC,gBAAiB;AAAA,EACxB,QAAQC,iBAAiB;AAAA,EACzB,MAAMC,eAAiB;AAAA,EACvB,iBAAiBC,mBAAiB;AAAA,EAClC,SAASC,kBAAiB;AAAA;AAAA,EAE1B,QAAQC,iBAAiB;AAAA,EACzB,YAAYC,iBAAiB;AAAA,EAC7B,WAAWC,iBAAiB;AAAA,EAC5B,cAAcC,iBAAiB;AAAA,EAC/B,YAAYC,iBAAiB;AAAA,EAC7B,gBAAgBC,iBAAiB;AAAA,EACjC,YAAYC,iBAAiB;AAAA,EAC7B,cAAcC,iBAAiB;AAAA,EAC/B,YAAYC,iBAAiB;AAAA,EAC7B,YAAYC,iBAAiB;AAAA,EAC7B,aAAaC,sBAAiB;AAAA,EAC9B,oBAAoBC,6BAAiB;AAAA,EACrC,YAAYC,qBAAiB;AAAA,EAC7B,WAAWC,oBAAiB;AAAA,EAC5B,kBAAkBC,2BAAiB;AAAA,EACnC,YAAYC,qBAAiB;AAAA;AAAA,EAE7B,YAAYC,eAAiB;AAAA;AAAA;AAAA,EAK7B,QAAQC,QAAgB;AAAA,EACxB,UAAUC,QAAgB;AAAA,EAC1B,eAAeC,QAAgB;AAAA,EAC/B,gBAAgBC,QAAgB;AAAA,EAChC,eAAeC,QAAgB;AAAA,EAC/B,iBAAiBC,QAAgB;AAAA,EACjC,iBAAiBC,QAAgB;AAAA,EACjC,cAAcC,QAAgB;AAAA;AAAA,EAE9B,OAAOC,QAAAA;AAER;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport { Role } from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport type { Role }\nexport type { VariableDefinition } from './acl/definition'\nexport type {\n\tColumnDefinition,\n\tFieldDefinition,\n\tOneHasOneDefinition,\n\tOneHasOneInverseDefinition,\n\tOneHasManyDefinition,\n\tManyHasOneDefinition,\n\tManyHasManyDefinition,\n\tManyHasManyInverseDefinition,\n\tEnumDefinition,\n} from './model/definition'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,IAAI;AAAA;AAAA;AAAA,EAIhB,oBAAoBA;AAAAA,EACpB,OAAOC;AAAAA;AAAAA,EAEP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAKA,OAAOC;AAAAA,EACP,SAASC;AAAAA;AAAAA,EAET,qBAAqBC;AAAAA;AAAAA;AAAAA,EAKrB,cAAcC;AAAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA,EAKA,QAAQC;AAAAA,EACR,UAAUC;AAAAA,EACV,eAAeC;AAAAA,EACf,gBAAgBC;AAAAA,EAChB,eAAeC;AAAAA,EACf,iBAAiBC;AAAAA,EACjB,iBAAiBC;AAAAA,EACjB,cAAcC;AAAAA;AAAAA,EAEd;AAED;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntityPermissionsBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport EntitySelector from './EntitySelector'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport FieldSelector from './FieldSelector'\nimport FieldPermissionsBuilder from './FieldPermissionsBuilder'\nimport { PermissionsBuilder } from './PermissionsBuilder'\nimport PredicateReference, { resolvePredicateReference } from './PredicateReference'\n\nexport default class EntityPermissionsBuilder {\n\tpublic constructor(public readonly builder: PermissionsBuilder, private readonly entities: Model.Entity[]) {}\n\n\tget schema(): Model.Schema {\n\t\treturn this.builder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.builder.permissions\n\t}\n\n\taddPredicate(name: string, predicate: Acl.PredicateDefinition<PredicateReference>): EntityPermissionsBuilder {\n\t\tconst predicates = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({\n\t\t\t\t...acc,\n\t\t\t\t[entity.name]: {\n\t\t\t\t\toperations: {},\n\t\t\t\t\tpredicates: { [name]: resolvePredicateReference(this.schema, this.permissions, entity, predicate) },\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{},\n\t\t)\n\n\t\treturn this.add(predicates)\n\t}\n\n\tallow(operations: Acl.Operation[], predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(operations, predicate)\n\t}\n\n\tallowAll(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(\n\t\t\t[Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete],\n\t\t\tpredicate,\n\t\t)\n\t}\n\n\tallowOnlyRead(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.disallowAll().allow([Acl.Operation.read], predicate)\n\t}\n\n\tdisallowAll(): EntityPermissionsBuilder {\n\t\treturn this.updateAll([Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete], false)\n\t}\n\n\tallowDelete(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { delete: predicate }, predicates: {} }))\n\t}\n\n\tallowCustomPrimary(): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { customPrimary: true }, predicates: {} }))\n\t}\n\n\tprivate updateAll(operations: Acl.Operation[], predicate: Acl.Predicate): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(entity => {\n\t\t\tconst fieldPermissions = Object.keys(entity.fields).reduce(\n\t\t\t\t(permissions: Acl.FieldPermissions, fieldName): Acl.FieldPermissions => {\n\t\t\t\t\treturn { ...permissions, [fieldName]: predicate }\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t)\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = {}\n\t\t\tif (operations.includes(Acl.Operation.read)) {\n\t\t\t\tentityOperations.read = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.create)) {\n\t\t\t\tentityOperations.create = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.update)) {\n\t\t\t\tentityOperations.update = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.delete)) {\n\t\t\t\tentityOperations.delete = predicate\n\t\t\t}\n\t\t\treturn {\n\t\t\t\toperations: entityOperations,\n\t\t\t\tpredicates: {},\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addEntityPermission(\n\t\tentityPermission: (entity: Model.Entity) => Acl.EntityPermissions,\n\t): EntityPermissionsBuilder {\n\t\tconst permissions = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({ ...acc, [entity.name]: entityPermission(entity) }),\n\t\t\t{},\n\t\t)\n\t\treturn this.add(permissions)\n\t}\n\n\tpublic add(permissions: Acl.Permissions): EntityPermissionsBuilder {\n\t\treturn new EntityPermissionsBuilder(this.builder.add(permissions), this.entities)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.builder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.builder.onEveryEntity()\n\t}\n\n\tonField(fieldSelector: FieldSelector | string | string[]): FieldPermissionsBuilder {\n\t\tif (typeof fieldSelector === 'string') {\n\t\t\tfieldSelector = FieldSelector.named(fieldSelector)\n\t\t} else if (Array.isArray(fieldSelector)) {\n\t\t\tfieldSelector = FieldSelector.named(...fieldSelector)\n\t\t}\n\t\tconst fieldSelectorConst = fieldSelector\n\t\tconst fields = this.entities\n\t\t\t.map(it =>\n\t\t\t\ttuple(\n\t\t\t\t\tit,\n\t\t\t\t\tObject.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.reduce<[Model.Entity, Model.AnyField][]>(\n\t\t\t\t(acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],\n\t\t\t\t[],\n\t\t\t)\n\t\treturn new FieldPermissionsBuilder(this, fields)\n\t}\n\n\tonEveryField(): FieldPermissionsBuilder {\n\t\treturn this.onField(FieldSelector.every())\n\t}\n}\n"],"names":["resolvePredicateReference","Acl","tuple","fields"],"mappings":";;;;;;;AAQA,MAAqB,yBAAyB;AAAA,EACtC,YAA4B,SAA8C,UAA0B;AAAxE,SAAA,UAAA;AAA8C,SAAA,WAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"EntityPermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntityPermissionsBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport EntitySelector from './EntitySelector'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport FieldSelector from './FieldSelector'\nimport FieldPermissionsBuilder from './FieldPermissionsBuilder'\nimport { PermissionsBuilder } from './PermissionsBuilder'\nimport PredicateReference, { resolvePredicateReference } from './PredicateReference'\n\nexport default class EntityPermissionsBuilder {\n\tpublic constructor(public readonly builder: PermissionsBuilder, private readonly entities: Model.Entity[]) {}\n\n\tget schema(): Model.Schema {\n\t\treturn this.builder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.builder.permissions\n\t}\n\n\taddPredicate(name: string, predicate: Acl.PredicateDefinition<PredicateReference>): EntityPermissionsBuilder {\n\t\tconst predicates = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({\n\t\t\t\t...acc,\n\t\t\t\t[entity.name]: {\n\t\t\t\t\toperations: {},\n\t\t\t\t\tpredicates: { [name]: resolvePredicateReference(this.schema, this.permissions, entity, predicate) },\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{},\n\t\t)\n\n\t\treturn this.add(predicates)\n\t}\n\n\tallow(operations: Acl.Operation[], predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(operations, predicate)\n\t}\n\n\tallowAll(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(\n\t\t\t[Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete],\n\t\t\tpredicate,\n\t\t)\n\t}\n\n\tallowOnlyRead(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.disallowAll().allow([Acl.Operation.read], predicate)\n\t}\n\n\tdisallowAll(): EntityPermissionsBuilder {\n\t\treturn this.updateAll([Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete], false)\n\t}\n\n\tallowDelete(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { delete: predicate }, predicates: {} }))\n\t}\n\n\tallowCustomPrimary(): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { customPrimary: true }, predicates: {} }))\n\t}\n\n\tprivate updateAll(operations: Acl.Operation[], predicate: Acl.Predicate): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(entity => {\n\t\t\tconst fieldPermissions = Object.keys(entity.fields).reduce(\n\t\t\t\t(permissions: Acl.FieldPermissions, fieldName): Acl.FieldPermissions => {\n\t\t\t\t\treturn { ...permissions, [fieldName]: predicate }\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t)\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = {}\n\t\t\tif (operations.includes(Acl.Operation.read)) {\n\t\t\t\tentityOperations.read = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.create)) {\n\t\t\t\tentityOperations.create = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.update)) {\n\t\t\t\tentityOperations.update = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.delete)) {\n\t\t\t\tentityOperations.delete = predicate\n\t\t\t}\n\t\t\treturn {\n\t\t\t\toperations: entityOperations,\n\t\t\t\tpredicates: {},\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addEntityPermission(\n\t\tentityPermission: (entity: Model.Entity) => Acl.EntityPermissions,\n\t): EntityPermissionsBuilder {\n\t\tconst permissions = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({ ...acc, [entity.name]: entityPermission(entity) }),\n\t\t\t{},\n\t\t)\n\t\treturn this.add(permissions)\n\t}\n\n\tpublic add(permissions: Acl.Permissions): EntityPermissionsBuilder {\n\t\treturn new EntityPermissionsBuilder(this.builder.add(permissions), this.entities)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.builder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.builder.onEveryEntity()\n\t}\n\n\tonField(fieldSelector: FieldSelector | string | string[]): FieldPermissionsBuilder {\n\t\tif (typeof fieldSelector === 'string') {\n\t\t\tfieldSelector = FieldSelector.named(fieldSelector)\n\t\t} else if (Array.isArray(fieldSelector)) {\n\t\t\tfieldSelector = FieldSelector.named(...fieldSelector)\n\t\t}\n\t\tconst fieldSelectorConst = fieldSelector\n\t\tconst fields = this.entities\n\t\t\t.map(it =>\n\t\t\t\ttuple(\n\t\t\t\t\tit,\n\t\t\t\t\tObject.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.reduce<[Model.Entity, Model.AnyField][]>(\n\t\t\t\t(acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],\n\t\t\t\t[],\n\t\t\t)\n\t\treturn new FieldPermissionsBuilder(this, fields)\n\t}\n\n\tonEveryField(): FieldPermissionsBuilder {\n\t\treturn this.onField(FieldSelector.every())\n\t}\n}\n"],"names":["resolvePredicateReference","Acl","tuple","fields"],"mappings":";;;;;;;AAQA,MAAqB,yBAAyB;AAAA,EACtC,YAA4B,SAA8C,UAA0B;AAAxE,SAAA,UAAA;AAA8C,SAAA,WAAA;AAAA,EAAA;AAAA,EAEjF,IAAI,SAAuB;AAC1B,WAAO,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGrB,IAAI,cAA+B;AAClC,WAAO,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGrB,aAAa,MAAc,WAAkF;AACtG,UAAA,aAAa,KAAK,SAAS;AAAA,MAChC,CAAC,KAAK,YAAY;AAAA,QACjB,GAAG;AAAA,QACH,CAAC,OAAO,IAAI,GAAG;AAAA,UACd,YAAY,CAAC;AAAA,UACb,YAAY,EAAE,CAAC,IAAI,GAAGA,6CAA0B,KAAK,QAAQ,KAAK,aAAa,QAAQ,SAAS,EAAE;AAAA,QAAA;AAAA,MACnG;AAAA,MAED,CAAA;AAAA,IACD;AAEO,WAAA,KAAK,IAAI,UAAU;AAAA,EAAA;AAAA,EAG3B,MAAM,YAA6B,YAA2B,MAAgC;AACtF,WAAA,KAAK,UAAU,YAAY,SAAS;AAAA,EAAA;AAAA,EAG5C,SAAS,YAA2B,MAAgC;AACnE,WAAO,KAAK;AAAA,MACX,CAACC,OAAA,IAAI,UAAU,MAAMA,OAAAA,IAAI,UAAU,QAAQA,OAAA,IAAI,UAAU,QAAQA,WAAI,UAAU,MAAM;AAAA,MACrF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,cAAc,YAA2B,MAAgC;AACjE,WAAA,KAAK,cAAc,MAAM,CAACA,OAAAA,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAAA;AAAA,EAGhE,cAAwC;AACvC,WAAO,KAAK,UAAU,CAACA,OAAAA,IAAI,UAAU,MAAMA,OAAAA,IAAI,UAAU,QAAQA,OAAA,IAAI,UAAU,QAAQA,OAAAA,IAAI,UAAU,MAAM,GAAG,KAAK;AAAA,EAAA;AAAA,EAGpH,YAAY,YAA2B,MAAgC;AACtE,WAAO,KAAK,oBAAoB,OAAO,EAAE,YAAY,EAAE,QAAQ,aAAa,YAAY,CAAC,EAAA,EAAI;AAAA,EAAA;AAAA,EAG9F,qBAA+C;AAC9C,WAAO,KAAK,oBAAoB,OAAO,EAAE,YAAY,EAAE,eAAe,QAAQ,YAAY,CAAC,EAAA,EAAI;AAAA,EAAA;AAAA,EAGxF,UAAU,YAA6B,WAAoD;AAC3F,WAAA,KAAK,oBAAoB,CAAU,WAAA;AACzC,YAAM,mBAAmB,OAAO,KAAK,OAAO,MAAM,EAAE;AAAA,QACnD,CAAC,aAAmC,cAAoC;AACvE,iBAAO,EAAE,GAAG,aAAa,CAAC,SAAS,GAAG,UAAU;AAAA,QACjD;AAAA,QACA,CAAA;AAAA,MACD;AACA,YAAM,mBAAmD,CAAC;AAC1D,UAAI,WAAW,SAASA,OAAI,IAAA,UAAU,IAAI,GAAG;AAC5C,yBAAiB,OAAO;AAAA,MAAA;AAEzB,UAAI,WAAW,SAASA,OAAI,IAAA,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAE3B,UAAI,WAAW,SAASA,OAAI,IAAA,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAE3B,UAAI,WAAW,SAASA,OAAI,IAAA,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAEpB,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,CAAA;AAAA,MACb;AAAA,IAAA,CACA;AAAA,EAAA;AAAA,EAGM,oBACP,kBAC2B;AACrB,UAAA,cAAc,KAAK,SAAS;AAAA,MACjC,CAAC,KAAK,YAAY,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,iBAAiB,MAAM;MAClE,CAAA;AAAA,IACD;AACO,WAAA,KAAK,IAAI,WAAW;AAAA,EAAA;AAAA,EAGrB,IAAI,aAAwD;AAC3D,WAAA,IAAI,yBAAyB,KAAK,QAAQ,IAAI,WAAW,GAAG,KAAK,QAAQ;AAAA,EAAA;AAAA,EAG1E,SAAS,gBAA8E;AACtF,WAAA,KAAK,QAAQ,SAAS,cAAc;AAAA,EAAA;AAAA,EAGrC,gBAA0C;AACzC,WAAA,KAAK,QAAQ,cAAc;AAAA,EAAA;AAAA,EAGnC,QAAQ,eAA2E;AAC9E,QAAA,OAAO,kBAAkB,UAAU;AACtB,sBAAA,cAAc,MAAM,aAAa;AAAA,IACvC,WAAA,MAAM,QAAQ,aAAa,GAAG;AACxB,sBAAA,cAAc,MAAM,GAAG,aAAa;AAAA,IAAA;AAErD,UAAM,qBAAqB;AACrB,UAAA,SAAS,KAAK,SAClB;AAAA,MAAI,CACJ,OAAAC,MAAA;AAAA,QACC;AAAA,QACA,OAAO,OAAO,GAAG,MAAM,EAAE,OAAO,CAAS,UAAA,mBAAmB,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC;AAAA,MAAA;AAAA,IAC5F,EAEA;AAAA,MACA,CAAC,KAAK,CAAC,QAAQC,OAAM,MAAM,CAAC,GAAG,KAAK,GAAGA,QAAO,IAAI,CAAA,OAAMD,MAAAA,MAAM,QAAQ,EAAE,CAAC,CAAC;AAAA,MAC1E,CAAA;AAAA,IACD;AACM,WAAA,IAAI,wBAAwB,MAAM,MAAM;AAAA,EAAA;AAAA,EAGhD,eAAwC;AACvC,WAAO,KAAK,QAAQ,cAAc,MAAA,CAAO;AAAA,EAAA;AAE3C;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntityPermissionsBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport EntitySelector from './EntitySelector'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport FieldSelector from './FieldSelector'\nimport FieldPermissionsBuilder from './FieldPermissionsBuilder'\nimport { PermissionsBuilder } from './PermissionsBuilder'\nimport PredicateReference, { resolvePredicateReference } from './PredicateReference'\n\nexport default class EntityPermissionsBuilder {\n\tpublic constructor(public readonly builder: PermissionsBuilder, private readonly entities: Model.Entity[]) {}\n\n\tget schema(): Model.Schema {\n\t\treturn this.builder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.builder.permissions\n\t}\n\n\taddPredicate(name: string, predicate: Acl.PredicateDefinition<PredicateReference>): EntityPermissionsBuilder {\n\t\tconst predicates = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({\n\t\t\t\t...acc,\n\t\t\t\t[entity.name]: {\n\t\t\t\t\toperations: {},\n\t\t\t\t\tpredicates: { [name]: resolvePredicateReference(this.schema, this.permissions, entity, predicate) },\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{},\n\t\t)\n\n\t\treturn this.add(predicates)\n\t}\n\n\tallow(operations: Acl.Operation[], predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(operations, predicate)\n\t}\n\n\tallowAll(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(\n\t\t\t[Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete],\n\t\t\tpredicate,\n\t\t)\n\t}\n\n\tallowOnlyRead(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.disallowAll().allow([Acl.Operation.read], predicate)\n\t}\n\n\tdisallowAll(): EntityPermissionsBuilder {\n\t\treturn this.updateAll([Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete], false)\n\t}\n\n\tallowDelete(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { delete: predicate }, predicates: {} }))\n\t}\n\n\tallowCustomPrimary(): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { customPrimary: true }, predicates: {} }))\n\t}\n\n\tprivate updateAll(operations: Acl.Operation[], predicate: Acl.Predicate): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(entity => {\n\t\t\tconst fieldPermissions = Object.keys(entity.fields).reduce(\n\t\t\t\t(permissions: Acl.FieldPermissions, fieldName): Acl.FieldPermissions => {\n\t\t\t\t\treturn { ...permissions, [fieldName]: predicate }\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t)\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = {}\n\t\t\tif (operations.includes(Acl.Operation.read)) {\n\t\t\t\tentityOperations.read = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.create)) {\n\t\t\t\tentityOperations.create = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.update)) {\n\t\t\t\tentityOperations.update = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.delete)) {\n\t\t\t\tentityOperations.delete = predicate\n\t\t\t}\n\t\t\treturn {\n\t\t\t\toperations: entityOperations,\n\t\t\t\tpredicates: {},\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addEntityPermission(\n\t\tentityPermission: (entity: Model.Entity) => Acl.EntityPermissions,\n\t): EntityPermissionsBuilder {\n\t\tconst permissions = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({ ...acc, [entity.name]: entityPermission(entity) }),\n\t\t\t{},\n\t\t)\n\t\treturn this.add(permissions)\n\t}\n\n\tpublic add(permissions: Acl.Permissions): EntityPermissionsBuilder {\n\t\treturn new EntityPermissionsBuilder(this.builder.add(permissions), this.entities)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.builder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.builder.onEveryEntity()\n\t}\n\n\tonField(fieldSelector: FieldSelector | string | string[]): FieldPermissionsBuilder {\n\t\tif (typeof fieldSelector === 'string') {\n\t\t\tfieldSelector = FieldSelector.named(fieldSelector)\n\t\t} else if (Array.isArray(fieldSelector)) {\n\t\t\tfieldSelector = FieldSelector.named(...fieldSelector)\n\t\t}\n\t\tconst fieldSelectorConst = fieldSelector\n\t\tconst fields = this.entities\n\t\t\t.map(it =>\n\t\t\t\ttuple(\n\t\t\t\t\tit,\n\t\t\t\t\tObject.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.reduce<[Model.Entity, Model.AnyField][]>(\n\t\t\t\t(acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],\n\t\t\t\t[],\n\t\t\t)\n\t\treturn new FieldPermissionsBuilder(this, fields)\n\t}\n\n\tonEveryField(): FieldPermissionsBuilder {\n\t\treturn this.onField(FieldSelector.every())\n\t}\n}\n"],"names":["fields"],"mappings":";;;;;;AAQA,MAAqB,yBAAyB;AAAA,EACtC,YAA4B,SAA8C,UAA0B;AAAxE,SAAA,UAAA;AAA8C,SAAA,WAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"EntityPermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntityPermissionsBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport EntitySelector from './EntitySelector'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport FieldSelector from './FieldSelector'\nimport FieldPermissionsBuilder from './FieldPermissionsBuilder'\nimport { PermissionsBuilder } from './PermissionsBuilder'\nimport PredicateReference, { resolvePredicateReference } from './PredicateReference'\n\nexport default class EntityPermissionsBuilder {\n\tpublic constructor(public readonly builder: PermissionsBuilder, private readonly entities: Model.Entity[]) {}\n\n\tget schema(): Model.Schema {\n\t\treturn this.builder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.builder.permissions\n\t}\n\n\taddPredicate(name: string, predicate: Acl.PredicateDefinition<PredicateReference>): EntityPermissionsBuilder {\n\t\tconst predicates = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({\n\t\t\t\t...acc,\n\t\t\t\t[entity.name]: {\n\t\t\t\t\toperations: {},\n\t\t\t\t\tpredicates: { [name]: resolvePredicateReference(this.schema, this.permissions, entity, predicate) },\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{},\n\t\t)\n\n\t\treturn this.add(predicates)\n\t}\n\n\tallow(operations: Acl.Operation[], predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(operations, predicate)\n\t}\n\n\tallowAll(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(\n\t\t\t[Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete],\n\t\t\tpredicate,\n\t\t)\n\t}\n\n\tallowOnlyRead(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.disallowAll().allow([Acl.Operation.read], predicate)\n\t}\n\n\tdisallowAll(): EntityPermissionsBuilder {\n\t\treturn this.updateAll([Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete], false)\n\t}\n\n\tallowDelete(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { delete: predicate }, predicates: {} }))\n\t}\n\n\tallowCustomPrimary(): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { customPrimary: true }, predicates: {} }))\n\t}\n\n\tprivate updateAll(operations: Acl.Operation[], predicate: Acl.Predicate): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(entity => {\n\t\t\tconst fieldPermissions = Object.keys(entity.fields).reduce(\n\t\t\t\t(permissions: Acl.FieldPermissions, fieldName): Acl.FieldPermissions => {\n\t\t\t\t\treturn { ...permissions, [fieldName]: predicate }\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t)\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = {}\n\t\t\tif (operations.includes(Acl.Operation.read)) {\n\t\t\t\tentityOperations.read = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.create)) {\n\t\t\t\tentityOperations.create = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.update)) {\n\t\t\t\tentityOperations.update = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.delete)) {\n\t\t\t\tentityOperations.delete = predicate\n\t\t\t}\n\t\t\treturn {\n\t\t\t\toperations: entityOperations,\n\t\t\t\tpredicates: {},\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addEntityPermission(\n\t\tentityPermission: (entity: Model.Entity) => Acl.EntityPermissions,\n\t): EntityPermissionsBuilder {\n\t\tconst permissions = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({ ...acc, [entity.name]: entityPermission(entity) }),\n\t\t\t{},\n\t\t)\n\t\treturn this.add(permissions)\n\t}\n\n\tpublic add(permissions: Acl.Permissions): EntityPermissionsBuilder {\n\t\treturn new EntityPermissionsBuilder(this.builder.add(permissions), this.entities)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.builder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.builder.onEveryEntity()\n\t}\n\n\tonField(fieldSelector: FieldSelector | string | string[]): FieldPermissionsBuilder {\n\t\tif (typeof fieldSelector === 'string') {\n\t\t\tfieldSelector = FieldSelector.named(fieldSelector)\n\t\t} else if (Array.isArray(fieldSelector)) {\n\t\t\tfieldSelector = FieldSelector.named(...fieldSelector)\n\t\t}\n\t\tconst fieldSelectorConst = fieldSelector\n\t\tconst fields = this.entities\n\t\t\t.map(it =>\n\t\t\t\ttuple(\n\t\t\t\t\tit,\n\t\t\t\t\tObject.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.reduce<[Model.Entity, Model.AnyField][]>(\n\t\t\t\t(acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],\n\t\t\t\t[],\n\t\t\t)\n\t\treturn new FieldPermissionsBuilder(this, fields)\n\t}\n\n\tonEveryField(): FieldPermissionsBuilder {\n\t\treturn this.onField(FieldSelector.every())\n\t}\n}\n"],"names":["fields"],"mappings":";;;;;;AAQA,MAAqB,yBAAyB;AAAA,EACtC,YAA4B,SAA8C,UAA0B;AAAxE,SAAA,UAAA;AAA8C,SAAA,WAAA;AAAA,EAAA;AAAA,EAEjF,IAAI,SAAuB;AAC1B,WAAO,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGrB,IAAI,cAA+B;AAClC,WAAO,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGrB,aAAa,MAAc,WAAkF;AACtG,UAAA,aAAa,KAAK,SAAS;AAAA,MAChC,CAAC,KAAK,YAAY;AAAA,QACjB,GAAG;AAAA,QACH,CAAC,OAAO,IAAI,GAAG;AAAA,UACd,YAAY,CAAC;AAAA,UACb,YAAY,EAAE,CAAC,IAAI,GAAG,0BAA0B,KAAK,QAAQ,KAAK,aAAa,QAAQ,SAAS,EAAE;AAAA,QAAA;AAAA,MACnG;AAAA,MAED,CAAA;AAAA,IACD;AAEO,WAAA,KAAK,IAAI,UAAU;AAAA,EAAA;AAAA,EAG3B,MAAM,YAA6B,YAA2B,MAAgC;AACtF,WAAA,KAAK,UAAU,YAAY,SAAS;AAAA,EAAA;AAAA,EAG5C,SAAS,YAA2B,MAAgC;AACnE,WAAO,KAAK;AAAA,MACX,CAAC,IAAI,UAAU,MAAM,IAAI,UAAU,QAAQ,IAAI,UAAU,QAAQ,IAAI,UAAU,MAAM;AAAA,MACrF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,cAAc,YAA2B,MAAgC;AACjE,WAAA,KAAK,cAAc,MAAM,CAAC,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAAA;AAAA,EAGhE,cAAwC;AACvC,WAAO,KAAK,UAAU,CAAC,IAAI,UAAU,MAAM,IAAI,UAAU,QAAQ,IAAI,UAAU,QAAQ,IAAI,UAAU,MAAM,GAAG,KAAK;AAAA,EAAA;AAAA,EAGpH,YAAY,YAA2B,MAAgC;AACtE,WAAO,KAAK,oBAAoB,OAAO,EAAE,YAAY,EAAE,QAAQ,aAAa,YAAY,CAAC,EAAA,EAAI;AAAA,EAAA;AAAA,EAG9F,qBAA+C;AAC9C,WAAO,KAAK,oBAAoB,OAAO,EAAE,YAAY,EAAE,eAAe,QAAQ,YAAY,CAAC,EAAA,EAAI;AAAA,EAAA;AAAA,EAGxF,UAAU,YAA6B,WAAoD;AAC3F,WAAA,KAAK,oBAAoB,CAAU,WAAA;AACzC,YAAM,mBAAmB,OAAO,KAAK,OAAO,MAAM,EAAE;AAAA,QACnD,CAAC,aAAmC,cAAoC;AACvE,iBAAO,EAAE,GAAG,aAAa,CAAC,SAAS,GAAG,UAAU;AAAA,QACjD;AAAA,QACA,CAAA;AAAA,MACD;AACA,YAAM,mBAAmD,CAAC;AAC1D,UAAI,WAAW,SAAS,IAAI,UAAU,IAAI,GAAG;AAC5C,yBAAiB,OAAO;AAAA,MAAA;AAEzB,UAAI,WAAW,SAAS,IAAI,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAE3B,UAAI,WAAW,SAAS,IAAI,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAE3B,UAAI,WAAW,SAAS,IAAI,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAEpB,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,CAAA;AAAA,MACb;AAAA,IAAA,CACA;AAAA,EAAA;AAAA,EAGM,oBACP,kBAC2B;AACrB,UAAA,cAAc,KAAK,SAAS;AAAA,MACjC,CAAC,KAAK,YAAY,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,iBAAiB,MAAM;MAClE,CAAA;AAAA,IACD;AACO,WAAA,KAAK,IAAI,WAAW;AAAA,EAAA;AAAA,EAGrB,IAAI,aAAwD;AAC3D,WAAA,IAAI,yBAAyB,KAAK,QAAQ,IAAI,WAAW,GAAG,KAAK,QAAQ;AAAA,EAAA;AAAA,EAG1E,SAAS,gBAA8E;AACtF,WAAA,KAAK,QAAQ,SAAS,cAAc;AAAA,EAAA;AAAA,EAGrC,gBAA0C;AACzC,WAAA,KAAK,QAAQ,cAAc;AAAA,EAAA;AAAA,EAGnC,QAAQ,eAA2E;AAC9E,QAAA,OAAO,kBAAkB,UAAU;AACtB,sBAAA,cAAc,MAAM,aAAa;AAAA,IACvC,WAAA,MAAM,QAAQ,aAAa,GAAG;AACxB,sBAAA,cAAc,MAAM,GAAG,aAAa;AAAA,IAAA;AAErD,UAAM,qBAAqB;AACrB,UAAA,SAAS,KAAK,SAClB;AAAA,MAAI,CACJ,OAAA;AAAA,QACC;AAAA,QACA,OAAO,OAAO,GAAG,MAAM,EAAE,OAAO,CAAS,UAAA,mBAAmB,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC;AAAA,MAAA;AAAA,IAC5F,EAEA;AAAA,MACA,CAAC,KAAK,CAAC,QAAQA,OAAM,MAAM,CAAC,GAAG,KAAK,GAAGA,QAAO,IAAI,CAAA,OAAM,MAAM,QAAQ,EAAE,CAAC,CAAC;AAAA,MAC1E,CAAA;AAAA,IACD;AACM,WAAA,IAAI,wBAAwB,MAAM,MAAM;AAAA,EAAA;AAAA,EAGhD,eAAwC;AACvC,WAAO,KAAK,QAAQ,cAAc,MAAA,CAAO;AAAA,EAAA;AAE3C;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySelector.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntitySelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity) => boolean\n\nexport default class EntitySelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new EntitySelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn EntitySelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity) => name.includes(entity.name))\n\t}\n\n\tpublic havingRelation(name: string, targetEntityName?: string) {\n\t\treturn this.matching(\n\t\t\t(schema, entity) =>\n\t\t\t\tentity.fields[name] &&\n\t\t\t\tacceptFieldVisitor(schema, entity, name, {\n\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\tvisitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,\n\t\t\t\t}),\n\t\t)\n\t}\n\n\tpublic matching(matcher: Matcher): EntitySelector {\n\t\treturn new EntitySelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity), true)\n\t}\n}\n"],"names":["acceptFieldVisitor"],"mappings":";;AAKA,MAAqB,eAAe;AAAA,EAC3B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"EntitySelector.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntitySelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity) => boolean\n\nexport default class EntitySelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new EntitySelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn EntitySelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity) => name.includes(entity.name))\n\t}\n\n\tpublic havingRelation(name: string, targetEntityName?: string) {\n\t\treturn this.matching(\n\t\t\t(schema, entity) =>\n\t\t\t\tentity.fields[name] &&\n\t\t\t\tacceptFieldVisitor(schema, entity, name, {\n\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\tvisitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,\n\t\t\t\t}),\n\t\t)\n\t}\n\n\tpublic matching(matcher: Matcher): EntitySelector {\n\t\treturn new EntitySelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity), true)\n\t}\n}\n"],"names":["acceptFieldVisitor"],"mappings":";;AAKA,MAAqB,eAAe;AAAA,EAC3B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAA;AAAA,EAErC,OAAc,QAAQ;AACd,WAAA,IAAI,eAAe,EAAE;AAAA,EAAA;AAAA,EAG7B,OAAc,SAAS,MAAgB;AACtC,WAAO,eAAe,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAAA,EAGrC,SAAS,MAAgB;AACxB,WAAA,KAAK,SAAS,CAAC,QAAQ,WAAW,KAAK,SAAS,OAAO,IAAI,CAAC;AAAA,EAAA;AAAA,EAG7D,eAAe,MAAc,kBAA2B;AAC9D,WAAO,KAAK;AAAA,MACX,CAAC,QAAQ,WACR,OAAO,OAAO,IAAI,KAClBA,+BAAmB,QAAQ,QAAQ,MAAM;AAAA,QACxC,aAAa,MAAM;AAAA,QACnB,eAAe,CAAC,EAAE,aAAA,MAAmB,CAAC,oBAAoB,aAAa,SAAS;AAAA,MAChF,CAAA;AAAA,IACH;AAAA,EAAA;AAAA,EAGM,SAAS,SAAkC;AACjD,WAAO,IAAI,eAAe,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EAAA;AAAA,EAG/C,QAAQ,QAAsB,QAA+B;AAC5D,WAAA,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAEnG;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySelector.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntitySelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity) => boolean\n\nexport default class EntitySelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new EntitySelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn EntitySelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity) => name.includes(entity.name))\n\t}\n\n\tpublic havingRelation(name: string, targetEntityName?: string) {\n\t\treturn this.matching(\n\t\t\t(schema, entity) =>\n\t\t\t\tentity.fields[name] &&\n\t\t\t\tacceptFieldVisitor(schema, entity, name, {\n\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\tvisitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,\n\t\t\t\t}),\n\t\t)\n\t}\n\n\tpublic matching(matcher: Matcher): EntitySelector {\n\t\treturn new EntitySelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity), true)\n\t}\n}\n"],"names":[],"mappings":";AAKA,MAAqB,eAAe;AAAA,EAC3B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"EntitySelector.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntitySelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity) => boolean\n\nexport default class EntitySelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new EntitySelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn EntitySelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity) => name.includes(entity.name))\n\t}\n\n\tpublic havingRelation(name: string, targetEntityName?: string) {\n\t\treturn this.matching(\n\t\t\t(schema, entity) =>\n\t\t\t\tentity.fields[name] &&\n\t\t\t\tacceptFieldVisitor(schema, entity, name, {\n\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\tvisitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,\n\t\t\t\t}),\n\t\t)\n\t}\n\n\tpublic matching(matcher: Matcher): EntitySelector {\n\t\treturn new EntitySelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity), true)\n\t}\n}\n"],"names":[],"mappings":";AAKA,MAAqB,eAAe;AAAA,EAC3B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAA;AAAA,EAErC,OAAc,QAAQ;AACd,WAAA,IAAI,eAAe,EAAE;AAAA,EAAA;AAAA,EAG7B,OAAc,SAAS,MAAgB;AACtC,WAAO,eAAe,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAAA,EAGrC,SAAS,MAAgB;AACxB,WAAA,KAAK,SAAS,CAAC,QAAQ,WAAW,KAAK,SAAS,OAAO,IAAI,CAAC;AAAA,EAAA;AAAA,EAG7D,eAAe,MAAc,kBAA2B;AAC9D,WAAO,KAAK;AAAA,MACX,CAAC,QAAQ,WACR,OAAO,OAAO,IAAI,KAClB,mBAAmB,QAAQ,QAAQ,MAAM;AAAA,QACxC,aAAa,MAAM;AAAA,QACnB,eAAe,CAAC,EAAE,aAAA,MAAmB,CAAC,oBAAoB,aAAa,SAAS;AAAA,MAChF,CAAA;AAAA,IACH;AAAA,EAAA;AAAA,EAGM,SAAS,SAAkC;AACjD,WAAO,IAAI,eAAe,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EAAA;AAAA,EAG/C,QAAQ,QAAsB,QAA+B;AAC5D,WAAA,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAEnG;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldPermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldPermissionsBuilder.ts"],"sourcesContent":["import FieldSelector from './FieldSelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport EntitySelector from './EntitySelector'\nimport { PermissionsBuilder } from './PermissionsBuilder'\n\nexport default class FieldPermissionsBuilder {\n\tpublic constructor(\n\t\tpublic entityPermissionsBuilder: EntityPermissionsBuilder,\n\t\tprivate readonly fields: [Model.Entity, Model.AnyField][],\n\t) {}\n\n\tget builder(): PermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.builder\n\t}\n\n\tget schema(): Model.Schema {\n\t\treturn this.entityPermissionsBuilder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.entityPermissionsBuilder.permissions\n\t}\n\n\tpublic allowCreate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create], predicate)\n\t}\n\n\tpublic allowRead(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read], predicate)\n\t}\n\n\tpublic allowUpdate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.update], predicate)\n\t}\n\n\tpublic allowAll(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create, Acl.Operation.read, Acl.Operation.update], predicate)\n\t}\n\n\tpublic allow(\n\t\toperations: (Acl.Operation.create | Acl.Operation.read | Acl.Operation.update)[],\n\t\tpredicate: Acl.Predicate = true,\n\t): FieldPermissionsBuilder {\n\t\tconst permissions: Writable<Acl.Permissions> = {}\n\t\tfor (const [entity, field] of this.fields) {\n\t\t\tif (!permissions[entity.name]) {\n\t\t\t\tpermissions[entity.name] = { operations: {}, predicates: {} }\n\t\t\t}\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = permissions[entity.name].operations\n\t\t\tfor (const op of operations) {\n\t\t\t\tentityOperations[op] = {\n\t\t\t\t\t...(permissions[entity.name].operations[op] || {}),\n\t\t\t\t\t[field.name]: predicate,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new FieldPermissionsBuilder(this.entityPermissionsBuilder.add(permissions), this.fields)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryEntity()\n\t}\n\n\tpublic onField(fieldSelector: FieldSelector | string | string[]) {\n\t\treturn this.entityPermissionsBuilder.onField(fieldSelector)\n\t}\n\n\tpublic onEveryField(): FieldPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryField()\n\t}\n}\n"],"names":["Acl"],"mappings":";;AAMA,MAAqB,wBAAwB;AAAA,EACrC,YACC,0BACU,QAChB;AAFM,SAAA,2BAAA;AACU,SAAA,SAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"FieldPermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldPermissionsBuilder.ts"],"sourcesContent":["import FieldSelector from './FieldSelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport EntitySelector from './EntitySelector'\nimport { PermissionsBuilder } from './PermissionsBuilder'\n\nexport default class FieldPermissionsBuilder {\n\tpublic constructor(\n\t\tpublic entityPermissionsBuilder: EntityPermissionsBuilder,\n\t\tprivate readonly fields: [Model.Entity, Model.AnyField][],\n\t) {}\n\n\tget builder(): PermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.builder\n\t}\n\n\tget schema(): Model.Schema {\n\t\treturn this.entityPermissionsBuilder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.entityPermissionsBuilder.permissions\n\t}\n\n\tpublic allowCreate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create], predicate)\n\t}\n\n\tpublic allowRead(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read], predicate)\n\t}\n\n\tpublic allowUpdate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.update], predicate)\n\t}\n\n\tpublic allowAll(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create, Acl.Operation.read, Acl.Operation.update], predicate)\n\t}\n\n\tpublic allow(\n\t\toperations: (Acl.Operation.create | Acl.Operation.read | Acl.Operation.update)[],\n\t\tpredicate: Acl.Predicate = true,\n\t): FieldPermissionsBuilder {\n\t\tconst permissions: Writable<Acl.Permissions> = {}\n\t\tfor (const [entity, field] of this.fields) {\n\t\t\tif (!permissions[entity.name]) {\n\t\t\t\tpermissions[entity.name] = { operations: {}, predicates: {} }\n\t\t\t}\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = permissions[entity.name].operations\n\t\t\tfor (const op of operations) {\n\t\t\t\tentityOperations[op] = {\n\t\t\t\t\t...(permissions[entity.name].operations[op] || {}),\n\t\t\t\t\t[field.name]: predicate,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new FieldPermissionsBuilder(this.entityPermissionsBuilder.add(permissions), this.fields)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryEntity()\n\t}\n\n\tpublic onField(fieldSelector: FieldSelector | string | string[]) {\n\t\treturn this.entityPermissionsBuilder.onField(fieldSelector)\n\t}\n\n\tpublic onEveryField(): FieldPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryField()\n\t}\n}\n"],"names":["Acl"],"mappings":";;AAMA,MAAqB,wBAAwB;AAAA,EACrC,YACC,0BACU,QAChB;AAFM,SAAA,2BAAA;AACU,SAAA,SAAA;AAAA,EAAA;AAAA,EAGlB,IAAI,UAA8B;AACjC,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAGtC,IAAI,SAAuB;AAC1B,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAGtC,IAAI,cAA+B;AAClC,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAG/B,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAG7C,UAAU,YAA2B,MAA+B;AAC1E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAAA;AAAA,EAG3C,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAG7C,SAAS,YAA2B,MAA+B;AACzE,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,QAAQA,OAAAA,IAAI,UAAU,MAAMA,OAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAGvF,MACN,YACA,YAA2B,MACD;AAC1B,UAAM,cAAyC,CAAC;AAChD,eAAW,CAAC,QAAQ,KAAK,KAAK,KAAK,QAAQ;AAC1C,UAAI,CAAC,YAAY,OAAO,IAAI,GAAG;AAClB,oBAAA,OAAO,IAAI,IAAI,EAAE,YAAY,CAAC,GAAG,YAAY,GAAG;AAAA,MAAA;AAE7D,YAAM,mBAAmD,YAAY,OAAO,IAAI,EAAE;AAClF,iBAAW,MAAM,YAAY;AAC5B,yBAAiB,EAAE,IAAI;AAAA,UACtB,GAAI,YAAY,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;AAAA,UAChD,CAAC,MAAM,IAAI,GAAG;AAAA,QACf;AAAA,MAAA;AAAA,IACD;AAEM,WAAA,IAAI,wBAAwB,KAAK,yBAAyB,IAAI,WAAW,GAAG,KAAK,MAAM;AAAA,EAAA;AAAA,EAGxF,SAAS,gBAA8E;AACtF,WAAA,KAAK,yBAAyB,SAAS,cAAc;AAAA,EAAA;AAAA,EAGtD,gBAA0C;AACzC,WAAA,KAAK,yBAAyB,cAAc;AAAA,EAAA;AAAA,EAG7C,QAAQ,eAAkD;AACzD,WAAA,KAAK,yBAAyB,QAAQ,aAAa;AAAA,EAAA;AAAA,EAGpD,eAAwC;AACvC,WAAA,KAAK,yBAAyB,aAAa;AAAA,EAAA;AAEpD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldPermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldPermissionsBuilder.ts"],"sourcesContent":["import FieldSelector from './FieldSelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport EntitySelector from './EntitySelector'\nimport { PermissionsBuilder } from './PermissionsBuilder'\n\nexport default class FieldPermissionsBuilder {\n\tpublic constructor(\n\t\tpublic entityPermissionsBuilder: EntityPermissionsBuilder,\n\t\tprivate readonly fields: [Model.Entity, Model.AnyField][],\n\t) {}\n\n\tget builder(): PermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.builder\n\t}\n\n\tget schema(): Model.Schema {\n\t\treturn this.entityPermissionsBuilder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.entityPermissionsBuilder.permissions\n\t}\n\n\tpublic allowCreate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create], predicate)\n\t}\n\n\tpublic allowRead(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read], predicate)\n\t}\n\n\tpublic allowUpdate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.update], predicate)\n\t}\n\n\tpublic allowAll(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create, Acl.Operation.read, Acl.Operation.update], predicate)\n\t}\n\n\tpublic allow(\n\t\toperations: (Acl.Operation.create | Acl.Operation.read | Acl.Operation.update)[],\n\t\tpredicate: Acl.Predicate = true,\n\t): FieldPermissionsBuilder {\n\t\tconst permissions: Writable<Acl.Permissions> = {}\n\t\tfor (const [entity, field] of this.fields) {\n\t\t\tif (!permissions[entity.name]) {\n\t\t\t\tpermissions[entity.name] = { operations: {}, predicates: {} }\n\t\t\t}\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = permissions[entity.name].operations\n\t\t\tfor (const op of operations) {\n\t\t\t\tentityOperations[op] = {\n\t\t\t\t\t...(permissions[entity.name].operations[op] || {}),\n\t\t\t\t\t[field.name]: predicate,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new FieldPermissionsBuilder(this.entityPermissionsBuilder.add(permissions), this.fields)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryEntity()\n\t}\n\n\tpublic onField(fieldSelector: FieldSelector | string | string[]) {\n\t\treturn this.entityPermissionsBuilder.onField(fieldSelector)\n\t}\n\n\tpublic onEveryField(): FieldPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryField()\n\t}\n}\n"],"names":[],"mappings":";AAMA,MAAqB,wBAAwB;AAAA,EACrC,YACC,0BACU,QAChB;AAFM,SAAA,2BAAA;AACU,SAAA,SAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"FieldPermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldPermissionsBuilder.ts"],"sourcesContent":["import FieldSelector from './FieldSelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport EntitySelector from './EntitySelector'\nimport { PermissionsBuilder } from './PermissionsBuilder'\n\nexport default class FieldPermissionsBuilder {\n\tpublic constructor(\n\t\tpublic entityPermissionsBuilder: EntityPermissionsBuilder,\n\t\tprivate readonly fields: [Model.Entity, Model.AnyField][],\n\t) {}\n\n\tget builder(): PermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.builder\n\t}\n\n\tget schema(): Model.Schema {\n\t\treturn this.entityPermissionsBuilder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.entityPermissionsBuilder.permissions\n\t}\n\n\tpublic allowCreate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create], predicate)\n\t}\n\n\tpublic allowRead(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read], predicate)\n\t}\n\n\tpublic allowUpdate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.update], predicate)\n\t}\n\n\tpublic allowAll(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create, Acl.Operation.read, Acl.Operation.update], predicate)\n\t}\n\n\tpublic allow(\n\t\toperations: (Acl.Operation.create | Acl.Operation.read | Acl.Operation.update)[],\n\t\tpredicate: Acl.Predicate = true,\n\t): FieldPermissionsBuilder {\n\t\tconst permissions: Writable<Acl.Permissions> = {}\n\t\tfor (const [entity, field] of this.fields) {\n\t\t\tif (!permissions[entity.name]) {\n\t\t\t\tpermissions[entity.name] = { operations: {}, predicates: {} }\n\t\t\t}\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = permissions[entity.name].operations\n\t\t\tfor (const op of operations) {\n\t\t\t\tentityOperations[op] = {\n\t\t\t\t\t...(permissions[entity.name].operations[op] || {}),\n\t\t\t\t\t[field.name]: predicate,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new FieldPermissionsBuilder(this.entityPermissionsBuilder.add(permissions), this.fields)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryEntity()\n\t}\n\n\tpublic onField(fieldSelector: FieldSelector | string | string[]) {\n\t\treturn this.entityPermissionsBuilder.onField(fieldSelector)\n\t}\n\n\tpublic onEveryField(): FieldPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryField()\n\t}\n}\n"],"names":[],"mappings":";AAMA,MAAqB,wBAAwB;AAAA,EACrC,YACC,0BACU,QAChB;AAFM,SAAA,2BAAA;AACU,SAAA,SAAA;AAAA,EAAA;AAAA,EAGlB,IAAI,UAA8B;AACjC,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAGtC,IAAI,SAAuB;AAC1B,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAGtC,IAAI,cAA+B;AAClC,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAG/B,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAG7C,UAAU,YAA2B,MAA+B;AAC1E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAAA;AAAA,EAG3C,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAG7C,SAAS,YAA2B,MAA+B;AACzE,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,QAAQ,IAAI,UAAU,MAAM,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAGvF,MACN,YACA,YAA2B,MACD;AAC1B,UAAM,cAAyC,CAAC;AAChD,eAAW,CAAC,QAAQ,KAAK,KAAK,KAAK,QAAQ;AAC1C,UAAI,CAAC,YAAY,OAAO,IAAI,GAAG;AAClB,oBAAA,OAAO,IAAI,IAAI,EAAE,YAAY,CAAC,GAAG,YAAY,GAAG;AAAA,MAAA;AAE7D,YAAM,mBAAmD,YAAY,OAAO,IAAI,EAAE;AAClF,iBAAW,MAAM,YAAY;AAC5B,yBAAiB,EAAE,IAAI;AAAA,UACtB,GAAI,YAAY,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;AAAA,UAChD,CAAC,MAAM,IAAI,GAAG;AAAA,QACf;AAAA,MAAA;AAAA,IACD;AAEM,WAAA,IAAI,wBAAwB,KAAK,yBAAyB,IAAI,WAAW,GAAG,KAAK,MAAM;AAAA,EAAA;AAAA,EAGxF,SAAS,gBAA8E;AACtF,WAAA,KAAK,yBAAyB,SAAS,cAAc;AAAA,EAAA;AAAA,EAGtD,gBAA0C;AACzC,WAAA,KAAK,yBAAyB,cAAc;AAAA,EAAA;AAAA,EAG7C,QAAQ,eAAkD;AACzD,WAAA,KAAK,yBAAyB,QAAQ,aAAa;AAAA,EAAA;AAAA,EAGpD,eAAwC;AACvC,WAAA,KAAK,yBAAyB,aAAa;AAAA,EAAA;AAEpD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldSelector.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldSelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity, field: Model.AnyField) => boolean\n\nexport default class FieldSelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new FieldSelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn FieldSelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => name.includes(field.name))\n\t}\n\n\tpublic except(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => !name.includes(field.name))\n\t}\n\n\tpublic matching(matcher: Matcher): FieldSelector {\n\t\treturn new FieldSelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity, field: Model.AnyField): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity, field), true)\n\t}\n}\n"],"names":[],"mappings":";AAIA,MAAqB,cAAc;AAAA,EAC1B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"FieldSelector.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldSelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity, field: Model.AnyField) => boolean\n\nexport default class FieldSelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new FieldSelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn FieldSelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => name.includes(field.name))\n\t}\n\n\tpublic except(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => !name.includes(field.name))\n\t}\n\n\tpublic matching(matcher: Matcher): FieldSelector {\n\t\treturn new FieldSelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity, field: Model.AnyField): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity, field), true)\n\t}\n}\n"],"names":[],"mappings":";AAIA,MAAqB,cAAc;AAAA,EAC1B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAA;AAAA,EAErC,OAAc,QAAQ;AACd,WAAA,IAAI,cAAc,EAAE;AAAA,EAAA;AAAA,EAG5B,OAAc,SAAS,MAAgB;AACtC,WAAO,cAAc,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAAA,EAGpC,SAAS,MAAgB;AACxB,WAAA,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAGnE,UAAU,MAAgB;AACzB,WAAA,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAGpE,SAAS,SAAiC;AAChD,WAAO,IAAI,cAAc,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EAAA;AAAA,EAG9C,QAAQ,QAAsB,QAAsB,OAAgC;AAC1F,WAAO,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,QAAQ,KAAK,GAAG,IAAI;AAAA,EAAA;AAE1G;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldSelector.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldSelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity, field: Model.AnyField) => boolean\n\nexport default class FieldSelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new FieldSelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn FieldSelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => name.includes(field.name))\n\t}\n\n\tpublic except(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => !name.includes(field.name))\n\t}\n\n\tpublic matching(matcher: Matcher): FieldSelector {\n\t\treturn new FieldSelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity, field: Model.AnyField): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity, field), true)\n\t}\n}\n"],"names":[],"mappings":"AAIA,MAAqB,cAAc;AAAA,EAC1B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"FieldSelector.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldSelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity, field: Model.AnyField) => boolean\n\nexport default class FieldSelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new FieldSelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn FieldSelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => name.includes(field.name))\n\t}\n\n\tpublic except(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => !name.includes(field.name))\n\t}\n\n\tpublic matching(matcher: Matcher): FieldSelector {\n\t\treturn new FieldSelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity, field: Model.AnyField): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity, field), true)\n\t}\n}\n"],"names":[],"mappings":"AAIA,MAAqB,cAAc;AAAA,EAC1B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAA;AAAA,EAErC,OAAc,QAAQ;AACd,WAAA,IAAI,cAAc,EAAE;AAAA,EAAA;AAAA,EAG5B,OAAc,SAAS,MAAgB;AACtC,WAAO,cAAc,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAAA,EAGpC,SAAS,MAAgB;AACxB,WAAA,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAGnE,UAAU,MAAgB;AACzB,WAAA,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAGpE,SAAS,SAAiC;AAChD,WAAO,IAAI,cAAc,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EAAA;AAAA,EAG9C,QAAQ,QAAsB,QAAsB,OAAgC;AAC1F,WAAO,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,QAAQ,KAAK,GAAG,IAAI;AAAA,EAAA;AAE1G;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionOverrider.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionOverrider.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { tuple } from '../../utils'\n\nexport default class PermissionOverrider {\n\tpublic override(original: Acl.Permissions, overrides: Acl.Permissions): Acl.Permissions {\n\t\treturn Object.entries({ ...overrides, ...original })\n\t\t\t.map(([key, value]) => {\n\t\t\t\tif (overrides[key]) {\n\t\t\t\t\treturn tuple(key, this.overrideEntityPermissions(value, overrides[key]))\n\t\t\t\t}\n\t\t\t\treturn tuple(key, value)\n\t\t\t})\n\t\t\t.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n\t}\n\n\tprivate overrideEntityPermissions(\n\t\toriginal: Acl.EntityPermissions,\n\t\toverrides: Acl.EntityPermissions,\n\t): Acl.EntityPermissions {\n\t\treturn {\n\t\t\tpredicates: { ...original.predicates, ...overrides.predicates },\n\t\t\toperations: {\n\t\t\t\tcreate: { ...(original.operations.create || {}), ...(overrides.operations.create || {}) },\n\t\t\t\tread: { ...(original.operations.read || {}), ...(overrides.operations.read || {}) },\n\t\t\t\tupdate: { ...(original.operations.update || {}), ...(overrides.operations.update || {}) },\n\t\t\t\t...(original.operations.delete === undefined && overrides.operations.delete === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tdelete: overrides.operations.delete ?? original.operations.delete,\n\t\t\t\t\t }),\n\t\t\t\t...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tcustomPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,\n\t\t\t\t\t }),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["tuple"],"mappings":";;;AAGA,MAAqB,oBAAoB;AAAA,EACjC,SAAS,UAA2B,WAA6C;AACvF,WAAO,OAAO,QAAQ,EAAE,GAAG,WAAW,GAAG,UAAU,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAClB,UAAA,UAAU,GAAG,GAAG;AACZ,eAAAA,MAAA,MAAM,KAAK,KAAK,0BAA0B,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,
|
|
1
|
+
{"version":3,"file":"PermissionOverrider.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionOverrider.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { tuple } from '../../utils'\n\nexport default class PermissionOverrider {\n\tpublic override(original: Acl.Permissions, overrides: Acl.Permissions): Acl.Permissions {\n\t\treturn Object.entries({ ...overrides, ...original })\n\t\t\t.map(([key, value]) => {\n\t\t\t\tif (overrides[key]) {\n\t\t\t\t\treturn tuple(key, this.overrideEntityPermissions(value, overrides[key]))\n\t\t\t\t}\n\t\t\t\treturn tuple(key, value)\n\t\t\t})\n\t\t\t.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n\t}\n\n\tprivate overrideEntityPermissions(\n\t\toriginal: Acl.EntityPermissions,\n\t\toverrides: Acl.EntityPermissions,\n\t): Acl.EntityPermissions {\n\t\treturn {\n\t\t\tpredicates: { ...original.predicates, ...overrides.predicates },\n\t\t\toperations: {\n\t\t\t\tcreate: { ...(original.operations.create || {}), ...(overrides.operations.create || {}) },\n\t\t\t\tread: { ...(original.operations.read || {}), ...(overrides.operations.read || {}) },\n\t\t\t\tupdate: { ...(original.operations.update || {}), ...(overrides.operations.update || {}) },\n\t\t\t\t...(original.operations.delete === undefined && overrides.operations.delete === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tdelete: overrides.operations.delete ?? original.operations.delete,\n\t\t\t\t\t }),\n\t\t\t\t...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tcustomPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,\n\t\t\t\t\t }),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["tuple"],"mappings":";;;AAGA,MAAqB,oBAAoB;AAAA,EACjC,SAAS,UAA2B,WAA6C;AACvF,WAAO,OAAO,QAAQ,EAAE,GAAG,WAAW,GAAG,UAAU,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAClB,UAAA,UAAU,GAAG,GAAG;AACZ,eAAAA,MAAA,MAAM,KAAK,KAAK,0BAA0B,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,MAAA;AAEjE,aAAAA,MAAA,MAAM,KAAK,KAAK;AAAA,IACvB,CAAA,EACA,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,IAAI,CAAA,CAAE;AAAA,EAAA;AAAA,EAGvD,0BACP,UACA,WACwB;AACjB,WAAA;AAAA,MACN,YAAY,EAAE,GAAG,SAAS,YAAY,GAAG,UAAU,WAAW;AAAA,MAC9D,YAAY;AAAA,QACX,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAI;AAAA,QACxF,MAAM,EAAE,GAAI,SAAS,WAAW,QAAQ,IAAK,GAAI,UAAU,WAAW,QAAQ,GAAI;AAAA,QAClF,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAI;AAAA,QACxF,GAAI,SAAS,WAAW,WAAW,UAAa,UAAU,WAAW,WAAW,SAC7E,KACA;AAAA,UACD,QAAQ,UAAU,WAAW,UAAU,SAAS,WAAW;AAAA,QAC1D;AAAA,QACH,GAAI,SAAS,WAAW,kBAAkB,UAAa,UAAU,WAAW,kBAAkB,SAC3F,KACA;AAAA,UACD,eAAe,UAAU,WAAW,iBAAiB,SAAS,WAAW;AAAA,QAAA;AAAA,MACxE;AAAA,IAEL;AAAA,EAAA;AAEF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionOverrider.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionOverrider.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { tuple } from '../../utils'\n\nexport default class PermissionOverrider {\n\tpublic override(original: Acl.Permissions, overrides: Acl.Permissions): Acl.Permissions {\n\t\treturn Object.entries({ ...overrides, ...original })\n\t\t\t.map(([key, value]) => {\n\t\t\t\tif (overrides[key]) {\n\t\t\t\t\treturn tuple(key, this.overrideEntityPermissions(value, overrides[key]))\n\t\t\t\t}\n\t\t\t\treturn tuple(key, value)\n\t\t\t})\n\t\t\t.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n\t}\n\n\tprivate overrideEntityPermissions(\n\t\toriginal: Acl.EntityPermissions,\n\t\toverrides: Acl.EntityPermissions,\n\t): Acl.EntityPermissions {\n\t\treturn {\n\t\t\tpredicates: { ...original.predicates, ...overrides.predicates },\n\t\t\toperations: {\n\t\t\t\tcreate: { ...(original.operations.create || {}), ...(overrides.operations.create || {}) },\n\t\t\t\tread: { ...(original.operations.read || {}), ...(overrides.operations.read || {}) },\n\t\t\t\tupdate: { ...(original.operations.update || {}), ...(overrides.operations.update || {}) },\n\t\t\t\t...(original.operations.delete === undefined && overrides.operations.delete === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tdelete: overrides.operations.delete ?? original.operations.delete,\n\t\t\t\t\t }),\n\t\t\t\t...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tcustomPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,\n\t\t\t\t\t }),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAGA,MAAqB,oBAAoB;AAAA,EACjC,SAAS,UAA2B,WAA6C;AACvF,WAAO,OAAO,QAAQ,EAAE,GAAG,WAAW,GAAG,UAAU,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAClB,UAAA,UAAU,GAAG,GAAG;AACZ,eAAA,MAAM,KAAK,KAAK,0BAA0B,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,
|
|
1
|
+
{"version":3,"file":"PermissionOverrider.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionOverrider.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { tuple } from '../../utils'\n\nexport default class PermissionOverrider {\n\tpublic override(original: Acl.Permissions, overrides: Acl.Permissions): Acl.Permissions {\n\t\treturn Object.entries({ ...overrides, ...original })\n\t\t\t.map(([key, value]) => {\n\t\t\t\tif (overrides[key]) {\n\t\t\t\t\treturn tuple(key, this.overrideEntityPermissions(value, overrides[key]))\n\t\t\t\t}\n\t\t\t\treturn tuple(key, value)\n\t\t\t})\n\t\t\t.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n\t}\n\n\tprivate overrideEntityPermissions(\n\t\toriginal: Acl.EntityPermissions,\n\t\toverrides: Acl.EntityPermissions,\n\t): Acl.EntityPermissions {\n\t\treturn {\n\t\t\tpredicates: { ...original.predicates, ...overrides.predicates },\n\t\t\toperations: {\n\t\t\t\tcreate: { ...(original.operations.create || {}), ...(overrides.operations.create || {}) },\n\t\t\t\tread: { ...(original.operations.read || {}), ...(overrides.operations.read || {}) },\n\t\t\t\tupdate: { ...(original.operations.update || {}), ...(overrides.operations.update || {}) },\n\t\t\t\t...(original.operations.delete === undefined && overrides.operations.delete === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tdelete: overrides.operations.delete ?? original.operations.delete,\n\t\t\t\t\t }),\n\t\t\t\t...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tcustomPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,\n\t\t\t\t\t }),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAGA,MAAqB,oBAAoB;AAAA,EACjC,SAAS,UAA2B,WAA6C;AACvF,WAAO,OAAO,QAAQ,EAAE,GAAG,WAAW,GAAG,UAAU,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAClB,UAAA,UAAU,GAAG,GAAG;AACZ,eAAA,MAAM,KAAK,KAAK,0BAA0B,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,MAAA;AAEjE,aAAA,MAAM,KAAK,KAAK;AAAA,IACvB,CAAA,EACA,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,IAAI,CAAA,CAAE;AAAA,EAAA;AAAA,EAGvD,0BACP,UACA,WACwB;AACjB,WAAA;AAAA,MACN,YAAY,EAAE,GAAG,SAAS,YAAY,GAAG,UAAU,WAAW;AAAA,MAC9D,YAAY;AAAA,QACX,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAI;AAAA,QACxF,MAAM,EAAE,GAAI,SAAS,WAAW,QAAQ,IAAK,GAAI,UAAU,WAAW,QAAQ,GAAI;AAAA,QAClF,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAI;AAAA,QACxF,GAAI,SAAS,WAAW,WAAW,UAAa,UAAU,WAAW,WAAW,SAC7E,KACA;AAAA,UACD,QAAQ,UAAU,WAAW,UAAU,SAAS,WAAW;AAAA,QAC1D;AAAA,QACH,GAAI,SAAS,WAAW,kBAAkB,UAAa,UAAU,WAAW,kBAAkB,SAC3F,KACA;AAAA,UACD,eAAe,UAAU,WAAW,iBAAiB,SAAS,WAAW;AAAA,QAAA;AAAA,MACxE;AAAA,IAEL;AAAA,EAAA;AAEF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionsBuilder.ts"],"sourcesContent":["import { Acl, Model } from '@contember/schema'\nimport { AllowAllPermissionFactory } from '@contember/schema-utils'\nimport PermissionOverrider from './PermissionOverrider'\nimport EntitySelector from './EntitySelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport FieldSelector from './FieldSelector'\nimport Reference from './PredicateReference'\n\nclass PermissionsBuilder {\n\tconstructor(public readonly schema: Model.Schema, public readonly permissions: Acl.Permissions) {}\n\n\tpublic static create(model: Model.Schema): PermissionsBuilder {\n\t\treturn new PermissionsBuilder(model, {})\n\t}\n\n\tpublic allowAll(): PermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read, Acl.Operation.update, Acl.Operation.delete, Acl.Operation.create])\n\t}\n\n\tpublic allow(operations: Acl.Operation[]): PermissionsBuilder {\n\t\tconst allowAllFactory = new AllowAllPermissionFactory(operations)\n\t\treturn this.add(allowAllFactory.create(this.schema))\n\t}\n\n\tpublic allowCustomPrimary(): PermissionsBuilder {\n\t\treturn this.onEveryEntity().allowCustomPrimary().builder\n\t}\n\n\tpublic add(permissions: Acl.Permissions): PermissionsBuilder {\n\t\tconst overrider = new PermissionOverrider()\n\t\treturn new PermissionsBuilder(this.schema, overrider.override(this.permissions, permissions))\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\tif (typeof entitySelector === 'string') {\n\t\t\tentitySelector = EntitySelector.named(entitySelector)\n\t\t} else if (Array.isArray(entitySelector)) {\n\t\t\tentitySelector = EntitySelector.named(...entitySelector)\n\t\t}\n\t\tconst entitySelectorWithType = entitySelector\n\t\tconst entities = Object.values(this.schema.entities).filter(entity =>\n\t\t\tentitySelectorWithType.matches(this.schema, entity),\n\t\t)\n\t\treturn new EntityPermissionsBuilder(this, entities)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.onEntity(EntitySelector.every())\n\t}\n}\n\nnamespace PermissionsBuilder {\n\texport const everyEntity = () => {\n\t\treturn EntitySelector.every()\n\t}\n\texport const everyField = () => {\n\t\treturn FieldSelector.every()\n\t}\n\texport const predicateReference = (name: Acl.PredicateReference) => new Reference(name)\n}\nexport { PermissionsBuilder }\n"],"names":["schema","Acl","AllowAllPermissionFactory","PermissionsBuilder","Reference"],"mappings":";;;;;;;;;AAQA,MAAM,mBAAmB;AAAA,EACxB,YAA4BA,SAAsC,aAA8B;AAApE,SAAA,SAAAA;AAAsC,SAAA,cAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"PermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionsBuilder.ts"],"sourcesContent":["import { Acl, Model } from '@contember/schema'\nimport { AllowAllPermissionFactory } from '@contember/schema-utils'\nimport PermissionOverrider from './PermissionOverrider'\nimport EntitySelector from './EntitySelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport FieldSelector from './FieldSelector'\nimport Reference from './PredicateReference'\n\nclass PermissionsBuilder {\n\tconstructor(public readonly schema: Model.Schema, public readonly permissions: Acl.Permissions) {}\n\n\tpublic static create(model: Model.Schema): PermissionsBuilder {\n\t\treturn new PermissionsBuilder(model, {})\n\t}\n\n\tpublic allowAll(): PermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read, Acl.Operation.update, Acl.Operation.delete, Acl.Operation.create])\n\t}\n\n\tpublic allow(operations: Acl.Operation[]): PermissionsBuilder {\n\t\tconst allowAllFactory = new AllowAllPermissionFactory(operations)\n\t\treturn this.add(allowAllFactory.create(this.schema))\n\t}\n\n\tpublic allowCustomPrimary(): PermissionsBuilder {\n\t\treturn this.onEveryEntity().allowCustomPrimary().builder\n\t}\n\n\tpublic add(permissions: Acl.Permissions): PermissionsBuilder {\n\t\tconst overrider = new PermissionOverrider()\n\t\treturn new PermissionsBuilder(this.schema, overrider.override(this.permissions, permissions))\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\tif (typeof entitySelector === 'string') {\n\t\t\tentitySelector = EntitySelector.named(entitySelector)\n\t\t} else if (Array.isArray(entitySelector)) {\n\t\t\tentitySelector = EntitySelector.named(...entitySelector)\n\t\t}\n\t\tconst entitySelectorWithType = entitySelector\n\t\tconst entities = Object.values(this.schema.entities).filter(entity =>\n\t\t\tentitySelectorWithType.matches(this.schema, entity),\n\t\t)\n\t\treturn new EntityPermissionsBuilder(this, entities)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.onEntity(EntitySelector.every())\n\t}\n}\n\nnamespace PermissionsBuilder {\n\texport const everyEntity = () => {\n\t\treturn EntitySelector.every()\n\t}\n\texport const everyField = () => {\n\t\treturn FieldSelector.every()\n\t}\n\texport const predicateReference = (name: Acl.PredicateReference) => new Reference(name)\n}\nexport { PermissionsBuilder }\n"],"names":["schema","Acl","AllowAllPermissionFactory","PermissionsBuilder","Reference"],"mappings":";;;;;;;;;AAQA,MAAM,mBAAmB;AAAA,EACxB,YAA4BA,SAAsC,aAA8B;AAApE,SAAA,SAAAA;AAAsC,SAAA,cAAA;AAAA,EAAA;AAAA,EAElE,OAAc,OAAO,OAAyC;AAC7D,WAAO,IAAI,mBAAmB,OAAO,EAAE;AAAA,EAAA;AAAA,EAGjC,WAA+B;AACrC,WAAO,KAAK,MAAM,CAACC,OAAA,IAAI,UAAU,MAAMA,WAAI,UAAU,QAAQA,OAAAA,IAAI,UAAU,QAAQA,OAAAA,IAAI,UAAU,MAAM,CAAC;AAAA,EAAA;AAAA,EAGlG,MAAM,YAAiD;AACvD,UAAA,kBAAkB,IAAIC,YAAA,0BAA0B,UAAU;AAChE,WAAO,KAAK,IAAI,gBAAgB,OAAO,KAAK,MAAM,CAAC;AAAA,EAAA;AAAA,EAG7C,qBAAyC;AAC/C,WAAO,KAAK,gBAAgB,mBAAqB,EAAA;AAAA,EAAA;AAAA,EAG3C,IAAI,aAAkD;AACtD,UAAA,YAAY,IAAI,oBAAoB;AACnC,WAAA,IAAI,mBAAmB,KAAK,QAAQ,UAAU,SAAS,KAAK,aAAa,WAAW,CAAC;AAAA,EAAA;AAAA,EAGtF,SAAS,gBAA8E;AACzF,QAAA,OAAO,mBAAmB,UAAU;AACtB,uBAAA,eAAe,MAAM,cAAc;AAAA,IAC1C,WAAA,MAAM,QAAQ,cAAc,GAAG;AACxB,uBAAA,eAAe,MAAM,GAAG,cAAc;AAAA,IAAA;AAExD,UAAM,yBAAyB;AAC/B,UAAM,WAAW,OAAO,OAAO,KAAK,OAAO,QAAQ,EAAE;AAAA,MAAO,CAC3D,WAAA,uBAAuB,QAAQ,KAAK,QAAQ,MAAM;AAAA,IACnD;AACO,WAAA,IAAI,yBAAyB,MAAM,QAAQ;AAAA,EAAA;AAAA,EAG5C,gBAA0C;AAChD,WAAO,KAAK,SAAS,eAAe,MAAA,CAAO;AAAA,EAAA;AAE7C;AAAA,CAEA,CAAUC,wBAAV;AACcA,sBAAA,cAAc,MAAM;AAChC,WAAO,eAAe,MAAM;AAAA,EAC7B;AACaA,sBAAA,aAAa,MAAM;AAC/B,WAAO,cAAc,MAAM;AAAA,EAC5B;AACaA,sBAAA,qBAAqB,CAAC,SAAiC,IAAIC,mBAAAA,QAAU,IAAI;AAAA,GAP7E,uBAAA,qBAAA,CAAA,EAAA;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionsBuilder.ts"],"sourcesContent":["import { Acl, Model } from '@contember/schema'\nimport { AllowAllPermissionFactory } from '@contember/schema-utils'\nimport PermissionOverrider from './PermissionOverrider'\nimport EntitySelector from './EntitySelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport FieldSelector from './FieldSelector'\nimport Reference from './PredicateReference'\n\nclass PermissionsBuilder {\n\tconstructor(public readonly schema: Model.Schema, public readonly permissions: Acl.Permissions) {}\n\n\tpublic static create(model: Model.Schema): PermissionsBuilder {\n\t\treturn new PermissionsBuilder(model, {})\n\t}\n\n\tpublic allowAll(): PermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read, Acl.Operation.update, Acl.Operation.delete, Acl.Operation.create])\n\t}\n\n\tpublic allow(operations: Acl.Operation[]): PermissionsBuilder {\n\t\tconst allowAllFactory = new AllowAllPermissionFactory(operations)\n\t\treturn this.add(allowAllFactory.create(this.schema))\n\t}\n\n\tpublic allowCustomPrimary(): PermissionsBuilder {\n\t\treturn this.onEveryEntity().allowCustomPrimary().builder\n\t}\n\n\tpublic add(permissions: Acl.Permissions): PermissionsBuilder {\n\t\tconst overrider = new PermissionOverrider()\n\t\treturn new PermissionsBuilder(this.schema, overrider.override(this.permissions, permissions))\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\tif (typeof entitySelector === 'string') {\n\t\t\tentitySelector = EntitySelector.named(entitySelector)\n\t\t} else if (Array.isArray(entitySelector)) {\n\t\t\tentitySelector = EntitySelector.named(...entitySelector)\n\t\t}\n\t\tconst entitySelectorWithType = entitySelector\n\t\tconst entities = Object.values(this.schema.entities).filter(entity =>\n\t\t\tentitySelectorWithType.matches(this.schema, entity),\n\t\t)\n\t\treturn new EntityPermissionsBuilder(this, entities)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.onEntity(EntitySelector.every())\n\t}\n}\n\nnamespace PermissionsBuilder {\n\texport const everyEntity = () => {\n\t\treturn EntitySelector.every()\n\t}\n\texport const everyField = () => {\n\t\treturn FieldSelector.every()\n\t}\n\texport const predicateReference = (name: Acl.PredicateReference) => new Reference(name)\n}\nexport { PermissionsBuilder }\n"],"names":["PermissionsBuilder","Reference"],"mappings":";;;;;;;AAQA,MAAM,mBAAmB;AAAA,EACxB,YAA4B,QAAsC,aAA8B;AAApE,SAAA,SAAA;AAAsC,SAAA,cAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"PermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionsBuilder.ts"],"sourcesContent":["import { Acl, Model } from '@contember/schema'\nimport { AllowAllPermissionFactory } from '@contember/schema-utils'\nimport PermissionOverrider from './PermissionOverrider'\nimport EntitySelector from './EntitySelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport FieldSelector from './FieldSelector'\nimport Reference from './PredicateReference'\n\nclass PermissionsBuilder {\n\tconstructor(public readonly schema: Model.Schema, public readonly permissions: Acl.Permissions) {}\n\n\tpublic static create(model: Model.Schema): PermissionsBuilder {\n\t\treturn new PermissionsBuilder(model, {})\n\t}\n\n\tpublic allowAll(): PermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read, Acl.Operation.update, Acl.Operation.delete, Acl.Operation.create])\n\t}\n\n\tpublic allow(operations: Acl.Operation[]): PermissionsBuilder {\n\t\tconst allowAllFactory = new AllowAllPermissionFactory(operations)\n\t\treturn this.add(allowAllFactory.create(this.schema))\n\t}\n\n\tpublic allowCustomPrimary(): PermissionsBuilder {\n\t\treturn this.onEveryEntity().allowCustomPrimary().builder\n\t}\n\n\tpublic add(permissions: Acl.Permissions): PermissionsBuilder {\n\t\tconst overrider = new PermissionOverrider()\n\t\treturn new PermissionsBuilder(this.schema, overrider.override(this.permissions, permissions))\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\tif (typeof entitySelector === 'string') {\n\t\t\tentitySelector = EntitySelector.named(entitySelector)\n\t\t} else if (Array.isArray(entitySelector)) {\n\t\t\tentitySelector = EntitySelector.named(...entitySelector)\n\t\t}\n\t\tconst entitySelectorWithType = entitySelector\n\t\tconst entities = Object.values(this.schema.entities).filter(entity =>\n\t\t\tentitySelectorWithType.matches(this.schema, entity),\n\t\t)\n\t\treturn new EntityPermissionsBuilder(this, entities)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.onEntity(EntitySelector.every())\n\t}\n}\n\nnamespace PermissionsBuilder {\n\texport const everyEntity = () => {\n\t\treturn EntitySelector.every()\n\t}\n\texport const everyField = () => {\n\t\treturn FieldSelector.every()\n\t}\n\texport const predicateReference = (name: Acl.PredicateReference) => new Reference(name)\n}\nexport { PermissionsBuilder }\n"],"names":["PermissionsBuilder","Reference"],"mappings":";;;;;;;AAQA,MAAM,mBAAmB;AAAA,EACxB,YAA4B,QAAsC,aAA8B;AAApE,SAAA,SAAA;AAAsC,SAAA,cAAA;AAAA,EAAA;AAAA,EAElE,OAAc,OAAO,OAAyC;AAC7D,WAAO,IAAI,mBAAmB,OAAO,EAAE;AAAA,EAAA;AAAA,EAGjC,WAA+B;AACrC,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,MAAM,IAAI,UAAU,QAAQ,IAAI,UAAU,QAAQ,IAAI,UAAU,MAAM,CAAC;AAAA,EAAA;AAAA,EAGlG,MAAM,YAAiD;AACvD,UAAA,kBAAkB,IAAI,0BAA0B,UAAU;AAChE,WAAO,KAAK,IAAI,gBAAgB,OAAO,KAAK,MAAM,CAAC;AAAA,EAAA;AAAA,EAG7C,qBAAyC;AAC/C,WAAO,KAAK,gBAAgB,mBAAqB,EAAA;AAAA,EAAA;AAAA,EAG3C,IAAI,aAAkD;AACtD,UAAA,YAAY,IAAI,oBAAoB;AACnC,WAAA,IAAI,mBAAmB,KAAK,QAAQ,UAAU,SAAS,KAAK,aAAa,WAAW,CAAC;AAAA,EAAA;AAAA,EAGtF,SAAS,gBAA8E;AACzF,QAAA,OAAO,mBAAmB,UAAU;AACtB,uBAAA,eAAe,MAAM,cAAc;AAAA,IAC1C,WAAA,MAAM,QAAQ,cAAc,GAAG;AACxB,uBAAA,eAAe,MAAM,GAAG,cAAc;AAAA,IAAA;AAExD,UAAM,yBAAyB;AAC/B,UAAM,WAAW,OAAO,OAAO,KAAK,OAAO,QAAQ,EAAE;AAAA,MAAO,CAC3D,WAAA,uBAAuB,QAAQ,KAAK,QAAQ,MAAM;AAAA,IACnD;AACO,WAAA,IAAI,yBAAyB,MAAM,QAAQ;AAAA,EAAA;AAAA,EAG5C,gBAA0C;AAChD,WAAO,KAAK,SAAS,eAAe,MAAA,CAAO;AAAA,EAAA;AAE7C;AAAA,CAEA,CAAUA,wBAAV;AACcA,sBAAA,cAAc,MAAM;AAChC,WAAO,eAAe,MAAM;AAAA,EAC7B;AACaA,sBAAA,aAAa,MAAM;AAC/B,WAAO,cAAc,MAAM;AAAA,EAC5B;AACaA,sBAAA,qBAAqB,CAAC,SAAiC,IAAIC,mBAAU,IAAI;AAAA,GAP7E,uBAAA,qBAAA,CAAA,EAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PredicateReference.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/PredicateReference.ts"],"sourcesContent":["import { Acl, Input, Model } from '@contember/schema'\nimport { PredicateDefinitionProcessor } from '@contember/schema-utils'\n\nexport default class PredicateReference {\n\tconstructor(public readonly name: Acl.PredicateReference) {}\n}\n\nexport const resolvePredicateReference = (\n\tmodel: Model.Schema,\n\tpermissions: Acl.Permissions,\n\tentity: Model.Entity,\n\tpredicate: Acl.PredicateDefinition<PredicateReference>,\n): Acl.PredicateDefinition => {\n\tconst predicateDefinitionProcessor = new PredicateDefinitionProcessor(model)\n\treturn predicateDefinitionProcessor.process<Acl.PredicateVariable | Input.Condition, PredicateReference>(\n\t\tentity,\n\t\tpredicate,\n\t\t{\n\t\t\thandleColumn: ({ value }) => {\n\t\t\t\tif (value instanceof PredicateReference) {\n\t\t\t\t\tthrow new Error()\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t\thandleRelation: ({ value, targetEntity }) => {\n\t\t\t\tif (value instanceof PredicateReference) {\n\t\t\t\t\tif (!permissions[targetEntity.name]) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Permissions for entity ${targetEntity.name} not found. Make sure you are defining it in a right order.`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tconst predicate = permissions[targetEntity.name].predicates[value.name]\n\t\t\t\t\tif (!predicate) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Predicate ${value.name} of entity ${targetEntity.name} not found. Make sure you are defining it in a right order.`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\treturn predicate\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t},\n\t)\n}\n"],"names":["PredicateDefinitionProcessor","predicate"],"mappings":";;;AAGA,MAAqB,mBAAmB;AAAA,EACvC,YAA4B,MAA8B;AAA9B,SAAA,OAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"PredicateReference.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/PredicateReference.ts"],"sourcesContent":["import { Acl, Input, Model } from '@contember/schema'\nimport { PredicateDefinitionProcessor } from '@contember/schema-utils'\n\nexport default class PredicateReference {\n\tconstructor(public readonly name: Acl.PredicateReference) {}\n}\n\nexport const resolvePredicateReference = (\n\tmodel: Model.Schema,\n\tpermissions: Acl.Permissions,\n\tentity: Model.Entity,\n\tpredicate: Acl.PredicateDefinition<PredicateReference>,\n): Acl.PredicateDefinition => {\n\tconst predicateDefinitionProcessor = new PredicateDefinitionProcessor(model)\n\treturn predicateDefinitionProcessor.process<Acl.PredicateVariable | Input.Condition, PredicateReference>(\n\t\tentity,\n\t\tpredicate,\n\t\t{\n\t\t\thandleColumn: ({ value }) => {\n\t\t\t\tif (value instanceof PredicateReference) {\n\t\t\t\t\tthrow new Error()\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t\thandleRelation: ({ value, targetEntity }) => {\n\t\t\t\tif (value instanceof PredicateReference) {\n\t\t\t\t\tif (!permissions[targetEntity.name]) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Permissions for entity ${targetEntity.name} not found. Make sure you are defining it in a right order.`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tconst predicate = permissions[targetEntity.name].predicates[value.name]\n\t\t\t\t\tif (!predicate) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Predicate ${value.name} of entity ${targetEntity.name} not found. Make sure you are defining it in a right order.`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\treturn predicate\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t},\n\t)\n}\n"],"names":["PredicateDefinitionProcessor","predicate"],"mappings":";;;AAGA,MAAqB,mBAAmB;AAAA,EACvC,YAA4B,MAA8B;AAA9B,SAAA,OAAA;AAAA,EAAA;AAC7B;AAEO,MAAM,4BAA4B,CACxC,OACA,aACA,QACA,cAC6B;AACvB,QAAA,+BAA+B,IAAIA,YAAA,6BAA6B,KAAK;AAC3E,SAAO,6BAA6B;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,MACC,cAAc,CAAC,EAAE,YAAY;AAC5B,YAAI,iBAAiB,oBAAoB;AACxC,gBAAM,IAAI,MAAM;AAAA,QAAA;AAEV,eAAA;AAAA,MACR;AAAA,MACA,gBAAgB,CAAC,EAAE,OAAO,mBAAmB;AAC5C,YAAI,iBAAiB,oBAAoB;AACxC,cAAI,CAAC,YAAY,aAAa,IAAI,GAAG;AACpC,kBAAM,IAAI;AAAA,cACT,0BAA0B,aAAa,IAAI;AAAA,YAC5C;AAAA,UAAA;AAED,gBAAMC,aAAY,YAAY,aAAa,IAAI,EAAE,WAAW,MAAM,IAAI;AACtE,cAAI,CAACA,YAAW;AACf,kBAAM,IAAI;AAAA,cACT,aAAa,MAAM,IAAI,cAAc,aAAa,IAAI;AAAA,YACvD;AAAA,UAAA;AAEMA,iBAAAA;AAAAA,QAAA;AAED,eAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAEF;AACD;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PredicateReference.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/PredicateReference.ts"],"sourcesContent":["import { Acl, Input, Model } from '@contember/schema'\nimport { PredicateDefinitionProcessor } from '@contember/schema-utils'\n\nexport default class PredicateReference {\n\tconstructor(public readonly name: Acl.PredicateReference) {}\n}\n\nexport const resolvePredicateReference = (\n\tmodel: Model.Schema,\n\tpermissions: Acl.Permissions,\n\tentity: Model.Entity,\n\tpredicate: Acl.PredicateDefinition<PredicateReference>,\n): Acl.PredicateDefinition => {\n\tconst predicateDefinitionProcessor = new PredicateDefinitionProcessor(model)\n\treturn predicateDefinitionProcessor.process<Acl.PredicateVariable | Input.Condition, PredicateReference>(\n\t\tentity,\n\t\tpredicate,\n\t\t{\n\t\t\thandleColumn: ({ value }) => {\n\t\t\t\tif (value instanceof PredicateReference) {\n\t\t\t\t\tthrow new Error()\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t\thandleRelation: ({ value, targetEntity }) => {\n\t\t\t\tif (value instanceof PredicateReference) {\n\t\t\t\t\tif (!permissions[targetEntity.name]) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Permissions for entity ${targetEntity.name} not found. Make sure you are defining it in a right order.`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tconst predicate = permissions[targetEntity.name].predicates[value.name]\n\t\t\t\t\tif (!predicate) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Predicate ${value.name} of entity ${targetEntity.name} not found. Make sure you are defining it in a right order.`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\treturn predicate\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t},\n\t)\n}\n"],"names":["predicate"],"mappings":";AAGA,MAAqB,mBAAmB;AAAA,EACvC,YAA4B,MAA8B;AAA9B,SAAA,OAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"PredicateReference.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/PredicateReference.ts"],"sourcesContent":["import { Acl, Input, Model } from '@contember/schema'\nimport { PredicateDefinitionProcessor } from '@contember/schema-utils'\n\nexport default class PredicateReference {\n\tconstructor(public readonly name: Acl.PredicateReference) {}\n}\n\nexport const resolvePredicateReference = (\n\tmodel: Model.Schema,\n\tpermissions: Acl.Permissions,\n\tentity: Model.Entity,\n\tpredicate: Acl.PredicateDefinition<PredicateReference>,\n): Acl.PredicateDefinition => {\n\tconst predicateDefinitionProcessor = new PredicateDefinitionProcessor(model)\n\treturn predicateDefinitionProcessor.process<Acl.PredicateVariable | Input.Condition, PredicateReference>(\n\t\tentity,\n\t\tpredicate,\n\t\t{\n\t\t\thandleColumn: ({ value }) => {\n\t\t\t\tif (value instanceof PredicateReference) {\n\t\t\t\t\tthrow new Error()\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t\thandleRelation: ({ value, targetEntity }) => {\n\t\t\t\tif (value instanceof PredicateReference) {\n\t\t\t\t\tif (!permissions[targetEntity.name]) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Permissions for entity ${targetEntity.name} not found. Make sure you are defining it in a right order.`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tconst predicate = permissions[targetEntity.name].predicates[value.name]\n\t\t\t\t\tif (!predicate) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Predicate ${value.name} of entity ${targetEntity.name} not found. Make sure you are defining it in a right order.`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\treturn predicate\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t},\n\t)\n}\n"],"names":["predicate"],"mappings":";AAGA,MAAqB,mBAAmB;AAAA,EACvC,YAA4B,MAA8B;AAA9B,SAAA,OAAA;AAAA,EAAA;AAC7B;AAEO,MAAM,4BAA4B,CACxC,OACA,aACA,QACA,cAC6B;AACvB,QAAA,+BAA+B,IAAI,6BAA6B,KAAK;AAC3E,SAAO,6BAA6B;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,MACC,cAAc,CAAC,EAAE,YAAY;AAC5B,YAAI,iBAAiB,oBAAoB;AACxC,gBAAM,IAAI,MAAM;AAAA,QAAA;AAEV,eAAA;AAAA,MACR;AAAA,MACA,gBAAgB,CAAC,EAAE,OAAO,mBAAmB;AAC5C,YAAI,iBAAiB,oBAAoB;AACxC,cAAI,CAAC,YAAY,aAAa,IAAI,GAAG;AACpC,kBAAM,IAAI;AAAA,cACT,0BAA0B,aAAa,IAAI;AAAA,YAC5C;AAAA,UAAA;AAED,gBAAMA,aAAY,YAAY,aAAa,IAAI,EAAE,WAAW,MAAM,IAAI;AACtE,cAAI,CAACA,YAAW;AACf,kBAAM,IAAI;AAAA,cACT,aAAa,MAAM,IAAI,cAAc,aAAa,IAAI;AAAA,YACvD;AAAA,UAAA;AAEMA,iBAAAA;AAAAA,QAAA;AAED,eAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAEF;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customPrimary.cjs","sources":["../../../../../../packages/schema-definition/src/acl/definition/customPrimary.ts"],"sourcesContent":["import { Role } from './roles'\nimport { allowCustomPrimaryAllRolesStore, allowCustomPrimaryStore } from './internal/stores'\nimport { DecoratorFunction, EntityConstructor } from '../../utils'\n\nexport const allowCustomPrimary = (role?: Role | Role[]): DecoratorFunction<any> => {\n\treturn (entity: EntityConstructor) => {\n\t\tif (!role) {\n\t\t\tallowCustomPrimaryAllRolesStore.update(entity, () => true)\n\t\t} else {\n\t\t\tallowCustomPrimaryStore.update(entity, val => [...val, ...(Array.isArray(role) ? role : [role])])\n\t\t}\n\t}\n}\n"],"names":["allowCustomPrimaryAllRolesStore","allowCustomPrimaryStore"],"mappings":";;;AAIa,MAAA,qBAAqB,CAAC,SAAiD;AACnF,SAAO,CAAC,WAA8B;AACrC,QAAI,CAAC,MAAM;AACsBA,aAAAA,gCAAA,OAAO,QAAQ,MAAM,IAAI;AAAA,IAAA,OACnD;AACNC,
|
|
1
|
+
{"version":3,"file":"customPrimary.cjs","sources":["../../../../../../packages/schema-definition/src/acl/definition/customPrimary.ts"],"sourcesContent":["import { Role } from './roles'\nimport { allowCustomPrimaryAllRolesStore, allowCustomPrimaryStore } from './internal/stores'\nimport { DecoratorFunction, EntityConstructor } from '../../utils'\n\nexport const allowCustomPrimary = (role?: Role | Role[]): DecoratorFunction<any> => {\n\treturn (entity: EntityConstructor) => {\n\t\tif (!role) {\n\t\t\tallowCustomPrimaryAllRolesStore.update(entity, () => true)\n\t\t} else {\n\t\t\tallowCustomPrimaryStore.update(entity, val => [...val, ...(Array.isArray(role) ? role : [role])])\n\t\t}\n\t}\n}\n"],"names":["allowCustomPrimaryAllRolesStore","allowCustomPrimaryStore"],"mappings":";;;AAIa,MAAA,qBAAqB,CAAC,SAAiD;AACnF,SAAO,CAAC,WAA8B;AACrC,QAAI,CAAC,MAAM;AACsBA,aAAAA,gCAAA,OAAO,QAAQ,MAAM,IAAI;AAAA,IAAA,OACnD;AACNC,aAAAA,wBAAwB,OAAO,QAAQ,CAAO,QAAA,CAAC,GAAG,KAAK,GAAI,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAE,CAAC;AAAA,IAAA;AAAA,EAElG;AACD;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customPrimary.js","sources":["../../../../../../packages/schema-definition/src/acl/definition/customPrimary.ts"],"sourcesContent":["import { Role } from './roles'\nimport { allowCustomPrimaryAllRolesStore, allowCustomPrimaryStore } from './internal/stores'\nimport { DecoratorFunction, EntityConstructor } from '../../utils'\n\nexport const allowCustomPrimary = (role?: Role | Role[]): DecoratorFunction<any> => {\n\treturn (entity: EntityConstructor) => {\n\t\tif (!role) {\n\t\t\tallowCustomPrimaryAllRolesStore.update(entity, () => true)\n\t\t} else {\n\t\t\tallowCustomPrimaryStore.update(entity, val => [...val, ...(Array.isArray(role) ? role : [role])])\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";AAIa,MAAA,qBAAqB,CAAC,SAAiD;AACnF,SAAO,CAAC,WAA8B;AACrC,QAAI,CAAC,MAAM;AACsB,sCAAA,OAAO,QAAQ,MAAM,IAAI;AAAA,IAAA,OACnD;AACN,8BAAwB,OAAO,QAAQ,CAAO,QAAA,CAAC,GAAG,KAAK,GAAI,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAE,CAAC;AAAA,
|
|
1
|
+
{"version":3,"file":"customPrimary.js","sources":["../../../../../../packages/schema-definition/src/acl/definition/customPrimary.ts"],"sourcesContent":["import { Role } from './roles'\nimport { allowCustomPrimaryAllRolesStore, allowCustomPrimaryStore } from './internal/stores'\nimport { DecoratorFunction, EntityConstructor } from '../../utils'\n\nexport const allowCustomPrimary = (role?: Role | Role[]): DecoratorFunction<any> => {\n\treturn (entity: EntityConstructor) => {\n\t\tif (!role) {\n\t\t\tallowCustomPrimaryAllRolesStore.update(entity, () => true)\n\t\t} else {\n\t\t\tallowCustomPrimaryStore.update(entity, val => [...val, ...(Array.isArray(role) ? role : [role])])\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";AAIa,MAAA,qBAAqB,CAAC,SAAiD;AACnF,SAAO,CAAC,WAA8B;AACrC,QAAI,CAAC,MAAM;AACsB,sCAAA,OAAO,QAAQ,MAAM,IAAI;AAAA,IAAA,OACnD;AACN,8BAAwB,OAAO,QAAQ,CAAO,QAAA,CAAC,GAAG,KAAK,GAAI,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAE,CAAC;AAAA,IAAA;AAAA,EAElG;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/schema-definition/src/acl/definition/index.ts"],"sourcesContent":["import { Acl, Model } from '@contember/schema'\nimport { AclFactory } from './internal/AclFactory'\n\nexport * from './customPrimary'\nexport * from './permissions'\nexport * from './references'\nexport * from './roles'\nexport * from './variables'\n\nexport const createAcl = (\n\texportedDefinitions: Record<string, any>,\n\tmodel: Model.Schema,\n): Acl.Schema => {\n\tconst aclFactory = new AclFactory(model)\n\treturn aclFactory.create(exportedDefinitions)\n}\n"],"names":["AclFactory"],"mappings":";;;;;;;;AASa,MAAA,YAAY,CACxB,qBACA,UACgB;AACV,QAAA,aAAa,IAAIA,
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../../packages/schema-definition/src/acl/definition/index.ts"],"sourcesContent":["import { Acl, Model } from '@contember/schema'\nimport { AclFactory } from './internal/AclFactory'\n\nexport * from './customPrimary'\nexport * from './permissions'\nexport * from './references'\nexport * from './roles'\nexport * from './variables'\n\nexport const createAcl = (\n\texportedDefinitions: Record<string, any>,\n\tmodel: Model.Schema,\n): Acl.Schema => {\n\tconst aclFactory = new AclFactory(model)\n\treturn aclFactory.create(exportedDefinitions)\n}\n"],"names":["AclFactory"],"mappings":";;;;;;;;AASa,MAAA,YAAY,CACxB,qBACA,UACgB;AACV,QAAA,aAAa,IAAIA,WAAA,WAAW,KAAK;AAChC,SAAA,WAAW,OAAO,mBAAmB;AAC7C;;;;;;;;;;;;;;;"}
|