@contember/schema-definition 1.4.0-rc.7 → 2.0.0-alpha.10
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 +122 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +117 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/acl/builder/EntityPermissionsBuilder.cjs +119 -0
- package/dist/development/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -0
- package/dist/development/src/acl/builder/EntityPermissionsBuilder.js +120 -0
- package/dist/development/src/acl/builder/EntityPermissionsBuilder.js.map +1 -0
- package/dist/development/src/acl/builder/EntitySelector.cjs +32 -0
- package/dist/development/src/acl/builder/EntitySelector.cjs.map +1 -0
- package/dist/development/src/acl/builder/EntitySelector.js +33 -0
- package/dist/development/src/acl/builder/EntitySelector.js.map +1 -0
- package/dist/development/src/acl/builder/FieldPermissionsBuilder.cjs +59 -0
- package/dist/development/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -0
- package/dist/development/src/acl/builder/FieldPermissionsBuilder.js +60 -0
- package/dist/development/src/acl/builder/FieldPermissionsBuilder.js.map +1 -0
- package/dist/development/src/acl/builder/FieldSelector.cjs +26 -0
- package/dist/development/src/acl/builder/FieldSelector.cjs.map +1 -0
- package/dist/development/src/acl/builder/FieldSelector.js +27 -0
- package/dist/development/src/acl/builder/FieldSelector.js.map +1 -0
- package/dist/development/src/acl/builder/PermissionOverrider.cjs +31 -0
- package/dist/development/src/acl/builder/PermissionOverrider.cjs.map +1 -0
- package/dist/development/src/acl/builder/PermissionOverrider.js +32 -0
- package/dist/development/src/acl/builder/PermissionOverrider.js.map +1 -0
- package/dist/development/src/acl/builder/PermissionsBuilder.cjs +58 -0
- package/dist/development/src/acl/builder/PermissionsBuilder.cjs.map +1 -0
- package/dist/development/src/acl/builder/PermissionsBuilder.js +58 -0
- package/dist/development/src/acl/builder/PermissionsBuilder.js.map +1 -0
- package/dist/development/src/acl/builder/PredicateReference.cjs +43 -0
- package/dist/development/src/acl/builder/PredicateReference.cjs.map +1 -0
- package/dist/development/src/acl/builder/PredicateReference.js +43 -0
- package/dist/development/src/acl/builder/PredicateReference.js.map +1 -0
- package/dist/development/src/acl/definition/customPrimary.cjs +14 -0
- package/dist/development/src/acl/definition/customPrimary.cjs.map +1 -0
- package/dist/development/src/acl/definition/customPrimary.js +14 -0
- package/dist/development/src/acl/definition/customPrimary.js.map +1 -0
- package/dist/development/src/acl/definition/index.cjs +27 -0
- package/dist/development/src/acl/definition/index.cjs.map +1 -0
- package/dist/development/src/acl/definition/index.js +27 -0
- package/dist/development/src/acl/definition/index.js.map +1 -0
- package/dist/development/src/acl/definition/internal/AclFactory.cjs +103 -0
- package/dist/development/src/acl/definition/internal/AclFactory.cjs.map +1 -0
- package/dist/development/src/acl/definition/internal/AclFactory.js +103 -0
- package/dist/development/src/acl/definition/internal/AclFactory.js.map +1 -0
- package/dist/development/src/acl/definition/internal/EntityPredicateResolver.cjs +151 -0
- package/dist/development/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -0
- package/dist/development/src/acl/definition/internal/EntityPredicateResolver.js +151 -0
- package/dist/development/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -0
- package/dist/development/src/acl/definition/internal/createPredicateName.cjs +8 -0
- package/dist/development/src/acl/definition/internal/createPredicateName.cjs.map +1 -0
- package/dist/development/src/acl/definition/internal/createPredicateName.js +8 -0
- package/dist/development/src/acl/definition/internal/createPredicateName.js.map +1 -0
- package/dist/development/src/acl/definition/internal/stores.cjs +10 -0
- package/dist/development/src/acl/definition/internal/stores.cjs.map +1 -0
- package/dist/development/src/acl/definition/internal/stores.js +10 -0
- package/dist/development/src/acl/definition/internal/stores.js.map +1 -0
- package/dist/development/src/acl/definition/permissions.cjs +12 -0
- package/dist/development/src/acl/definition/permissions.cjs.map +1 -0
- package/dist/development/src/acl/definition/permissions.js +12 -0
- package/dist/development/src/acl/definition/permissions.js.map +1 -0
- package/dist/development/src/acl/definition/references.cjs +26 -0
- package/dist/development/src/acl/definition/references.cjs.map +1 -0
- package/dist/development/src/acl/definition/references.js +26 -0
- package/dist/development/src/acl/definition/references.js.map +1 -0
- package/dist/development/src/acl/definition/roles.cjs +14 -0
- package/dist/development/src/acl/definition/roles.cjs.map +1 -0
- package/dist/development/src/acl/definition/roles.js +14 -0
- package/dist/development/src/acl/definition/roles.js.map +1 -0
- package/dist/development/src/acl/definition/variables.cjs +36 -0
- package/dist/development/src/acl/definition/variables.cjs.map +1 -0
- package/dist/development/src/acl/definition/variables.js +36 -0
- package/dist/development/src/acl/definition/variables.js.map +1 -0
- package/dist/development/src/actions/definition/index.cjs +15 -0
- package/dist/development/src/actions/definition/index.cjs.map +1 -0
- package/dist/development/src/actions/definition/index.js +15 -0
- package/dist/development/src/actions/definition/index.js.map +1 -0
- package/dist/development/src/actions/definition/internal/ActionsFactory.cjs +179 -0
- package/dist/development/src/actions/definition/internal/ActionsFactory.cjs.map +1 -0
- package/dist/development/src/actions/definition/internal/ActionsFactory.js +179 -0
- package/dist/development/src/actions/definition/internal/ActionsFactory.js.map +1 -0
- package/dist/development/src/actions/definition/internal/store.cjs +6 -0
- package/dist/development/src/actions/definition/internal/store.cjs.map +1 -0
- package/dist/development/src/actions/definition/internal/store.js +6 -0
- package/dist/development/src/actions/definition/internal/store.js.map +1 -0
- package/dist/development/src/actions/definition/targets.cjs +15 -0
- package/dist/development/src/actions/definition/targets.cjs.map +1 -0
- package/dist/development/src/actions/definition/targets.js +15 -0
- package/dist/development/src/actions/definition/targets.js.map +1 -0
- package/dist/development/src/actions/definition/triggers.cjs +12 -0
- package/dist/development/src/actions/definition/triggers.cjs.map +1 -0
- package/dist/development/src/actions/definition/triggers.js +12 -0
- package/dist/development/src/actions/definition/triggers.js.map +1 -0
- package/dist/development/src/createSchema.cjs +26 -0
- package/dist/development/src/createSchema.cjs.map +1 -0
- package/dist/development/src/createSchema.js +26 -0
- package/dist/development/src/createSchema.js.map +1 -0
- package/dist/development/src/model/builder/ColumnBuilder.cjs +36 -0
- package/dist/development/src/model/builder/ColumnBuilder.cjs.map +1 -0
- package/dist/development/src/model/builder/ColumnBuilder.js +37 -0
- package/dist/development/src/model/builder/ColumnBuilder.js.map +1 -0
- package/dist/development/src/model/builder/EntityBuilder.cjs +69 -0
- package/dist/development/src/model/builder/EntityBuilder.cjs.map +1 -0
- package/dist/development/src/model/builder/EntityBuilder.js +70 -0
- package/dist/development/src/model/builder/EntityBuilder.js.map +1 -0
- package/dist/development/src/model/builder/FieldBuilder.cjs +14 -0
- package/dist/development/src/model/builder/FieldBuilder.cjs.map +1 -0
- package/dist/development/src/model/builder/FieldBuilder.js +15 -0
- package/dist/development/src/model/builder/FieldBuilder.js.map +1 -0
- package/dist/development/src/model/builder/ManyHasManyBuilder.cjs +35 -0
- package/dist/development/src/model/builder/ManyHasManyBuilder.cjs.map +1 -0
- package/dist/development/src/model/builder/ManyHasManyBuilder.js +36 -0
- package/dist/development/src/model/builder/ManyHasManyBuilder.js.map +1 -0
- package/dist/development/src/model/builder/ManyHasOneBuilder.cjs +36 -0
- package/dist/development/src/model/builder/ManyHasOneBuilder.cjs.map +1 -0
- package/dist/development/src/model/builder/ManyHasOneBuilder.js +37 -0
- package/dist/development/src/model/builder/ManyHasOneBuilder.js.map +1 -0
- package/dist/development/src/model/builder/OneHasManyBuilder.cjs +44 -0
- package/dist/development/src/model/builder/OneHasManyBuilder.cjs.map +1 -0
- package/dist/development/src/model/builder/OneHasManyBuilder.js +45 -0
- package/dist/development/src/model/builder/OneHasManyBuilder.js.map +1 -0
- package/dist/development/src/model/builder/OneHasOneBuilder.cjs +46 -0
- package/dist/development/src/model/builder/OneHasOneBuilder.cjs.map +1 -0
- package/dist/development/src/model/builder/OneHasOneBuilder.js +47 -0
- package/dist/development/src/model/builder/OneHasOneBuilder.js.map +1 -0
- package/dist/development/src/model/builder/SchemaBuilder.cjs +40 -0
- package/dist/development/src/model/builder/SchemaBuilder.cjs.map +1 -0
- package/dist/development/src/model/builder/SchemaBuilder.js +40 -0
- package/dist/development/src/model/builder/SchemaBuilder.js.map +1 -0
- package/dist/development/src/model/builder/SchemaBuilderError.cjs +6 -0
- package/dist/development/src/model/builder/SchemaBuilderError.cjs.map +1 -0
- package/dist/development/src/model/builder/SchemaBuilderError.js +6 -0
- package/dist/development/src/model/builder/SchemaBuilderError.js.map +1 -0
- package/dist/development/src/model/builder/SchemaBuilderInternal.cjs +153 -0
- package/dist/development/src/model/builder/SchemaBuilderInternal.cjs.map +1 -0
- package/dist/development/src/model/builder/SchemaBuilderInternal.js +154 -0
- package/dist/development/src/model/builder/SchemaBuilderInternal.js.map +1 -0
- package/dist/development/src/model/builder/internal/ColumnProcessor.cjs +34 -0
- package/dist/development/src/model/builder/internal/ColumnProcessor.cjs.map +1 -0
- package/dist/development/src/model/builder/internal/ColumnProcessor.js +35 -0
- package/dist/development/src/model/builder/internal/ColumnProcessor.js.map +1 -0
- package/dist/development/src/model/builder/internal/ManyHasManyProcessor.cjs +54 -0
- package/dist/development/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -0
- package/dist/development/src/model/builder/internal/ManyHasManyProcessor.js +55 -0
- package/dist/development/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -0
- package/dist/development/src/model/builder/internal/ManyHasOneProcessor.cjs +46 -0
- package/dist/development/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -0
- package/dist/development/src/model/builder/internal/ManyHasOneProcessor.js +47 -0
- package/dist/development/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -0
- package/dist/development/src/model/builder/internal/OneHasManyProcessor.cjs +44 -0
- package/dist/development/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -0
- package/dist/development/src/model/builder/internal/OneHasManyProcessor.js +45 -0
- package/dist/development/src/model/builder/internal/OneHasManyProcessor.js.map +1 -0
- package/dist/development/src/model/builder/internal/OneHasOneProcessor.cjs +50 -0
- package/dist/development/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -0
- package/dist/development/src/model/builder/internal/OneHasOneProcessor.js +51 -0
- package/dist/development/src/model/builder/internal/OneHasOneProcessor.js.map +1 -0
- package/dist/development/src/model/definition/EnumDefinition.cjs +13 -0
- package/dist/development/src/model/definition/EnumDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/EnumDefinition.js +13 -0
- package/dist/development/src/model/definition/EnumDefinition.js.map +1 -0
- package/dist/development/src/model/definition/EventLogDefinition.cjs +9 -0
- package/dist/development/src/model/definition/EventLogDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/EventLogDefinition.js +9 -0
- package/dist/development/src/model/definition/EventLogDefinition.js.map +1 -0
- package/dist/development/src/model/definition/IndexDefinition.cjs +17 -0
- package/dist/development/src/model/definition/IndexDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/IndexDefinition.js +17 -0
- package/dist/development/src/model/definition/IndexDefinition.js.map +1 -0
- package/dist/development/src/model/definition/OrderByDefinition.cjs +30 -0
- package/dist/development/src/model/definition/OrderByDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/OrderByDefinition.js +30 -0
- package/dist/development/src/model/definition/OrderByDefinition.js.map +1 -0
- package/dist/development/src/model/definition/UniqueDefinition.cjs +17 -0
- package/dist/development/src/model/definition/UniqueDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/UniqueDefinition.js +17 -0
- package/dist/development/src/model/definition/UniqueDefinition.js.map +1 -0
- package/dist/development/src/model/definition/ViewDefinition.cjs +25 -0
- package/dist/development/src/model/definition/ViewDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/ViewDefinition.js +25 -0
- package/dist/development/src/model/definition/ViewDefinition.js.map +1 -0
- package/dist/development/src/model/definition/extensions.cjs +16 -0
- package/dist/development/src/model/definition/extensions.cjs.map +1 -0
- package/dist/development/src/model/definition/extensions.js +16 -0
- package/dist/development/src/model/definition/extensions.js.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +118 -0
- package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js +118 -0
- package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs +12 -0
- package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js +12 -0
- package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs +54 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +54 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs +37 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +37 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs +57 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +57 -0
- package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs +33 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +33 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs +61 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +61 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs +36 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +36 -0
- package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -0
- package/dist/development/src/model/definition/index.cjs +80 -0
- package/dist/development/src/model/definition/index.cjs.map +1 -0
- package/dist/development/src/model/definition/index.js +81 -0
- package/dist/development/src/model/definition/index.js.map +1 -0
- package/dist/development/src/model/definition/internal/EntityRegistry.cjs +29 -0
- package/dist/development/src/model/definition/internal/EntityRegistry.cjs.map +1 -0
- package/dist/development/src/model/definition/internal/EntityRegistry.js +29 -0
- package/dist/development/src/model/definition/internal/EntityRegistry.js.map +1 -0
- package/dist/development/src/model/definition/internal/EnumRegistry.cjs +29 -0
- package/dist/development/src/model/definition/internal/EnumRegistry.cjs.map +1 -0
- package/dist/development/src/model/definition/internal/EnumRegistry.js +29 -0
- package/dist/development/src/model/definition/internal/EnumRegistry.js.map +1 -0
- package/dist/development/src/model/definition/internal/SchemaBuilder.cjs +92 -0
- package/dist/development/src/model/definition/internal/SchemaBuilder.cjs.map +1 -0
- package/dist/development/src/model/definition/internal/SchemaBuilder.js +92 -0
- package/dist/development/src/model/definition/internal/SchemaBuilder.js.map +1 -0
- package/dist/development/src/presets.cjs +25 -0
- package/dist/development/src/presets.cjs.map +1 -0
- package/dist/development/src/presets.js +25 -0
- package/dist/development/src/presets.js.map +1 -0
- package/dist/development/src/strict.cjs +31 -0
- package/dist/development/src/strict.cjs.map +1 -0
- package/dist/development/src/strict.js +31 -0
- package/dist/development/src/strict.js.map +1 -0
- package/dist/development/src/utils/MetadataStore.cjs +19 -0
- package/dist/development/src/utils/MetadataStore.cjs.map +1 -0
- package/dist/development/src/utils/MetadataStore.js +19 -0
- package/dist/development/src/utils/MetadataStore.js.map +1 -0
- package/dist/development/src/utils/assertNever.cjs +7 -0
- package/dist/development/src/utils/assertNever.cjs.map +1 -0
- package/dist/development/src/utils/assertNever.js +7 -0
- package/dist/development/src/utils/assertNever.js.map +1 -0
- package/dist/development/src/utils/filterEntityDefinition.cjs +9 -0
- package/dist/development/src/utils/filterEntityDefinition.cjs.map +1 -0
- package/dist/development/src/utils/filterEntityDefinition.js +9 -0
- package/dist/development/src/utils/filterEntityDefinition.js.map +1 -0
- package/dist/development/src/utils/tuple.cjs +5 -0
- package/dist/development/src/utils/tuple.cjs.map +1 -0
- package/dist/development/src/utils/tuple.js +5 -0
- package/dist/development/src/utils/tuple.js.map +1 -0
- package/dist/development/src/validation/index.cjs +199 -0
- package/dist/development/src/validation/index.cjs.map +1 -0
- package/dist/development/src/validation/index.js +199 -0
- package/dist/development/src/validation/index.js.map +1 -0
- package/dist/production/index.cjs +122 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +117 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/acl/builder/EntityPermissionsBuilder.cjs +119 -0
- package/dist/production/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -0
- package/dist/production/src/acl/builder/EntityPermissionsBuilder.js +120 -0
- package/dist/production/src/acl/builder/EntityPermissionsBuilder.js.map +1 -0
- package/dist/production/src/acl/builder/EntitySelector.cjs +32 -0
- package/dist/production/src/acl/builder/EntitySelector.cjs.map +1 -0
- package/dist/production/src/acl/builder/EntitySelector.js +33 -0
- package/dist/production/src/acl/builder/EntitySelector.js.map +1 -0
- package/dist/production/src/acl/builder/FieldPermissionsBuilder.cjs +59 -0
- package/dist/production/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -0
- package/dist/production/src/acl/builder/FieldPermissionsBuilder.js +60 -0
- package/dist/production/src/acl/builder/FieldPermissionsBuilder.js.map +1 -0
- package/dist/production/src/acl/builder/FieldSelector.cjs +26 -0
- package/dist/production/src/acl/builder/FieldSelector.cjs.map +1 -0
- package/dist/production/src/acl/builder/FieldSelector.js +27 -0
- package/dist/production/src/acl/builder/FieldSelector.js.map +1 -0
- package/dist/production/src/acl/builder/PermissionOverrider.cjs +31 -0
- package/dist/production/src/acl/builder/PermissionOverrider.cjs.map +1 -0
- package/dist/production/src/acl/builder/PermissionOverrider.js +32 -0
- package/dist/production/src/acl/builder/PermissionOverrider.js.map +1 -0
- package/dist/production/src/acl/builder/PermissionsBuilder.cjs +58 -0
- package/dist/production/src/acl/builder/PermissionsBuilder.cjs.map +1 -0
- package/dist/production/src/acl/builder/PermissionsBuilder.js +58 -0
- package/dist/production/src/acl/builder/PermissionsBuilder.js.map +1 -0
- package/dist/production/src/acl/builder/PredicateReference.cjs +43 -0
- package/dist/production/src/acl/builder/PredicateReference.cjs.map +1 -0
- package/dist/production/src/acl/builder/PredicateReference.js +43 -0
- package/dist/production/src/acl/builder/PredicateReference.js.map +1 -0
- package/dist/production/src/acl/definition/customPrimary.cjs +14 -0
- package/dist/production/src/acl/definition/customPrimary.cjs.map +1 -0
- package/dist/production/src/acl/definition/customPrimary.js +14 -0
- package/dist/production/src/acl/definition/customPrimary.js.map +1 -0
- package/dist/production/src/acl/definition/index.cjs +27 -0
- package/dist/production/src/acl/definition/index.cjs.map +1 -0
- package/dist/production/src/acl/definition/index.js +27 -0
- package/dist/production/src/acl/definition/index.js.map +1 -0
- package/dist/production/src/acl/definition/internal/AclFactory.cjs +103 -0
- package/dist/production/src/acl/definition/internal/AclFactory.cjs.map +1 -0
- package/dist/production/src/acl/definition/internal/AclFactory.js +103 -0
- package/dist/production/src/acl/definition/internal/AclFactory.js.map +1 -0
- package/dist/production/src/acl/definition/internal/EntityPredicateResolver.cjs +151 -0
- package/dist/production/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -0
- package/dist/production/src/acl/definition/internal/EntityPredicateResolver.js +151 -0
- package/dist/production/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -0
- package/dist/production/src/acl/definition/internal/createPredicateName.cjs +8 -0
- package/dist/production/src/acl/definition/internal/createPredicateName.cjs.map +1 -0
- package/dist/production/src/acl/definition/internal/createPredicateName.js +8 -0
- package/dist/production/src/acl/definition/internal/createPredicateName.js.map +1 -0
- package/dist/production/src/acl/definition/internal/stores.cjs +10 -0
- package/dist/production/src/acl/definition/internal/stores.cjs.map +1 -0
- package/dist/production/src/acl/definition/internal/stores.js +10 -0
- package/dist/production/src/acl/definition/internal/stores.js.map +1 -0
- package/dist/production/src/acl/definition/permissions.cjs +12 -0
- package/dist/production/src/acl/definition/permissions.cjs.map +1 -0
- package/dist/production/src/acl/definition/permissions.js +12 -0
- package/dist/production/src/acl/definition/permissions.js.map +1 -0
- package/dist/production/src/acl/definition/references.cjs +26 -0
- package/dist/production/src/acl/definition/references.cjs.map +1 -0
- package/dist/production/src/acl/definition/references.js +26 -0
- package/dist/production/src/acl/definition/references.js.map +1 -0
- package/dist/production/src/acl/definition/roles.cjs +14 -0
- package/dist/production/src/acl/definition/roles.cjs.map +1 -0
- package/dist/production/src/acl/definition/roles.js +14 -0
- package/dist/production/src/acl/definition/roles.js.map +1 -0
- package/dist/production/src/acl/definition/variables.cjs +36 -0
- package/dist/production/src/acl/definition/variables.cjs.map +1 -0
- package/dist/production/src/acl/definition/variables.js +36 -0
- package/dist/production/src/acl/definition/variables.js.map +1 -0
- package/dist/production/src/actions/definition/index.cjs +15 -0
- package/dist/production/src/actions/definition/index.cjs.map +1 -0
- package/dist/production/src/actions/definition/index.js +15 -0
- package/dist/production/src/actions/definition/index.js.map +1 -0
- package/dist/production/src/actions/definition/internal/ActionsFactory.cjs +179 -0
- package/dist/production/src/actions/definition/internal/ActionsFactory.cjs.map +1 -0
- package/dist/production/src/actions/definition/internal/ActionsFactory.js +179 -0
- package/dist/production/src/actions/definition/internal/ActionsFactory.js.map +1 -0
- package/dist/production/src/actions/definition/internal/store.cjs +6 -0
- package/dist/production/src/actions/definition/internal/store.cjs.map +1 -0
- package/dist/production/src/actions/definition/internal/store.js +6 -0
- package/dist/production/src/actions/definition/internal/store.js.map +1 -0
- package/dist/production/src/actions/definition/targets.cjs +15 -0
- package/dist/production/src/actions/definition/targets.cjs.map +1 -0
- package/dist/production/src/actions/definition/targets.js +15 -0
- package/dist/production/src/actions/definition/targets.js.map +1 -0
- package/dist/production/src/actions/definition/triggers.cjs +12 -0
- package/dist/production/src/actions/definition/triggers.cjs.map +1 -0
- package/dist/production/src/actions/definition/triggers.js +12 -0
- package/dist/production/src/actions/definition/triggers.js.map +1 -0
- package/dist/production/src/createSchema.cjs +26 -0
- package/dist/production/src/createSchema.cjs.map +1 -0
- package/dist/production/src/createSchema.js +26 -0
- package/dist/production/src/createSchema.js.map +1 -0
- package/dist/production/src/model/builder/ColumnBuilder.cjs +36 -0
- package/dist/production/src/model/builder/ColumnBuilder.cjs.map +1 -0
- package/dist/production/src/model/builder/ColumnBuilder.js +37 -0
- package/dist/production/src/model/builder/ColumnBuilder.js.map +1 -0
- package/dist/production/src/model/builder/EntityBuilder.cjs +69 -0
- package/dist/production/src/model/builder/EntityBuilder.cjs.map +1 -0
- package/dist/production/src/model/builder/EntityBuilder.js +70 -0
- package/dist/production/src/model/builder/EntityBuilder.js.map +1 -0
- package/dist/production/src/model/builder/FieldBuilder.cjs +14 -0
- package/dist/production/src/model/builder/FieldBuilder.cjs.map +1 -0
- package/dist/production/src/model/builder/FieldBuilder.js +15 -0
- package/dist/production/src/model/builder/FieldBuilder.js.map +1 -0
- package/dist/production/src/model/builder/ManyHasManyBuilder.cjs +35 -0
- package/dist/production/src/model/builder/ManyHasManyBuilder.cjs.map +1 -0
- package/dist/production/src/model/builder/ManyHasManyBuilder.js +36 -0
- package/dist/production/src/model/builder/ManyHasManyBuilder.js.map +1 -0
- package/dist/production/src/model/builder/ManyHasOneBuilder.cjs +36 -0
- package/dist/production/src/model/builder/ManyHasOneBuilder.cjs.map +1 -0
- package/dist/production/src/model/builder/ManyHasOneBuilder.js +37 -0
- package/dist/production/src/model/builder/ManyHasOneBuilder.js.map +1 -0
- package/dist/production/src/model/builder/OneHasManyBuilder.cjs +44 -0
- package/dist/production/src/model/builder/OneHasManyBuilder.cjs.map +1 -0
- package/dist/production/src/model/builder/OneHasManyBuilder.js +45 -0
- package/dist/production/src/model/builder/OneHasManyBuilder.js.map +1 -0
- package/dist/production/src/model/builder/OneHasOneBuilder.cjs +46 -0
- package/dist/production/src/model/builder/OneHasOneBuilder.cjs.map +1 -0
- package/dist/production/src/model/builder/OneHasOneBuilder.js +47 -0
- package/dist/production/src/model/builder/OneHasOneBuilder.js.map +1 -0
- package/dist/production/src/model/builder/SchemaBuilder.cjs +40 -0
- package/dist/production/src/model/builder/SchemaBuilder.cjs.map +1 -0
- package/dist/production/src/model/builder/SchemaBuilder.js +40 -0
- package/dist/production/src/model/builder/SchemaBuilder.js.map +1 -0
- package/dist/production/src/model/builder/SchemaBuilderError.cjs +6 -0
- package/dist/production/src/model/builder/SchemaBuilderError.cjs.map +1 -0
- package/dist/production/src/model/builder/SchemaBuilderError.js +6 -0
- package/dist/production/src/model/builder/SchemaBuilderError.js.map +1 -0
- package/dist/production/src/model/builder/SchemaBuilderInternal.cjs +153 -0
- package/dist/production/src/model/builder/SchemaBuilderInternal.cjs.map +1 -0
- package/dist/production/src/model/builder/SchemaBuilderInternal.js +154 -0
- package/dist/production/src/model/builder/SchemaBuilderInternal.js.map +1 -0
- package/dist/production/src/model/builder/internal/ColumnProcessor.cjs +34 -0
- package/dist/production/src/model/builder/internal/ColumnProcessor.cjs.map +1 -0
- package/dist/production/src/model/builder/internal/ColumnProcessor.js +35 -0
- package/dist/production/src/model/builder/internal/ColumnProcessor.js.map +1 -0
- package/dist/production/src/model/builder/internal/ManyHasManyProcessor.cjs +54 -0
- package/dist/production/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -0
- package/dist/production/src/model/builder/internal/ManyHasManyProcessor.js +55 -0
- package/dist/production/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -0
- package/dist/production/src/model/builder/internal/ManyHasOneProcessor.cjs +46 -0
- package/dist/production/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -0
- package/dist/production/src/model/builder/internal/ManyHasOneProcessor.js +47 -0
- package/dist/production/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -0
- package/dist/production/src/model/builder/internal/OneHasManyProcessor.cjs +44 -0
- package/dist/production/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -0
- package/dist/production/src/model/builder/internal/OneHasManyProcessor.js +45 -0
- package/dist/production/src/model/builder/internal/OneHasManyProcessor.js.map +1 -0
- package/dist/production/src/model/builder/internal/OneHasOneProcessor.cjs +50 -0
- package/dist/production/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -0
- package/dist/production/src/model/builder/internal/OneHasOneProcessor.js +51 -0
- package/dist/production/src/model/builder/internal/OneHasOneProcessor.js.map +1 -0
- package/dist/production/src/model/definition/EnumDefinition.cjs +13 -0
- package/dist/production/src/model/definition/EnumDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/EnumDefinition.js +13 -0
- package/dist/production/src/model/definition/EnumDefinition.js.map +1 -0
- package/dist/production/src/model/definition/EventLogDefinition.cjs +9 -0
- package/dist/production/src/model/definition/EventLogDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/EventLogDefinition.js +9 -0
- package/dist/production/src/model/definition/EventLogDefinition.js.map +1 -0
- package/dist/production/src/model/definition/IndexDefinition.cjs +17 -0
- package/dist/production/src/model/definition/IndexDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/IndexDefinition.js +17 -0
- package/dist/production/src/model/definition/IndexDefinition.js.map +1 -0
- package/dist/production/src/model/definition/OrderByDefinition.cjs +30 -0
- package/dist/production/src/model/definition/OrderByDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/OrderByDefinition.js +30 -0
- package/dist/production/src/model/definition/OrderByDefinition.js.map +1 -0
- package/dist/production/src/model/definition/UniqueDefinition.cjs +17 -0
- package/dist/production/src/model/definition/UniqueDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/UniqueDefinition.js +17 -0
- package/dist/production/src/model/definition/UniqueDefinition.js.map +1 -0
- package/dist/production/src/model/definition/ViewDefinition.cjs +25 -0
- package/dist/production/src/model/definition/ViewDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/ViewDefinition.js +25 -0
- package/dist/production/src/model/definition/ViewDefinition.js.map +1 -0
- package/dist/production/src/model/definition/extensions.cjs +16 -0
- package/dist/production/src/model/definition/extensions.cjs.map +1 -0
- package/dist/production/src/model/definition/extensions.js +16 -0
- package/dist/production/src/model/definition/extensions.js.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +118 -0
- package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js +118 -0
- package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs +12 -0
- package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js +12 -0
- package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs +54 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +54 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs +37 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +37 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs +57 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +57 -0
- package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs +33 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +33 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs +61 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +61 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs +36 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +36 -0
- package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -0
- package/dist/production/src/model/definition/index.cjs +80 -0
- package/dist/production/src/model/definition/index.cjs.map +1 -0
- package/dist/production/src/model/definition/index.js +81 -0
- package/dist/production/src/model/definition/index.js.map +1 -0
- package/dist/production/src/model/definition/internal/EntityRegistry.cjs +29 -0
- package/dist/production/src/model/definition/internal/EntityRegistry.cjs.map +1 -0
- package/dist/production/src/model/definition/internal/EntityRegistry.js +29 -0
- package/dist/production/src/model/definition/internal/EntityRegistry.js.map +1 -0
- package/dist/production/src/model/definition/internal/EnumRegistry.cjs +29 -0
- package/dist/production/src/model/definition/internal/EnumRegistry.cjs.map +1 -0
- package/dist/production/src/model/definition/internal/EnumRegistry.js +29 -0
- package/dist/production/src/model/definition/internal/EnumRegistry.js.map +1 -0
- package/dist/production/src/model/definition/internal/SchemaBuilder.cjs +92 -0
- package/dist/production/src/model/definition/internal/SchemaBuilder.cjs.map +1 -0
- package/dist/production/src/model/definition/internal/SchemaBuilder.js +92 -0
- package/dist/production/src/model/definition/internal/SchemaBuilder.js.map +1 -0
- package/dist/production/src/presets.cjs +25 -0
- package/dist/production/src/presets.cjs.map +1 -0
- package/dist/production/src/presets.js +25 -0
- package/dist/production/src/presets.js.map +1 -0
- package/dist/production/src/strict.cjs +31 -0
- package/dist/production/src/strict.cjs.map +1 -0
- package/dist/production/src/strict.js +31 -0
- package/dist/production/src/strict.js.map +1 -0
- package/dist/production/src/utils/MetadataStore.cjs +19 -0
- package/dist/production/src/utils/MetadataStore.cjs.map +1 -0
- package/dist/production/src/utils/MetadataStore.js +19 -0
- package/dist/production/src/utils/MetadataStore.js.map +1 -0
- package/dist/production/src/utils/assertNever.cjs +7 -0
- package/dist/production/src/utils/assertNever.cjs.map +1 -0
- package/dist/production/src/utils/assertNever.js +7 -0
- package/dist/production/src/utils/assertNever.js.map +1 -0
- package/dist/production/src/utils/filterEntityDefinition.cjs +9 -0
- package/dist/production/src/utils/filterEntityDefinition.cjs.map +1 -0
- package/dist/production/src/utils/filterEntityDefinition.js +9 -0
- package/dist/production/src/utils/filterEntityDefinition.js.map +1 -0
- package/dist/production/src/utils/tuple.cjs +5 -0
- package/dist/production/src/utils/tuple.cjs.map +1 -0
- package/dist/production/src/utils/tuple.js +5 -0
- package/dist/production/src/utils/tuple.js.map +1 -0
- package/dist/production/src/validation/index.cjs +199 -0
- package/dist/production/src/validation/index.cjs.map +1 -0
- package/dist/production/src/validation/index.js +199 -0
- package/dist/production/src/validation/index.js.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/acl/builder/PermissionsBuilder.d.ts.map +1 -0
- package/dist/types/acl/builder/PredicateReference.d.ts.map +1 -0
- package/dist/types/acl/definition/customPrimary.d.ts.map +1 -0
- package/dist/types/acl/definition/index.d.ts.map +1 -0
- package/dist/types/acl/definition/permissions.d.ts.map +1 -0
- package/dist/types/acl/definition/references.d.ts.map +1 -0
- package/dist/types/acl/definition/roles.d.ts.map +1 -0
- package/dist/types/acl/definition/variables.d.ts.map +1 -0
- package/dist/types/actions/definition/index.d.ts.map +1 -0
- package/dist/types/actions/definition/targets.d.ts +10 -0
- package/dist/types/actions/definition/targets.d.ts.map +1 -0
- package/dist/types/actions/definition/triggers.d.ts.map +1 -0
- package/dist/types/createSchema.d.ts +6 -0
- package/dist/types/createSchema.d.ts.map +1 -0
- package/dist/types/index.d.ts +85 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/model/definition/ViewDefinition.d.ts +5 -0
- package/dist/types/model/definition/ViewDefinition.d.ts.map +1 -0
- package/dist/types/model/definition/extensions.d.ts.map +1 -0
- package/dist/types/model/definition/index.d.ts +27 -0
- package/dist/types/model/definition/index.d.ts.map +1 -0
- package/dist/types/model/definition/types.d.ts +9 -0
- package/dist/types/model/definition/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/types/utils/MetadataStore.d.ts.map +1 -0
- package/dist/types/utils/filterEntityDefinition.d.ts.map +1 -0
- package/dist/types/utils/tuple.d.ts.map +1 -0
- package/dist/types/validation/index.d.ts.map +1 -0
- package/package.json +23 -11
- package/src/model/definition/index.ts +1 -1
- package/src/model/definition/types.ts +1 -1
- package/src/tsconfig.json +1 -1
- package/vitest.config.ts +3 -0
- package/dist/src/acl/builder/EntityPermissionsBuilder.js +0 -102
- package/dist/src/acl/builder/EntityPermissionsBuilder.js.map +0 -1
- package/dist/src/acl/builder/EntitySelector.js +0 -32
- package/dist/src/acl/builder/EntitySelector.js.map +0 -1
- package/dist/src/acl/builder/FieldPermissionsBuilder.js +0 -60
- package/dist/src/acl/builder/FieldPermissionsBuilder.js.map +0 -1
- package/dist/src/acl/builder/FieldSelector.js +0 -27
- package/dist/src/acl/builder/FieldSelector.js.map +0 -1
- package/dist/src/acl/builder/PermissionOverrider.js +0 -38
- package/dist/src/acl/builder/PermissionOverrider.js.map +0 -1
- package/dist/src/acl/builder/PermissionsBuilder.d.ts.map +0 -1
- package/dist/src/acl/builder/PermissionsBuilder.js +0 -58
- package/dist/src/acl/builder/PermissionsBuilder.js.map +0 -1
- package/dist/src/acl/builder/PredicateReference.d.ts.map +0 -1
- package/dist/src/acl/builder/PredicateReference.js +0 -36
- package/dist/src/acl/builder/PredicateReference.js.map +0 -1
- package/dist/src/acl/definition/customPrimary.d.ts.map +0 -1
- package/dist/src/acl/definition/customPrimary.js +0 -16
- package/dist/src/acl/definition/customPrimary.js.map +0 -1
- package/dist/src/acl/definition/index.d.ts.map +0 -1
- package/dist/src/acl/definition/index.js +0 -29
- package/dist/src/acl/definition/index.js.map +0 -1
- package/dist/src/acl/definition/internal/AclFactory.js +0 -106
- package/dist/src/acl/definition/internal/AclFactory.js.map +0 -1
- package/dist/src/acl/definition/internal/EntityPredicateResolver.js +0 -153
- package/dist/src/acl/definition/internal/EntityPredicateResolver.js.map +0 -1
- package/dist/src/acl/definition/internal/createPredicateName.js +0 -9
- package/dist/src/acl/definition/internal/createPredicateName.js.map +0 -1
- package/dist/src/acl/definition/internal/stores.js +0 -8
- package/dist/src/acl/definition/internal/stores.js.map +0 -1
- package/dist/src/acl/definition/permissions.d.ts.map +0 -1
- package/dist/src/acl/definition/permissions.js +0 -13
- package/dist/src/acl/definition/permissions.js.map +0 -1
- package/dist/src/acl/definition/references.d.ts.map +0 -1
- package/dist/src/acl/definition/references.js +0 -27
- package/dist/src/acl/definition/references.js.map +0 -1
- package/dist/src/acl/definition/roles.d.ts.map +0 -1
- package/dist/src/acl/definition/roles.js +0 -15
- package/dist/src/acl/definition/roles.js.map +0 -1
- package/dist/src/acl/definition/variables.d.ts.map +0 -1
- package/dist/src/acl/definition/variables.js +0 -25
- package/dist/src/acl/definition/variables.js.map +0 -1
- package/dist/src/actions/definition/index.d.ts.map +0 -1
- package/dist/src/actions/definition/index.js +0 -26
- package/dist/src/actions/definition/index.js.map +0 -1
- package/dist/src/actions/definition/internal/ActionsFactory.js +0 -183
- package/dist/src/actions/definition/internal/ActionsFactory.js.map +0 -1
- package/dist/src/actions/definition/internal/store.js +0 -6
- package/dist/src/actions/definition/internal/store.js.map +0 -1
- package/dist/src/actions/definition/targets.d.ts +0 -10
- package/dist/src/actions/definition/targets.d.ts.map +0 -1
- package/dist/src/actions/definition/targets.js +0 -13
- package/dist/src/actions/definition/targets.js.map +0 -1
- package/dist/src/actions/definition/triggers.d.ts.map +0 -1
- package/dist/src/actions/definition/triggers.js +0 -13
- package/dist/src/actions/definition/triggers.js.map +0 -1
- package/dist/src/createSchema.d.ts +0 -6
- package/dist/src/createSchema.d.ts.map +0 -1
- package/dist/src/createSchema.js +0 -24
- package/dist/src/createSchema.js.map +0 -1
- package/dist/src/index.d.ts +0 -85
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -95
- package/dist/src/index.js.map +0 -1
- package/dist/src/model/builder/ColumnBuilder.js +0 -37
- package/dist/src/model/builder/ColumnBuilder.js.map +0 -1
- package/dist/src/model/builder/EntityBuilder.js +0 -61
- package/dist/src/model/builder/EntityBuilder.js.map +0 -1
- package/dist/src/model/builder/FieldBuilder.js +0 -15
- package/dist/src/model/builder/FieldBuilder.js.map +0 -1
- package/dist/src/model/builder/ManyHasManyBuilder.js +0 -33
- package/dist/src/model/builder/ManyHasManyBuilder.js.map +0 -1
- package/dist/src/model/builder/ManyHasOneBuilder.js +0 -34
- package/dist/src/model/builder/ManyHasOneBuilder.js.map +0 -1
- package/dist/src/model/builder/OneHasManyBuilder.js +0 -42
- package/dist/src/model/builder/OneHasManyBuilder.js.map +0 -1
- package/dist/src/model/builder/OneHasOneBuilder.js +0 -44
- package/dist/src/model/builder/OneHasOneBuilder.js.map +0 -1
- package/dist/src/model/builder/SchemaBuilder.js +0 -52
- package/dist/src/model/builder/SchemaBuilder.js.map +0 -1
- package/dist/src/model/builder/SchemaBuilderError.js +0 -7
- package/dist/src/model/builder/SchemaBuilderError.js.map +0 -1
- package/dist/src/model/builder/SchemaBuilderInternal.js +0 -146
- package/dist/src/model/builder/SchemaBuilderInternal.js.map +0 -1
- package/dist/src/model/builder/internal/ColumnProcessor.js +0 -32
- package/dist/src/model/builder/internal/ColumnProcessor.js.map +0 -1
- package/dist/src/model/builder/internal/FieldProcessor.js +0 -3
- package/dist/src/model/builder/internal/FieldProcessor.js.map +0 -1
- package/dist/src/model/builder/internal/ManyHasManyProcessor.js +0 -46
- package/dist/src/model/builder/internal/ManyHasManyProcessor.js.map +0 -1
- package/dist/src/model/builder/internal/ManyHasOneProcessor.js +0 -39
- package/dist/src/model/builder/internal/ManyHasOneProcessor.js.map +0 -1
- package/dist/src/model/builder/internal/OneHasManyProcessor.js +0 -41
- package/dist/src/model/builder/internal/OneHasManyProcessor.js.map +0 -1
- package/dist/src/model/builder/internal/OneHasOneProcessor.js +0 -40
- package/dist/src/model/builder/internal/OneHasOneProcessor.js.map +0 -1
- package/dist/src/model/builder/types.js +0 -3
- package/dist/src/model/builder/types.js.map +0 -1
- package/dist/src/model/definition/EnumDefinition.js +0 -14
- package/dist/src/model/definition/EnumDefinition.js.map +0 -1
- package/dist/src/model/definition/EventLogDefinition.js +0 -10
- package/dist/src/model/definition/EventLogDefinition.js.map +0 -1
- package/dist/src/model/definition/IndexDefinition.js +0 -18
- package/dist/src/model/definition/IndexDefinition.js.map +0 -1
- package/dist/src/model/definition/OrderByDefinition.js +0 -33
- package/dist/src/model/definition/OrderByDefinition.js.map +0 -1
- package/dist/src/model/definition/UniqueDefinition.js +0 -20
- package/dist/src/model/definition/UniqueDefinition.js.map +0 -1
- package/dist/src/model/definition/ViewDefinition.d.ts +0 -5
- package/dist/src/model/definition/ViewDefinition.d.ts.map +0 -1
- package/dist/src/model/definition/ViewDefinition.js +0 -26
- package/dist/src/model/definition/ViewDefinition.js.map +0 -1
- package/dist/src/model/definition/context.js +0 -3
- package/dist/src/model/definition/context.js.map +0 -1
- package/dist/src/model/definition/extensions.d.ts.map +0 -1
- package/dist/src/model/definition/extensions.js +0 -14
- package/dist/src/model/definition/extensions.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/ColumnDefinition.js +0 -117
- package/dist/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/FieldDefinition.js +0 -13
- package/dist/src/model/definition/fieldDefinitions/FieldDefinition.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +0 -47
- package/dist/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +0 -36
- package/dist/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +0 -55
- package/dist/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +0 -31
- package/dist/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +0 -59
- package/dist/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +0 -35
- package/dist/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +0 -1
- package/dist/src/model/definition/fieldDefinitions/index.js +0 -25
- package/dist/src/model/definition/fieldDefinitions/index.js.map +0 -1
- package/dist/src/model/definition/index.d.ts +0 -27
- package/dist/src/model/definition/index.d.ts.map +0 -1
- package/dist/src/model/definition/index.js +0 -53
- package/dist/src/model/definition/index.js.map +0 -1
- package/dist/src/model/definition/internal/EntityRegistry.js +0 -27
- package/dist/src/model/definition/internal/EntityRegistry.js.map +0 -1
- package/dist/src/model/definition/internal/EnumRegistry.js +0 -27
- package/dist/src/model/definition/internal/EnumRegistry.js.map +0 -1
- package/dist/src/model/definition/internal/SchemaBuilder.js +0 -92
- package/dist/src/model/definition/internal/SchemaBuilder.js.map +0 -1
- package/dist/src/model/definition/internal/index.js +0 -20
- package/dist/src/model/definition/internal/index.js.map +0 -1
- package/dist/src/model/definition/types.d.ts +0 -9
- package/dist/src/model/definition/types.d.ts.map +0 -1
- package/dist/src/model/definition/types.js +0 -3
- package/dist/src/model/definition/types.js.map +0 -1
- package/dist/src/model/index.js +0 -20
- package/dist/src/model/index.js.map +0 -1
- package/dist/src/presets.js +0 -23
- package/dist/src/presets.js.map +0 -1
- package/dist/src/strict.js +0 -28
- package/dist/src/strict.js.map +0 -1
- package/dist/src/tsconfig.tsbuildinfo +0 -1
- package/dist/src/utils/MetadataStore.d.ts.map +0 -1
- package/dist/src/utils/MetadataStore.js +0 -22
- package/dist/src/utils/MetadataStore.js.map +0 -1
- package/dist/src/utils/assertNever.js +0 -8
- package/dist/src/utils/assertNever.js.map +0 -1
- package/dist/src/utils/decorators.js +0 -3
- package/dist/src/utils/decorators.js.map +0 -1
- package/dist/src/utils/filterEntityDefinition.d.ts.map +0 -1
- package/dist/src/utils/filterEntityDefinition.js +0 -11
- package/dist/src/utils/filterEntityDefinition.js.map +0 -1
- package/dist/src/utils/index.js +0 -22
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/tuple.d.ts.map +0 -1
- package/dist/src/utils/tuple.js +0 -6
- package/dist/src/utils/tuple.js.map +0 -1
- package/dist/src/validation/index.d.ts.map +0 -1
- package/dist/src/validation/index.js +0 -190
- package/dist/src/validation/index.js.map +0 -1
- package/dist/tests/cases/unit/createSchema.test.js +0 -137
- package/dist/tests/cases/unit/createSchema.test.js.map +0 -1
- package/dist/tests/cases/unit/extendEntity.test.js +0 -40
- package/dist/tests/cases/unit/extendEntity.test.js.map +0 -1
- package/dist/tests/cases/unit/orderBy.test.js +0 -102
- package/dist/tests/cases/unit/orderBy.test.js.map +0 -1
- package/dist/tests/cases/unit/readAclDefinitions.test.js +0 -629
- package/dist/tests/cases/unit/readAclDefinitions.test.js.map +0 -1
- package/dist/tests/cases/unit/readActions.test.js +0 -109
- package/dist/tests/cases/unit/readActions.test.js.map +0 -1
- /package/dist/{src → types}/acl/builder/EntityPermissionsBuilder.d.ts +0 -0
- /package/dist/{src → types}/acl/builder/EntityPermissionsBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/acl/builder/EntitySelector.d.ts +0 -0
- /package/dist/{src → types}/acl/builder/EntitySelector.d.ts.map +0 -0
- /package/dist/{src → types}/acl/builder/FieldPermissionsBuilder.d.ts +0 -0
- /package/dist/{src → types}/acl/builder/FieldPermissionsBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/acl/builder/FieldSelector.d.ts +0 -0
- /package/dist/{src → types}/acl/builder/FieldSelector.d.ts.map +0 -0
- /package/dist/{src → types}/acl/builder/PermissionOverrider.d.ts +0 -0
- /package/dist/{src → types}/acl/builder/PermissionOverrider.d.ts.map +0 -0
- /package/dist/{src → types}/acl/builder/PermissionsBuilder.d.ts +0 -0
- /package/dist/{src → types}/acl/builder/PredicateReference.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/customPrimary.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/index.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/internal/AclFactory.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/internal/AclFactory.d.ts.map +0 -0
- /package/dist/{src → types}/acl/definition/internal/EntityPredicateResolver.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/internal/EntityPredicateResolver.d.ts.map +0 -0
- /package/dist/{src → types}/acl/definition/internal/createPredicateName.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/internal/createPredicateName.d.ts.map +0 -0
- /package/dist/{src → types}/acl/definition/internal/stores.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/internal/stores.d.ts.map +0 -0
- /package/dist/{src → types}/acl/definition/permissions.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/references.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/roles.d.ts +0 -0
- /package/dist/{src → types}/acl/definition/variables.d.ts +0 -0
- /package/dist/{src → types}/actions/definition/index.d.ts +0 -0
- /package/dist/{src → types}/actions/definition/internal/ActionsFactory.d.ts +0 -0
- /package/dist/{src → types}/actions/definition/internal/ActionsFactory.d.ts.map +0 -0
- /package/dist/{src → types}/actions/definition/internal/store.d.ts +0 -0
- /package/dist/{src → types}/actions/definition/internal/store.d.ts.map +0 -0
- /package/dist/{src → types}/actions/definition/triggers.d.ts +0 -0
- /package/dist/{src → types}/model/builder/ColumnBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/builder/ColumnBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/EntityBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/builder/EntityBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/FieldBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/builder/FieldBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/ManyHasManyBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/builder/ManyHasManyBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/ManyHasOneBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/builder/ManyHasOneBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/OneHasManyBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/builder/OneHasManyBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/OneHasOneBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/builder/OneHasOneBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/SchemaBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/builder/SchemaBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/SchemaBuilderError.d.ts +0 -0
- /package/dist/{src → types}/model/builder/SchemaBuilderError.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/SchemaBuilderInternal.d.ts +0 -0
- /package/dist/{src → types}/model/builder/SchemaBuilderInternal.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/internal/ColumnProcessor.d.ts +0 -0
- /package/dist/{src → types}/model/builder/internal/ColumnProcessor.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/internal/FieldProcessor.d.ts +0 -0
- /package/dist/{src → types}/model/builder/internal/FieldProcessor.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/internal/ManyHasManyProcessor.d.ts +0 -0
- /package/dist/{src → types}/model/builder/internal/ManyHasManyProcessor.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/internal/ManyHasOneProcessor.d.ts +0 -0
- /package/dist/{src → types}/model/builder/internal/ManyHasOneProcessor.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/internal/OneHasManyProcessor.d.ts +0 -0
- /package/dist/{src → types}/model/builder/internal/OneHasManyProcessor.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/internal/OneHasOneProcessor.d.ts +0 -0
- /package/dist/{src → types}/model/builder/internal/OneHasOneProcessor.d.ts.map +0 -0
- /package/dist/{src → types}/model/builder/types.d.ts +0 -0
- /package/dist/{src → types}/model/builder/types.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/EnumDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/EnumDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/EventLogDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/EventLogDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/IndexDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/IndexDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/OrderByDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/OrderByDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/UniqueDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/UniqueDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/context.d.ts +0 -0
- /package/dist/{src → types}/model/definition/context.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/extensions.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/ColumnDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/ColumnDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/FieldDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/FieldDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/index.d.ts +0 -0
- /package/dist/{src → types}/model/definition/fieldDefinitions/index.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/internal/EntityRegistry.d.ts +0 -0
- /package/dist/{src → types}/model/definition/internal/EntityRegistry.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/internal/EnumRegistry.d.ts +0 -0
- /package/dist/{src → types}/model/definition/internal/EnumRegistry.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/internal/SchemaBuilder.d.ts +0 -0
- /package/dist/{src → types}/model/definition/internal/SchemaBuilder.d.ts.map +0 -0
- /package/dist/{src → types}/model/definition/internal/index.d.ts +0 -0
- /package/dist/{src → types}/model/definition/internal/index.d.ts.map +0 -0
- /package/dist/{src → types}/model/index.d.ts +0 -0
- /package/dist/{src → types}/model/index.d.ts.map +0 -0
- /package/dist/{src → types}/presets.d.ts +0 -0
- /package/dist/{src → types}/presets.d.ts.map +0 -0
- /package/dist/{src → types}/strict.d.ts +0 -0
- /package/dist/{src → types}/strict.d.ts.map +0 -0
- /package/dist/{src → types}/utils/MetadataStore.d.ts +0 -0
- /package/dist/{src → types}/utils/assertNever.d.ts +0 -0
- /package/dist/{src → types}/utils/assertNever.d.ts.map +0 -0
- /package/dist/{src → types}/utils/decorators.d.ts +0 -0
- /package/dist/{src → types}/utils/decorators.d.ts.map +0 -0
- /package/dist/{src → types}/utils/filterEntityDefinition.d.ts +0 -0
- /package/dist/{src → types}/utils/index.d.ts +0 -0
- /package/dist/{src → types}/utils/index.d.ts.map +0 -0
- /package/dist/{src → types}/utils/tuple.d.ts +0 -0
- /package/dist/{src → types}/validation/index.d.ts +0 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const filterEntityDefinition = require("../utils/filterEntityDefinition.cjs");
|
|
4
|
+
const tuple = require("../utils/tuple.cjs");
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const schema = require("@contember/schema");
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
10
|
+
const parsePath = (path) => {
|
|
11
|
+
if (!path) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
if (typeof path === "string") {
|
|
15
|
+
return path.split(".");
|
|
16
|
+
}
|
|
17
|
+
return path;
|
|
18
|
+
};
|
|
19
|
+
const ArgumentFactory = {
|
|
20
|
+
validator: (validator) => ({
|
|
21
|
+
type: schema.Validation.ArgumentType.validator,
|
|
22
|
+
validator
|
|
23
|
+
}),
|
|
24
|
+
path: (path) => ({
|
|
25
|
+
type: schema.Validation.ArgumentType.path,
|
|
26
|
+
path: parsePath(path)
|
|
27
|
+
}),
|
|
28
|
+
literal: (value) => ({ type: schema.Validation.ArgumentType.literal, value })
|
|
29
|
+
};
|
|
30
|
+
const RuleMetaKey = Symbol("Rule");
|
|
31
|
+
function updateMetadata({ key, target, propertyKey }, generator, initialValue) {
|
|
32
|
+
const metadata = Reflect.hasMetadata(key, target, propertyKey) ? Reflect.getMetadata(key, target, propertyKey) : initialValue;
|
|
33
|
+
const newMetadata = generator(metadata);
|
|
34
|
+
Reflect.defineMetadata(key, newMetadata, target, propertyKey);
|
|
35
|
+
}
|
|
36
|
+
function addRuleToMetadata(target, propertyKey, ...rule) {
|
|
37
|
+
updateMetadata({ key: RuleMetaKey, target, propertyKey }, (prev) => [...rule, ...prev], []);
|
|
38
|
+
}
|
|
39
|
+
function fluent() {
|
|
40
|
+
return new RuleBranch([], []);
|
|
41
|
+
}
|
|
42
|
+
class RuleBranch {
|
|
43
|
+
constructor(conditions, branchRules) {
|
|
44
|
+
this.conditions = conditions;
|
|
45
|
+
this.branchRules = branchRules;
|
|
46
|
+
__publicField(this, "buildRules", () => {
|
|
47
|
+
if (this.conditions.length === 0) {
|
|
48
|
+
return this.branchRules;
|
|
49
|
+
}
|
|
50
|
+
return this.branchRules.map((rule) => ({
|
|
51
|
+
validator: rules.conditional(
|
|
52
|
+
this.conditions.length === 1 ? this.conditions[0] : rules.and(...this.conditions),
|
|
53
|
+
rule.validator
|
|
54
|
+
),
|
|
55
|
+
message: rule.message
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
__publicField(this, "assert", (validator, message) => {
|
|
59
|
+
const messageParsed = typeof message === "string" ? { text: message } : message;
|
|
60
|
+
const newRules = [...this.branchRules, { validator, message: messageParsed }];
|
|
61
|
+
const branch = new RuleBranch(this.conditions, newRules);
|
|
62
|
+
const propertyDecorator = (target, propertykey) => {
|
|
63
|
+
addRuleToMetadata(target, propertykey, ...branch.buildRules());
|
|
64
|
+
};
|
|
65
|
+
return Object.assign(propertyDecorator, branch);
|
|
66
|
+
});
|
|
67
|
+
__publicField(this, "assertPattern", (pattern, message) => this.assert(rules.pattern(pattern), message));
|
|
68
|
+
__publicField(this, "assertEquals", (value, message) => this.assert(rules.equals(value), message));
|
|
69
|
+
__publicField(this, "assertDefined", (message) => this.assert(rules.defined(), message));
|
|
70
|
+
__publicField(this, "assertNotEmpty", (message) => this.assert(rules.notEmpty(), message));
|
|
71
|
+
__publicField(this, "assertMinLength", (minLength, message) => this.assert(rules.minLength(minLength), message));
|
|
72
|
+
__publicField(this, "assertMaxLength", (minLength, message) => this.assert(rules.maxLength(minLength), message));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const andOperation = (...conditions) => ({
|
|
76
|
+
operation: "and",
|
|
77
|
+
args: conditions.map((validator) => ArgumentFactory.validator(validator))
|
|
78
|
+
});
|
|
79
|
+
const orOperation = (...conditions) => ({
|
|
80
|
+
operation: "or",
|
|
81
|
+
args: conditions.map((validator) => ArgumentFactory.validator(validator))
|
|
82
|
+
});
|
|
83
|
+
const conditionalOperation = (condition, rule) => ({
|
|
84
|
+
operation: "conditional",
|
|
85
|
+
args: [ArgumentFactory.validator(condition), ArgumentFactory.validator(rule)]
|
|
86
|
+
});
|
|
87
|
+
const patternOperation = (pattern) => ({
|
|
88
|
+
operation: "pattern",
|
|
89
|
+
args: [ArgumentFactory.literal([pattern.source, pattern.flags])]
|
|
90
|
+
});
|
|
91
|
+
const lengthRangeOperation = (min, max) => ({
|
|
92
|
+
operation: "lengthRange",
|
|
93
|
+
args: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)]
|
|
94
|
+
});
|
|
95
|
+
const rangeOperation = (min, max) => ({
|
|
96
|
+
operation: "range",
|
|
97
|
+
args: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)]
|
|
98
|
+
});
|
|
99
|
+
const equalsOperation = (value) => ({
|
|
100
|
+
operation: "equals",
|
|
101
|
+
args: [ArgumentFactory.literal(value)]
|
|
102
|
+
});
|
|
103
|
+
const notOperation = (validator) => ({
|
|
104
|
+
operation: "not",
|
|
105
|
+
args: [ArgumentFactory.validator(validator)]
|
|
106
|
+
});
|
|
107
|
+
const emptyOperation = () => ({ operation: "empty", args: [] });
|
|
108
|
+
const definedOperation = () => ({ operation: "defined", args: [] });
|
|
109
|
+
const InContextOperation = "inContext";
|
|
110
|
+
const onOperation = (path, validator) => ({
|
|
111
|
+
operation: InContextOperation,
|
|
112
|
+
args: [ArgumentFactory.path(path), ArgumentFactory.validator(validator)]
|
|
113
|
+
});
|
|
114
|
+
const everyOperation = (validator) => ({
|
|
115
|
+
operation: "every",
|
|
116
|
+
args: [ArgumentFactory.validator(validator)]
|
|
117
|
+
});
|
|
118
|
+
const anyOperation = (validator) => ({
|
|
119
|
+
operation: "any",
|
|
120
|
+
args: [ArgumentFactory.validator(validator)]
|
|
121
|
+
});
|
|
122
|
+
const filterOperation = (filter, validator) => ({
|
|
123
|
+
operation: "filter",
|
|
124
|
+
args: [ArgumentFactory.validator(filter), ArgumentFactory.validator(validator)]
|
|
125
|
+
});
|
|
126
|
+
const rules = {
|
|
127
|
+
equals: equalsOperation,
|
|
128
|
+
in: (...value) => orOperation(...value.map((it) => equalsOperation(it))),
|
|
129
|
+
pattern: patternOperation,
|
|
130
|
+
lengthRange: lengthRangeOperation,
|
|
131
|
+
minLength: (min) => lengthRangeOperation(min, null),
|
|
132
|
+
maxLength: (max) => lengthRangeOperation(null, max),
|
|
133
|
+
range: rangeOperation,
|
|
134
|
+
min: (min) => rangeOperation(min, null),
|
|
135
|
+
max: (max) => rangeOperation(null, max),
|
|
136
|
+
defined: definedOperation,
|
|
137
|
+
["empty"]: emptyOperation,
|
|
138
|
+
notEmpty: () => notOperation(emptyOperation()),
|
|
139
|
+
["null"]: () => equalsOperation(null),
|
|
140
|
+
notNull: () => notOperation(equalsOperation(null)),
|
|
141
|
+
and: andOperation,
|
|
142
|
+
or: orOperation,
|
|
143
|
+
not: notOperation,
|
|
144
|
+
conditional: conditionalOperation,
|
|
145
|
+
on: onOperation,
|
|
146
|
+
filter: filterOperation,
|
|
147
|
+
any: anyOperation,
|
|
148
|
+
every: everyOperation
|
|
149
|
+
};
|
|
150
|
+
function when(...conditions) {
|
|
151
|
+
return new RuleBranch(conditions, []);
|
|
152
|
+
}
|
|
153
|
+
const assert = (validator, message) => fluent().assert(validator, message);
|
|
154
|
+
const required = (message) => fluent().assertDefined(message);
|
|
155
|
+
const assertDefined = (message) => fluent().assertDefined(message);
|
|
156
|
+
const assertNotEmpty = (message) => fluent().assertNotEmpty(message);
|
|
157
|
+
const assertPattern = (pattern, message) => fluent().assertPattern(pattern, message);
|
|
158
|
+
const assertMinLength = (min, message) => fluent().assertMinLength(min, message);
|
|
159
|
+
const assertMaxLength = (min, message) => fluent().assertMaxLength(min, message);
|
|
160
|
+
const combine = (...decorators) => (target, propertyKey) => decorators.forEach((it) => it(target, propertyKey));
|
|
161
|
+
function parseDefinition(definitions) {
|
|
162
|
+
return filterEntityDefinition.filterEntityDefinition(definitions).map(([name, definition]) => {
|
|
163
|
+
const target = definition.prototype;
|
|
164
|
+
const defInstance = new definition();
|
|
165
|
+
const fields = Object.keys(defInstance);
|
|
166
|
+
return tuple.tuple(
|
|
167
|
+
name,
|
|
168
|
+
fields.map((field) => {
|
|
169
|
+
const fieldRules = Reflect.getMetadata(RuleMetaKey, target, field);
|
|
170
|
+
if (fieldRules === void 0) {
|
|
171
|
+
return tuple.tuple(field, []);
|
|
172
|
+
}
|
|
173
|
+
return tuple.tuple(field, fieldRules);
|
|
174
|
+
}).reduce(
|
|
175
|
+
(ruleSet, [field, rules2]) => rules2.length > 0 ? { ...ruleSet, [field]: rules2 } : ruleSet,
|
|
176
|
+
{}
|
|
177
|
+
)
|
|
178
|
+
);
|
|
179
|
+
}).reduce(
|
|
180
|
+
(acc, [name, defs]) => Object.keys(defs).length > 0 ? { ...acc, [name]: defs } : acc,
|
|
181
|
+
{}
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
exports.InContextOperation = InContextOperation;
|
|
185
|
+
exports.RuleBranch = RuleBranch;
|
|
186
|
+
exports.assert = assert;
|
|
187
|
+
exports.assertDefined = assertDefined;
|
|
188
|
+
exports.assertMaxLength = assertMaxLength;
|
|
189
|
+
exports.assertMinLength = assertMinLength;
|
|
190
|
+
exports.assertNotEmpty = assertNotEmpty;
|
|
191
|
+
exports.assertPattern = assertPattern;
|
|
192
|
+
exports.combine = combine;
|
|
193
|
+
exports.fluent = fluent;
|
|
194
|
+
exports.parseDefinition = parseDefinition;
|
|
195
|
+
exports.parsePath = parsePath;
|
|
196
|
+
exports.required = required;
|
|
197
|
+
exports.rules = rules;
|
|
198
|
+
exports.when = when;
|
|
199
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { filterEntityDefinition } from "../utils/filterEntityDefinition.js";
|
|
2
|
+
import { tuple } from "../utils/tuple.js";
|
|
3
|
+
import "reflect-metadata";
|
|
4
|
+
import { Validation } from "@contember/schema";
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
8
|
+
const parsePath = (path) => {
|
|
9
|
+
if (!path) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
if (typeof path === "string") {
|
|
13
|
+
return path.split(".");
|
|
14
|
+
}
|
|
15
|
+
return path;
|
|
16
|
+
};
|
|
17
|
+
const ArgumentFactory = {
|
|
18
|
+
validator: (validator) => ({
|
|
19
|
+
type: Validation.ArgumentType.validator,
|
|
20
|
+
validator
|
|
21
|
+
}),
|
|
22
|
+
path: (path) => ({
|
|
23
|
+
type: Validation.ArgumentType.path,
|
|
24
|
+
path: parsePath(path)
|
|
25
|
+
}),
|
|
26
|
+
literal: (value) => ({ type: Validation.ArgumentType.literal, value })
|
|
27
|
+
};
|
|
28
|
+
const RuleMetaKey = Symbol("Rule");
|
|
29
|
+
function updateMetadata({ key, target, propertyKey }, generator, initialValue) {
|
|
30
|
+
const metadata = Reflect.hasMetadata(key, target, propertyKey) ? Reflect.getMetadata(key, target, propertyKey) : initialValue;
|
|
31
|
+
const newMetadata = generator(metadata);
|
|
32
|
+
Reflect.defineMetadata(key, newMetadata, target, propertyKey);
|
|
33
|
+
}
|
|
34
|
+
function addRuleToMetadata(target, propertyKey, ...rule) {
|
|
35
|
+
updateMetadata({ key: RuleMetaKey, target, propertyKey }, (prev) => [...rule, ...prev], []);
|
|
36
|
+
}
|
|
37
|
+
function fluent() {
|
|
38
|
+
return new RuleBranch([], []);
|
|
39
|
+
}
|
|
40
|
+
class RuleBranch {
|
|
41
|
+
constructor(conditions, branchRules) {
|
|
42
|
+
this.conditions = conditions;
|
|
43
|
+
this.branchRules = branchRules;
|
|
44
|
+
__publicField(this, "buildRules", () => {
|
|
45
|
+
if (this.conditions.length === 0) {
|
|
46
|
+
return this.branchRules;
|
|
47
|
+
}
|
|
48
|
+
return this.branchRules.map((rule) => ({
|
|
49
|
+
validator: rules.conditional(
|
|
50
|
+
this.conditions.length === 1 ? this.conditions[0] : rules.and(...this.conditions),
|
|
51
|
+
rule.validator
|
|
52
|
+
),
|
|
53
|
+
message: rule.message
|
|
54
|
+
}));
|
|
55
|
+
});
|
|
56
|
+
__publicField(this, "assert", (validator, message) => {
|
|
57
|
+
const messageParsed = typeof message === "string" ? { text: message } : message;
|
|
58
|
+
const newRules = [...this.branchRules, { validator, message: messageParsed }];
|
|
59
|
+
const branch = new RuleBranch(this.conditions, newRules);
|
|
60
|
+
const propertyDecorator = (target, propertykey) => {
|
|
61
|
+
addRuleToMetadata(target, propertykey, ...branch.buildRules());
|
|
62
|
+
};
|
|
63
|
+
return Object.assign(propertyDecorator, branch);
|
|
64
|
+
});
|
|
65
|
+
__publicField(this, "assertPattern", (pattern, message) => this.assert(rules.pattern(pattern), message));
|
|
66
|
+
__publicField(this, "assertEquals", (value, message) => this.assert(rules.equals(value), message));
|
|
67
|
+
__publicField(this, "assertDefined", (message) => this.assert(rules.defined(), message));
|
|
68
|
+
__publicField(this, "assertNotEmpty", (message) => this.assert(rules.notEmpty(), message));
|
|
69
|
+
__publicField(this, "assertMinLength", (minLength, message) => this.assert(rules.minLength(minLength), message));
|
|
70
|
+
__publicField(this, "assertMaxLength", (minLength, message) => this.assert(rules.maxLength(minLength), message));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const andOperation = (...conditions) => ({
|
|
74
|
+
operation: "and",
|
|
75
|
+
args: conditions.map((validator) => ArgumentFactory.validator(validator))
|
|
76
|
+
});
|
|
77
|
+
const orOperation = (...conditions) => ({
|
|
78
|
+
operation: "or",
|
|
79
|
+
args: conditions.map((validator) => ArgumentFactory.validator(validator))
|
|
80
|
+
});
|
|
81
|
+
const conditionalOperation = (condition, rule) => ({
|
|
82
|
+
operation: "conditional",
|
|
83
|
+
args: [ArgumentFactory.validator(condition), ArgumentFactory.validator(rule)]
|
|
84
|
+
});
|
|
85
|
+
const patternOperation = (pattern) => ({
|
|
86
|
+
operation: "pattern",
|
|
87
|
+
args: [ArgumentFactory.literal([pattern.source, pattern.flags])]
|
|
88
|
+
});
|
|
89
|
+
const lengthRangeOperation = (min, max) => ({
|
|
90
|
+
operation: "lengthRange",
|
|
91
|
+
args: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)]
|
|
92
|
+
});
|
|
93
|
+
const rangeOperation = (min, max) => ({
|
|
94
|
+
operation: "range",
|
|
95
|
+
args: [ArgumentFactory.literal(min), ArgumentFactory.literal(max)]
|
|
96
|
+
});
|
|
97
|
+
const equalsOperation = (value) => ({
|
|
98
|
+
operation: "equals",
|
|
99
|
+
args: [ArgumentFactory.literal(value)]
|
|
100
|
+
});
|
|
101
|
+
const notOperation = (validator) => ({
|
|
102
|
+
operation: "not",
|
|
103
|
+
args: [ArgumentFactory.validator(validator)]
|
|
104
|
+
});
|
|
105
|
+
const emptyOperation = () => ({ operation: "empty", args: [] });
|
|
106
|
+
const definedOperation = () => ({ operation: "defined", args: [] });
|
|
107
|
+
const InContextOperation = "inContext";
|
|
108
|
+
const onOperation = (path, validator) => ({
|
|
109
|
+
operation: InContextOperation,
|
|
110
|
+
args: [ArgumentFactory.path(path), ArgumentFactory.validator(validator)]
|
|
111
|
+
});
|
|
112
|
+
const everyOperation = (validator) => ({
|
|
113
|
+
operation: "every",
|
|
114
|
+
args: [ArgumentFactory.validator(validator)]
|
|
115
|
+
});
|
|
116
|
+
const anyOperation = (validator) => ({
|
|
117
|
+
operation: "any",
|
|
118
|
+
args: [ArgumentFactory.validator(validator)]
|
|
119
|
+
});
|
|
120
|
+
const filterOperation = (filter, validator) => ({
|
|
121
|
+
operation: "filter",
|
|
122
|
+
args: [ArgumentFactory.validator(filter), ArgumentFactory.validator(validator)]
|
|
123
|
+
});
|
|
124
|
+
const rules = {
|
|
125
|
+
equals: equalsOperation,
|
|
126
|
+
in: (...value) => orOperation(...value.map((it) => equalsOperation(it))),
|
|
127
|
+
pattern: patternOperation,
|
|
128
|
+
lengthRange: lengthRangeOperation,
|
|
129
|
+
minLength: (min) => lengthRangeOperation(min, null),
|
|
130
|
+
maxLength: (max) => lengthRangeOperation(null, max),
|
|
131
|
+
range: rangeOperation,
|
|
132
|
+
min: (min) => rangeOperation(min, null),
|
|
133
|
+
max: (max) => rangeOperation(null, max),
|
|
134
|
+
defined: definedOperation,
|
|
135
|
+
["empty"]: emptyOperation,
|
|
136
|
+
notEmpty: () => notOperation(emptyOperation()),
|
|
137
|
+
["null"]: () => equalsOperation(null),
|
|
138
|
+
notNull: () => notOperation(equalsOperation(null)),
|
|
139
|
+
and: andOperation,
|
|
140
|
+
or: orOperation,
|
|
141
|
+
not: notOperation,
|
|
142
|
+
conditional: conditionalOperation,
|
|
143
|
+
on: onOperation,
|
|
144
|
+
filter: filterOperation,
|
|
145
|
+
any: anyOperation,
|
|
146
|
+
every: everyOperation
|
|
147
|
+
};
|
|
148
|
+
function when(...conditions) {
|
|
149
|
+
return new RuleBranch(conditions, []);
|
|
150
|
+
}
|
|
151
|
+
const assert = (validator, message) => fluent().assert(validator, message);
|
|
152
|
+
const required = (message) => fluent().assertDefined(message);
|
|
153
|
+
const assertDefined = (message) => fluent().assertDefined(message);
|
|
154
|
+
const assertNotEmpty = (message) => fluent().assertNotEmpty(message);
|
|
155
|
+
const assertPattern = (pattern, message) => fluent().assertPattern(pattern, message);
|
|
156
|
+
const assertMinLength = (min, message) => fluent().assertMinLength(min, message);
|
|
157
|
+
const assertMaxLength = (min, message) => fluent().assertMaxLength(min, message);
|
|
158
|
+
const combine = (...decorators) => (target, propertyKey) => decorators.forEach((it) => it(target, propertyKey));
|
|
159
|
+
function parseDefinition(definitions) {
|
|
160
|
+
return filterEntityDefinition(definitions).map(([name, definition]) => {
|
|
161
|
+
const target = definition.prototype;
|
|
162
|
+
const defInstance = new definition();
|
|
163
|
+
const fields = Object.keys(defInstance);
|
|
164
|
+
return tuple(
|
|
165
|
+
name,
|
|
166
|
+
fields.map((field) => {
|
|
167
|
+
const fieldRules = Reflect.getMetadata(RuleMetaKey, target, field);
|
|
168
|
+
if (fieldRules === void 0) {
|
|
169
|
+
return tuple(field, []);
|
|
170
|
+
}
|
|
171
|
+
return tuple(field, fieldRules);
|
|
172
|
+
}).reduce(
|
|
173
|
+
(ruleSet, [field, rules2]) => rules2.length > 0 ? { ...ruleSet, [field]: rules2 } : ruleSet,
|
|
174
|
+
{}
|
|
175
|
+
)
|
|
176
|
+
);
|
|
177
|
+
}).reduce(
|
|
178
|
+
(acc, [name, defs]) => Object.keys(defs).length > 0 ? { ...acc, [name]: defs } : acc,
|
|
179
|
+
{}
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
export {
|
|
183
|
+
InContextOperation,
|
|
184
|
+
RuleBranch,
|
|
185
|
+
assert,
|
|
186
|
+
assertDefined,
|
|
187
|
+
assertMaxLength,
|
|
188
|
+
assertMinLength,
|
|
189
|
+
assertNotEmpty,
|
|
190
|
+
assertPattern,
|
|
191
|
+
combine,
|
|
192
|
+
fluent,
|
|
193
|
+
parseDefinition,
|
|
194
|
+
parsePath,
|
|
195
|
+
required,
|
|
196
|
+
rules,
|
|
197
|
+
when
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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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"}
|