@contember/schema-definition 1.4.0-rc.8 → 2.0.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const schema = require("@contember/schema");
|
|
3
|
+
const SchemaBuilderError = require("./SchemaBuilderError.cjs");
|
|
4
|
+
const ColumnProcessor = require("./internal/ColumnProcessor.cjs");
|
|
5
|
+
const ManyHasManyProcessor = require("./internal/ManyHasManyProcessor.cjs");
|
|
6
|
+
const OneHasOneProcessor = require("./internal/OneHasOneProcessor.cjs");
|
|
7
|
+
const OneHasManyProcessor = require("./internal/OneHasManyProcessor.cjs");
|
|
8
|
+
const ManyHasOneProcessor = require("./internal/ManyHasOneProcessor.cjs");
|
|
9
|
+
const FieldBuilder = require("./FieldBuilder.cjs");
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
13
|
+
class SchemaBuilderInternal {
|
|
14
|
+
constructor(conventions) {
|
|
15
|
+
this.conventions = conventions;
|
|
16
|
+
__publicField(this, "entities", {});
|
|
17
|
+
__publicField(this, "fieldOptions", {});
|
|
18
|
+
__publicField(this, "enums", {});
|
|
19
|
+
}
|
|
20
|
+
addEntity(name, options, fieldOptions) {
|
|
21
|
+
this.fieldOptions[name] = fieldOptions;
|
|
22
|
+
const primaryName = this.getPrimaryFieldName(options, name, fieldOptions);
|
|
23
|
+
if (!fieldOptions[primaryName]) {
|
|
24
|
+
fieldOptions[primaryName] = this.createDefaultPrimary(primaryName);
|
|
25
|
+
}
|
|
26
|
+
const primaryField = fieldOptions[primaryName];
|
|
27
|
+
if (primaryField.type !== FieldBuilder.Type.Column) {
|
|
28
|
+
throw new SchemaBuilderError.SchemaBuilderError(`${name}: Primary field must be a column`);
|
|
29
|
+
}
|
|
30
|
+
primaryField.options.primary = true;
|
|
31
|
+
primaryField.options.nullable = false;
|
|
32
|
+
this.entities[name] = {
|
|
33
|
+
name,
|
|
34
|
+
primary: primaryName,
|
|
35
|
+
primaryColumn: primaryField.options.columnName || this.conventions.getColumnName(primaryName),
|
|
36
|
+
unique: this.createUnique(name, options, fieldOptions),
|
|
37
|
+
fields: {},
|
|
38
|
+
indexes: [],
|
|
39
|
+
tableName: options.tableName || this.conventions.getTableName(name),
|
|
40
|
+
eventLog: {
|
|
41
|
+
enabled: true
|
|
42
|
+
},
|
|
43
|
+
...options.orderBy !== void 0 ? { orderBy: options.orderBy } : {}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
addEnum(name, values) {
|
|
47
|
+
this.enums[name] = values;
|
|
48
|
+
}
|
|
49
|
+
createSchema() {
|
|
50
|
+
for (let entityName in this.fieldOptions) {
|
|
51
|
+
let primaryField = this.entities[entityName].primary;
|
|
52
|
+
this.processField(entityName, primaryField);
|
|
53
|
+
for (let fieldName in this.fieldOptions[entityName]) {
|
|
54
|
+
if (fieldName === primaryField) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
this.processField(entityName, fieldName);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
enums: this.enums,
|
|
62
|
+
entities: this.entities
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
processField(entityName, fieldName) {
|
|
66
|
+
const processor = this.createProcessor(entityName, fieldName);
|
|
67
|
+
processor.process(
|
|
68
|
+
entityName,
|
|
69
|
+
fieldName,
|
|
70
|
+
this.fieldOptions[entityName][fieldName].options,
|
|
71
|
+
this.registerField.bind(this)
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
createProcessor(entityName, fieldName) {
|
|
75
|
+
const field = this.fieldOptions[entityName][fieldName];
|
|
76
|
+
if (field.type === FieldBuilder.Type.Column) {
|
|
77
|
+
return new ColumnProcessor(this.conventions);
|
|
78
|
+
}
|
|
79
|
+
this.checkTarget(entityName, fieldName, field.options);
|
|
80
|
+
switch (field.type) {
|
|
81
|
+
case FieldBuilder.Type.ManyHasMany:
|
|
82
|
+
return new ManyHasManyProcessor(this.conventions);
|
|
83
|
+
case FieldBuilder.Type.OneHasOne:
|
|
84
|
+
return new OneHasOneProcessor(this.conventions);
|
|
85
|
+
case FieldBuilder.Type.OneHasMany:
|
|
86
|
+
return new OneHasManyProcessor(this.conventions);
|
|
87
|
+
case FieldBuilder.Type.ManyHasOne:
|
|
88
|
+
return new ManyHasOneProcessor(this.conventions);
|
|
89
|
+
}
|
|
90
|
+
throw new Error();
|
|
91
|
+
}
|
|
92
|
+
checkTarget(entityName, fieldName, options) {
|
|
93
|
+
if (!this.entities[options.target]) {
|
|
94
|
+
throw new SchemaBuilderError.SchemaBuilderError(`${entityName}::${fieldName}: undefined target entity ${options.target}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
registerField(entityName, field) {
|
|
98
|
+
if (!this.entities[entityName]) {
|
|
99
|
+
throw new SchemaBuilderError.SchemaBuilderError(`Undefined entity ${entityName}`);
|
|
100
|
+
}
|
|
101
|
+
if (this.entities[entityName].fields[field.name]) {
|
|
102
|
+
throw new SchemaBuilderError.SchemaBuilderError(`${entityName}: Field ${field.name} is already defined`);
|
|
103
|
+
}
|
|
104
|
+
this.entities[entityName].fields[field.name] = field;
|
|
105
|
+
}
|
|
106
|
+
getPrimaryFieldName(entityOptions, entityName, fields) {
|
|
107
|
+
let primary = [];
|
|
108
|
+
if (entityOptions.primary) {
|
|
109
|
+
primary.push(entityOptions.primary);
|
|
110
|
+
}
|
|
111
|
+
for (let name in fields) {
|
|
112
|
+
const field = fields[name];
|
|
113
|
+
if (field.type !== FieldBuilder.Type.Column) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (!field.options.primary) {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if (!primary.includes(name)) {
|
|
120
|
+
primary.push(name);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (primary.length > 1) {
|
|
124
|
+
throw new SchemaBuilderError.SchemaBuilderError(`${entityName}: Only single column can be a primary. Found: ${primary.join(", ")}`);
|
|
125
|
+
}
|
|
126
|
+
return primary.length === 1 ? primary[0] : this.conventions.getPrimaryField();
|
|
127
|
+
}
|
|
128
|
+
createDefaultPrimary(fieldName) {
|
|
129
|
+
return {
|
|
130
|
+
type: FieldBuilder.Type.Column,
|
|
131
|
+
options: {
|
|
132
|
+
nullable: false,
|
|
133
|
+
type: schema.Model.ColumnType.Uuid,
|
|
134
|
+
primary: true
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
createUnique(entityName, options, fieldOptions) {
|
|
139
|
+
const unique = [];
|
|
140
|
+
for (const singleUnique of options.unique || []) {
|
|
141
|
+
unique.push(singleUnique);
|
|
142
|
+
}
|
|
143
|
+
for (let fieldName in fieldOptions) {
|
|
144
|
+
const options2 = fieldOptions[fieldName];
|
|
145
|
+
if (options2.type === FieldBuilder.Type.Column && options2.options.unique) {
|
|
146
|
+
unique.push({ fields: [fieldName] });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return unique;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
module.exports = SchemaBuilderInternal;
|
|
153
|
+
//# sourceMappingURL=SchemaBuilderInternal.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaBuilderInternal.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilderInternal.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\nimport EntityBuilder from './EntityBuilder'\nimport { SchemaBuilderError } from './SchemaBuilderError'\nimport FieldProcessor from './internal/FieldProcessor'\nimport ColumnProcessor from './internal/ColumnProcessor'\nimport ManyHasManyProcessor from './internal/ManyHasManyProcessor'\nimport OneHasOneProcessor from './internal/OneHasOneProcessor'\nimport OneHasManyProcessor from './internal/OneHasManyProcessor'\nimport ManyHasOneProcessor from './internal/ManyHasOneProcessor'\nimport FieldBuilder from './FieldBuilder'\n\nexport default class SchemaBuilderInternal {\n\tprivate entities: { [name: string]: Model.Entity & { fields: Record<string, Model.AnyField> } } = {}\n\n\tprivate fieldOptions: { [entity: string]: FieldBuilder.Map } = {}\n\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions) {}\n\n\tpublic addEntity(name: string, options: EntityBuilder.EntityOptions, fieldOptions: FieldBuilder.Map): void {\n\t\tthis.fieldOptions[name] = fieldOptions\n\t\tconst primaryName = this.getPrimaryFieldName(options, name, fieldOptions)\n\t\tif (!fieldOptions[primaryName]) {\n\t\t\tfieldOptions[primaryName] = this.createDefaultPrimary(primaryName)\n\t\t}\n\t\tconst primaryField = fieldOptions[primaryName]\n\t\tif (primaryField.type !== FieldBuilder.Type.Column) {\n\t\t\tthrow new SchemaBuilderError(`${name}: Primary field must be a column`)\n\t\t}\n\t\tprimaryField.options.primary = true\n\t\tprimaryField.options.nullable = false\n\n\t\tthis.entities[name] = {\n\t\t\tname: name,\n\t\t\tprimary: primaryName,\n\t\t\tprimaryColumn: primaryField.options.columnName || this.conventions.getColumnName(primaryName),\n\t\t\tunique: this.createUnique(name, options, fieldOptions),\n\t\t\tfields: {},\n\t\t\tindexes: [],\n\t\t\ttableName: options.tableName || this.conventions.getTableName(name),\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...(options.orderBy !== undefined ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tpublic addEnum(name: string, values: string[]): void {\n\t\tthis.enums[name] = values\n\t}\n\n\tpublic createSchema(): Model.Schema {\n\t\tfor (let entityName in this.fieldOptions) {\n\t\t\tlet primaryField = this.entities[entityName].primary\n\t\t\tthis.processField(entityName, primaryField)\n\t\t\tfor (let fieldName in this.fieldOptions[entityName]) {\n\t\t\t\tif (fieldName === primaryField) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tthis.processField(entityName, fieldName)\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tenums: this.enums,\n\t\t\tentities: this.entities,\n\t\t}\n\t}\n\n\tprivate processField(entityName: string, fieldName: string): void {\n\t\tconst processor = this.createProcessor(entityName, fieldName)\n\t\tprocessor.process(\n\t\t\tentityName,\n\t\t\tfieldName,\n\t\t\tthis.fieldOptions[entityName][fieldName].options,\n\t\t\tthis.registerField.bind(this),\n\t\t)\n\t}\n\n\tprivate createProcessor(entityName: string, fieldName: string): FieldProcessor<any> {\n\t\tconst field: FieldBuilder.Options = this.fieldOptions[entityName][fieldName]\n\n\t\tif (field.type === FieldBuilder.Type.Column) {\n\t\t\treturn new ColumnProcessor(this.conventions)\n\t\t}\n\t\tthis.checkTarget(entityName, fieldName, field.options)\n\t\tswitch (field.type) {\n\t\t\tcase FieldBuilder.Type.ManyHasMany:\n\t\t\t\treturn new ManyHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasOne:\n\t\t\t\treturn new OneHasOneProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasMany:\n\t\t\t\treturn new OneHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.ManyHasOne:\n\t\t\t\treturn new ManyHasOneProcessor(this.conventions)\n\t\t}\n\n\t\tthrow new Error()\n\t}\n\n\tprivate checkTarget(entityName: string, fieldName: string, options: { target: string }) {\n\t\tif (!this.entities[options.target]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}::${fieldName}: undefined target entity ${options.target}`)\n\t\t}\n\t}\n\n\tprivate registerField(entityName: string, field: Model.AnyColumn | Model.AnyRelation) {\n\t\tif (!this.entities[entityName]) {\n\t\t\tthrow new SchemaBuilderError(`Undefined entity ${entityName}`)\n\t\t}\n\t\tif (this.entities[entityName].fields[field.name]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Field ${field.name} is already defined`)\n\t\t}\n\t\tthis.entities[entityName].fields[field.name] = field\n\t}\n\n\tprivate getPrimaryFieldName(\n\t\tentityOptions: EntityBuilder.EntityOptions,\n\t\tentityName: string,\n\t\tfields: FieldBuilder.Map,\n\t) {\n\t\tlet primary: string[] = []\n\t\tif (entityOptions.primary) {\n\t\t\tprimary.push(entityOptions.primary)\n\t\t}\n\t\tfor (let name in fields) {\n\t\t\tconst field: FieldBuilder.Options = fields[name]\n\t\t\tif (field.type !== FieldBuilder.Type.Column) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!field.options.primary) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!primary.includes(name)) {\n\t\t\t\tprimary.push(name)\n\t\t\t}\n\t\t}\n\t\tif (primary.length > 1) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Only single column can be a primary. Found: ${primary.join(', ')}`)\n\t\t}\n\t\treturn primary.length === 1 ? primary[0] : this.conventions.getPrimaryField()\n\t}\n\n\tprivate createDefaultPrimary(fieldName: string): FieldBuilder.Options {\n\t\treturn {\n\t\t\ttype: FieldBuilder.Type.Column,\n\t\t\toptions: {\n\t\t\t\tnullable: false,\n\t\t\t\ttype: Model.ColumnType.Uuid,\n\t\t\t\tprimary: true,\n\t\t\t},\n\t\t}\n\t}\n\n\tprivate createUnique(\n\t\tentityName: string,\n\t\toptions: EntityBuilder.EntityOptions,\n\t\tfieldOptions: FieldBuilder.Map,\n\t): Model.UniqueConstraints {\n\t\tconst unique: Model.UniqueConstraint[] = []\n\n\t\tfor (const singleUnique of options.unique || []) {\n\t\t\tunique.push(singleUnique)\n\t\t}\n\t\tfor (let fieldName in fieldOptions) {\n\t\t\tconst options = fieldOptions[fieldName]\n\n\t\t\tif (options.type === FieldBuilder.Type.Column && options.options.unique) {\n\t\t\t\tunique.push({ fields: [fieldName] })\n\t\t\t}\n\t\t}\n\t\treturn unique\n\t}\n}\n"],"names":["SchemaBuilderError","Model","options"],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Model } from "@contember/schema";
|
|
2
|
+
import { SchemaBuilderError } from "./SchemaBuilderError.js";
|
|
3
|
+
import ColumnProcessor from "./internal/ColumnProcessor.js";
|
|
4
|
+
import ManyHasManyProcessor from "./internal/ManyHasManyProcessor.js";
|
|
5
|
+
import OneHasOneProcessor from "./internal/OneHasOneProcessor.js";
|
|
6
|
+
import OneHasManyProcessor from "./internal/OneHasManyProcessor.js";
|
|
7
|
+
import ManyHasOneProcessor from "./internal/ManyHasOneProcessor.js";
|
|
8
|
+
import FieldBuilder from "./FieldBuilder.js";
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
12
|
+
class SchemaBuilderInternal {
|
|
13
|
+
constructor(conventions) {
|
|
14
|
+
this.conventions = conventions;
|
|
15
|
+
__publicField(this, "entities", {});
|
|
16
|
+
__publicField(this, "fieldOptions", {});
|
|
17
|
+
__publicField(this, "enums", {});
|
|
18
|
+
}
|
|
19
|
+
addEntity(name, options, fieldOptions) {
|
|
20
|
+
this.fieldOptions[name] = fieldOptions;
|
|
21
|
+
const primaryName = this.getPrimaryFieldName(options, name, fieldOptions);
|
|
22
|
+
if (!fieldOptions[primaryName]) {
|
|
23
|
+
fieldOptions[primaryName] = this.createDefaultPrimary(primaryName);
|
|
24
|
+
}
|
|
25
|
+
const primaryField = fieldOptions[primaryName];
|
|
26
|
+
if (primaryField.type !== FieldBuilder.Type.Column) {
|
|
27
|
+
throw new SchemaBuilderError(`${name}: Primary field must be a column`);
|
|
28
|
+
}
|
|
29
|
+
primaryField.options.primary = true;
|
|
30
|
+
primaryField.options.nullable = false;
|
|
31
|
+
this.entities[name] = {
|
|
32
|
+
name,
|
|
33
|
+
primary: primaryName,
|
|
34
|
+
primaryColumn: primaryField.options.columnName || this.conventions.getColumnName(primaryName),
|
|
35
|
+
unique: this.createUnique(name, options, fieldOptions),
|
|
36
|
+
fields: {},
|
|
37
|
+
indexes: [],
|
|
38
|
+
tableName: options.tableName || this.conventions.getTableName(name),
|
|
39
|
+
eventLog: {
|
|
40
|
+
enabled: true
|
|
41
|
+
},
|
|
42
|
+
...options.orderBy !== void 0 ? { orderBy: options.orderBy } : {}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
addEnum(name, values) {
|
|
46
|
+
this.enums[name] = values;
|
|
47
|
+
}
|
|
48
|
+
createSchema() {
|
|
49
|
+
for (let entityName in this.fieldOptions) {
|
|
50
|
+
let primaryField = this.entities[entityName].primary;
|
|
51
|
+
this.processField(entityName, primaryField);
|
|
52
|
+
for (let fieldName in this.fieldOptions[entityName]) {
|
|
53
|
+
if (fieldName === primaryField) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
this.processField(entityName, fieldName);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
enums: this.enums,
|
|
61
|
+
entities: this.entities
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
processField(entityName, fieldName) {
|
|
65
|
+
const processor = this.createProcessor(entityName, fieldName);
|
|
66
|
+
processor.process(
|
|
67
|
+
entityName,
|
|
68
|
+
fieldName,
|
|
69
|
+
this.fieldOptions[entityName][fieldName].options,
|
|
70
|
+
this.registerField.bind(this)
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
createProcessor(entityName, fieldName) {
|
|
74
|
+
const field = this.fieldOptions[entityName][fieldName];
|
|
75
|
+
if (field.type === FieldBuilder.Type.Column) {
|
|
76
|
+
return new ColumnProcessor(this.conventions);
|
|
77
|
+
}
|
|
78
|
+
this.checkTarget(entityName, fieldName, field.options);
|
|
79
|
+
switch (field.type) {
|
|
80
|
+
case FieldBuilder.Type.ManyHasMany:
|
|
81
|
+
return new ManyHasManyProcessor(this.conventions);
|
|
82
|
+
case FieldBuilder.Type.OneHasOne:
|
|
83
|
+
return new OneHasOneProcessor(this.conventions);
|
|
84
|
+
case FieldBuilder.Type.OneHasMany:
|
|
85
|
+
return new OneHasManyProcessor(this.conventions);
|
|
86
|
+
case FieldBuilder.Type.ManyHasOne:
|
|
87
|
+
return new ManyHasOneProcessor(this.conventions);
|
|
88
|
+
}
|
|
89
|
+
throw new Error();
|
|
90
|
+
}
|
|
91
|
+
checkTarget(entityName, fieldName, options) {
|
|
92
|
+
if (!this.entities[options.target]) {
|
|
93
|
+
throw new SchemaBuilderError(`${entityName}::${fieldName}: undefined target entity ${options.target}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
registerField(entityName, field) {
|
|
97
|
+
if (!this.entities[entityName]) {
|
|
98
|
+
throw new SchemaBuilderError(`Undefined entity ${entityName}`);
|
|
99
|
+
}
|
|
100
|
+
if (this.entities[entityName].fields[field.name]) {
|
|
101
|
+
throw new SchemaBuilderError(`${entityName}: Field ${field.name} is already defined`);
|
|
102
|
+
}
|
|
103
|
+
this.entities[entityName].fields[field.name] = field;
|
|
104
|
+
}
|
|
105
|
+
getPrimaryFieldName(entityOptions, entityName, fields) {
|
|
106
|
+
let primary = [];
|
|
107
|
+
if (entityOptions.primary) {
|
|
108
|
+
primary.push(entityOptions.primary);
|
|
109
|
+
}
|
|
110
|
+
for (let name in fields) {
|
|
111
|
+
const field = fields[name];
|
|
112
|
+
if (field.type !== FieldBuilder.Type.Column) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (!field.options.primary) {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (!primary.includes(name)) {
|
|
119
|
+
primary.push(name);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (primary.length > 1) {
|
|
123
|
+
throw new SchemaBuilderError(`${entityName}: Only single column can be a primary. Found: ${primary.join(", ")}`);
|
|
124
|
+
}
|
|
125
|
+
return primary.length === 1 ? primary[0] : this.conventions.getPrimaryField();
|
|
126
|
+
}
|
|
127
|
+
createDefaultPrimary(fieldName) {
|
|
128
|
+
return {
|
|
129
|
+
type: FieldBuilder.Type.Column,
|
|
130
|
+
options: {
|
|
131
|
+
nullable: false,
|
|
132
|
+
type: Model.ColumnType.Uuid,
|
|
133
|
+
primary: true
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
createUnique(entityName, options, fieldOptions) {
|
|
138
|
+
const unique = [];
|
|
139
|
+
for (const singleUnique of options.unique || []) {
|
|
140
|
+
unique.push(singleUnique);
|
|
141
|
+
}
|
|
142
|
+
for (let fieldName in fieldOptions) {
|
|
143
|
+
const options2 = fieldOptions[fieldName];
|
|
144
|
+
if (options2.type === FieldBuilder.Type.Column && options2.options.unique) {
|
|
145
|
+
unique.push({ fields: [fieldName] });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return unique;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export {
|
|
152
|
+
SchemaBuilderInternal as default
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=SchemaBuilderInternal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaBuilderInternal.js","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilderInternal.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\nimport EntityBuilder from './EntityBuilder'\nimport { SchemaBuilderError } from './SchemaBuilderError'\nimport FieldProcessor from './internal/FieldProcessor'\nimport ColumnProcessor from './internal/ColumnProcessor'\nimport ManyHasManyProcessor from './internal/ManyHasManyProcessor'\nimport OneHasOneProcessor from './internal/OneHasOneProcessor'\nimport OneHasManyProcessor from './internal/OneHasManyProcessor'\nimport ManyHasOneProcessor from './internal/ManyHasOneProcessor'\nimport FieldBuilder from './FieldBuilder'\n\nexport default class SchemaBuilderInternal {\n\tprivate entities: { [name: string]: Model.Entity & { fields: Record<string, Model.AnyField> } } = {}\n\n\tprivate fieldOptions: { [entity: string]: FieldBuilder.Map } = {}\n\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions) {}\n\n\tpublic addEntity(name: string, options: EntityBuilder.EntityOptions, fieldOptions: FieldBuilder.Map): void {\n\t\tthis.fieldOptions[name] = fieldOptions\n\t\tconst primaryName = this.getPrimaryFieldName(options, name, fieldOptions)\n\t\tif (!fieldOptions[primaryName]) {\n\t\t\tfieldOptions[primaryName] = this.createDefaultPrimary(primaryName)\n\t\t}\n\t\tconst primaryField = fieldOptions[primaryName]\n\t\tif (primaryField.type !== FieldBuilder.Type.Column) {\n\t\t\tthrow new SchemaBuilderError(`${name}: Primary field must be a column`)\n\t\t}\n\t\tprimaryField.options.primary = true\n\t\tprimaryField.options.nullable = false\n\n\t\tthis.entities[name] = {\n\t\t\tname: name,\n\t\t\tprimary: primaryName,\n\t\t\tprimaryColumn: primaryField.options.columnName || this.conventions.getColumnName(primaryName),\n\t\t\tunique: this.createUnique(name, options, fieldOptions),\n\t\t\tfields: {},\n\t\t\tindexes: [],\n\t\t\ttableName: options.tableName || this.conventions.getTableName(name),\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...(options.orderBy !== undefined ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tpublic addEnum(name: string, values: string[]): void {\n\t\tthis.enums[name] = values\n\t}\n\n\tpublic createSchema(): Model.Schema {\n\t\tfor (let entityName in this.fieldOptions) {\n\t\t\tlet primaryField = this.entities[entityName].primary\n\t\t\tthis.processField(entityName, primaryField)\n\t\t\tfor (let fieldName in this.fieldOptions[entityName]) {\n\t\t\t\tif (fieldName === primaryField) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tthis.processField(entityName, fieldName)\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tenums: this.enums,\n\t\t\tentities: this.entities,\n\t\t}\n\t}\n\n\tprivate processField(entityName: string, fieldName: string): void {\n\t\tconst processor = this.createProcessor(entityName, fieldName)\n\t\tprocessor.process(\n\t\t\tentityName,\n\t\t\tfieldName,\n\t\t\tthis.fieldOptions[entityName][fieldName].options,\n\t\t\tthis.registerField.bind(this),\n\t\t)\n\t}\n\n\tprivate createProcessor(entityName: string, fieldName: string): FieldProcessor<any> {\n\t\tconst field: FieldBuilder.Options = this.fieldOptions[entityName][fieldName]\n\n\t\tif (field.type === FieldBuilder.Type.Column) {\n\t\t\treturn new ColumnProcessor(this.conventions)\n\t\t}\n\t\tthis.checkTarget(entityName, fieldName, field.options)\n\t\tswitch (field.type) {\n\t\t\tcase FieldBuilder.Type.ManyHasMany:\n\t\t\t\treturn new ManyHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasOne:\n\t\t\t\treturn new OneHasOneProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasMany:\n\t\t\t\treturn new OneHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.ManyHasOne:\n\t\t\t\treturn new ManyHasOneProcessor(this.conventions)\n\t\t}\n\n\t\tthrow new Error()\n\t}\n\n\tprivate checkTarget(entityName: string, fieldName: string, options: { target: string }) {\n\t\tif (!this.entities[options.target]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}::${fieldName}: undefined target entity ${options.target}`)\n\t\t}\n\t}\n\n\tprivate registerField(entityName: string, field: Model.AnyColumn | Model.AnyRelation) {\n\t\tif (!this.entities[entityName]) {\n\t\t\tthrow new SchemaBuilderError(`Undefined entity ${entityName}`)\n\t\t}\n\t\tif (this.entities[entityName].fields[field.name]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Field ${field.name} is already defined`)\n\t\t}\n\t\tthis.entities[entityName].fields[field.name] = field\n\t}\n\n\tprivate getPrimaryFieldName(\n\t\tentityOptions: EntityBuilder.EntityOptions,\n\t\tentityName: string,\n\t\tfields: FieldBuilder.Map,\n\t) {\n\t\tlet primary: string[] = []\n\t\tif (entityOptions.primary) {\n\t\t\tprimary.push(entityOptions.primary)\n\t\t}\n\t\tfor (let name in fields) {\n\t\t\tconst field: FieldBuilder.Options = fields[name]\n\t\t\tif (field.type !== FieldBuilder.Type.Column) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!field.options.primary) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!primary.includes(name)) {\n\t\t\t\tprimary.push(name)\n\t\t\t}\n\t\t}\n\t\tif (primary.length > 1) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Only single column can be a primary. Found: ${primary.join(', ')}`)\n\t\t}\n\t\treturn primary.length === 1 ? primary[0] : this.conventions.getPrimaryField()\n\t}\n\n\tprivate createDefaultPrimary(fieldName: string): FieldBuilder.Options {\n\t\treturn {\n\t\t\ttype: FieldBuilder.Type.Column,\n\t\t\toptions: {\n\t\t\t\tnullable: false,\n\t\t\t\ttype: Model.ColumnType.Uuid,\n\t\t\t\tprimary: true,\n\t\t\t},\n\t\t}\n\t}\n\n\tprivate createUnique(\n\t\tentityName: string,\n\t\toptions: EntityBuilder.EntityOptions,\n\t\tfieldOptions: FieldBuilder.Map,\n\t): Model.UniqueConstraints {\n\t\tconst unique: Model.UniqueConstraint[] = []\n\n\t\tfor (const singleUnique of options.unique || []) {\n\t\t\tunique.push(singleUnique)\n\t\t}\n\t\tfor (let fieldName in fieldOptions) {\n\t\t\tconst options = fieldOptions[fieldName]\n\n\t\t\tif (options.type === FieldBuilder.Type.Column && options.options.unique) {\n\t\t\t\tunique.push({ fields: [fieldName] })\n\t\t\t}\n\t\t}\n\t\treturn unique\n\t}\n}\n"],"names":["options"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const schema = require("@contember/schema");
|
|
3
|
+
const schemaUtils = require("@contember/schema-utils");
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
7
|
+
class ColumnProcessor {
|
|
8
|
+
constructor(conventions) {
|
|
9
|
+
__publicField(this, "conventions");
|
|
10
|
+
this.conventions = conventions;
|
|
11
|
+
}
|
|
12
|
+
process(entityName, fieldName, options, registerField) {
|
|
13
|
+
registerField(entityName, this.toColumnType(fieldName, options));
|
|
14
|
+
}
|
|
15
|
+
toColumnType(fieldName, options) {
|
|
16
|
+
const type = options.type;
|
|
17
|
+
const common = {
|
|
18
|
+
name: fieldName,
|
|
19
|
+
columnName: options.columnName || this.conventions.getColumnName(fieldName),
|
|
20
|
+
nullable: options.nullable === void 0 ? true : options.nullable
|
|
21
|
+
};
|
|
22
|
+
if (type === schema.Model.ColumnType.Enum) {
|
|
23
|
+
return { ...common, type, columnType: options.enumName };
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
...common,
|
|
27
|
+
type,
|
|
28
|
+
columnType: schemaUtils.resolveDefaultColumnType(type),
|
|
29
|
+
...options.typeAlias !== void 0 ? { typeAlias: options.typeAlias } : {}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
module.exports = ColumnProcessor;
|
|
34
|
+
//# sourceMappingURL=ColumnProcessor.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnProcessor.cjs","sources":["../../../../../../../packages/schema-definition/src/model/builder/internal/ColumnProcessor.ts"],"sourcesContent":["import FieldProcessor from './FieldProcessor'\nimport ColumnBuilder from '../ColumnBuilder'\nimport { Model } from '@contember/schema'\nimport { NamingConventions, resolveDefaultColumnType } from '@contember/schema-utils'\n\nexport default class ColumnProcessor implements FieldProcessor<ColumnBuilder.Options> {\n\tprivate conventions: NamingConventions\n\n\tconstructor(conventions: NamingConventions) {\n\t\tthis.conventions = conventions\n\t}\n\n\tpublic process(\n\t\tentityName: string,\n\t\tfieldName: string,\n\t\toptions: ColumnBuilder.Options,\n\t\tregisterField: FieldProcessor.FieldRegistrar,\n\t): void {\n\t\tregisterField(entityName, this.toColumnType(fieldName, options))\n\t}\n\n\tprivate toColumnType(fieldName: string, options: ColumnBuilder.Options): Model.Column<Model.ColumnType> {\n\t\tconst type = options.type\n\t\tconst common = {\n\t\t\tname: fieldName,\n\t\t\tcolumnName: options.columnName || this.conventions.getColumnName(fieldName),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t}\n\t\tif (type === Model.ColumnType.Enum) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\treturn { ...common, type: type, columnType: options.enumName! }\n\t\t}\n\t\treturn {\n\t\t\t...common,\n\t\t\ttype,\n\t\t\tcolumnType: resolveDefaultColumnType(type),\n\t\t\t...(options.typeAlias !== undefined ? { typeAlias: options.typeAlias } : {}),\n\t\t}\n\t}\n}\n"],"names":["Model","resolveDefaultColumnType"],"mappings":";;;;;;AAKA,MAAqB,gBAAiE;AAAA,EAGrF,YAAY,aAAgC;AAFpC,kBAAA,MAAA,aAAA;AAGP,SAAK,cAAc;AAAA,EACpB;AAAA,EAEO,QACN,YACA,WACA,SACA,eACO;AACP,kBAAc,YAAY,KAAK,aAAa,WAAW,OAAO,CAAC;AAAA,EAChE;AAAA,EAEQ,aAAa,WAAmB,SAAgE;AACvG,UAAM,OAAO,QAAQ;AACrB,UAAM,SAAS;AAAA,MACd,MAAM;AAAA,MACN,YAAY,QAAQ,cAAc,KAAK,YAAY,cAAc,SAAS;AAAA,MAC1E,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,IAAA;AAEvD,QAAA,SAASA,OAAAA,MAAM,WAAW,MAAM;AAEnC,aAAO,EAAE,GAAG,QAAQ,MAAY,YAAY,QAAQ;IACrD;AACO,WAAA;AAAA,MACN,GAAG;AAAA,MACH;AAAA,MACA,YAAYC,qCAAyB,IAAI;AAAA,MACzC,GAAI,QAAQ,cAAc,SAAY,EAAE,WAAW,QAAQ,UAAU,IAAI,CAAC;AAAA,IAAA;AAAA,EAE5E;AACD;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Model } from "@contember/schema";
|
|
2
|
+
import { resolveDefaultColumnType } from "@contember/schema-utils";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
6
|
+
class ColumnProcessor {
|
|
7
|
+
constructor(conventions) {
|
|
8
|
+
__publicField(this, "conventions");
|
|
9
|
+
this.conventions = conventions;
|
|
10
|
+
}
|
|
11
|
+
process(entityName, fieldName, options, registerField) {
|
|
12
|
+
registerField(entityName, this.toColumnType(fieldName, options));
|
|
13
|
+
}
|
|
14
|
+
toColumnType(fieldName, options) {
|
|
15
|
+
const type = options.type;
|
|
16
|
+
const common = {
|
|
17
|
+
name: fieldName,
|
|
18
|
+
columnName: options.columnName || this.conventions.getColumnName(fieldName),
|
|
19
|
+
nullable: options.nullable === void 0 ? true : options.nullable
|
|
20
|
+
};
|
|
21
|
+
if (type === Model.ColumnType.Enum) {
|
|
22
|
+
return { ...common, type, columnType: options.enumName };
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
...common,
|
|
26
|
+
type,
|
|
27
|
+
columnType: resolveDefaultColumnType(type),
|
|
28
|
+
...options.typeAlias !== void 0 ? { typeAlias: options.typeAlias } : {}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
ColumnProcessor as default
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=ColumnProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnProcessor.js","sources":["../../../../../../../packages/schema-definition/src/model/builder/internal/ColumnProcessor.ts"],"sourcesContent":["import FieldProcessor from './FieldProcessor'\nimport ColumnBuilder from '../ColumnBuilder'\nimport { Model } from '@contember/schema'\nimport { NamingConventions, resolveDefaultColumnType } from '@contember/schema-utils'\n\nexport default class ColumnProcessor implements FieldProcessor<ColumnBuilder.Options> {\n\tprivate conventions: NamingConventions\n\n\tconstructor(conventions: NamingConventions) {\n\t\tthis.conventions = conventions\n\t}\n\n\tpublic process(\n\t\tentityName: string,\n\t\tfieldName: string,\n\t\toptions: ColumnBuilder.Options,\n\t\tregisterField: FieldProcessor.FieldRegistrar,\n\t): void {\n\t\tregisterField(entityName, this.toColumnType(fieldName, options))\n\t}\n\n\tprivate toColumnType(fieldName: string, options: ColumnBuilder.Options): Model.Column<Model.ColumnType> {\n\t\tconst type = options.type\n\t\tconst common = {\n\t\t\tname: fieldName,\n\t\t\tcolumnName: options.columnName || this.conventions.getColumnName(fieldName),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t}\n\t\tif (type === Model.ColumnType.Enum) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\treturn { ...common, type: type, columnType: options.enumName! }\n\t\t}\n\t\treturn {\n\t\t\t...common,\n\t\t\ttype,\n\t\t\tcolumnType: resolveDefaultColumnType(type),\n\t\t\t...(options.typeAlias !== undefined ? { typeAlias: options.typeAlias } : {}),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;AAKA,MAAqB,gBAAiE;AAAA,EAGrF,YAAY,aAAgC;AAFpC,kBAAA,MAAA,aAAA;AAGP,SAAK,cAAc;AAAA,EACpB;AAAA,EAEO,QACN,YACA,WACA,SACA,eACO;AACP,kBAAc,YAAY,KAAK,aAAa,WAAW,OAAO,CAAC;AAAA,EAChE;AAAA,EAEQ,aAAa,WAAmB,SAAgE;AACvG,UAAM,OAAO,QAAQ;AACrB,UAAM,SAAS;AAAA,MACd,MAAM;AAAA,MACN,YAAY,QAAQ,cAAc,KAAK,YAAY,cAAc,SAAS;AAAA,MAC1E,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,IAAA;AAEvD,QAAA,SAAS,MAAM,WAAW,MAAM;AAEnC,aAAO,EAAE,GAAG,QAAQ,MAAY,YAAY,QAAQ;IACrD;AACO,WAAA;AAAA,MACN,GAAG;AAAA,MACH;AAAA,MACA,YAAY,yBAAyB,IAAI;AAAA,MACzC,GAAI,QAAQ,cAAc,SAAY,EAAE,WAAW,QAAQ,UAAU,IAAI,CAAC;AAAA,IAAA;AAAA,EAE5E;AACD;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const schema = require("@contember/schema");
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
6
|
+
class ManyHasManyProcessor {
|
|
7
|
+
constructor(conventions) {
|
|
8
|
+
__publicField(this, "conventions");
|
|
9
|
+
this.conventions = conventions;
|
|
10
|
+
}
|
|
11
|
+
process(entityName, fieldName, options, registerField) {
|
|
12
|
+
registerField(entityName, this.createManyHasManyOwning(options, entityName, fieldName));
|
|
13
|
+
if (options.inversedBy) {
|
|
14
|
+
registerField(options.target, this.createManyHasManyInverse(options.inversedBy, entityName, fieldName));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
createManyHasManyInverse(inversedBy, entityName, fieldName) {
|
|
18
|
+
return {
|
|
19
|
+
name: inversedBy,
|
|
20
|
+
ownedBy: fieldName,
|
|
21
|
+
target: entityName,
|
|
22
|
+
type: schema.Model.RelationType.ManyHasMany
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
createManyHasManyOwning(options, entityName, fieldName) {
|
|
26
|
+
let joiningTable = options.joiningTable;
|
|
27
|
+
if (!joiningTable) {
|
|
28
|
+
const columnNames = this.conventions.getJoiningTableColumnNames(
|
|
29
|
+
entityName,
|
|
30
|
+
fieldName,
|
|
31
|
+
options.target,
|
|
32
|
+
options.inversedBy
|
|
33
|
+
);
|
|
34
|
+
joiningTable = {
|
|
35
|
+
tableName: this.conventions.getJoiningTableName(entityName, fieldName),
|
|
36
|
+
joiningColumn: { columnName: columnNames[0], onDelete: schema.Model.OnDelete.cascade },
|
|
37
|
+
inverseJoiningColumn: { columnName: columnNames[1], onDelete: schema.Model.OnDelete.cascade },
|
|
38
|
+
eventLog: {
|
|
39
|
+
enabled: true
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
type: schema.Model.RelationType.ManyHasMany,
|
|
45
|
+
name: fieldName,
|
|
46
|
+
...typeof options.inversedBy === "undefined" ? {} : { inversedBy: options.inversedBy },
|
|
47
|
+
target: options.target,
|
|
48
|
+
joiningTable,
|
|
49
|
+
...options.orderBy ? { orderBy: options.orderBy } : {}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
module.exports = ManyHasManyProcessor;
|
|
54
|
+
//# sourceMappingURL=ManyHasManyProcessor.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyHasManyProcessor.cjs","sources":["../../../../../../../packages/schema-definition/src/model/builder/internal/ManyHasManyProcessor.ts"],"sourcesContent":["import FieldProcessor from './FieldProcessor'\nimport ManyHasManyBuilder from '../ManyHasManyBuilder'\nimport { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\n\nexport default class ManyHasManyProcessor implements FieldProcessor<ManyHasManyBuilder.Options> {\n\tprivate conventions: NamingConventions\n\n\tconstructor(conventions: NamingConventions) {\n\t\tthis.conventions = conventions\n\t}\n\n\tpublic process(\n\t\tentityName: string,\n\t\tfieldName: string,\n\t\toptions: ManyHasManyBuilder.Options,\n\t\tregisterField: FieldProcessor.FieldRegistrar,\n\t): void {\n\t\tregisterField(entityName, this.createManyHasManyOwning(options, entityName, fieldName))\n\t\tif (options.inversedBy) {\n\t\t\tregisterField(options.target, this.createManyHasManyInverse(options.inversedBy, entityName, fieldName))\n\t\t}\n\t}\n\n\tprivate createManyHasManyInverse(\n\t\tinversedBy: string,\n\t\tentityName: string,\n\t\tfieldName: string,\n\t): Model.ManyHasManyInverseRelation {\n\t\treturn {\n\t\t\tname: inversedBy,\n\t\t\townedBy: fieldName,\n\t\t\ttarget: entityName,\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t}\n\t}\n\n\tprivate createManyHasManyOwning(\n\t\toptions: ManyHasManyBuilder.Options,\n\t\tentityName: string,\n\t\tfieldName: string,\n\t): Model.ManyHasManyOwningRelation {\n\t\tlet joiningTable: Model.JoiningTable | undefined = options.joiningTable\n\t\tif (!joiningTable) {\n\t\t\tconst columnNames = this.conventions.getJoiningTableColumnNames(\n\t\t\t\tentityName,\n\t\t\t\tfieldName,\n\t\t\t\toptions.target,\n\t\t\t\toptions.inversedBy,\n\t\t\t)\n\t\t\tjoiningTable = {\n\t\t\t\ttableName: this.conventions.getJoiningTableName(entityName, fieldName),\n\t\t\t\tjoiningColumn: { columnName: columnNames[0], onDelete: Model.OnDelete.cascade },\n\t\t\t\tinverseJoiningColumn: { columnName: columnNames[1], onDelete: Model.OnDelete.cascade },\n\t\t\t\teventLog: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\tname: fieldName,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\ttarget: options.target,\n\t\t\tjoiningTable: joiningTable,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n"],"names":["Model"],"mappings":";;;;;AAKA,MAAqB,qBAA2E;AAAA,EAG/F,YAAY,aAAgC;AAFpC,kBAAA,MAAA,aAAA;AAGP,SAAK,cAAc;AAAA,EACpB;AAAA,EAEO,QACN,YACA,WACA,SACA,eACO;AACP,kBAAc,YAAY,KAAK,wBAAwB,SAAS,YAAY,SAAS,CAAC;AACtF,QAAI,QAAQ,YAAY;AACT,oBAAA,QAAQ,QAAQ,KAAK,yBAAyB,QAAQ,YAAY,YAAY,SAAS,CAAC;AAAA,IACvG;AAAA,EACD;AAAA,EAEQ,yBACP,YACA,YACA,WACmC;AAC5B,WAAA;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAMA,OAAAA,MAAM,aAAa;AAAA,IAAA;AAAA,EAE3B;AAAA,EAEQ,wBACP,SACA,YACA,WACkC;AAClC,QAAI,eAA+C,QAAQ;AAC3D,QAAI,CAAC,cAAc;AACZ,YAAA,cAAc,KAAK,YAAY;AAAA,QACpC;AAAA,QACA;AAAA,QACA,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA;AAEM,qBAAA;AAAA,QACd,WAAW,KAAK,YAAY,oBAAoB,YAAY,SAAS;AAAA,QACrE,eAAe,EAAE,YAAY,YAAY,CAAC,GAAG,UAAUA,OAAAA,MAAM,SAAS,QAAQ;AAAA,QAC9E,sBAAsB,EAAE,YAAY,YAAY,CAAC,GAAG,UAAUA,OAAAA,MAAM,SAAS,QAAQ;AAAA,QACrF,UAAU;AAAA,UACT,SAAS;AAAA,QACV;AAAA,MAAA;AAAA,IAEF;AAEO,WAAA;AAAA,MACN,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,MAAM;AAAA,MACN,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,QAAQ,QAAQ;AAAA,MAChB;AAAA,MACA,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Model } from "@contember/schema";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
5
|
+
class ManyHasManyProcessor {
|
|
6
|
+
constructor(conventions) {
|
|
7
|
+
__publicField(this, "conventions");
|
|
8
|
+
this.conventions = conventions;
|
|
9
|
+
}
|
|
10
|
+
process(entityName, fieldName, options, registerField) {
|
|
11
|
+
registerField(entityName, this.createManyHasManyOwning(options, entityName, fieldName));
|
|
12
|
+
if (options.inversedBy) {
|
|
13
|
+
registerField(options.target, this.createManyHasManyInverse(options.inversedBy, entityName, fieldName));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
createManyHasManyInverse(inversedBy, entityName, fieldName) {
|
|
17
|
+
return {
|
|
18
|
+
name: inversedBy,
|
|
19
|
+
ownedBy: fieldName,
|
|
20
|
+
target: entityName,
|
|
21
|
+
type: Model.RelationType.ManyHasMany
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
createManyHasManyOwning(options, entityName, fieldName) {
|
|
25
|
+
let joiningTable = options.joiningTable;
|
|
26
|
+
if (!joiningTable) {
|
|
27
|
+
const columnNames = this.conventions.getJoiningTableColumnNames(
|
|
28
|
+
entityName,
|
|
29
|
+
fieldName,
|
|
30
|
+
options.target,
|
|
31
|
+
options.inversedBy
|
|
32
|
+
);
|
|
33
|
+
joiningTable = {
|
|
34
|
+
tableName: this.conventions.getJoiningTableName(entityName, fieldName),
|
|
35
|
+
joiningColumn: { columnName: columnNames[0], onDelete: Model.OnDelete.cascade },
|
|
36
|
+
inverseJoiningColumn: { columnName: columnNames[1], onDelete: Model.OnDelete.cascade },
|
|
37
|
+
eventLog: {
|
|
38
|
+
enabled: true
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
type: Model.RelationType.ManyHasMany,
|
|
44
|
+
name: fieldName,
|
|
45
|
+
...typeof options.inversedBy === "undefined" ? {} : { inversedBy: options.inversedBy },
|
|
46
|
+
target: options.target,
|
|
47
|
+
joiningTable,
|
|
48
|
+
...options.orderBy ? { orderBy: options.orderBy } : {}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export {
|
|
53
|
+
ManyHasManyProcessor as default
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=ManyHasManyProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyHasManyProcessor.js","sources":["../../../../../../../packages/schema-definition/src/model/builder/internal/ManyHasManyProcessor.ts"],"sourcesContent":["import FieldProcessor from './FieldProcessor'\nimport ManyHasManyBuilder from '../ManyHasManyBuilder'\nimport { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\n\nexport default class ManyHasManyProcessor implements FieldProcessor<ManyHasManyBuilder.Options> {\n\tprivate conventions: NamingConventions\n\n\tconstructor(conventions: NamingConventions) {\n\t\tthis.conventions = conventions\n\t}\n\n\tpublic process(\n\t\tentityName: string,\n\t\tfieldName: string,\n\t\toptions: ManyHasManyBuilder.Options,\n\t\tregisterField: FieldProcessor.FieldRegistrar,\n\t): void {\n\t\tregisterField(entityName, this.createManyHasManyOwning(options, entityName, fieldName))\n\t\tif (options.inversedBy) {\n\t\t\tregisterField(options.target, this.createManyHasManyInverse(options.inversedBy, entityName, fieldName))\n\t\t}\n\t}\n\n\tprivate createManyHasManyInverse(\n\t\tinversedBy: string,\n\t\tentityName: string,\n\t\tfieldName: string,\n\t): Model.ManyHasManyInverseRelation {\n\t\treturn {\n\t\t\tname: inversedBy,\n\t\t\townedBy: fieldName,\n\t\t\ttarget: entityName,\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t}\n\t}\n\n\tprivate createManyHasManyOwning(\n\t\toptions: ManyHasManyBuilder.Options,\n\t\tentityName: string,\n\t\tfieldName: string,\n\t): Model.ManyHasManyOwningRelation {\n\t\tlet joiningTable: Model.JoiningTable | undefined = options.joiningTable\n\t\tif (!joiningTable) {\n\t\t\tconst columnNames = this.conventions.getJoiningTableColumnNames(\n\t\t\t\tentityName,\n\t\t\t\tfieldName,\n\t\t\t\toptions.target,\n\t\t\t\toptions.inversedBy,\n\t\t\t)\n\t\t\tjoiningTable = {\n\t\t\t\ttableName: this.conventions.getJoiningTableName(entityName, fieldName),\n\t\t\t\tjoiningColumn: { columnName: columnNames[0], onDelete: Model.OnDelete.cascade },\n\t\t\t\tinverseJoiningColumn: { columnName: columnNames[1], onDelete: Model.OnDelete.cascade },\n\t\t\t\teventLog: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\tname: fieldName,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\ttarget: options.target,\n\t\t\tjoiningTable: joiningTable,\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;AAKA,MAAqB,qBAA2E;AAAA,EAG/F,YAAY,aAAgC;AAFpC,kBAAA,MAAA,aAAA;AAGP,SAAK,cAAc;AAAA,EACpB;AAAA,EAEO,QACN,YACA,WACA,SACA,eACO;AACP,kBAAc,YAAY,KAAK,wBAAwB,SAAS,YAAY,SAAS,CAAC;AACtF,QAAI,QAAQ,YAAY;AACT,oBAAA,QAAQ,QAAQ,KAAK,yBAAyB,QAAQ,YAAY,YAAY,SAAS,CAAC;AAAA,IACvG;AAAA,EACD;AAAA,EAEQ,yBACP,YACA,YACA,WACmC;AAC5B,WAAA;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM,MAAM,aAAa;AAAA,IAAA;AAAA,EAE3B;AAAA,EAEQ,wBACP,SACA,YACA,WACkC;AAClC,QAAI,eAA+C,QAAQ;AAC3D,QAAI,CAAC,cAAc;AACZ,YAAA,cAAc,KAAK,YAAY;AAAA,QACpC;AAAA,QACA;AAAA,QACA,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA;AAEM,qBAAA;AAAA,QACd,WAAW,KAAK,YAAY,oBAAoB,YAAY,SAAS;AAAA,QACrE,eAAe,EAAE,YAAY,YAAY,CAAC,GAAG,UAAU,MAAM,SAAS,QAAQ;AAAA,QAC9E,sBAAsB,EAAE,YAAY,YAAY,CAAC,GAAG,UAAU,MAAM,SAAS,QAAQ;AAAA,QACrF,UAAU;AAAA,UACT,SAAS;AAAA,QACV;AAAA,MAAA;AAAA,IAEF;AAEO,WAAA;AAAA,MACN,MAAM,MAAM,aAAa;AAAA,MACzB,MAAM;AAAA,MACN,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,QAAQ,QAAQ;AAAA,MAChB;AAAA,MACA,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const schema = require("@contember/schema");
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
6
|
+
class ManyHasOneProcessor {
|
|
7
|
+
constructor(conventions) {
|
|
8
|
+
__publicField(this, "conventions");
|
|
9
|
+
this.conventions = conventions;
|
|
10
|
+
}
|
|
11
|
+
process(entityName, fieldName, options, registerField) {
|
|
12
|
+
registerField(entityName, this.createManyHasOneOwning(options, fieldName));
|
|
13
|
+
if (options.inversedBy) {
|
|
14
|
+
const inverse = this.createManyHasOneInverse(
|
|
15
|
+
options,
|
|
16
|
+
entityName,
|
|
17
|
+
fieldName
|
|
18
|
+
);
|
|
19
|
+
registerField(options.target, inverse);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
createManyHasOneInverse(options, entityName, fieldName) {
|
|
23
|
+
return {
|
|
24
|
+
name: options.inversedBy,
|
|
25
|
+
ownedBy: fieldName,
|
|
26
|
+
target: entityName,
|
|
27
|
+
type: schema.Model.RelationType.OneHasMany
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
createManyHasOneOwning(options, fieldName) {
|
|
31
|
+
const joiningColumn = options.joiningColumn || {};
|
|
32
|
+
return {
|
|
33
|
+
name: fieldName,
|
|
34
|
+
...typeof options.inversedBy === "undefined" ? {} : { inversedBy: options.inversedBy },
|
|
35
|
+
nullable: options.nullable === void 0 ? true : options.nullable,
|
|
36
|
+
type: schema.Model.RelationType.ManyHasOne,
|
|
37
|
+
target: options.target,
|
|
38
|
+
joiningColumn: {
|
|
39
|
+
columnName: joiningColumn.columnName || this.conventions.getJoiningColumnName(fieldName),
|
|
40
|
+
onDelete: joiningColumn.onDelete || schema.Model.OnDelete.restrict
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
module.exports = ManyHasOneProcessor;
|
|
46
|
+
//# sourceMappingURL=ManyHasOneProcessor.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyHasOneProcessor.cjs","sources":["../../../../../../../packages/schema-definition/src/model/builder/internal/ManyHasOneProcessor.ts"],"sourcesContent":["import FieldProcessor from './FieldProcessor'\nimport { Model } from '@contember/schema'\nimport ManyHasOneBuilder from '../ManyHasOneBuilder'\nimport { NamingConventions } from '@contember/schema-utils'\n\nexport default class ManyHasOneProcessor implements FieldProcessor<ManyHasOneBuilder.Options> {\n\tprivate conventions: NamingConventions\n\n\tconstructor(conventions: NamingConventions) {\n\t\tthis.conventions = conventions\n\t}\n\n\tpublic process(\n\t\tentityName: string,\n\t\tfieldName: string,\n\t\toptions: ManyHasOneBuilder.Options,\n\t\tregisterField: FieldProcessor.FieldRegistrar,\n\t): void {\n\t\tregisterField(entityName, this.createManyHasOneOwning(options, fieldName))\n\t\tif (options.inversedBy) {\n\t\t\tconst inverse = this.createManyHasOneInverse(\n\t\t\t\toptions as ManyHasOneBuilder.Options & { inversedBy: string },\n\t\t\t\tentityName,\n\t\t\t\tfieldName,\n\t\t\t)\n\t\t\tregisterField(options.target, inverse)\n\t\t}\n\t}\n\n\tprivate createManyHasOneInverse(\n\t\toptions: ManyHasOneBuilder.Options & { inversedBy: string },\n\t\tentityName: string,\n\t\tfieldName: string,\n\t): Model.OneHasManyRelation {\n\t\treturn {\n\t\t\tname: options.inversedBy,\n\t\t\townedBy: fieldName,\n\t\t\ttarget: entityName,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t}\n\t}\n\n\tprivate createManyHasOneOwning(options: ManyHasOneBuilder.Options, fieldName: string): Model.ManyHasOneRelation {\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\treturn {\n\t\t\tname: fieldName,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: options.target,\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || this.conventions.getJoiningColumnName(fieldName),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["Model"],"mappings":";;;;;AAKA,MAAqB,oBAAyE;AAAA,EAG7F,YAAY,aAAgC;AAFpC,kBAAA,MAAA,aAAA;AAGP,SAAK,cAAc;AAAA,EACpB;AAAA,EAEO,QACN,YACA,WACA,SACA,eACO;AACP,kBAAc,YAAY,KAAK,uBAAuB,SAAS,SAAS,CAAC;AACzE,QAAI,QAAQ,YAAY;AACvB,YAAM,UAAU,KAAK;AAAA,QACpB;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAEa,oBAAA,QAAQ,QAAQ,OAAO;AAAA,IACtC;AAAA,EACD;AAAA,EAEQ,wBACP,SACA,YACA,WAC2B;AACpB,WAAA;AAAA,MACN,MAAM,QAAQ;AAAA,MACd,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAMA,OAAAA,MAAM,aAAa;AAAA,IAAA;AAAA,EAE3B;AAAA,EAEQ,uBAAuB,SAAoC,WAA6C;AACzG,UAAA,gBAAgB,QAAQ,iBAAiB;AACxC,WAAA;AAAA,MACN,MAAM;AAAA,MACN,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,QAAQ;AAAA,MAChB,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,KAAK,YAAY,qBAAqB,SAAS;AAAA,QACvF,UAAU,cAAc,YAAYA,OAAA,MAAM,SAAS;AAAA,MACpD;AAAA,IAAA;AAAA,EAEF;AACD;;"}
|