@contember/schema-utils 1.4.0-rc.8 → 2.0.0-alpha.12
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 +109 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +93 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/acl/AllowAllPermissionFactory.cjs +42 -0
- package/dist/development/src/acl/AllowAllPermissionFactory.cjs.map +1 -0
- package/dist/development/src/acl/AllowAllPermissionFactory.js +42 -0
- package/dist/development/src/acl/AllowAllPermissionFactory.js.map +1 -0
- package/dist/development/src/acl/PredicateDefinitionProcessor.cjs +71 -0
- package/dist/development/src/acl/PredicateDefinitionProcessor.cjs.map +1 -0
- package/dist/development/src/acl/PredicateDefinitionProcessor.js +71 -0
- package/dist/development/src/acl/PredicateDefinitionProcessor.js.map +1 -0
- package/dist/development/src/acl/schemaUtils.cjs +11 -0
- package/dist/development/src/acl/schemaUtils.cjs.map +1 -0
- package/dist/development/src/acl/schemaUtils.js +11 -0
- package/dist/development/src/acl/schemaUtils.js.map +1 -0
- package/dist/development/src/dataUtils.cjs +59 -0
- package/dist/development/src/dataUtils.cjs.map +1 -0
- package/dist/development/src/dataUtils.js +59 -0
- package/dist/development/src/dataUtils.js.map +1 -0
- package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.cjs +118 -0
- package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +1 -0
- package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.js +118 -0
- package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.js.map +1 -0
- package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs +221 -0
- package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -0
- package/dist/development/src/definition-generator/DefinitionCodeGenerator.js +221 -0
- package/dist/development/src/definition-generator/DefinitionCodeGenerator.js.map +1 -0
- package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs +19 -0
- package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs.map +1 -0
- package/dist/development/src/definition-generator/DefinitionNamingConventions.js +19 -0
- package/dist/development/src/definition-generator/DefinitionNamingConventions.js.map +1 -0
- package/dist/development/src/definition-generator/TsDefinitionGenerator.cjs +17 -0
- package/dist/development/src/definition-generator/TsDefinitionGenerator.cjs.map +1 -0
- package/dist/development/src/definition-generator/TsDefinitionGenerator.js +17 -0
- package/dist/development/src/definition-generator/TsDefinitionGenerator.js.map +1 -0
- package/dist/development/src/lax/LaxSchemaConverter.cjs +202 -0
- package/dist/development/src/lax/LaxSchemaConverter.cjs.map +1 -0
- package/dist/development/src/lax/LaxSchemaConverter.js +202 -0
- package/dist/development/src/lax/LaxSchemaConverter.js.map +1 -0
- package/dist/development/src/lax/schema.cjs +70 -0
- package/dist/development/src/lax/schema.cjs.map +1 -0
- package/dist/development/src/lax/schema.js +53 -0
- package/dist/development/src/lax/schema.js.map +1 -0
- package/dist/development/src/model/NamingConventions.cjs +28 -0
- package/dist/development/src/model/NamingConventions.cjs.map +1 -0
- package/dist/development/src/model/NamingConventions.js +28 -0
- package/dist/development/src/model/NamingConventions.js.map +1 -0
- package/dist/development/src/model/modelUtils.cjs +231 -0
- package/dist/development/src/model/modelUtils.cjs.map +1 -0
- package/dist/development/src/model/modelUtils.js +231 -0
- package/dist/development/src/model/modelUtils.js.map +1 -0
- package/dist/development/src/model/resolveDefaultColumnType.cjs +28 -0
- package/dist/development/src/model/resolveDefaultColumnType.cjs.map +1 -0
- package/dist/development/src/model/resolveDefaultColumnType.js +28 -0
- package/dist/development/src/model/resolveDefaultColumnType.js.map +1 -0
- package/dist/development/src/schemaFilter.cjs +24 -0
- package/dist/development/src/schemaFilter.cjs.map +1 -0
- package/dist/development/src/schemaFilter.js +24 -0
- package/dist/development/src/schemaFilter.js.map +1 -0
- package/dist/development/src/schemaNormalizer.cjs +70 -0
- package/dist/development/src/schemaNormalizer.cjs.map +1 -0
- package/dist/development/src/schemaNormalizer.js +70 -0
- package/dist/development/src/schemaNormalizer.js.map +1 -0
- package/dist/development/src/type-schema/acl.cjs +143 -0
- package/dist/development/src/type-schema/acl.cjs.map +1 -0
- package/dist/development/src/type-schema/acl.js +126 -0
- package/dist/development/src/type-schema/acl.js.map +1 -0
- package/dist/development/src/type-schema/actions.cjs +87 -0
- package/dist/development/src/type-schema/actions.cjs.map +1 -0
- package/dist/development/src/type-schema/actions.js +70 -0
- package/dist/development/src/type-schema/actions.js.map +1 -0
- package/dist/development/src/type-schema/condition.cjs +87 -0
- package/dist/development/src/type-schema/condition.cjs.map +1 -0
- package/dist/development/src/type-schema/condition.js +70 -0
- package/dist/development/src/type-schema/condition.js.map +1 -0
- package/dist/development/src/type-schema/model.cjs +195 -0
- package/dist/development/src/type-schema/model.cjs.map +1 -0
- package/dist/development/src/type-schema/model.js +178 -0
- package/dist/development/src/type-schema/model.js.map +1 -0
- package/dist/development/src/type-schema/settings.cjs +32 -0
- package/dist/development/src/type-schema/settings.cjs.map +1 -0
- package/dist/development/src/type-schema/settings.js +15 -0
- package/dist/development/src/type-schema/settings.js.map +1 -0
- package/dist/development/src/type-schema/validation.cjs +115 -0
- package/dist/development/src/type-schema/validation.cjs.map +1 -0
- package/dist/development/src/type-schema/validation.js +98 -0
- package/dist/development/src/type-schema/validation.js.map +1 -0
- package/dist/development/src/type-schema/where.cjs +44 -0
- package/dist/development/src/type-schema/where.cjs.map +1 -0
- package/dist/development/src/type-schema/where.js +27 -0
- package/dist/development/src/type-schema/where.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/deepCompare.cjs +134 -0
- package/dist/development/src/utils/deepCompare.cjs.map +1 -0
- package/dist/development/src/utils/deepCompare.js +134 -0
- package/dist/development/src/utils/deepCompare.js.map +1 -0
- package/dist/development/src/utils/isIt.cjs +7 -0
- package/dist/development/src/utils/isIt.cjs.map +1 -0
- package/dist/development/src/utils/isIt.js +7 -0
- package/dist/development/src/utils/isIt.js.map +1 -0
- package/dist/development/src/utils/printJsValue.cjs +42 -0
- package/dist/development/src/utils/printJsValue.cjs.map +1 -0
- package/dist/development/src/utils/printJsValue.js +42 -0
- package/dist/development/src/utils/printJsValue.js.map +1 -0
- package/dist/development/src/validation/AclValidator.cjs +168 -0
- package/dist/development/src/validation/AclValidator.cjs.map +1 -0
- package/dist/development/src/validation/AclValidator.js +168 -0
- package/dist/development/src/validation/AclValidator.js.map +1 -0
- package/dist/development/src/validation/ActionsValidator.cjs +127 -0
- package/dist/development/src/validation/ActionsValidator.cjs.map +1 -0
- package/dist/development/src/validation/ActionsValidator.js +110 -0
- package/dist/development/src/validation/ActionsValidator.js.map +1 -0
- package/dist/development/src/validation/MembershipResolver.cjs +126 -0
- package/dist/development/src/validation/MembershipResolver.cjs.map +1 -0
- package/dist/development/src/validation/MembershipResolver.js +126 -0
- package/dist/development/src/validation/MembershipResolver.js.map +1 -0
- package/dist/development/src/validation/ModelValidator.cjs +310 -0
- package/dist/development/src/validation/ModelValidator.cjs.map +1 -0
- package/dist/development/src/validation/ModelValidator.js +310 -0
- package/dist/development/src/validation/ModelValidator.js.map +1 -0
- package/dist/development/src/validation/SchemaValidator.cjs +29 -0
- package/dist/development/src/validation/SchemaValidator.cjs.map +1 -0
- package/dist/development/src/validation/SchemaValidator.js +29 -0
- package/dist/development/src/validation/SchemaValidator.js.map +1 -0
- package/dist/development/src/validation/ValidationValidator.cjs +121 -0
- package/dist/development/src/validation/ValidationValidator.cjs.map +1 -0
- package/dist/development/src/validation/ValidationValidator.js +121 -0
- package/dist/development/src/validation/ValidationValidator.js.map +1 -0
- package/dist/development/src/validation/errors.cjs +16 -0
- package/dist/development/src/validation/errors.cjs.map +1 -0
- package/dist/development/src/validation/errors.js +16 -0
- package/dist/development/src/validation/errors.js.map +1 -0
- package/dist/production/index.cjs +109 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +93 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/acl/AllowAllPermissionFactory.cjs +42 -0
- package/dist/production/src/acl/AllowAllPermissionFactory.cjs.map +1 -0
- package/dist/production/src/acl/AllowAllPermissionFactory.js +42 -0
- package/dist/production/src/acl/AllowAllPermissionFactory.js.map +1 -0
- package/dist/production/src/acl/PredicateDefinitionProcessor.cjs +71 -0
- package/dist/production/src/acl/PredicateDefinitionProcessor.cjs.map +1 -0
- package/dist/production/src/acl/PredicateDefinitionProcessor.js +71 -0
- package/dist/production/src/acl/PredicateDefinitionProcessor.js.map +1 -0
- package/dist/production/src/acl/schemaUtils.cjs +11 -0
- package/dist/production/src/acl/schemaUtils.cjs.map +1 -0
- package/dist/production/src/acl/schemaUtils.js +11 -0
- package/dist/production/src/acl/schemaUtils.js.map +1 -0
- package/dist/production/src/dataUtils.cjs +59 -0
- package/dist/production/src/dataUtils.cjs.map +1 -0
- package/dist/production/src/dataUtils.js +59 -0
- package/dist/production/src/dataUtils.js.map +1 -0
- package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs +118 -0
- package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +1 -0
- package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js +118 -0
- package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js.map +1 -0
- package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs +221 -0
- package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -0
- package/dist/production/src/definition-generator/DefinitionCodeGenerator.js +221 -0
- package/dist/production/src/definition-generator/DefinitionCodeGenerator.js.map +1 -0
- package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs +19 -0
- package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs.map +1 -0
- package/dist/production/src/definition-generator/DefinitionNamingConventions.js +19 -0
- package/dist/production/src/definition-generator/DefinitionNamingConventions.js.map +1 -0
- package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs +17 -0
- package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs.map +1 -0
- package/dist/production/src/definition-generator/TsDefinitionGenerator.js +17 -0
- package/dist/production/src/definition-generator/TsDefinitionGenerator.js.map +1 -0
- package/dist/production/src/lax/LaxSchemaConverter.cjs +202 -0
- package/dist/production/src/lax/LaxSchemaConverter.cjs.map +1 -0
- package/dist/production/src/lax/LaxSchemaConverter.js +202 -0
- package/dist/production/src/lax/LaxSchemaConverter.js.map +1 -0
- package/dist/production/src/lax/schema.cjs +70 -0
- package/dist/production/src/lax/schema.cjs.map +1 -0
- package/dist/production/src/lax/schema.js +53 -0
- package/dist/production/src/lax/schema.js.map +1 -0
- package/dist/production/src/model/NamingConventions.cjs +28 -0
- package/dist/production/src/model/NamingConventions.cjs.map +1 -0
- package/dist/production/src/model/NamingConventions.js +28 -0
- package/dist/production/src/model/NamingConventions.js.map +1 -0
- package/dist/production/src/model/modelUtils.cjs +231 -0
- package/dist/production/src/model/modelUtils.cjs.map +1 -0
- package/dist/production/src/model/modelUtils.js +231 -0
- package/dist/production/src/model/modelUtils.js.map +1 -0
- package/dist/production/src/model/resolveDefaultColumnType.cjs +28 -0
- package/dist/production/src/model/resolveDefaultColumnType.cjs.map +1 -0
- package/dist/production/src/model/resolveDefaultColumnType.js +28 -0
- package/dist/production/src/model/resolveDefaultColumnType.js.map +1 -0
- package/dist/production/src/schemaFilter.cjs +24 -0
- package/dist/production/src/schemaFilter.cjs.map +1 -0
- package/dist/production/src/schemaFilter.js +24 -0
- package/dist/production/src/schemaFilter.js.map +1 -0
- package/dist/production/src/schemaNormalizer.cjs +70 -0
- package/dist/production/src/schemaNormalizer.cjs.map +1 -0
- package/dist/production/src/schemaNormalizer.js +70 -0
- package/dist/production/src/schemaNormalizer.js.map +1 -0
- package/dist/production/src/type-schema/acl.cjs +143 -0
- package/dist/production/src/type-schema/acl.cjs.map +1 -0
- package/dist/production/src/type-schema/acl.js +126 -0
- package/dist/production/src/type-schema/acl.js.map +1 -0
- package/dist/production/src/type-schema/actions.cjs +87 -0
- package/dist/production/src/type-schema/actions.cjs.map +1 -0
- package/dist/production/src/type-schema/actions.js +70 -0
- package/dist/production/src/type-schema/actions.js.map +1 -0
- package/dist/production/src/type-schema/condition.cjs +87 -0
- package/dist/production/src/type-schema/condition.cjs.map +1 -0
- package/dist/production/src/type-schema/condition.js +70 -0
- package/dist/production/src/type-schema/condition.js.map +1 -0
- package/dist/production/src/type-schema/model.cjs +195 -0
- package/dist/production/src/type-schema/model.cjs.map +1 -0
- package/dist/production/src/type-schema/model.js +178 -0
- package/dist/production/src/type-schema/model.js.map +1 -0
- package/dist/production/src/type-schema/settings.cjs +32 -0
- package/dist/production/src/type-schema/settings.cjs.map +1 -0
- package/dist/production/src/type-schema/settings.js +15 -0
- package/dist/production/src/type-schema/settings.js.map +1 -0
- package/dist/production/src/type-schema/validation.cjs +115 -0
- package/dist/production/src/type-schema/validation.cjs.map +1 -0
- package/dist/production/src/type-schema/validation.js +98 -0
- package/dist/production/src/type-schema/validation.js.map +1 -0
- package/dist/production/src/type-schema/where.cjs +44 -0
- package/dist/production/src/type-schema/where.cjs.map +1 -0
- package/dist/production/src/type-schema/where.js +27 -0
- package/dist/production/src/type-schema/where.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/deepCompare.cjs +134 -0
- package/dist/production/src/utils/deepCompare.cjs.map +1 -0
- package/dist/production/src/utils/deepCompare.js +134 -0
- package/dist/production/src/utils/deepCompare.js.map +1 -0
- package/dist/production/src/utils/isIt.cjs +7 -0
- package/dist/production/src/utils/isIt.cjs.map +1 -0
- package/dist/production/src/utils/isIt.js +7 -0
- package/dist/production/src/utils/isIt.js.map +1 -0
- package/dist/production/src/utils/printJsValue.cjs +42 -0
- package/dist/production/src/utils/printJsValue.cjs.map +1 -0
- package/dist/production/src/utils/printJsValue.js +42 -0
- package/dist/production/src/utils/printJsValue.js.map +1 -0
- package/dist/production/src/validation/AclValidator.cjs +168 -0
- package/dist/production/src/validation/AclValidator.cjs.map +1 -0
- package/dist/production/src/validation/AclValidator.js +168 -0
- package/dist/production/src/validation/AclValidator.js.map +1 -0
- package/dist/production/src/validation/ActionsValidator.cjs +127 -0
- package/dist/production/src/validation/ActionsValidator.cjs.map +1 -0
- package/dist/production/src/validation/ActionsValidator.js +110 -0
- package/dist/production/src/validation/ActionsValidator.js.map +1 -0
- package/dist/production/src/validation/MembershipResolver.cjs +126 -0
- package/dist/production/src/validation/MembershipResolver.cjs.map +1 -0
- package/dist/production/src/validation/MembershipResolver.js +126 -0
- package/dist/production/src/validation/MembershipResolver.js.map +1 -0
- package/dist/production/src/validation/ModelValidator.cjs +310 -0
- package/dist/production/src/validation/ModelValidator.cjs.map +1 -0
- package/dist/production/src/validation/ModelValidator.js +310 -0
- package/dist/production/src/validation/ModelValidator.js.map +1 -0
- package/dist/production/src/validation/SchemaValidator.cjs +29 -0
- package/dist/production/src/validation/SchemaValidator.cjs.map +1 -0
- package/dist/production/src/validation/SchemaValidator.js +29 -0
- package/dist/production/src/validation/SchemaValidator.js.map +1 -0
- package/dist/production/src/validation/ValidationValidator.cjs +121 -0
- package/dist/production/src/validation/ValidationValidator.cjs.map +1 -0
- package/dist/production/src/validation/ValidationValidator.js +121 -0
- package/dist/production/src/validation/ValidationValidator.js.map +1 -0
- package/dist/production/src/validation/errors.cjs +16 -0
- package/dist/production/src/validation/errors.cjs.map +1 -0
- package/dist/production/src/validation/errors.js +16 -0
- package/dist/production/src/validation/errors.js.map +1 -0
- package/dist/tests/cases/unit/schemas/acl.d.ts +7 -7
- package/dist/tests/cases/unit/schemas/acl.d.ts.map +1 -1
- package/dist/tests/cases/unit/schemas/basic.d.ts +1 -1
- package/dist/tests/cases/unit/schemas/basic.d.ts.map +1 -1
- package/dist/tests/cases/unit/schemas/enum.d.ts +3 -3
- package/dist/tests/cases/unit/schemas/enum.d.ts.map +1 -1
- package/dist/tests/cases/unit/schemas/relations.d.ts +7 -7
- package/dist/tests/cases/unit/schemas/relations.d.ts.map +1 -1
- package/dist/tests/cases/unit/schemas/unique.d.ts +1 -1
- package/dist/tests/cases/unit/schemas/unique.d.ts.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/{src → types}/acl/schemaUtils.d.ts.map +1 -1
- package/dist/{src → types}/dataUtils.d.ts +1 -1
- package/dist/types/dataUtils.d.ts.map +1 -0
- package/dist/{src → types}/lax/schema.d.ts +21 -21
- package/dist/{src → types}/model/modelUtils.d.ts +1 -1
- package/dist/types/model/modelUtils.d.ts.map +1 -0
- package/dist/{src → types}/model/resolveDefaultColumnType.d.ts.map +1 -1
- package/dist/{src → types}/schemaFilter.d.ts.map +1 -1
- package/dist/{src → types}/schemaNormalizer.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/{src → types}/type-schema/condition.d.ts +1 -2
- package/dist/types/type-schema/condition.d.ts.map +1 -0
- package/dist/types/type-schema/settings.d.ts +46 -0
- package/dist/types/type-schema/settings.d.ts.map +1 -0
- package/dist/{src → types}/type-schema/where.d.ts.map +1 -1
- package/dist/{src → types}/utils/deepCompare.d.ts.map +1 -1
- package/dist/types/utils/isIt.d.ts +2 -0
- package/dist/{src → types}/utils/isIt.d.ts.map +1 -1
- package/dist/{src → types}/utils/printJsValue.d.ts.map +1 -1
- package/dist/{src → types}/validation/MembershipResolver.d.ts.map +1 -1
- package/package.json +24 -12
- package/src/tsconfig.json +1 -1
- package/tests/cases/unit/tsDefinitionGenerator.test.ts +4 -3
- package/tests/tsconfig.json +2 -1
- package/vitest.config.ts +3 -0
- package/dist/src/acl/AllowAllPermissionFactory.js +0 -42
- package/dist/src/acl/AllowAllPermissionFactory.js.map +0 -1
- package/dist/src/acl/PredicateDefinitionProcessor.js +0 -75
- package/dist/src/acl/PredicateDefinitionProcessor.js.map +0 -1
- package/dist/src/acl/index.js +0 -20
- package/dist/src/acl/index.js.map +0 -1
- package/dist/src/acl/schemaUtils.js +0 -9
- package/dist/src/acl/schemaUtils.js.map +0 -1
- package/dist/src/dataUtils.d.ts.map +0 -1
- package/dist/src/dataUtils.js +0 -58
- package/dist/src/dataUtils.js.map +0 -1
- package/dist/src/definition-generator/AclDefinitionCodeGenerator.js +0 -116
- package/dist/src/definition-generator/AclDefinitionCodeGenerator.js.map +0 -1
- package/dist/src/definition-generator/DefinitionCodeGenerator.js +0 -216
- package/dist/src/definition-generator/DefinitionCodeGenerator.js.map +0 -1
- package/dist/src/definition-generator/DefinitionNamingConventions.js +0 -18
- package/dist/src/definition-generator/DefinitionNamingConventions.js.map +0 -1
- package/dist/src/definition-generator/TsDefinitionGenerator.js +0 -20
- package/dist/src/definition-generator/TsDefinitionGenerator.js.map +0 -1
- package/dist/src/definition-generator/index.js +0 -21
- package/dist/src/definition-generator/index.js.map +0 -1
- package/dist/src/index.js +0 -59
- package/dist/src/index.js.map +0 -1
- package/dist/src/lax/LaxSchemaConverter.js +0 -203
- package/dist/src/lax/LaxSchemaConverter.js.map +0 -1
- package/dist/src/lax/index.js +0 -21
- package/dist/src/lax/index.js.map +0 -1
- package/dist/src/lax/schema.js +0 -67
- package/dist/src/lax/schema.js.map +0 -1
- package/dist/src/model/NamingConventions.js +0 -29
- package/dist/src/model/NamingConventions.js.map +0 -1
- package/dist/src/model/index.js +0 -20
- package/dist/src/model/index.js.map +0 -1
- package/dist/src/model/modelUtils.d.ts.map +0 -1
- package/dist/src/model/modelUtils.js +0 -219
- package/dist/src/model/modelUtils.js.map +0 -1
- package/dist/src/model/resolveDefaultColumnType.js +0 -29
- package/dist/src/model/resolveDefaultColumnType.js.map +0 -1
- package/dist/src/schemaFilter.js +0 -29
- package/dist/src/schemaFilter.js.map +0 -1
- package/dist/src/schemaNormalizer.js +0 -72
- package/dist/src/schemaNormalizer.js.map +0 -1
- package/dist/src/tsconfig.tsbuildinfo +0 -1
- package/dist/src/type-schema/acl.js +0 -114
- package/dist/src/type-schema/acl.js.map +0 -1
- package/dist/src/type-schema/actions.js +0 -77
- package/dist/src/type-schema/actions.js.map +0 -1
- package/dist/src/type-schema/condition.d.ts.map +0 -1
- package/dist/src/type-schema/condition.js +0 -95
- package/dist/src/type-schema/condition.js.map +0 -1
- package/dist/src/type-schema/index.js +0 -22
- package/dist/src/type-schema/index.js.map +0 -1
- package/dist/src/type-schema/model.js +0 -156
- package/dist/src/type-schema/model.js.map +0 -1
- package/dist/src/type-schema/settings.d.ts +0 -35
- package/dist/src/type-schema/settings.d.ts.map +0 -1
- package/dist/src/type-schema/settings.js +0 -39
- package/dist/src/type-schema/settings.js.map +0 -1
- package/dist/src/type-schema/validation.js +0 -95
- package/dist/src/type-schema/validation.js.map +0 -1
- package/dist/src/type-schema/where.js +0 -50
- package/dist/src/type-schema/where.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/deepCompare.js +0 -136
- package/dist/src/utils/deepCompare.js.map +0 -1
- package/dist/src/utils/index.js +0 -20
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/isIt.d.ts +0 -2
- package/dist/src/utils/isIt.js +0 -11
- package/dist/src/utils/isIt.js.map +0 -1
- package/dist/src/utils/printJsValue.js +0 -57
- package/dist/src/utils/printJsValue.js.map +0 -1
- package/dist/src/validation/AclValidator.js +0 -147
- package/dist/src/validation/AclValidator.js.map +0 -1
- package/dist/src/validation/ActionsValidator.js +0 -134
- package/dist/src/validation/ActionsValidator.js.map +0 -1
- package/dist/src/validation/MembershipResolver.js +0 -113
- package/dist/src/validation/MembershipResolver.js.map +0 -1
- package/dist/src/validation/ModelValidator.js +0 -306
- package/dist/src/validation/ModelValidator.js.map +0 -1
- package/dist/src/validation/SchemaValidator.js +0 -27
- package/dist/src/validation/SchemaValidator.js.map +0 -1
- package/dist/src/validation/ValidationValidator.js +0 -109
- package/dist/src/validation/ValidationValidator.js.map +0 -1
- package/dist/src/validation/errors.js +0 -17
- package/dist/src/validation/errors.js.map +0 -1
- package/dist/src/validation/index.js +0 -23
- package/dist/src/validation/index.js.map +0 -1
- package/dist/tests/cases/unit/conditionSchema.test.js +0 -50
- package/dist/tests/cases/unit/conditionSchema.test.js.map +0 -1
- package/dist/tests/cases/unit/deepCompare.test.js +0 -43
- package/dist/tests/cases/unit/deepCompare.test.js.map +0 -1
- package/dist/tests/cases/unit/laxSchemaConverter.test.js +0 -118
- package/dist/tests/cases/unit/laxSchemaConverter.test.js.map +0 -1
- package/dist/tests/cases/unit/membershipResolver.test.js +0 -168
- package/dist/tests/cases/unit/membershipResolver.test.js.map +0 -1
- package/dist/tests/cases/unit/modelValidator.test.js +0 -97
- package/dist/tests/cases/unit/modelValidator.test.js.map +0 -1
- package/dist/tests/cases/unit/printJsvalue.test.js +0 -90
- package/dist/tests/cases/unit/printJsvalue.test.js.map +0 -1
- package/dist/tests/cases/unit/schemas/acl.js +0 -47
- package/dist/tests/cases/unit/schemas/acl.js.map +0 -1
- package/dist/tests/cases/unit/schemas/basic.js +0 -11
- package/dist/tests/cases/unit/schemas/basic.js.map +0 -1
- package/dist/tests/cases/unit/schemas/enum.js +0 -13
- package/dist/tests/cases/unit/schemas/enum.js.map +0 -1
- package/dist/tests/cases/unit/schemas/relations.js +0 -27
- package/dist/tests/cases/unit/schemas/relations.js.map +0 -1
- package/dist/tests/cases/unit/schemas/unique.js +0 -20
- package/dist/tests/cases/unit/schemas/unique.js.map +0 -1
- package/dist/tests/cases/unit/tsDefinitionGenerator.test.js +0 -58
- package/dist/tests/cases/unit/tsDefinitionGenerator.test.js.map +0 -1
- package/dist/tests/cases/unit/whereSchema.test.js +0 -85
- package/dist/tests/cases/unit/whereSchema.test.js.map +0 -1
- /package/dist/{src → types}/acl/AllowAllPermissionFactory.d.ts +0 -0
- /package/dist/{src → types}/acl/AllowAllPermissionFactory.d.ts.map +0 -0
- /package/dist/{src → types}/acl/PredicateDefinitionProcessor.d.ts +0 -0
- /package/dist/{src → types}/acl/PredicateDefinitionProcessor.d.ts.map +0 -0
- /package/dist/{src → types}/acl/index.d.ts +0 -0
- /package/dist/{src → types}/acl/index.d.ts.map +0 -0
- /package/dist/{src → types}/acl/schemaUtils.d.ts +0 -0
- /package/dist/{src → types}/definition-generator/AclDefinitionCodeGenerator.d.ts +0 -0
- /package/dist/{src → types}/definition-generator/AclDefinitionCodeGenerator.d.ts.map +0 -0
- /package/dist/{src → types}/definition-generator/DefinitionCodeGenerator.d.ts +0 -0
- /package/dist/{src → types}/definition-generator/DefinitionCodeGenerator.d.ts.map +0 -0
- /package/dist/{src → types}/definition-generator/DefinitionNamingConventions.d.ts +0 -0
- /package/dist/{src → types}/definition-generator/DefinitionNamingConventions.d.ts.map +0 -0
- /package/dist/{src → types}/definition-generator/TsDefinitionGenerator.d.ts +0 -0
- /package/dist/{src → types}/definition-generator/TsDefinitionGenerator.d.ts.map +0 -0
- /package/dist/{src → types}/definition-generator/index.d.ts +0 -0
- /package/dist/{src → types}/definition-generator/index.d.ts.map +0 -0
- /package/dist/{src → types}/index.d.ts +0 -0
- /package/dist/{src → types}/index.d.ts.map +0 -0
- /package/dist/{src → types}/lax/LaxSchemaConverter.d.ts +0 -0
- /package/dist/{src → types}/lax/LaxSchemaConverter.d.ts.map +0 -0
- /package/dist/{src → types}/lax/index.d.ts +0 -0
- /package/dist/{src → types}/lax/index.d.ts.map +0 -0
- /package/dist/{src → types}/lax/schema.d.ts.map +0 -0
- /package/dist/{src → types}/model/NamingConventions.d.ts +0 -0
- /package/dist/{src → types}/model/NamingConventions.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}/model/resolveDefaultColumnType.d.ts +0 -0
- /package/dist/{src → types}/schemaFilter.d.ts +0 -0
- /package/dist/{src → types}/schemaNormalizer.d.ts +0 -0
- /package/dist/{src → types}/type-schema/acl.d.ts +0 -0
- /package/dist/{src → types}/type-schema/acl.d.ts.map +0 -0
- /package/dist/{src → types}/type-schema/actions.d.ts +0 -0
- /package/dist/{src → types}/type-schema/actions.d.ts.map +0 -0
- /package/dist/{src → types}/type-schema/index.d.ts +0 -0
- /package/dist/{src → types}/type-schema/index.d.ts.map +0 -0
- /package/dist/{src → types}/type-schema/model.d.ts +0 -0
- /package/dist/{src → types}/type-schema/model.d.ts.map +0 -0
- /package/dist/{src → types}/type-schema/validation.d.ts +0 -0
- /package/dist/{src → types}/type-schema/validation.d.ts.map +0 -0
- /package/dist/{src → types}/type-schema/where.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/deepCompare.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/printJsValue.d.ts +0 -0
- /package/dist/{src → types}/validation/AclValidator.d.ts +0 -0
- /package/dist/{src → types}/validation/AclValidator.d.ts.map +0 -0
- /package/dist/{src → types}/validation/ActionsValidator.d.ts +0 -0
- /package/dist/{src → types}/validation/ActionsValidator.d.ts.map +0 -0
- /package/dist/{src → types}/validation/MembershipResolver.d.ts +0 -0
- /package/dist/{src → types}/validation/ModelValidator.d.ts +0 -0
- /package/dist/{src → types}/validation/ModelValidator.d.ts.map +0 -0
- /package/dist/{src → types}/validation/SchemaValidator.d.ts +0 -0
- /package/dist/{src → types}/validation/SchemaValidator.d.ts.map +0 -0
- /package/dist/{src → types}/validation/ValidationValidator.d.ts +0 -0
- /package/dist/{src → types}/validation/ValidationValidator.d.ts.map +0 -0
- /package/dist/{src → types}/validation/errors.d.ts +0 -0
- /package/dist/{src → types}/validation/errors.d.ts.map +0 -0
- /package/dist/{src → types}/validation/index.d.ts +0 -0
- /package/dist/{src → types}/validation/index.d.ts.map +0 -0
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelValidator = void 0;
|
|
4
|
-
const schema_1 = require("@contember/schema");
|
|
5
|
-
const errors_1 = require("./errors");
|
|
6
|
-
const model_1 = require("../model");
|
|
7
|
-
const IDENTIFIER_PATTERN = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
|
|
8
|
-
const RESERVED_WORDS = ['and', 'or', 'not'];
|
|
9
|
-
class ModelValidator {
|
|
10
|
-
constructor(model) {
|
|
11
|
-
this.model = model;
|
|
12
|
-
}
|
|
13
|
-
validate() {
|
|
14
|
-
const errorBuilder = new errors_1.ErrorBuilder([], []);
|
|
15
|
-
this.validateEnums(this.model.enums, errorBuilder.for('enums'));
|
|
16
|
-
this.validateEntities(this.model.entities, errorBuilder.for('entities'));
|
|
17
|
-
return errorBuilder.errors;
|
|
18
|
-
}
|
|
19
|
-
validateEnums(enums, errors) {
|
|
20
|
-
for (const [enumName, enumValues] of Object.entries(enums)) {
|
|
21
|
-
for (const value of enumValues) {
|
|
22
|
-
const valueErrors = errors.for(enumName, value);
|
|
23
|
-
this.validateIdentifier(value, valueErrors);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
validateEntities(entities, errors) {
|
|
28
|
-
for (const [entityName, entity] of Object.entries(entities)) {
|
|
29
|
-
const entityErrors = errors.for(entityName);
|
|
30
|
-
if (entity.name !== entityName) {
|
|
31
|
-
entityErrors.add('MODEL_NAME_MISMATCH', `Entity name "${entity.name}" does not match the name in a map "${entityName}"`);
|
|
32
|
-
}
|
|
33
|
-
this.validateEntity(entity, entityErrors);
|
|
34
|
-
}
|
|
35
|
-
const entitiesArr = Object.values(this.model.entities);
|
|
36
|
-
this.validateMetaSuffixCollisions(entitiesArr, errors);
|
|
37
|
-
this.validateTableNameCollisions(entitiesArr, errors);
|
|
38
|
-
this.validateAliasedTypesCollision(entitiesArr, errors);
|
|
39
|
-
}
|
|
40
|
-
validateEntity(entity, errors) {
|
|
41
|
-
this.validateIdentifier(entity.name, errors);
|
|
42
|
-
this.validateEntityName(entity.name, errors);
|
|
43
|
-
for (const [fieldName, field] of Object.entries(entity.fields)) {
|
|
44
|
-
const fieldErrors = errors.for(fieldName);
|
|
45
|
-
this.validateField(entity, field, fieldErrors);
|
|
46
|
-
if (field.name !== fieldName) {
|
|
47
|
-
fieldErrors.add('MODEL_NAME_MISMATCH', `Field name "${field.name}" does not match the name in a map "${fieldName}"`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
this.validateUniqueConstraints(entity.unique, new Set(Object.keys(entity.fields)), errors.for('unique'));
|
|
51
|
-
this.validateColumnNamesCollision(entity, errors);
|
|
52
|
-
}
|
|
53
|
-
validateUniqueConstraints(uniqueConstraints, fields, errors) {
|
|
54
|
-
for (const constraint of uniqueConstraints) {
|
|
55
|
-
for (const field of constraint.fields) {
|
|
56
|
-
if (!fields.has(field)) {
|
|
57
|
-
errors.add('MODEL_UNDEFINED_FIELD', `Referenced field ${field} in a constraint does not exists`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
validateColumnNamesCollision(entity, errors) {
|
|
63
|
-
const existingColumnNames = new Map();
|
|
64
|
-
const addColumnName = (fieldName, columnName) => {
|
|
65
|
-
if (existingColumnNames.has(columnName)) {
|
|
66
|
-
const exitingName = existingColumnNames.get(columnName);
|
|
67
|
-
errors
|
|
68
|
-
.for(fieldName)
|
|
69
|
-
.add('MODEL_NAME_COLLISION', `Column name "${columnName}" on field "${fieldName}" collides with a column name on field "${exitingName}".`);
|
|
70
|
-
}
|
|
71
|
-
existingColumnNames.set(columnName, fieldName);
|
|
72
|
-
};
|
|
73
|
-
(0, model_1.acceptEveryFieldVisitor)(this.model, entity, {
|
|
74
|
-
visitColumn: ({ column }) => {
|
|
75
|
-
addColumnName(column.name, column.columnName);
|
|
76
|
-
},
|
|
77
|
-
visitOneHasOneOwning: ({ relation }) => {
|
|
78
|
-
addColumnName(relation.name, relation.joiningColumn.columnName);
|
|
79
|
-
},
|
|
80
|
-
visitManyHasOne: ({ relation }) => {
|
|
81
|
-
addColumnName(relation.name, relation.joiningColumn.columnName);
|
|
82
|
-
},
|
|
83
|
-
visitOneHasOneInverse: () => { },
|
|
84
|
-
visitOneHasMany: () => { },
|
|
85
|
-
visitManyHasManyInverse: () => { },
|
|
86
|
-
visitManyHasManyOwning: () => { },
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
validateField(partialEntity, field, errors) {
|
|
90
|
-
this.validateIdentifier(field.name, errors);
|
|
91
|
-
if (isRelation(field)) {
|
|
92
|
-
this.validateRelation(partialEntity, field, errors);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
if (field.sequence && field.nullable) {
|
|
96
|
-
errors.add('MODEL_INVALID_COLUMN_DEFINITION', 'Column with sequence cannot be nullable.');
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
validateRelation(partialEntity, field, errors) {
|
|
101
|
-
var _a;
|
|
102
|
-
const entityName = partialEntity.name;
|
|
103
|
-
const targetEntityName = field.target;
|
|
104
|
-
const targetEntity = this.model.entities[targetEntityName] || undefined;
|
|
105
|
-
if (!targetEntity) {
|
|
106
|
-
return errors.add('MODEL_UNDEFINED_ENTITY', `Target entity ${targetEntityName} not found`);
|
|
107
|
-
}
|
|
108
|
-
if (((it) => 'orderBy' in it)(field)) {
|
|
109
|
-
(_a = field.orderBy) === null || _a === void 0 ? void 0 : _a.forEach(it => {
|
|
110
|
-
let entity = targetEntity;
|
|
111
|
-
for (let i = 0; i < it.path.length; i++) {
|
|
112
|
-
const orderByField = entity.fields[it.path[i]];
|
|
113
|
-
const pathStr = it.path.slice(0, i + 1).join('.');
|
|
114
|
-
if (!orderByField) {
|
|
115
|
-
errors.add('MODEL_UNDEFINED_FIELD', `Invalid orderBy of ${entityName}::${field.name}: field ${pathStr} is not defined`);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if (i + 1 < it.path.length) {
|
|
119
|
-
const targetEntity = (0, model_1.getTargetEntity)(this.model, entity, orderByField.name);
|
|
120
|
-
if (!targetEntity) {
|
|
121
|
-
errors.add('MODEL_RELATION_REQUIRED', `Invalid orderBy of ${entityName}::${field.name}: field ${pathStr} is not a relation`);
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
entity = targetEntity;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
if (partialEntity.view) {
|
|
130
|
-
if (field.type === schema_1.Model.RelationType.ManyHasMany) {
|
|
131
|
-
return errors.add('MODEL_INVALID_VIEW_USAGE', 'Many-has-many relation is not allowed on a view entity.');
|
|
132
|
-
}
|
|
133
|
-
if (!targetEntity.view &&
|
|
134
|
-
field.type === schema_1.Model.RelationType.OneHasMany) {
|
|
135
|
-
return errors.add('MODEL_INVALID_VIEW_USAGE', 'One-has-many relation fields on views must point to a view entity.');
|
|
136
|
-
}
|
|
137
|
-
if (!targetEntity.view &&
|
|
138
|
-
field.type === schema_1.Model.RelationType.OneHasOne &&
|
|
139
|
-
!('joiningColumn' in field)) {
|
|
140
|
-
return errors.add('MODEL_INVALID_VIEW_USAGE', 'One-has-one relation fields on views must be owning or point to a view entity.');
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if ((0, model_1.isInverseRelation)(field)) {
|
|
144
|
-
const ownedBy = field.ownedBy;
|
|
145
|
-
const targetField = targetEntity.fields[ownedBy];
|
|
146
|
-
const relationDescription = `Target relation ${targetEntityName}::${ownedBy}:`;
|
|
147
|
-
if (!targetField) {
|
|
148
|
-
return errors.add('MODEL_UNDEFINED_FIELD', `${relationDescription} not exists`);
|
|
149
|
-
}
|
|
150
|
-
if (!isRelation(targetField)) {
|
|
151
|
-
return errors.add('MODEL_RELATION_REQUIRED', `${relationDescription} not a relation`);
|
|
152
|
-
}
|
|
153
|
-
if (targetField.target !== entityName) {
|
|
154
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference to entity ${entityName} expected, but ${targetField.target} given`);
|
|
155
|
-
}
|
|
156
|
-
if (!(0, model_1.isOwningRelation)(targetField)) {
|
|
157
|
-
errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} not an owning relation`);
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
if (!targetField.inversedBy) {
|
|
161
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} inverse relation is not set`);
|
|
162
|
-
}
|
|
163
|
-
if (targetField.inversedBy !== field.name) {
|
|
164
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference ${entityName}::${field.name} expected, ${targetField.target}::${targetField.inversedBy} given`);
|
|
165
|
-
}
|
|
166
|
-
if (field.type === schema_1.Model.RelationType.OneHasOne && targetField.type !== schema_1.Model.RelationType.OneHasOne) {
|
|
167
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "OneHasOne" type expected, "${targetField.type}" given`);
|
|
168
|
-
}
|
|
169
|
-
if (field.type === schema_1.Model.RelationType.OneHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasOne) {
|
|
170
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasOne" type expected, "${targetField.type}" given`);
|
|
171
|
-
}
|
|
172
|
-
if (field.type === schema_1.Model.RelationType.ManyHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasMany) {
|
|
173
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasMany" type expected, "${targetField.type}" given`);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
const inversedBy = field.inversedBy;
|
|
178
|
-
if (targetEntity.view) {
|
|
179
|
-
if ('joiningColumn' in field) {
|
|
180
|
-
return errors.add('MODEL_INVALID_VIEW_USAGE', `View entity ${targetEntity.name} cannot be referenced from an owning relation. Try switching the owning side.`);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
if (inversedBy) {
|
|
184
|
-
const targetField = targetEntity.fields[inversedBy];
|
|
185
|
-
const relationDescription = `Target relation ${targetEntityName}::${inversedBy}:`;
|
|
186
|
-
if (!targetField) {
|
|
187
|
-
return errors.add('MODEL_UNDEFINED_FIELD', `${relationDescription} not exists`);
|
|
188
|
-
}
|
|
189
|
-
if (!isRelation(targetField)) {
|
|
190
|
-
return errors.add('MODEL_RELATION_REQUIRED', `${relationDescription} not a relation`);
|
|
191
|
-
}
|
|
192
|
-
if (targetField.target !== entityName) {
|
|
193
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference to entity ${entityName} expected, but ${targetField.target} given`);
|
|
194
|
-
}
|
|
195
|
-
if (!(0, model_1.isInverseRelation)(targetField)) {
|
|
196
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} not an inverse relation`);
|
|
197
|
-
}
|
|
198
|
-
if (!targetField.ownedBy) {
|
|
199
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} owning relation is not set`);
|
|
200
|
-
}
|
|
201
|
-
if (targetField.ownedBy !== field.name) {
|
|
202
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference ${entityName}::${field.name} expected, ${targetField.target}::${targetField.ownedBy} given`);
|
|
203
|
-
}
|
|
204
|
-
if (field.type === schema_1.Model.RelationType.OneHasOne && targetField.type !== schema_1.Model.RelationType.OneHasOne) {
|
|
205
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "OneHasOne" type expected, "${targetField.type}" given`);
|
|
206
|
-
}
|
|
207
|
-
if (field.type === schema_1.Model.RelationType.ManyHasOne && targetField.type !== schema_1.Model.RelationType.OneHasMany) {
|
|
208
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasOne" type expected, "${targetField.type}" given`);
|
|
209
|
-
}
|
|
210
|
-
if (field.type === schema_1.Model.RelationType.ManyHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasMany) {
|
|
211
|
-
return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasMany" type expected, "${targetField.type}" given`);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
validateIdentifier(value, errorBuilder) {
|
|
217
|
-
if (!value.match(IDENTIFIER_PATTERN)) {
|
|
218
|
-
return errorBuilder.add('MODEL_INVALID_IDENTIFIER', `${value} must match pattern ${IDENTIFIER_PATTERN.source}`);
|
|
219
|
-
}
|
|
220
|
-
if (RESERVED_WORDS.includes(value)) {
|
|
221
|
-
errorBuilder.add('MODEL_INVALID_IDENTIFIER', `${value} is reserved word`);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
validateEntityName(value, errorBuilder) {
|
|
225
|
-
if (['Query', 'Mutation'].includes(value)) {
|
|
226
|
-
errorBuilder.add('MODEL_INVALID_ENTITY_NAME', `${value} is reserved word`);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
validateMetaSuffixCollisions(entities, errorBuilder) {
|
|
230
|
-
const entityNames = new Set(entities.map(it => it.name));
|
|
231
|
-
for (const entity of entities) {
|
|
232
|
-
if (entity.name.endsWith('Meta')) {
|
|
233
|
-
const baseName = entity.name.substring(0, entity.name.length - 4);
|
|
234
|
-
if (entityNames.has(baseName)) {
|
|
235
|
-
errorBuilder.for(entity.name)
|
|
236
|
-
.add('MODEL_NAME_COLLISION', `entity ${entity.name} collides with entity ${baseName}, because a GraphQL type with "Meta" suffix is created for every entity`);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
validateTableNameCollisions(entities, errorBuilder) {
|
|
242
|
-
const relationNames = {};
|
|
243
|
-
for (const entity of entities) {
|
|
244
|
-
const description = `table name ${entity.tableName} of entity ${entity.name}`;
|
|
245
|
-
if (relationNames[entity.tableName]) {
|
|
246
|
-
errorBuilder
|
|
247
|
-
.for(entity.name)
|
|
248
|
-
.add('MODEL_NAME_COLLISION', `${description} collides with a ${relationNames[entity.tableName]}`);
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
relationNames[entity.tableName] = description;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
for (const entity of entities) {
|
|
255
|
-
const entityErrorBuilder = errorBuilder.for(entity.name);
|
|
256
|
-
(0, model_1.acceptEveryFieldVisitor)(this.model, entity, {
|
|
257
|
-
visitManyHasManyOwning: ({ entity, relation }) => {
|
|
258
|
-
const joiningTable = relation.joiningTable;
|
|
259
|
-
const description = `joining table name ${joiningTable.tableName} of relation ${entity.name}::${relation.name}`;
|
|
260
|
-
if (relationNames[joiningTable.tableName]) {
|
|
261
|
-
entityErrorBuilder
|
|
262
|
-
.for(relation.name)
|
|
263
|
-
.add('MODEL_NAME_COLLISION', `${description} collides with a ${relationNames[joiningTable.tableName]}.` +
|
|
264
|
-
'Consider using plural for a relation name or change the joining table name using .joiningTable(...) in schema definition.');
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
relationNames[joiningTable.tableName] = description;
|
|
268
|
-
}
|
|
269
|
-
},
|
|
270
|
-
visitColumn: () => { },
|
|
271
|
-
visitManyHasManyInverse: () => { },
|
|
272
|
-
visitOneHasMany: () => { },
|
|
273
|
-
visitOneHasOneInverse: () => { },
|
|
274
|
-
visitOneHasOneOwning: () => { },
|
|
275
|
-
visitManyHasOne: () => { },
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
validateAliasedTypesCollision(entities, errorBuilder) {
|
|
280
|
-
const aliasedTypes = new Map();
|
|
281
|
-
for (const entity of entities) {
|
|
282
|
-
(0, model_1.acceptEveryFieldVisitor)(this.model, entity, {
|
|
283
|
-
visitColumn: ({ column }) => {
|
|
284
|
-
if (!column.typeAlias) {
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
if (aliasedTypes.has(column.typeAlias) && aliasedTypes.get(column.typeAlias) !== column.type) {
|
|
288
|
-
errorBuilder
|
|
289
|
-
.for(column.name)
|
|
290
|
-
.add('MODEL_NAME_COLLISION', `Type alias ${column.typeAlias} already exists for base type ${column.type}`);
|
|
291
|
-
}
|
|
292
|
-
aliasedTypes.set(column.typeAlias, column.type);
|
|
293
|
-
},
|
|
294
|
-
visitManyHasManyOwning: () => { },
|
|
295
|
-
visitManyHasManyInverse: () => { },
|
|
296
|
-
visitOneHasMany: () => { },
|
|
297
|
-
visitOneHasOneInverse: () => { },
|
|
298
|
-
visitOneHasOneOwning: () => { },
|
|
299
|
-
visitManyHasOne: () => { },
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
exports.ModelValidator = ModelValidator;
|
|
305
|
-
const isRelation = (field) => Object.values(schema_1.Model.RelationType).includes(field.type);
|
|
306
|
-
//# sourceMappingURL=ModelValidator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelValidator.js","sourceRoot":"","sources":["../../../src/validation/ModelValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SchemaValidator = void 0;
|
|
4
|
-
const AclValidator_1 = require("./AclValidator");
|
|
5
|
-
const ModelValidator_1 = require("./ModelValidator");
|
|
6
|
-
const ValidationValidator_1 = require("./ValidationValidator");
|
|
7
|
-
const ActionsValidator_1 = require("./ActionsValidator");
|
|
8
|
-
class SchemaValidator {
|
|
9
|
-
static validate(schema, skippedErrors = []) {
|
|
10
|
-
const modelValidator = new ModelValidator_1.ModelValidator(schema.model);
|
|
11
|
-
const modelErrors = modelValidator.validate();
|
|
12
|
-
const aclValidator = new AclValidator_1.AclValidator(schema.model);
|
|
13
|
-
const aclErrors = aclValidator.validate(schema.acl);
|
|
14
|
-
const validationValidator = new ValidationValidator_1.ValidationValidator(schema.model);
|
|
15
|
-
const validationErrors = validationValidator.validate(schema.validation);
|
|
16
|
-
const actionsValidator = new ActionsValidator_1.ActionsValidator(schema.model);
|
|
17
|
-
const actionsErrors = actionsValidator.validate(schema.actions);
|
|
18
|
-
const allErrors = [...aclErrors, ...modelErrors, ...validationErrors, ...actionsErrors];
|
|
19
|
-
if (skippedErrors.length === 0) {
|
|
20
|
-
return allErrors;
|
|
21
|
-
}
|
|
22
|
-
return allErrors.filter(err => !skippedErrors.some(rule => err.code === rule.code
|
|
23
|
-
&& (!rule.path || err.path.join('.') === rule.path)));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.SchemaValidator = SchemaValidator;
|
|
27
|
-
//# sourceMappingURL=SchemaValidator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../../src/validation/SchemaValidator.ts"],"names":[],"mappings":";;;AAEA,iDAA6C;AAC7C,qDAAiD;AACjD,+DAA2D;AAC3D,yDAAqD;AAQrD,MAAa,eAAe;IACpB,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,gBAAgD,EAAE;QACxF,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvD,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;QAE7C,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAGnD,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACjE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAExE,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3D,MAAM,aAAa,GAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEhE,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAA;QACvF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,SAAS,CAAA;SAChB;QACD,OAAO,SAAS,CAAC,MAAM,CACtB,GAAG,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;eAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CACpD,CACD,CAAA;IACF,CAAC;CACD;AA1BD,0CA0BC"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ValidationValidator = void 0;
|
|
4
|
-
const errors_1 = require("./errors");
|
|
5
|
-
const model_1 = require("../model");
|
|
6
|
-
class ValidationValidator {
|
|
7
|
-
constructor(model) {
|
|
8
|
-
this.model = model;
|
|
9
|
-
}
|
|
10
|
-
validate(schema) {
|
|
11
|
-
const errorBuilder = new errors_1.ErrorBuilder([], ['validation']);
|
|
12
|
-
for (const entityName in schema) {
|
|
13
|
-
const entity = this.model.entities[entityName];
|
|
14
|
-
const entityErrorBuilder = errorBuilder.for(entityName);
|
|
15
|
-
if (!entity) {
|
|
16
|
-
entityErrorBuilder.add('VALIDATION_UNDEFINED_ENTITY', 'Entity not found');
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
this.validateEntityRules(entityErrorBuilder, schema[entityName], entity);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return errorBuilder.errors;
|
|
23
|
-
}
|
|
24
|
-
validateEntityRules(errorBuilder, entitySchema, entity) {
|
|
25
|
-
for (const fieldName in entitySchema) {
|
|
26
|
-
const field = entity.fields[fieldName];
|
|
27
|
-
const fieldErrorBuilder = errorBuilder.for(fieldName);
|
|
28
|
-
if (!field) {
|
|
29
|
-
fieldErrorBuilder.add('VALIDATION_UNDEFINED_FIELD', 'Field not found');
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
this.validateFieldRules(fieldErrorBuilder, entitySchema[fieldName], entity, field);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
validateFieldRules(errorBuilder, fieldSchema, entity, field) {
|
|
37
|
-
for (const i in fieldSchema) {
|
|
38
|
-
this.validateFieldRule(errorBuilder.for(i), fieldSchema[i], entity, field);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
validateFieldRule(errorBuilder, rule, entity, field) {
|
|
42
|
-
const errorMessage = (0, model_1.acceptFieldVisitor)(this.model, entity, field, {
|
|
43
|
-
visitColumn: () => null,
|
|
44
|
-
visitHasOne: () => null,
|
|
45
|
-
visitHasMany: () => {
|
|
46
|
-
return 'Rules on has-many relations are currently not supported.';
|
|
47
|
-
},
|
|
48
|
-
});
|
|
49
|
-
if (errorMessage) {
|
|
50
|
-
return errorBuilder.add('VALIDATION_NOT_IMPLEMENTED', errorMessage);
|
|
51
|
-
}
|
|
52
|
-
this.validateValidator(errorBuilder.for('validator'), rule.validator, entity, field);
|
|
53
|
-
}
|
|
54
|
-
validateValidator(errorBuilder, validator, entity, field) {
|
|
55
|
-
const validatorCast = validator;
|
|
56
|
-
switch (validatorCast.operation) {
|
|
57
|
-
case 'and':
|
|
58
|
-
case 'or':
|
|
59
|
-
return validatorCast.args
|
|
60
|
-
.forEach((it, index) => this.validateValidatorArgument(errorBuilder.for(String(index)), it, entity, field));
|
|
61
|
-
case 'conditional':
|
|
62
|
-
this.validateValidatorArgument(errorBuilder.for('condition'), validatorCast.args[0], entity, field);
|
|
63
|
-
this.validateValidatorArgument(errorBuilder.for('rule'), validatorCast.args[1], entity, field);
|
|
64
|
-
return;
|
|
65
|
-
case 'pattern':
|
|
66
|
-
case 'lengthRange':
|
|
67
|
-
case 'range':
|
|
68
|
-
case 'equals':
|
|
69
|
-
case 'empty':
|
|
70
|
-
case 'defined':
|
|
71
|
-
return;
|
|
72
|
-
case 'not':
|
|
73
|
-
return this.validateValidatorArgument(errorBuilder, validatorCast.args[0], entity, field);
|
|
74
|
-
case 'inContext':
|
|
75
|
-
const pathArgResult = this.validatePathArgument(errorBuilder.for('path'), validatorCast.args[0], entity);
|
|
76
|
-
if (pathArgResult === undefined) {
|
|
77
|
-
return undefined;
|
|
78
|
-
}
|
|
79
|
-
return this.validateValidatorArgument(errorBuilder.for('validator'), validatorCast.args[1], entity, pathArgResult);
|
|
80
|
-
case 'every':
|
|
81
|
-
case 'any':
|
|
82
|
-
return this.validateValidatorArgument(errorBuilder, validatorCast.args[0], entity, field);
|
|
83
|
-
case 'filter':
|
|
84
|
-
this.validateValidatorArgument(errorBuilder.for('filter'), validatorCast.args[0], entity, field);
|
|
85
|
-
this.validateValidatorArgument(errorBuilder.for('validator'), validatorCast.args[1], entity, field);
|
|
86
|
-
return;
|
|
87
|
-
default:
|
|
88
|
-
((_) => {
|
|
89
|
-
errorBuilder.for('operation', `Operation ${validatorCast.operation} is not an valid option`);
|
|
90
|
-
})(validatorCast);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
validateValidatorArgument(errorBuilder, argument, entity, field) {
|
|
94
|
-
this.validateValidator(errorBuilder.for('validator'), argument.validator, entity, field);
|
|
95
|
-
}
|
|
96
|
-
validatePathArgument(errorBuilder, argument, entity) {
|
|
97
|
-
const isRelation = (0, model_1.acceptFieldVisitor)(this.model, entity, argument.path[0], {
|
|
98
|
-
visitColumn: () => false,
|
|
99
|
-
visitRelation: () => true,
|
|
100
|
-
});
|
|
101
|
-
if (isRelation) {
|
|
102
|
-
errorBuilder.add('VALIDATION_NOT_IMPLEMENTED', 'Rules depending on relations are currently not supported.');
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
return entity.fields[argument.path[0]];
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
exports.ValidationValidator = ValidationValidator;
|
|
109
|
-
//# sourceMappingURL=ValidationValidator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationValidator.js","sourceRoot":"","sources":["../../../src/validation/ValidationValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ErrorBuilder = void 0;
|
|
4
|
-
class ErrorBuilder {
|
|
5
|
-
constructor(errors, path = []) {
|
|
6
|
-
this.errors = errors;
|
|
7
|
-
this.path = path;
|
|
8
|
-
}
|
|
9
|
-
for(...path) {
|
|
10
|
-
return new ErrorBuilder(this.errors, [...this.path, ...path]);
|
|
11
|
-
}
|
|
12
|
-
add(code, message) {
|
|
13
|
-
this.errors.push({ path: this.path, message, code });
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.ErrorBuilder = ErrorBuilder;
|
|
17
|
-
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/validation/errors.ts"],"names":[],"mappings":";;;AAoCA,MAAa,YAAY;IACxB,YAA4B,MAAyB,EAAmB,OAAiB,EAAE;QAA/D,WAAM,GAAN,MAAM,CAAmB;QAAmB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAE/F,GAAG,CAAC,GAAG,IAAc;QACpB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,GAAG,CAAC,IAAyB,EAAE,OAAe;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;CACD;AAVD,oCAUC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./AclValidator"), exports);
|
|
18
|
-
__exportStar(require("./ModelValidator"), exports);
|
|
19
|
-
__exportStar(require("./ValidationValidator"), exports);
|
|
20
|
-
__exportStar(require("./errors"), exports);
|
|
21
|
-
__exportStar(require("./SchemaValidator"), exports);
|
|
22
|
-
__exportStar(require("./MembershipResolver"), exports);
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,mDAAgC;AAChC,wDAAqC;AACrC,2CAAwB;AACxB,oDAAiC;AACjC,uDAAoC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const type_schema_1 = require("../../../src/type-schema");
|
|
5
|
-
const schema_1 = require("@contember/schema");
|
|
6
|
-
(0, vitest_1.describe)('condition schema', () => {
|
|
7
|
-
(0, vitest_1.test)('accept composite type', () => {
|
|
8
|
-
const condition = {
|
|
9
|
-
and: [{ isNull: true }, { not: { isNull: false } }],
|
|
10
|
-
};
|
|
11
|
-
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
|
|
12
|
-
});
|
|
13
|
-
(0, vitest_1.test)('accept string-only condition for unknown type', () => {
|
|
14
|
-
const condition = {
|
|
15
|
-
containsCI: 'foo',
|
|
16
|
-
};
|
|
17
|
-
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
|
|
18
|
-
});
|
|
19
|
-
(0, vitest_1.test)('accept string-only condition for string type', () => {
|
|
20
|
-
const condition = {
|
|
21
|
-
containsCI: 'foo',
|
|
22
|
-
};
|
|
23
|
-
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.String)(condition), condition);
|
|
24
|
-
});
|
|
25
|
-
(0, vitest_1.test)('reject string-only condition for int type', () => {
|
|
26
|
-
const condition = {
|
|
27
|
-
containsCI: 'foo',
|
|
28
|
-
};
|
|
29
|
-
vitest_1.assert.throw(() => (0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.Int)(condition), 'value at root: extra property containsCI found');
|
|
30
|
-
});
|
|
31
|
-
(0, vitest_1.test)('accept non-json condition for unknown type', () => {
|
|
32
|
-
const condition = {
|
|
33
|
-
eq: 'foo',
|
|
34
|
-
};
|
|
35
|
-
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
|
|
36
|
-
});
|
|
37
|
-
(0, vitest_1.test)('accept non-json condition for string type', () => {
|
|
38
|
-
const condition = {
|
|
39
|
-
eq: 'foo',
|
|
40
|
-
};
|
|
41
|
-
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.String)(condition), condition);
|
|
42
|
-
});
|
|
43
|
-
(0, vitest_1.test)('reject non-json condition for json type', () => {
|
|
44
|
-
const condition = {
|
|
45
|
-
eq: 'foo',
|
|
46
|
-
};
|
|
47
|
-
vitest_1.assert.throw(() => (0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.Json)(condition), 'value at root: extra property eq found');
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=conditionSchema.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conditionSchema.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/conditionSchema.test.ts"],"names":[],"mappings":";;AAAA,mCAA+C;AAC/C,0DAA0D;AAC1D,8CAAyC;AAEzC,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,IAAA,aAAI,EAAC,uBAAuB,EAAE,GAAG,EAAE;QAClC,MAAM,SAAS,GAAG;YACjB,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;SACnD,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,+CAA+C,EAAE,GAAG,EAAE;QAC1D,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,gDAAgD,CAAC,CAAA;IACvH,CAAC,CAAC,CAAA;IAGF,IAAA,aAAI,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACvD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,wCAAwC,CAAC,CAAA;IAChH,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const src_1 = require("../../../src");
|
|
5
|
-
(0, vitest_1.describe)('deep compare', () => {
|
|
6
|
-
(0, vitest_1.test)('compare array ignore order - success', () => {
|
|
7
|
-
const actual = (0, src_1.compareArraysIgnoreOrder)([
|
|
8
|
-
{ foo: 'bar' },
|
|
9
|
-
{ lorem: 'ipsum' },
|
|
10
|
-
], [
|
|
11
|
-
{ lorem: 'ipsum' },
|
|
12
|
-
{ foo: 'bar' },
|
|
13
|
-
], []);
|
|
14
|
-
vitest_1.assert.deepStrictEqual(actual, []);
|
|
15
|
-
});
|
|
16
|
-
(0, vitest_1.test)('compare array ignore order - missing in A', () => {
|
|
17
|
-
const actual = (0, src_1.compareArraysIgnoreOrder)([
|
|
18
|
-
{ lorem: 'ipsum' },
|
|
19
|
-
{ lorem: 'ipsum' },
|
|
20
|
-
], [
|
|
21
|
-
{ lorem: 'ipsum' },
|
|
22
|
-
{ foo: 'bar' },
|
|
23
|
-
], []);
|
|
24
|
-
vitest_1.assert.deepStrictEqual(actual, [{
|
|
25
|
-
path: [],
|
|
26
|
-
message: 'Array item: {"lorem":"ipsum"} not found in [{"foo":"bar"}]',
|
|
27
|
-
}]);
|
|
28
|
-
});
|
|
29
|
-
(0, vitest_1.test)('compare array ignore order - missing in B', () => {
|
|
30
|
-
const actual = (0, src_1.compareArraysIgnoreOrder)([
|
|
31
|
-
{ foo: 'bar' },
|
|
32
|
-
{ lorem: 'ipsum' },
|
|
33
|
-
], [
|
|
34
|
-
{ lorem: 'ipsum' },
|
|
35
|
-
{ lorem: 'ipsum' },
|
|
36
|
-
], []);
|
|
37
|
-
vitest_1.assert.deepStrictEqual(actual, [{
|
|
38
|
-
path: [],
|
|
39
|
-
message: 'Array item: {"foo":"bar"} not found in [{"lorem":"ipsum"},{"lorem":"ipsum"}]',
|
|
40
|
-
}]);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
//# sourceMappingURL=deepCompare.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deepCompare.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/deepCompare.test.ts"],"names":[],"mappings":";;AAAA,mCAA+C;AAC/C,sCAAuD;AAEvD,IAAA,iBAAQ,EAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,IAAA,aAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,IAAA,8BAAwB,EAAC;YACvC,EAAE,GAAG,EAAE,KAAK,EAAE;YACd,EAAE,KAAK,EAAE,OAAO,EAAE;SAClB,EAAE;YACF,EAAE,KAAK,EAAE,OAAO,EAAE;YAClB,EAAE,GAAG,EAAE,KAAK,EAAE;SACd,EAAE,EAAE,CAAC,CAAA;QACN,eAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,IAAA,8BAAwB,EAAC;YACvC,EAAE,KAAK,EAAE,OAAO,EAAE;YAClB,EAAE,KAAK,EAAE,OAAO,EAAE;SAClB,EAAE;YACF,EAAE,KAAK,EAAE,OAAO,EAAE;YAClB,EAAE,GAAG,EAAE,KAAK,EAAE;SACd,EAAE,EAAE,CAAC,CAAA;QACN,eAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,4DAA4D;aACrE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,IAAA,8BAAwB,EAAC;YACvC,EAAE,GAAG,EAAE,KAAK,EAAE;YACd,EAAE,KAAK,EAAE,OAAO,EAAE;SAClB,EAAE;YACF,EAAE,KAAK,EAAE,OAAO,EAAE;YAClB,EAAE,KAAK,EAAE,OAAO,EAAE;SAClB,EAAE,EAAE,CAAC,CAAA;QACN,eAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,8EAA8E;aACvF,CAAC,CACD,CAAA;IACF,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|