@contember/engine-content-api 2.1.0-alpha.9 → 2.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +54 -0
- package/dist/development/index.cjs +1 -2
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +2 -3
- package/dist/development/index.js.map +1 -1
- package/dist/development/src/ExecutionContainer.cjs +120 -31
- package/dist/development/src/ExecutionContainer.cjs.map +1 -1
- package/dist/development/src/ExecutionContainer.js +121 -32
- package/dist/development/src/ExecutionContainer.js.map +1 -1
- package/dist/development/src/acl/Authorizator.cjs.map +1 -1
- package/dist/development/src/acl/Authorizator.js.map +1 -1
- package/dist/development/src/acl/EvaluatedPredicateReplacer.cjs.map +1 -1
- package/dist/development/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
- package/dist/development/src/acl/PermissionFactory.cjs +29 -15
- package/dist/development/src/acl/PermissionFactory.cjs.map +1 -1
- package/dist/development/src/acl/PermissionFactory.js +29 -15
- package/dist/development/src/acl/PermissionFactory.js.map +1 -1
- package/dist/development/src/acl/PredicateFactory.cjs +33 -13
- package/dist/development/src/acl/PredicateFactory.cjs.map +1 -1
- package/dist/development/src/acl/PredicateFactory.js +33 -13
- package/dist/development/src/acl/PredicateFactory.js.map +1 -1
- package/dist/development/src/acl/PredicatesInjector.cjs +105 -13
- package/dist/development/src/acl/PredicatesInjector.cjs.map +1 -1
- package/dist/development/src/acl/PredicatesInjector.js +105 -13
- package/dist/development/src/acl/PredicatesInjector.js.map +1 -1
- package/dist/development/src/acl/VariableInjector.cjs.map +1 -1
- package/dist/development/src/acl/VariableInjector.js.map +1 -1
- package/dist/development/src/acl/VariableUtils.cjs.map +1 -1
- package/dist/development/src/acl/VariableUtils.js.map +1 -1
- package/dist/development/src/exception.cjs.map +1 -1
- package/dist/development/src/exception.js.map +1 -1
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.cjs.map +1 -1
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.js.map +1 -1
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.cjs.map +1 -1
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs +4 -4
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +4 -4
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.cjs.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.cjs.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.cjs.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.js.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.cjs.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.cjs.map +1 -1
- package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
- package/dist/development/src/input-validation/ColumnValueResolver.cjs.map +1 -1
- package/dist/development/src/input-validation/ColumnValueResolver.js.map +1 -1
- package/dist/development/src/input-validation/EntityRulesResolver.cjs.map +1 -1
- package/dist/development/src/input-validation/EntityRulesResolver.js.map +1 -1
- package/dist/development/src/input-validation/QueryAstFactory.cjs.map +1 -1
- package/dist/development/src/input-validation/QueryAstFactory.js.map +1 -1
- package/dist/development/src/input-validation/ValidationContext.cjs.map +1 -1
- package/dist/development/src/input-validation/ValidationContext.js.map +1 -1
- package/dist/development/src/input-validation/ValidationDataSelector.cjs.map +1 -1
- package/dist/development/src/input-validation/ValidationDataSelector.js.map +1 -1
- package/dist/development/src/input-validation/ValidationEvaluation.cjs.map +1 -1
- package/dist/development/src/input-validation/ValidationEvaluation.js.map +1 -1
- package/dist/development/src/input-validation/ValidationPath.cjs.map +1 -1
- package/dist/development/src/input-validation/ValidationPath.js.map +1 -1
- package/dist/development/src/input-validation/dependencies/DependencyCollector.cjs +3 -3
- package/dist/development/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
- package/dist/development/src/input-validation/dependencies/DependencyCollector.js +3 -3
- package/dist/development/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
- package/dist/development/src/input-validation/dependencies/DependencyMerger.cjs.map +1 -1
- package/dist/development/src/input-validation/dependencies/DependencyMerger.js.map +1 -1
- package/dist/development/src/input-validation/preValidation/CreateInputPreValidationProcessor.cjs.map +1 -1
- package/dist/development/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
- package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs +2 -4
- package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
- package/dist/development/src/input-validation/preValidation/InputPreValidator.js +2 -4
- package/dist/development/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
- package/dist/development/src/input-validation/preValidation/UpdateInputPreValidationProcessor.cjs.map +1 -1
- package/dist/development/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
- package/dist/development/src/inputProcessing/CreateInputVisitor.cjs +6 -4
- package/dist/development/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
- package/dist/development/src/inputProcessing/CreateInputVisitor.js +6 -4
- package/dist/development/src/inputProcessing/CreateInputVisitor.js.map +1 -1
- package/dist/development/src/inputProcessing/FieldNode.cjs.map +1 -1
- package/dist/development/src/inputProcessing/FieldNode.js.map +1 -1
- package/dist/development/src/inputProcessing/ObjectNode.cjs.map +1 -1
- package/dist/development/src/inputProcessing/ObjectNode.js.map +1 -1
- package/dist/development/src/inputProcessing/UniqueWhereExpander.cjs.map +1 -1
- package/dist/development/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
- package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs +7 -5
- package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
- package/dist/development/src/inputProcessing/UpdateInputVisitor.js +7 -5
- package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
- package/dist/development/src/introspection/IntrospectionSchemaFactory.cjs.map +1 -1
- package/dist/development/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
- package/dist/development/src/introspection/content-schema.types.cjs.map +1 -1
- package/dist/development/src/introspection/content-schema.types.js.map +1 -1
- package/dist/development/src/introspection/introspection.schema.cjs.map +1 -1
- package/dist/development/src/introspection/introspection.schema.js.map +1 -1
- package/dist/development/src/mapper/CheckedPrimary.cjs.map +1 -1
- package/dist/development/src/mapper/CheckedPrimary.js.map +1 -1
- package/dist/development/src/mapper/ColumnValue.cjs.map +1 -1
- package/dist/development/src/mapper/ColumnValue.js.map +1 -1
- package/dist/development/src/mapper/ErrorUtils.cjs.map +1 -1
- package/dist/development/src/mapper/ErrorUtils.js +1 -1
- package/dist/development/src/mapper/ErrorUtils.js.map +1 -1
- package/dist/development/src/mapper/EventManager.cjs.map +1 -1
- package/dist/development/src/mapper/EventManager.js.map +1 -1
- package/dist/development/src/mapper/JunctionTableManager.cjs +16 -2
- package/dist/development/src/mapper/JunctionTableManager.cjs.map +1 -1
- package/dist/development/src/mapper/JunctionTableManager.js +17 -3
- package/dist/development/src/mapper/JunctionTableManager.js.map +1 -1
- package/dist/development/src/mapper/Mapper.cjs +8 -7
- package/dist/development/src/mapper/Mapper.cjs.map +1 -1
- package/dist/development/src/mapper/Mapper.js +8 -7
- package/dist/development/src/mapper/Mapper.js.map +1 -1
- package/dist/development/src/mapper/MapperFactory.cjs.map +1 -1
- package/dist/development/src/mapper/MapperFactory.js.map +1 -1
- package/dist/development/src/mapper/MutationProcessorHelper.cjs.map +1 -1
- package/dist/development/src/mapper/MutationProcessorHelper.js.map +1 -1
- package/dist/development/src/mapper/Result.cjs +1 -1
- package/dist/development/src/mapper/Result.cjs.map +1 -1
- package/dist/development/src/mapper/Result.js +1 -1
- package/dist/development/src/mapper/Result.js.map +1 -1
- package/dist/development/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
- package/dist/development/src/mapper/delete/DeleteExecutor.js.map +1 -1
- package/dist/development/src/mapper/delete/DeleteState.cjs.map +1 -1
- package/dist/development/src/mapper/delete/DeleteState.js.map +1 -1
- package/dist/development/src/mapper/delete/DeletedEntitiesStorage.cjs.map +1 -1
- package/dist/development/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
- package/dist/development/src/mapper/delete/helpers.cjs.map +1 -1
- package/dist/development/src/mapper/delete/helpers.js.map +1 -1
- package/dist/development/src/mapper/insert/InsertBuilder.cjs +27 -31
- package/dist/development/src/mapper/insert/InsertBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/insert/InsertBuilder.js +27 -31
- package/dist/development/src/mapper/insert/InsertBuilder.js.map +1 -1
- package/dist/development/src/mapper/insert/InsertBuilderFactory.cjs.map +1 -1
- package/dist/development/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
- package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
- package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/select/ConditionBuilder.cjs +7 -5
- package/dist/development/src/mapper/select/ConditionBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/select/ConditionBuilder.js +8 -6
- package/dist/development/src/mapper/select/ConditionBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/JoinBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/select/JoinBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/JoinVisitor.cjs.map +1 -1
- package/dist/development/src/mapper/select/JoinVisitor.js.map +1 -1
- package/dist/development/src/mapper/select/OrderByBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/select/OrderByBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/OrderByHelper.cjs.map +1 -1
- package/dist/development/src/mapper/select/OrderByHelper.js.map +1 -1
- package/dist/development/src/mapper/select/Path.cjs.map +1 -1
- package/dist/development/src/mapper/select/Path.js.map +1 -1
- package/dist/development/src/mapper/select/RelationFetcher.cjs.map +1 -1
- package/dist/development/src/mapper/select/RelationFetcher.js.map +1 -1
- package/dist/development/src/mapper/select/SelectBuilder.cjs +7 -10
- package/dist/development/src/mapper/select/SelectBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/select/SelectBuilder.js +7 -10
- package/dist/development/src/mapper/select/SelectBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/SelectHydrator.cjs +1 -1
- package/dist/development/src/mapper/select/SelectHydrator.cjs.map +1 -1
- package/dist/development/src/mapper/select/SelectHydrator.js +1 -1
- package/dist/development/src/mapper/select/SelectHydrator.js.map +1 -1
- package/dist/development/src/mapper/select/WhereBuilder.cjs +20 -18
- package/dist/development/src/mapper/select/WhereBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/select/WhereBuilder.js +20 -18
- package/dist/development/src/mapper/select/WhereBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +3 -2
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +3 -2
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
- package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
- package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
- package/dist/development/src/mapper/select/handlers/MetaHandler.cjs.map +1 -1
- package/dist/development/src/mapper/select/handlers/MetaHandler.js.map +1 -1
- package/dist/development/src/mapper/select/optimizer/ConditionOptimizer.cjs.map +1 -1
- package/dist/development/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
- package/dist/development/src/mapper/select/optimizer/WhereOptimizer.cjs +7 -3
- package/dist/development/src/mapper/select/optimizer/WhereOptimizer.cjs.map +1 -1
- package/dist/development/src/mapper/select/optimizer/WhereOptimizer.js +7 -3
- package/dist/development/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
- package/dist/development/src/mapper/select/optimizer/WhereReplacer.cjs.map +1 -1
- package/dist/development/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
- package/dist/development/src/mapper/select/optimizer/helpers.cjs.map +1 -1
- package/dist/development/src/mapper/select/optimizer/helpers.js.map +1 -1
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/update/UpdateBuilder.cjs +64 -68
- package/dist/development/src/mapper/update/UpdateBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/update/UpdateBuilder.js +64 -68
- package/dist/development/src/mapper/update/UpdateBuilder.js.map +1 -1
- package/dist/development/src/mapper/update/UpdateBuilderFactory.cjs.map +1 -1
- package/dist/development/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
- package/dist/development/src/mapper/update/Updater.cjs +15 -3
- package/dist/development/src/mapper/update/Updater.cjs.map +1 -1
- package/dist/development/src/mapper/update/Updater.js +16 -4
- package/dist/development/src/mapper/update/Updater.js.map +1 -1
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -1
- package/dist/development/src/resolvers/GraphQlQueryAstFactory.cjs.map +1 -1
- package/dist/development/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
- package/dist/development/src/resolvers/MutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/MutationResolver.js.map +1 -1
- package/dist/development/src/resolvers/ReadHelpers.cjs.map +1 -1
- package/dist/development/src/resolvers/ReadHelpers.js.map +1 -1
- package/dist/development/src/resolvers/ReadResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/ReadResolver.js.map +1 -1
- package/dist/development/src/resolvers/RefreshViewResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/RefreshViewResolver.js.map +1 -1
- package/dist/development/src/resolvers/ValidationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/ValidationResolver.js.map +1 -1
- package/dist/development/src/schema/ColumnTypeResolver.cjs.map +1 -1
- package/dist/development/src/schema/ColumnTypeResolver.js.map +1 -1
- package/dist/development/src/schema/ConditionTypeProvider.cjs +2 -0
- package/dist/development/src/schema/ConditionTypeProvider.cjs.map +1 -1
- package/dist/development/src/schema/ConditionTypeProvider.js +3 -1
- package/dist/development/src/schema/ConditionTypeProvider.js.map +1 -1
- package/dist/development/src/schema/CustomTypesProvider.cjs.map +1 -1
- package/dist/development/src/schema/CustomTypesProvider.js.map +1 -1
- package/dist/development/src/schema/EntityTypeProvider.cjs +1 -3
- package/dist/development/src/schema/EntityTypeProvider.cjs.map +1 -1
- package/dist/development/src/schema/EntityTypeProvider.js +1 -3
- package/dist/development/src/schema/EntityTypeProvider.js.map +1 -1
- package/dist/development/src/schema/EnumsProvider.cjs.map +1 -1
- package/dist/development/src/schema/EnumsProvider.js.map +1 -1
- package/dist/development/src/schema/FieldAccessVisitor.cjs.map +1 -1
- package/dist/development/src/schema/FieldAccessVisitor.js.map +1 -1
- package/dist/development/src/schema/GraphQlSchemaBuilder.cjs +5 -11
- package/dist/development/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
- package/dist/development/src/schema/GraphQlSchemaBuilder.js +5 -11
- package/dist/development/src/schema/GraphQlSchemaBuilder.js.map +1 -1
- package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs +103 -3
- package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
- package/dist/development/src/schema/GraphQlSchemaBuilderFactory.js +103 -3
- package/dist/development/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
- package/dist/development/src/schema/MutationProvider.cjs.map +1 -1
- package/dist/development/src/schema/MutationProvider.js +2 -2
- package/dist/development/src/schema/MutationProvider.js.map +1 -1
- package/dist/development/src/schema/OperationExtension.cjs +0 -1
- package/dist/development/src/schema/OperationExtension.cjs.map +1 -1
- package/dist/development/src/schema/OperationExtension.js +0 -1
- package/dist/development/src/schema/OperationExtension.js.map +1 -1
- package/dist/development/src/schema/OrderByTypeProvider.cjs.map +1 -1
- package/dist/development/src/schema/OrderByTypeProvider.js +1 -1
- package/dist/development/src/schema/OrderByTypeProvider.js.map +1 -1
- package/dist/development/src/schema/PaginatedFieldConfigFactory.cjs.map +1 -1
- package/dist/development/src/schema/PaginatedFieldConfigFactory.js +1 -1
- package/dist/development/src/schema/PaginatedFieldConfigFactory.js.map +1 -1
- package/dist/development/src/schema/QueryProvider.cjs.map +1 -1
- package/dist/development/src/schema/QueryProvider.js +2 -2
- package/dist/development/src/schema/QueryProvider.js.map +1 -1
- package/dist/development/src/schema/RefreshViewMutationProvider.cjs.map +1 -1
- package/dist/development/src/schema/RefreshViewMutationProvider.js.map +1 -1
- package/dist/development/src/schema/ResultSchemaTypeProvider.cjs.map +1 -1
- package/dist/development/src/schema/ResultSchemaTypeProvider.js.map +1 -1
- package/dist/development/src/schema/ValidationQueriesProvider.cjs +2 -8
- package/dist/development/src/schema/ValidationQueriesProvider.cjs.map +1 -1
- package/dist/development/src/schema/ValidationQueriesProvider.js +2 -8
- package/dist/development/src/schema/ValidationQueriesProvider.js.map +1 -1
- package/dist/development/src/schema/WhereTypeProvider.cjs +1 -3
- package/dist/development/src/schema/WhereTypeProvider.cjs.map +1 -1
- package/dist/development/src/schema/WhereTypeProvider.js +1 -3
- package/dist/development/src/schema/WhereTypeProvider.js.map +1 -1
- package/dist/development/src/schema/entities/FieldArgsVisitor.cjs.map +1 -1
- package/dist/development/src/schema/entities/FieldArgsVisitor.js.map +1 -1
- package/dist/development/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
- package/dist/development/src/schema/entities/FieldTypeVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/ConnectOrCreateRelationInputProvider.cjs.map +1 -1
- package/dist/development/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityRelationInputFieldVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityRelationInputProvider.cjs.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityRelationInputProvider.js.map +1 -1
- package/dist/development/src/schema/mutations/EntityInputProvider.cjs.map +1 -1
- package/dist/development/src/schema/mutations/EntityInputProvider.js.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputProvider.cjs.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputProvider.js.map +1 -1
- package/dist/development/src/schema/utils.cjs.map +1 -1
- package/dist/development/src/schema/utils.js.map +1 -1
- package/dist/development/src/utils/Mutex.cjs.map +1 -1
- package/dist/development/src/utils/Mutex.js.map +1 -1
- package/dist/development/src/utils/ResolveInfoUtils.cjs.map +1 -1
- package/dist/development/src/utils/ResolveInfoUtils.js.map +1 -1
- package/dist/development/src/utils/accessor.cjs.map +1 -1
- package/dist/development/src/utils/accessor.js.map +1 -1
- package/dist/development/src/utils/assertNever.cjs.map +1 -1
- package/dist/development/src/utils/assertNever.js.map +1 -1
- package/dist/development/src/utils/isIt.cjs.map +1 -1
- package/dist/development/src/utils/isIt.js.map +1 -1
- package/dist/development/src/utils/object.cjs.map +1 -1
- package/dist/development/src/utils/object.js.map +1 -1
- package/dist/development/src/utils/paginationUtils.cjs.map +1 -1
- package/dist/development/src/utils/paginationUtils.js.map +1 -1
- package/dist/development/src/utils/promises.cjs.map +1 -1
- package/dist/development/src/utils/promises.js.map +1 -1
- package/dist/development/src/utils/singletonFactory.cjs.map +1 -1
- package/dist/development/src/utils/singletonFactory.js.map +1 -1
- package/dist/development/src/utils/strings.cjs.map +1 -1
- package/dist/development/src/utils/strings.js.map +1 -1
- package/dist/development/src/utils/tuple.cjs.map +1 -1
- package/dist/development/src/utils/tuple.js.map +1 -1
- package/dist/development/src/utils/uniqueWhereFields.cjs.map +1 -1
- package/dist/development/src/utils/uniqueWhereFields.js.map +1 -1
- package/dist/development/src/utils/viewComputedId.cjs.map +1 -1
- package/dist/development/src/utils/viewComputedId.js.map +1 -1
- package/dist/production/index.cjs +1 -2
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +2 -3
- package/dist/production/index.js.map +1 -1
- package/dist/production/src/ExecutionContainer.cjs +120 -31
- package/dist/production/src/ExecutionContainer.cjs.map +1 -1
- package/dist/production/src/ExecutionContainer.js +121 -32
- package/dist/production/src/ExecutionContainer.js.map +1 -1
- package/dist/production/src/acl/Authorizator.cjs.map +1 -1
- package/dist/production/src/acl/Authorizator.js.map +1 -1
- package/dist/production/src/acl/EvaluatedPredicateReplacer.cjs.map +1 -1
- package/dist/production/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
- package/dist/production/src/acl/PermissionFactory.cjs +29 -15
- package/dist/production/src/acl/PermissionFactory.cjs.map +1 -1
- package/dist/production/src/acl/PermissionFactory.js +29 -15
- package/dist/production/src/acl/PermissionFactory.js.map +1 -1
- package/dist/production/src/acl/PredicateFactory.cjs +33 -13
- package/dist/production/src/acl/PredicateFactory.cjs.map +1 -1
- package/dist/production/src/acl/PredicateFactory.js +33 -13
- package/dist/production/src/acl/PredicateFactory.js.map +1 -1
- package/dist/production/src/acl/PredicatesInjector.cjs +105 -13
- package/dist/production/src/acl/PredicatesInjector.cjs.map +1 -1
- package/dist/production/src/acl/PredicatesInjector.js +105 -13
- package/dist/production/src/acl/PredicatesInjector.js.map +1 -1
- package/dist/production/src/acl/VariableInjector.cjs.map +1 -1
- package/dist/production/src/acl/VariableInjector.js.map +1 -1
- package/dist/production/src/acl/VariableUtils.cjs.map +1 -1
- package/dist/production/src/acl/VariableUtils.js.map +1 -1
- package/dist/production/src/exception.cjs.map +1 -1
- package/dist/production/src/exception.js.map +1 -1
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.cjs.map +1 -1
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.js.map +1 -1
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.cjs.map +1 -1
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs +4 -4
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +4 -4
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.cjs.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.cjs.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.cjs.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.js.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.cjs.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.cjs.map +1 -1
- package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
- package/dist/production/src/input-validation/ColumnValueResolver.cjs.map +1 -1
- package/dist/production/src/input-validation/ColumnValueResolver.js.map +1 -1
- package/dist/production/src/input-validation/EntityRulesResolver.cjs.map +1 -1
- package/dist/production/src/input-validation/EntityRulesResolver.js.map +1 -1
- package/dist/production/src/input-validation/QueryAstFactory.cjs.map +1 -1
- package/dist/production/src/input-validation/QueryAstFactory.js.map +1 -1
- package/dist/production/src/input-validation/ValidationContext.cjs.map +1 -1
- package/dist/production/src/input-validation/ValidationContext.js.map +1 -1
- package/dist/production/src/input-validation/ValidationDataSelector.cjs.map +1 -1
- package/dist/production/src/input-validation/ValidationDataSelector.js.map +1 -1
- package/dist/production/src/input-validation/ValidationEvaluation.cjs.map +1 -1
- package/dist/production/src/input-validation/ValidationEvaluation.js.map +1 -1
- package/dist/production/src/input-validation/ValidationPath.cjs.map +1 -1
- package/dist/production/src/input-validation/ValidationPath.js.map +1 -1
- package/dist/production/src/input-validation/dependencies/DependencyCollector.cjs +3 -3
- package/dist/production/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
- package/dist/production/src/input-validation/dependencies/DependencyCollector.js +3 -3
- package/dist/production/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
- package/dist/production/src/input-validation/dependencies/DependencyMerger.cjs.map +1 -1
- package/dist/production/src/input-validation/dependencies/DependencyMerger.js.map +1 -1
- package/dist/production/src/input-validation/preValidation/CreateInputPreValidationProcessor.cjs.map +1 -1
- package/dist/production/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
- package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs +2 -4
- package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
- package/dist/production/src/input-validation/preValidation/InputPreValidator.js +2 -4
- package/dist/production/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
- package/dist/production/src/input-validation/preValidation/UpdateInputPreValidationProcessor.cjs.map +1 -1
- package/dist/production/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
- package/dist/production/src/inputProcessing/CreateInputVisitor.cjs +6 -4
- package/dist/production/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
- package/dist/production/src/inputProcessing/CreateInputVisitor.js +6 -4
- package/dist/production/src/inputProcessing/CreateInputVisitor.js.map +1 -1
- package/dist/production/src/inputProcessing/FieldNode.cjs.map +1 -1
- package/dist/production/src/inputProcessing/FieldNode.js.map +1 -1
- package/dist/production/src/inputProcessing/ObjectNode.cjs.map +1 -1
- package/dist/production/src/inputProcessing/ObjectNode.js.map +1 -1
- package/dist/production/src/inputProcessing/UniqueWhereExpander.cjs.map +1 -1
- package/dist/production/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
- package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs +7 -5
- package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
- package/dist/production/src/inputProcessing/UpdateInputVisitor.js +7 -5
- package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
- package/dist/production/src/introspection/IntrospectionSchemaFactory.cjs.map +1 -1
- package/dist/production/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
- package/dist/production/src/introspection/content-schema.types.cjs.map +1 -1
- package/dist/production/src/introspection/content-schema.types.js.map +1 -1
- package/dist/production/src/introspection/introspection.schema.cjs.map +1 -1
- package/dist/production/src/introspection/introspection.schema.js.map +1 -1
- package/dist/production/src/mapper/CheckedPrimary.cjs.map +1 -1
- package/dist/production/src/mapper/CheckedPrimary.js.map +1 -1
- package/dist/production/src/mapper/ColumnValue.cjs.map +1 -1
- package/dist/production/src/mapper/ColumnValue.js.map +1 -1
- package/dist/production/src/mapper/ErrorUtils.cjs.map +1 -1
- package/dist/production/src/mapper/ErrorUtils.js +1 -1
- package/dist/production/src/mapper/ErrorUtils.js.map +1 -1
- package/dist/production/src/mapper/EventManager.cjs.map +1 -1
- package/dist/production/src/mapper/EventManager.js.map +1 -1
- package/dist/production/src/mapper/JunctionTableManager.cjs +16 -2
- package/dist/production/src/mapper/JunctionTableManager.cjs.map +1 -1
- package/dist/production/src/mapper/JunctionTableManager.js +17 -3
- package/dist/production/src/mapper/JunctionTableManager.js.map +1 -1
- package/dist/production/src/mapper/Mapper.cjs +8 -7
- package/dist/production/src/mapper/Mapper.cjs.map +1 -1
- package/dist/production/src/mapper/Mapper.js +8 -7
- package/dist/production/src/mapper/Mapper.js.map +1 -1
- package/dist/production/src/mapper/MapperFactory.cjs.map +1 -1
- package/dist/production/src/mapper/MapperFactory.js.map +1 -1
- package/dist/production/src/mapper/MutationProcessorHelper.cjs.map +1 -1
- package/dist/production/src/mapper/MutationProcessorHelper.js.map +1 -1
- package/dist/production/src/mapper/Result.cjs +1 -1
- package/dist/production/src/mapper/Result.cjs.map +1 -1
- package/dist/production/src/mapper/Result.js +1 -1
- package/dist/production/src/mapper/Result.js.map +1 -1
- package/dist/production/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
- package/dist/production/src/mapper/delete/DeleteExecutor.js.map +1 -1
- package/dist/production/src/mapper/delete/DeleteState.cjs.map +1 -1
- package/dist/production/src/mapper/delete/DeleteState.js.map +1 -1
- package/dist/production/src/mapper/delete/DeletedEntitiesStorage.cjs.map +1 -1
- package/dist/production/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
- package/dist/production/src/mapper/delete/helpers.cjs.map +1 -1
- package/dist/production/src/mapper/delete/helpers.js.map +1 -1
- package/dist/production/src/mapper/insert/InsertBuilder.cjs +27 -31
- package/dist/production/src/mapper/insert/InsertBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/insert/InsertBuilder.js +27 -31
- package/dist/production/src/mapper/insert/InsertBuilder.js.map +1 -1
- package/dist/production/src/mapper/insert/InsertBuilderFactory.cjs.map +1 -1
- package/dist/production/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
- package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
- package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/select/ConditionBuilder.cjs +7 -5
- package/dist/production/src/mapper/select/ConditionBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/select/ConditionBuilder.js +8 -6
- package/dist/production/src/mapper/select/ConditionBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/JoinBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/select/JoinBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/JoinVisitor.cjs.map +1 -1
- package/dist/production/src/mapper/select/JoinVisitor.js.map +1 -1
- package/dist/production/src/mapper/select/OrderByBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/select/OrderByBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/OrderByHelper.cjs.map +1 -1
- package/dist/production/src/mapper/select/OrderByHelper.js.map +1 -1
- package/dist/production/src/mapper/select/Path.cjs.map +1 -1
- package/dist/production/src/mapper/select/Path.js.map +1 -1
- package/dist/production/src/mapper/select/RelationFetcher.cjs.map +1 -1
- package/dist/production/src/mapper/select/RelationFetcher.js.map +1 -1
- package/dist/production/src/mapper/select/SelectBuilder.cjs +7 -10
- package/dist/production/src/mapper/select/SelectBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/select/SelectBuilder.js +7 -10
- package/dist/production/src/mapper/select/SelectBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/SelectHydrator.cjs +1 -1
- package/dist/production/src/mapper/select/SelectHydrator.cjs.map +1 -1
- package/dist/production/src/mapper/select/SelectHydrator.js +1 -1
- package/dist/production/src/mapper/select/SelectHydrator.js.map +1 -1
- package/dist/production/src/mapper/select/WhereBuilder.cjs +20 -18
- package/dist/production/src/mapper/select/WhereBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/select/WhereBuilder.js +20 -18
- package/dist/production/src/mapper/select/WhereBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +3 -2
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +3 -2
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
- package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
- package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
- package/dist/production/src/mapper/select/handlers/MetaHandler.cjs.map +1 -1
- package/dist/production/src/mapper/select/handlers/MetaHandler.js.map +1 -1
- package/dist/production/src/mapper/select/optimizer/ConditionOptimizer.cjs.map +1 -1
- package/dist/production/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
- package/dist/production/src/mapper/select/optimizer/WhereOptimizer.cjs +7 -3
- package/dist/production/src/mapper/select/optimizer/WhereOptimizer.cjs.map +1 -1
- package/dist/production/src/mapper/select/optimizer/WhereOptimizer.js +7 -3
- package/dist/production/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
- package/dist/production/src/mapper/select/optimizer/WhereReplacer.cjs.map +1 -1
- package/dist/production/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
- package/dist/production/src/mapper/select/optimizer/helpers.cjs.map +1 -1
- package/dist/production/src/mapper/select/optimizer/helpers.js.map +1 -1
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/update/UpdateBuilder.cjs +64 -68
- package/dist/production/src/mapper/update/UpdateBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/update/UpdateBuilder.js +64 -68
- package/dist/production/src/mapper/update/UpdateBuilder.js.map +1 -1
- package/dist/production/src/mapper/update/UpdateBuilderFactory.cjs.map +1 -1
- package/dist/production/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
- package/dist/production/src/mapper/update/Updater.cjs +15 -3
- package/dist/production/src/mapper/update/Updater.cjs.map +1 -1
- package/dist/production/src/mapper/update/Updater.js +16 -4
- package/dist/production/src/mapper/update/Updater.js.map +1 -1
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -1
- package/dist/production/src/resolvers/GraphQlQueryAstFactory.cjs.map +1 -1
- package/dist/production/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
- package/dist/production/src/resolvers/MutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/MutationResolver.js.map +1 -1
- package/dist/production/src/resolvers/ReadHelpers.cjs.map +1 -1
- package/dist/production/src/resolvers/ReadHelpers.js.map +1 -1
- package/dist/production/src/resolvers/ReadResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/ReadResolver.js.map +1 -1
- package/dist/production/src/resolvers/RefreshViewResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/RefreshViewResolver.js.map +1 -1
- package/dist/production/src/resolvers/ValidationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/ValidationResolver.js.map +1 -1
- package/dist/production/src/schema/ColumnTypeResolver.cjs.map +1 -1
- package/dist/production/src/schema/ColumnTypeResolver.js.map +1 -1
- package/dist/production/src/schema/ConditionTypeProvider.cjs +2 -0
- package/dist/production/src/schema/ConditionTypeProvider.cjs.map +1 -1
- package/dist/production/src/schema/ConditionTypeProvider.js +3 -1
- package/dist/production/src/schema/ConditionTypeProvider.js.map +1 -1
- package/dist/production/src/schema/CustomTypesProvider.cjs.map +1 -1
- package/dist/production/src/schema/CustomTypesProvider.js.map +1 -1
- package/dist/production/src/schema/EntityTypeProvider.cjs +1 -3
- package/dist/production/src/schema/EntityTypeProvider.cjs.map +1 -1
- package/dist/production/src/schema/EntityTypeProvider.js +1 -3
- package/dist/production/src/schema/EntityTypeProvider.js.map +1 -1
- package/dist/production/src/schema/EnumsProvider.cjs.map +1 -1
- package/dist/production/src/schema/EnumsProvider.js.map +1 -1
- package/dist/production/src/schema/FieldAccessVisitor.cjs.map +1 -1
- package/dist/production/src/schema/FieldAccessVisitor.js.map +1 -1
- package/dist/production/src/schema/GraphQlSchemaBuilder.cjs +5 -11
- package/dist/production/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
- package/dist/production/src/schema/GraphQlSchemaBuilder.js +5 -11
- package/dist/production/src/schema/GraphQlSchemaBuilder.js.map +1 -1
- package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs +103 -3
- package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
- package/dist/production/src/schema/GraphQlSchemaBuilderFactory.js +103 -3
- package/dist/production/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
- package/dist/production/src/schema/MutationProvider.cjs.map +1 -1
- package/dist/production/src/schema/MutationProvider.js +2 -2
- package/dist/production/src/schema/MutationProvider.js.map +1 -1
- package/dist/production/src/schema/OperationExtension.cjs +0 -1
- package/dist/production/src/schema/OperationExtension.cjs.map +1 -1
- package/dist/production/src/schema/OperationExtension.js +0 -1
- package/dist/production/src/schema/OperationExtension.js.map +1 -1
- package/dist/production/src/schema/OrderByTypeProvider.cjs.map +1 -1
- package/dist/production/src/schema/OrderByTypeProvider.js +1 -1
- package/dist/production/src/schema/OrderByTypeProvider.js.map +1 -1
- package/dist/production/src/schema/PaginatedFieldConfigFactory.cjs.map +1 -1
- package/dist/production/src/schema/PaginatedFieldConfigFactory.js +1 -1
- package/dist/production/src/schema/PaginatedFieldConfigFactory.js.map +1 -1
- package/dist/production/src/schema/QueryProvider.cjs.map +1 -1
- package/dist/production/src/schema/QueryProvider.js +2 -2
- package/dist/production/src/schema/QueryProvider.js.map +1 -1
- package/dist/production/src/schema/RefreshViewMutationProvider.cjs.map +1 -1
- package/dist/production/src/schema/RefreshViewMutationProvider.js.map +1 -1
- package/dist/production/src/schema/ResultSchemaTypeProvider.cjs.map +1 -1
- package/dist/production/src/schema/ResultSchemaTypeProvider.js.map +1 -1
- package/dist/production/src/schema/ValidationQueriesProvider.cjs +2 -8
- package/dist/production/src/schema/ValidationQueriesProvider.cjs.map +1 -1
- package/dist/production/src/schema/ValidationQueriesProvider.js +2 -8
- package/dist/production/src/schema/ValidationQueriesProvider.js.map +1 -1
- package/dist/production/src/schema/WhereTypeProvider.cjs +1 -3
- package/dist/production/src/schema/WhereTypeProvider.cjs.map +1 -1
- package/dist/production/src/schema/WhereTypeProvider.js +1 -3
- package/dist/production/src/schema/WhereTypeProvider.js.map +1 -1
- package/dist/production/src/schema/entities/FieldArgsVisitor.cjs.map +1 -1
- package/dist/production/src/schema/entities/FieldArgsVisitor.js.map +1 -1
- package/dist/production/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
- package/dist/production/src/schema/entities/FieldTypeVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/ConnectOrCreateRelationInputProvider.cjs.map +1 -1
- package/dist/production/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityRelationInputFieldVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityRelationInputProvider.cjs.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityRelationInputProvider.js.map +1 -1
- package/dist/production/src/schema/mutations/EntityInputProvider.cjs.map +1 -1
- package/dist/production/src/schema/mutations/EntityInputProvider.js.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputProvider.cjs.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputProvider.js.map +1 -1
- package/dist/production/src/schema/utils.cjs.map +1 -1
- package/dist/production/src/schema/utils.js.map +1 -1
- package/dist/production/src/utils/Mutex.cjs.map +1 -1
- package/dist/production/src/utils/Mutex.js.map +1 -1
- package/dist/production/src/utils/ResolveInfoUtils.cjs.map +1 -1
- package/dist/production/src/utils/ResolveInfoUtils.js.map +1 -1
- package/dist/production/src/utils/accessor.cjs.map +1 -1
- package/dist/production/src/utils/accessor.js.map +1 -1
- package/dist/production/src/utils/assertNever.cjs.map +1 -1
- package/dist/production/src/utils/assertNever.js.map +1 -1
- package/dist/production/src/utils/isIt.cjs.map +1 -1
- package/dist/production/src/utils/isIt.js.map +1 -1
- package/dist/production/src/utils/object.cjs.map +1 -1
- package/dist/production/src/utils/object.js.map +1 -1
- package/dist/production/src/utils/paginationUtils.cjs.map +1 -1
- package/dist/production/src/utils/paginationUtils.js.map +1 -1
- package/dist/production/src/utils/promises.cjs.map +1 -1
- package/dist/production/src/utils/promises.js.map +1 -1
- package/dist/production/src/utils/singletonFactory.cjs.map +1 -1
- package/dist/production/src/utils/singletonFactory.js.map +1 -1
- package/dist/production/src/utils/strings.cjs.map +1 -1
- package/dist/production/src/utils/strings.js.map +1 -1
- package/dist/production/src/utils/tuple.cjs.map +1 -1
- package/dist/production/src/utils/tuple.js.map +1 -1
- package/dist/production/src/utils/uniqueWhereFields.cjs.map +1 -1
- package/dist/production/src/utils/uniqueWhereFields.js.map +1 -1
- package/dist/production/src/utils/viewComputedId.cjs.map +1 -1
- package/dist/production/src/utils/viewComputedId.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/insert/subOperationFail.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/insert/subOperationFail.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/schema.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/schema.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/schema.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/schema.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/validation/conditions.test.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/validation/utils.d.ts.map +1 -1
- package/dist/tests/src/test.d.ts.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/ExecutionContainer.d.ts +32 -3
- package/dist/types/ExecutionContainer.d.ts.map +1 -1
- package/dist/types/acl/Authorizator.d.ts.map +1 -1
- package/dist/types/acl/EvaluatedPredicateReplacer.d.ts.map +1 -1
- package/dist/types/acl/PermissionFactory.d.ts +6 -0
- package/dist/types/acl/PermissionFactory.d.ts.map +1 -1
- package/dist/types/acl/PredicateFactory.d.ts +17 -6
- package/dist/types/acl/PredicateFactory.d.ts.map +1 -1
- package/dist/types/acl/PredicatesInjector.d.ts +15 -1
- package/dist/types/acl/PredicatesInjector.d.ts.map +1 -1
- package/dist/types/acl/VariableUtils.d.ts.map +1 -1
- package/dist/types/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.d.ts.map +1 -1
- package/dist/types/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.d.ts.map +1 -1
- package/dist/types/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.d.ts.map +1 -1
- package/dist/types/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.d.ts.map +1 -1
- package/dist/types/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/input-validation/preValidation/InputPreValidator.d.ts.map +1 -1
- package/dist/types/inputProcessing/CreateInputProcessor.d.ts +1 -1
- package/dist/types/inputProcessing/CreateInputProcessor.d.ts.map +1 -1
- package/dist/types/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
- package/dist/types/inputProcessing/UpdateInputProcessor.d.ts +1 -1
- package/dist/types/inputProcessing/UpdateInputProcessor.d.ts.map +1 -1
- package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
- package/dist/types/introspection/IntrospectionSchemaFactory.d.ts.map +1 -1
- package/dist/types/introspection/introspection.schema.d.ts.map +1 -1
- package/dist/types/mapper/ColumnValue.d.ts.map +1 -1
- package/dist/types/mapper/ErrorUtils.d.ts.map +1 -1
- package/dist/types/mapper/EventManager.d.ts.map +1 -1
- package/dist/types/mapper/JunctionTableManager.d.ts.map +1 -1
- package/dist/types/mapper/Mapper.d.ts.map +1 -1
- package/dist/types/mapper/MapperFactory.d.ts.map +1 -1
- package/dist/types/mapper/Result.d.ts +2 -2
- package/dist/types/mapper/Result.d.ts.map +1 -1
- package/dist/types/mapper/delete/DeleteExecutor.d.ts.map +1 -1
- package/dist/types/mapper/delete/DeleteState.d.ts.map +1 -1
- package/dist/types/mapper/delete/helpers.d.ts.map +1 -1
- package/dist/types/mapper/insert/InsertBuilder.d.ts.map +1 -1
- package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts +2 -2
- package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts +2 -2
- package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts +1 -1
- package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/select/ConditionBuilder.d.ts.map +1 -1
- package/dist/types/mapper/select/JoinBuilder.d.ts.map +1 -1
- package/dist/types/mapper/select/Path.d.ts +0 -1
- package/dist/types/mapper/select/Path.d.ts.map +1 -1
- package/dist/types/mapper/select/RelationFetcher.d.ts.map +1 -1
- package/dist/types/mapper/select/SelectBuilder.d.ts.map +1 -1
- package/dist/types/mapper/select/SelectExecutionHandler.d.ts.map +1 -1
- package/dist/types/mapper/select/WhereBuilder.d.ts.map +1 -1
- package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
- package/dist/types/mapper/select/optimizer/ConditionOptimizer.d.ts.map +1 -1
- package/dist/types/mapper/select/optimizer/WhereOptimizer.d.ts +6 -1
- package/dist/types/mapper/select/optimizer/WhereOptimizer.d.ts.map +1 -1
- package/dist/types/mapper/select/optimizer/WhereReplacer.d.ts.map +1 -1
- package/dist/types/mapper/types.d.ts +1 -1
- package/dist/types/mapper/types.d.ts.map +1 -1
- package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/update/UpdateBuilder.d.ts.map +1 -1
- package/dist/types/mapper/update/Updater.d.ts +1 -5
- package/dist/types/mapper/update/Updater.d.ts.map +1 -1
- package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts +7 -7
- package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts +5 -5
- package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts +7 -7
- package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts +3 -3
- package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -1
- package/dist/types/resolvers/GraphQlQueryAstFactory.d.ts.map +1 -1
- package/dist/types/resolvers/MutationResolver.d.ts.map +1 -1
- package/dist/types/schema/ConditionTypeProvider.d.ts.map +1 -1
- package/dist/types/schema/CustomTypesProvider.d.ts.map +1 -1
- package/dist/types/schema/EntityTypeProvider.d.ts.map +1 -1
- package/dist/types/schema/GraphQlSchemaBuilder.d.ts.map +1 -1
- package/dist/types/schema/GraphQlSchemaBuilderFactory.d.ts +0 -1
- package/dist/types/schema/GraphQlSchemaBuilderFactory.d.ts.map +1 -1
- package/dist/types/schema/MutationProvider.d.ts.map +1 -1
- package/dist/types/schema/OperationExtension.d.ts +1 -1
- package/dist/types/schema/OperationExtension.d.ts.map +1 -1
- package/dist/types/schema/ValidationQueriesProvider.d.ts.map +1 -1
- package/dist/types/schema/WhereTypeProvider.d.ts.map +1 -1
- package/dist/types/schema/entities/FieldArgsVisitor.d.ts.map +1 -1
- package/dist/types/schema/mutations/ConnectOrCreateRelationInputProvider.d.ts.map +1 -1
- package/dist/types/schema/mutations/CreateEntityInputFieldVisitor.d.ts.map +1 -1
- package/dist/types/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
- package/dist/types/schema/mutations/CreateEntityRelationInputFieldVisitor.d.ts.map +1 -1
- package/dist/types/schema/mutations/EntityInputProvider.d.ts.map +1 -1
- package/dist/types/schema/mutations/UpdateEntityInputFieldVisitor.d.ts +1 -1
- package/dist/types/schema/mutations/UpdateEntityInputFieldVisitor.d.ts.map +1 -1
- package/dist/types/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
- package/dist/types/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/utils/object.d.ts.map +1 -1
- package/graphql.codegen.yml +1 -1
- package/package.json +20 -16
- package/src/ExecutionContainer.ts +191 -123
- package/src/acl/Authorizator.ts +5 -3
- package/src/acl/EvaluatedPredicateReplacer.ts +0 -5
- package/src/acl/PermissionFactory.ts +56 -24
- package/src/acl/PredicateFactory.ts +38 -10
- package/src/acl/PredicatesInjector.ts +169 -13
- package/src/acl/VariableUtils.ts +0 -2
- package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.ts +0 -2
- package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts +9 -13
- package/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.ts +3 -4
- package/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts +2 -2
- package/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.ts +2 -5
- package/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.ts +3 -4
- package/src/index.ts +8 -7
- package/src/input-validation/ValidationEvaluation.ts +3 -6
- package/src/input-validation/dependencies/DependencyCollector.ts +3 -3
- package/src/input-validation/preValidation/InputPreValidator.ts +6 -8
- package/src/inputProcessing/CreateInputProcessor.ts +1 -2
- package/src/inputProcessing/CreateInputVisitor.ts +7 -8
- package/src/inputProcessing/UpdateInputProcessor.ts +1 -2
- package/src/inputProcessing/UpdateInputVisitor.ts +9 -10
- package/src/introspection/IntrospectionSchemaFactory.ts +3 -4
- package/src/introspection/content-schema.types.ts +3 -3
- package/src/introspection/introspection.schema.ts +0 -2
- package/src/mapper/ColumnValue.ts +0 -1
- package/src/mapper/ErrorUtils.ts +19 -7
- package/src/mapper/EventManager.ts +0 -2
- package/src/mapper/JunctionTableManager.ts +19 -17
- package/src/mapper/Mapper.ts +13 -6
- package/src/mapper/MapperFactory.ts +0 -1
- package/src/mapper/Result.ts +2 -2
- package/src/mapper/delete/DeleteExecutor.ts +6 -7
- package/src/mapper/delete/DeleteState.ts +0 -1
- package/src/mapper/delete/helpers.ts +2 -3
- package/src/mapper/insert/InsertBuilder.ts +32 -35
- package/src/mapper/insert/Inserter.ts +0 -1
- package/src/mapper/insert/SqlCreateInputProcessor.ts +3 -6
- package/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.ts +0 -1
- package/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.ts +1 -2
- package/src/mapper/insert/relations/OneHasManyCreateInputProcessor.ts +0 -1
- package/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.ts +1 -4
- package/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.ts +2 -9
- package/src/mapper/select/ConditionBuilder.ts +19 -13
- package/src/mapper/select/JoinBuilder.ts +4 -2
- package/src/mapper/select/OrderByHelper.ts +2 -2
- package/src/mapper/select/Path.ts +0 -2
- package/src/mapper/select/RelationFetcher.ts +31 -26
- package/src/mapper/select/SelectBuilder.ts +16 -14
- package/src/mapper/select/SelectExecutionHandler.ts +30 -28
- package/src/mapper/select/SelectHydrator.ts +1 -1
- package/src/mapper/select/WhereBuilder.ts +49 -43
- package/src/mapper/select/handlers/FieldsVisitor.ts +3 -3
- package/src/mapper/select/optimizer/ConditionOptimizer.ts +0 -7
- package/src/mapper/select/optimizer/WhereOptimizer.ts +37 -15
- package/src/mapper/select/optimizer/WhereReplacer.ts +6 -3
- package/src/mapper/select/optimizer/helpers.ts +1 -1
- package/src/mapper/types.ts +19 -18
- package/src/mapper/update/SqlUpdateInputProcessor.ts +1 -1
- package/src/mapper/update/UpdateBuilder.ts +77 -81
- package/src/mapper/update/Updater.ts +23 -5
- package/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.ts +2 -4
- package/src/mapper/update/relations/OneHasManyUpdateInputProcessor.ts +2 -2
- package/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.ts +7 -4
- package/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.ts +23 -9
- package/src/resolvers/GraphQlQueryAstFactory.ts +0 -1
- package/src/resolvers/MutationResolver.ts +13 -15
- package/src/schema/ColumnTypeResolver.ts +1 -1
- package/src/schema/ConditionTypeProvider.ts +3 -1
- package/src/schema/CustomTypesProvider.ts +1 -2
- package/src/schema/EntityTypeProvider.ts +1 -3
- package/src/schema/GraphQlSchemaBuilder.ts +8 -7
- package/src/schema/GraphQlSchemaBuilderFactory.ts +150 -68
- package/src/schema/MutationProvider.ts +5 -10
- package/src/schema/OperationExtension.ts +1 -2
- package/src/schema/ValidationQueriesProvider.ts +2 -6
- package/src/schema/WhereTypeProvider.ts +1 -3
- package/src/schema/entities/FieldArgsVisitor.ts +5 -4
- package/src/schema/mutations/ConnectOrCreateRelationInputProvider.ts +0 -2
- package/src/schema/mutations/CreateEntityInputFieldVisitor.ts +3 -4
- package/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.ts +3 -4
- package/src/schema/mutations/CreateEntityRelationInputFieldVisitor.ts +10 -10
- package/src/schema/mutations/EntityInputProvider.ts +1 -7
- package/src/schema/mutations/UpdateEntityInputFieldVisitor.ts +3 -4
- package/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.ts +3 -4
- package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +6 -13
- package/src/utils/object.ts +3 -2
- package/tests/cases/bugs/bug-filter-or.test.ts +1 -5
- package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +3 -6
- package/tests/cases/bugs/bug102.test.ts +2 -9
- package/tests/cases/integration/graphQlRequests/delete/aclDelete.test.ts +2 -3
- package/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.ts +1 -2
- package/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.ts +12 -19
- package/tests/cases/integration/graphQlRequests/delete/deleteById.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.ts +4 -5
- package/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.ts +6 -13
- package/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.ts +9 -13
- package/tests/cases/integration/graphQlRequests/insert/acl/setField.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/insert/aclInsert.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/insert/basicInsert.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/insert/insertCustomId.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/insert/jsonInsert.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.ts +1 -4
- package/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.ts +2 -10
- package/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.ts +1 -5
- package/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.ts +3 -4
- package/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.ts +2 -5
- package/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/insert/subOperationFail.test.ts +107 -0
- package/tests/cases/integration/graphQlRequests/insert/validation/toBeFixed.test.ts +1 -9
- package/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts +0 -4
- package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +1 -4
- package/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.ts +0 -4
- package/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts +1 -6
- package/tests/cases/integration/graphQlRequests/query/acl/orPredicate.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.ts +676 -2
- package/tests/cases/integration/graphQlRequests/query/acl/relationAcl.test.ts +8 -11
- package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +2 -6
- package/tests/cases/integration/graphQlRequests/query/acl/sameRowAndFieldPredicate.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/query/filter/backReferencedFilter.test.ts +1 -4
- package/tests/cases/integration/graphQlRequests/query/filter/complexCondition.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/filter/composedFilter.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/filter/containsQuery.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/filter/manyHasManyOwnerRelation.test.ts +16 -18
- package/tests/cases/integration/graphQlRequests/query/filter/manyHasOneRelation.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/filter/oneHasManyRelation.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/query/formatting/dateFormat.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/fragments.test.ts +6 -8
- package/tests/cases/integration/graphQlRequests/query/misc/aliasedType.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/misc/longAliasHash.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/query/misc/reducedHasMany.test.ts +2 -10
- package/tests/cases/integration/graphQlRequests/query/misc/transaction.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/query/pagination/hasManyLimit.test.ts +3 -10
- package/tests/cases/integration/graphQlRequests/query/pagination/paginate.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/query/pagination/paginateAliased.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/query/pagination/simpleLimit.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/relations/advanced.test.ts +3 -7
- package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyInverse.test.ts +4 -9
- package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyOwning.test.ts +5 -8
- package/tests/cases/integration/graphQlRequests/query/relations/manyHasOne.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/query/relations/oneHasMany.test.ts +2 -5
- package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneInverse.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneOwner.test.ts +1 -3
- package/tests/cases/integration/graphQlRequests/query/sorting/byRelations.test.ts +6 -8
- package/tests/cases/integration/graphQlRequests/query/sorting/defaultOrdering.test.ts +8 -8
- package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/sorting/randomSort.test.ts +1 -5
- package/tests/cases/integration/graphQlRequests/query/sorting/sortNulls.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/sorting/sortedHasMany.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/unique/basicQueryById.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/unique/composedUnique.test.ts +2 -5
- package/tests/cases/integration/graphQlRequests/query/unique/oneHasManyUnique.test.ts +2 -5
- package/tests/cases/integration/graphQlRequests/query/unique/uniqueWithFilter.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/query/view/view.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +8 -11
- package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +53 -3
- package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +2 -3
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/connect.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/create.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/disconnect.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/schema.ts +1 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connect.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/create.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/disconnect.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/schema.ts +1 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +7 -6
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.ts +8 -6
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +2 -3
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/schema.ts +2 -5
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +4 -3
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/create.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/schema.ts +2 -8
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +7 -8
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +10 -6
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.ts +1 -4
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.ts +2 -6
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +8 -5
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +2 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +4 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.ts +5 -5
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.ts +2 -6
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +4 -3
- package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +4 -4
- package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +6 -5
- package/tests/cases/integration/graphQlRequests/update/validation/toBeFixed.test.ts +9 -10
- package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +5 -9
- package/tests/cases/integration/graphQlRequests/validation/conditions.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/nestedValidation.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/validation/optionalAssert.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/validation/required.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.ts +1 -2
- package/tests/cases/integration/graphQlRequests/validation/rules/andRule.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/lengthRangeRule.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/maxLengthRule.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/minLength.test.ts +0 -3
- package/tests/cases/integration/graphQlRequests/validation/rules/notEmptyRule.test.ts +0 -4
- package/tests/cases/integration/graphQlRequests/validation/rules/notRule.test.ts +0 -2
- package/tests/cases/integration/graphQlRequests/validation/rules/orRule.test.ts +0 -3
- package/tests/cases/integration/graphQlRequests/validation/rules/patternRule.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/rangeRule.test.ts +0 -1
- package/tests/cases/integration/graphQlRequests/validation/utils.ts +2 -6
- package/tests/cases/integration/graphQlSchema/graphQlSchemaBuilder.test.ts +31 -61
- package/tests/cases/integration/graphQlSchema/schema-column-types.gql +1 -0
- package/tests/cases/unit/aclVariablesFactory.test.ts +3 -7
- package/tests/cases/unit/conditionOptimizer.test.ts +122 -77
- package/tests/cases/unit/inputPreValidator.test.ts +5 -17
- package/tests/cases/unit/inputValidation.test.ts +2 -7
- package/tests/cases/unit/orderbyHelper.test.ts +8 -6
- package/tests/cases/unit/permissionMerger.test.ts +163 -7
- package/tests/cases/unit/predicatesFactory.test.ts +75 -1
- package/tests/cases/unit/predicatesInjector.test.ts +1065 -13
- package/tests/cases/unit/uuidType.test.ts +1 -2
- package/tests/cases/unit/variableInjector.test.ts +1 -4
- package/tests/cases/unit/whereBuilder.test.ts +8 -5
- package/tests/cases/unit/whereOptimizer.test.ts +337 -244
- package/tests/src/test.ts +3 -2
- package/tests/src/testGraphql.ts +1 -1
- package/tests/.eslintrc.cjs +0 -5
- package/vitest.config.ts +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspection.schema.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":["GraphQLObjectType","GraphQLString","GraphQLNonNull","GraphQLInt","GraphQLList","JSONType","GraphQLUnionType","GraphQLInterfaceType","GraphQLBoolean","GraphQLEnumType","GraphQLSchema"],"mappings":";;;;AAiBA,MAAM,eAAe,IAAIA,QAAAA,kBAAkB;AAAA,EAC1C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAMC,QAAc,cAAA;AAAA,EAAA;AAE9B,CAAC;AAED,MAAM,qBAAqB,IAAID,QAAAA,kBAAkB;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,WAAW,EAAE,MAAM,IAAIE,QAAAA,eAAeC,QAAAA,UAAU,EAAE;AAAA,EAAA;AAEpD,CAAC;AAED,MAAM,gBAAgB,IAAIH,QAAAA,kBAAkB;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAa,aAAA,CAAC,CAAC,EAAE;AAAA,EAAA;AAEvF,CAAC;AAED,MAAM,mBAAmB,IAAID,QAAAA,kBAAkB;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO,EAAE,MAAMK,aAAS,SAAA;AAAA,EAAA;AAE1B,CAAC;AAED,MAAM,YAAY,IAAIC,QAAAA,iBAAiB;AAAA,EACtC,MAAM;AAAA,EACN,OAAO,CAAC,oBAAoB,eAAe,gBAAgB;AAC5D,CAAC;AAED,MAAM,aAAa,IAAIN,QAAAA,kBAAkB;AAAA,EACxC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,WAAW,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IACrD,WAAW,EAAE,MAAM,IAAIC,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,SAAS,CAAC,CAAC,EAAE;AAAA,EAAA;AAExF,CAAC;AAED,MAAM,QAAQ,IAAIF,QAAAA,kBAAkB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,SAAS,EAAE,MAAM,aAAa;AAAA,IAC9B,WAAW,EAAE,MAAM,IAAIE,QAAAA,eAAeC,QAAAA,UAAU,EAAE;AAAA,EAAA;AAEpD,CAAC;AAED,MAAM,kBAAkB,IAAII,QAAAA,qBAAqB;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIL,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAIC,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,UAAU,EAAE,MAAMO,uBAAe;AAAA,IACjC,OAAO,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,oBAAoB,IAAIO,QAAAA,gBAAgB;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,KAAK,CAAC;AAAA,IACN,MAAM,CAAA;AAAA,EAAC;AAET,CAAC;AAED,MAAM,WAAW,IAAIT,QAAAA,kBAAkB;AAAA,EACtC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAAD,qBAAa,CAAC,CAAC,EAAE;AAAA,IACrF,WAAW,EAAE,MAAM,IAAIC,QAAAA,eAAe,iBAAiB,EAAE;AAAA,EAAA;AAE3D,CAAC;AAED,MAAM,qBAAqB,IAAIO,QAAAA,gBAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,UAAU,CAAC;AAAA,IACX,SAAS,CAAC;AAAA,IACV,SAAS,CAAA;AAAA,EAAC;AAEZ,CAAC;AAED,MAAM,gBAAgB,IAAIA,QAAAA,gBAAgB;AAAA,EACzC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,QAAQ,CAAC;AAAA,IACT,SAAS,CAAA;AAAA,EAAC;AAEZ,CAAC;AAED,MAAM,YAAY,IAAIT,QAAAA,kBAAkB;AAAA,EACvC,MAAM;AAAA,EACN,YAAY,CAAC,eAAe;AAAA,EAC5B,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAIC,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAIC,QAAA,eAAe,aAAa,EAAE;AAAA,IAChD,cAAc,EAAE,MAAM,IAAIA,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IACxD,SAAS,EAAE,MAAMA,sBAAc;AAAA,IAC/B,YAAY,EAAE,MAAMA,sBAAc;AAAA,IAClC,UAAU,EAAE,MAAMO,uBAAe;AAAA,IACjC,UAAU,EAAE,MAAM,mBAAmB;AAAA,IACrC,eAAe,EAAE,MAAMA,uBAAe;AAAA,IACtC,SAAS,EAAE,MAAM,IAAIJ,QAAAA,YAAY,IAAIF,QAAA,eAAe,QAAQ,CAAC,EAAE;AAAA,IAC/D,OAAO,EAAE,MAAM,IAAIA,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,UAAU,IAAIF,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,YAAY,CAAC,eAAe;AAAA,EAC5B,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAIC,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,UAAU,EAAE,MAAMA,sBAAc;AAAA,IAChC,cAAc,EAAE,MAAMI,sBAAS;AAAA,IAC/B,UAAU,EAAE,MAAM,IAAIH,QAAA,eAAeM,QAAc,cAAA,EAAE;AAAA,IACrD,OAAO,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,oBAAoB,IAAIF,QAAAA,kBAAkB;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,QAAQ,EAAE,MAAM,IAAIE,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAa,aAAA,CAAC,CAAC,EAAE;AAAA,EAAA;AAEzF,CAAC;AAED,MAAM,UAAU,IAAID,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,sBAAsB,EAAE,MAAM,IAAIC,QAAA,eAAeM,QAAc,cAAA,EAAE;AAAA,IACjE,QAAQ,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,eAAe,CAAC,CAAC,EAAE;AAAA,IACzF,QAAQ,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,iBAAiB,CAAC,CAAC,EAAE;AAAA,EAAA;AAE7F,CAAC;AAED,MAAM,QAAQ,IAAIF,QAAAA,kBAAkB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,QAAQ,EAAE,MAAM,IAAIC,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAa,aAAA,CAAC,CAAC,EAAE;AAAA,EAAA;AAEzF,CAAC;AAED,MAAM,UAAU,IAAID,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO,EAAE,MAAM,IAAIE,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,UAAU,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,OAAO,CAAC,CAAC,EAAE;AAAA,EAAA;AAErF,CAAC;AAGY,MAAA,qBAAqB,CAAC,aAAmE;AAC9F,SAAA;AAAA,IACN,OAAO,IAAIF,QAAAA,kBAAkB;AAAA,MAC5B,MAAM;AAAA,MACN,QAAQ;AAAA,QACP,QAAQ;AAAA,UACP,MAAM;AAAA,UACN,SAAS;AAAA,QAAA;AAAA,MACV;AAAA,IACD,CACA;AAAA,IACD,OAAO,CAAC,SAAS,SAAS;AAAA,EAC3B;AACD;AAGA,MAAA,uBAAe,IAAIU,QAAAA,cAAc,oBAAoB;;;"}
|
|
1
|
+
{"version":3,"file":"introspection.schema.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":["GraphQLObjectType","GraphQLString","GraphQLNonNull","GraphQLInt","GraphQLList","JSONType","GraphQLUnionType","GraphQLInterfaceType","GraphQLBoolean","GraphQLEnumType","GraphQLSchema"],"mappings":";;;;AAiBA,MAAM,eAAe,IAAIA,QAAAA,kBAAkB;AAAA,EAC1C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAMC,QAAAA,cAAA;AAAA,EAAc;AAE9B,CAAC;AAED,MAAM,qBAAqB,IAAID,QAAAA,kBAAkB;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,WAAW,EAAE,MAAM,IAAIE,QAAAA,eAAeC,QAAAA,UAAU,EAAA;AAAA,EAAE;AAEpD,CAAC;AAED,MAAM,gBAAgB,IAAIH,QAAAA,kBAAkB;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAAA,aAAa,CAAC,CAAC,EAAA;AAAA,EAAE;AAEvF,CAAC;AAED,MAAM,mBAAmB,IAAID,QAAAA,kBAAkB;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO,EAAE,MAAMK,aAAAA,SAAA;AAAA,EAAS;AAE1B,CAAC;AAED,MAAM,YAAY,IAAIC,QAAAA,iBAAiB;AAAA,EACtC,MAAM;AAAA,EACN,OAAO,CAAC,oBAAoB,eAAe,gBAAgB;AAC5D,CAAC;AAED,MAAM,aAAa,IAAIN,QAAAA,kBAAkB;AAAA,EACxC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,WAAW,EAAE,MAAM,IAAIE,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IACnD,WAAW,EAAE,MAAM,IAAIC,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,SAAS,CAAC,CAAC,EAAA;AAAA,EAAE;AAExF,CAAC;AAED,MAAM,QAAQ,IAAIF,QAAAA,kBAAkB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,SAAS,EAAE,MAAM,aAAA;AAAA,IACjB,WAAW,EAAE,MAAM,IAAIE,QAAAA,eAAeC,QAAAA,UAAU,EAAA;AAAA,EAAE;AAEpD,CAAC;AAED,MAAM,kBAAkB,IAAII,QAAAA,qBAAqB;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIL,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IAC9C,MAAM,EAAE,MAAM,IAAIC,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IAC9C,UAAU,EAAE,MAAMO,uBAAA;AAAA,IAClB,OAAO,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,KAAK,CAAC,CAAC,EAAA;AAAA,IAC5E,YAAY,EAAE,MAAM,IAAIA,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAA;AAAA,EAAE;AAE1F,CAAC;AAED,MAAM,oBAAoB,IAAIO,QAAAA,gBAAgB;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,KAAK,CAAA;AAAA,IACL,MAAM,CAAA;AAAA,EAAC;AAET,CAAC;AAED,MAAM,WAAW,IAAIT,QAAAA,kBAAkB;AAAA,EACtC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,uBAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,qBAAa,CAAC,CAAC,EAAA;AAAA,IACnF,WAAW,EAAE,MAAM,IAAIC,QAAAA,eAAe,iBAAiB,EAAA;AAAA,EAAE;AAE3D,CAAC;AAED,MAAM,qBAAqB,IAAIO,QAAAA,gBAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,UAAU,CAAA;AAAA,IACV,SAAS,CAAA;AAAA,IACT,SAAS,CAAA;AAAA,EAAC;AAEZ,CAAC;AAED,MAAM,gBAAgB,IAAIA,QAAAA,gBAAgB;AAAA,EACzC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,QAAQ,CAAA;AAAA,IACR,SAAS,CAAA;AAAA,EAAC;AAEZ,CAAC;AAED,MAAM,YAAY,IAAIT,QAAAA,kBAAkB;AAAA,EACvC,MAAM;AAAA,EACN,YAAY,CAAC,eAAe;AAAA,EAC5B,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IAC9C,MAAM,EAAE,MAAM,IAAIC,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IAC9C,MAAM,EAAE,MAAM,IAAIC,QAAAA,eAAe,aAAa,EAAA;AAAA,IAC9C,cAAc,EAAE,MAAM,IAAIA,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IACtD,SAAS,EAAE,MAAMA,sBAAA;AAAA,IACjB,YAAY,EAAE,MAAMA,sBAAA;AAAA,IACpB,UAAU,EAAE,MAAMO,uBAAA;AAAA,IAClB,UAAU,EAAE,MAAM,mBAAA;AAAA,IAClB,eAAe,EAAE,MAAMA,uBAAA;AAAA,IACvB,SAAS,EAAE,MAAM,IAAIJ,QAAAA,YAAY,IAAIF,QAAAA,eAAe,QAAQ,CAAC,EAAA;AAAA,IAC7D,OAAO,EAAE,MAAM,IAAIA,uBAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,KAAK,CAAC,CAAC,EAAA;AAAA,IAC5E,YAAY,EAAE,MAAM,IAAIA,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAA;AAAA,EAAE;AAE1F,CAAC;AAED,MAAM,UAAU,IAAIF,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,YAAY,CAAC,eAAe;AAAA,EAC5B,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IAC9C,MAAM,EAAE,MAAM,IAAIC,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IAC9C,UAAU,EAAE,MAAMA,sBAAA;AAAA,IAClB,cAAc,EAAE,MAAMI,sBAAA;AAAA,IACtB,UAAU,EAAE,MAAM,IAAIH,QAAAA,eAAeM,QAAAA,cAAc,EAAA;AAAA,IACnD,OAAO,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,KAAK,CAAC,CAAC,EAAA;AAAA,IAC5E,YAAY,EAAE,MAAM,IAAIA,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAA;AAAA,EAAE;AAE1F,CAAC;AAED,MAAM,oBAAoB,IAAIF,QAAAA,kBAAkB;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,QAAQ,EAAE,MAAM,IAAIE,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAAA,aAAa,CAAC,CAAC,EAAA;AAAA,EAAE;AAEzF,CAAC;AAED,MAAM,UAAU,IAAID,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IAC9C,sBAAsB,EAAE,MAAM,IAAIC,QAAAA,eAAeM,QAAAA,cAAc,EAAA;AAAA,IAC/D,QAAQ,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,eAAe,CAAC,CAAC,EAAA;AAAA,IACvF,QAAQ,EAAE,MAAM,IAAIA,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,iBAAiB,CAAC,CAAC,EAAA;AAAA,EAAE;AAE7F,CAAC;AAED,MAAM,QAAQ,IAAIF,QAAAA,kBAAkB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAAA,eAAeD,QAAAA,aAAa,EAAA;AAAA,IAC9C,QAAQ,EAAE,MAAM,IAAIC,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAAA,aAAa,CAAC,CAAC,EAAA;AAAA,EAAE;AAEzF,CAAC;AAED,MAAM,UAAU,IAAID,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO,EAAE,MAAM,IAAIE,uBAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,KAAK,CAAC,CAAC,EAAA;AAAA,IAC5E,UAAU,EAAE,MAAM,IAAIA,QAAAA,eAAe,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,OAAO,CAAC,CAAC,EAAA;AAAA,EAAE;AAErF,CAAC;AAEM,MAAM,qBAAqB,CAAC,aAAmE;AACrG,SAAO;AAAA,IACN,OAAO,IAAIF,QAAAA,kBAAkB;AAAA,MAC5B,MAAM;AAAA,MACN,QAAQ;AAAA,QACP,QAAQ;AAAA,UACP,MAAM;AAAA,UACN,SAAS;AAAA,QAAA;AAAA,MACV;AAAA,IACD,CACA;AAAA,IACD,OAAO,CAAC,SAAS,SAAS;AAAA,EAAA;AAE5B;AAEA,MAAA,uBAAe,IAAIU,QAAAA,cAAc,oBAAoB;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspection.schema.js","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\
|
|
1
|
+
{"version":3,"file":"introspection.schema.js","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckedPrimary.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/CheckedPrimary.ts"],"sourcesContent":["import { Input } from '@contember/schema'\n\nexport class CheckedPrimary {\n\tpublic constructor(public readonly primaryValue: Input.PrimaryValue) {}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,eAAe;AAAA,EACpB,YAA4B,cAAkC;AAAlC,SAAA,eAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"CheckedPrimary.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/CheckedPrimary.ts"],"sourcesContent":["import { Input } from '@contember/schema'\n\nexport class CheckedPrimary {\n\tpublic constructor(public readonly primaryValue: Input.PrimaryValue) {}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,eAAe;AAAA,EACpB,YAA4B,cAAkC;AAAlC,SAAA,eAAA;AAAA,EAAmC;AACvE;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckedPrimary.js","sources":["../../../../../packages/engine-content-api/src/mapper/CheckedPrimary.ts"],"sourcesContent":["import { Input } from '@contember/schema'\n\nexport class CheckedPrimary {\n\tpublic constructor(public readonly primaryValue: Input.PrimaryValue) {}\n}\n"],"names":[],"mappings":"AAEO,MAAM,eAAe;AAAA,EACpB,YAA4B,cAAkC;AAAlC,SAAA,eAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"CheckedPrimary.js","sources":["../../../../../packages/engine-content-api/src/mapper/CheckedPrimary.ts"],"sourcesContent":["import { Input } from '@contember/schema'\n\nexport class CheckedPrimary {\n\tpublic constructor(public readonly primaryValue: Input.PrimaryValue) {}\n}\n"],"names":[],"mappings":"AAEO,MAAM,eAAe;AAAA,EACpB,YAA4B,cAAkC;AAAlC,SAAA,eAAA;AAAA,EAAmC;AACvE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnValue.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/ColumnValue.ts"],"sourcesContent":["import { Value } from '@contember/schema'\n\nexport type ColumnValue = {\n\tvalue: Value.FieldValue\n\tfieldName: string\n\tcolumnName: string\n\tcolumnType: string\n}\n\
|
|
1
|
+
{"version":3,"file":"ColumnValue.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/ColumnValue.ts"],"sourcesContent":["import { Value } from '@contember/schema'\n\nexport type ColumnValue = {\n\tvalue: Value.FieldValue\n\tfieldName: string\n\tcolumnName: string\n\tcolumnType: string\n}\n\nexport const rowDataToFieldValues = (values: ColumnValue[]): Record<string, Value.FieldValue> =>\n\tObject.fromEntries(values.map(it => [it.fieldName, it.value]))\n\nexport const normalizeDbValue = (value: Value.FieldValue, type: string): Value.FieldValue => {\n\tif (value === null) {\n\t\treturn null\n\t}\n\tif ((type === 'jsonb' || type === 'json') && typeof value === 'object') {\n\t\treturn JSON.stringify(value)\n\t}\n\treturn value\n}\n"],"names":[],"mappings":";;AASO,MAAM,uBAAuB,CAAC,WACpC,OAAO,YAAY,OAAO,IAAI,CAAA,OAAM,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC;AAEvD,MAAM,mBAAmB,CAAC,OAAyB,SAAmC;AAC5F,MAAI,UAAU,MAAM;AACnB,WAAO;AAAA,EACR;AACA,OAAK,SAAS,WAAW,SAAS,WAAW,OAAO,UAAU,UAAU;AACvE,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AACA,SAAO;AACR;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnValue.js","sources":["../../../../../packages/engine-content-api/src/mapper/ColumnValue.ts"],"sourcesContent":["import { Value } from '@contember/schema'\n\nexport type ColumnValue = {\n\tvalue: Value.FieldValue\n\tfieldName: string\n\tcolumnName: string\n\tcolumnType: string\n}\n\
|
|
1
|
+
{"version":3,"file":"ColumnValue.js","sources":["../../../../../packages/engine-content-api/src/mapper/ColumnValue.ts"],"sourcesContent":["import { Value } from '@contember/schema'\n\nexport type ColumnValue = {\n\tvalue: Value.FieldValue\n\tfieldName: string\n\tcolumnName: string\n\tcolumnType: string\n}\n\nexport const rowDataToFieldValues = (values: ColumnValue[]): Record<string, Value.FieldValue> =>\n\tObject.fromEntries(values.map(it => [it.fieldName, it.value]))\n\nexport const normalizeDbValue = (value: Value.FieldValue, type: string): Value.FieldValue => {\n\tif (value === null) {\n\t\treturn null\n\t}\n\tif ((type === 'jsonb' || type === 'json') && typeof value === 'object') {\n\t\treturn JSON.stringify(value)\n\t}\n\treturn value\n}\n"],"names":[],"mappings":"AASO,MAAM,uBAAuB,CAAC,WACpC,OAAO,YAAY,OAAO,IAAI,CAAA,OAAM,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC;AAEvD,MAAM,mBAAmB,CAAC,OAAyB,SAAmC;AAC5F,MAAI,UAAU,MAAM;AACnB,WAAO;AAAA,EACR;AACA,OAAK,SAAS,WAAW,SAAS,WAAW,OAAO,UAAU,UAAU;AACvE,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AACA,SAAO;AACR;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorUtils.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/ErrorUtils.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tInputErrorKind,\n\tMutationConstraintViolationError,\n\tMutationInputError,\n\tMutationResult,\n\tMutationResultHint,\n\tMutationResultList,\n\tMutationSqlError,\n} from './Result'\nimport * as Database from '@contember/database'\nimport { UniqueWhereError } from '../inputProcessing'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, tryGetColumnName } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { DatabaseMetadata } from '@contember/database'\n\
|
|
1
|
+
{"version":3,"file":"ErrorUtils.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/ErrorUtils.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tInputErrorKind,\n\tMutationConstraintViolationError,\n\tMutationInputError,\n\tMutationResult,\n\tMutationResultHint,\n\tMutationResultList,\n\tMutationSqlError,\n} from './Result'\nimport * as Database from '@contember/database'\nimport { UniqueWhereError } from '../inputProcessing'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, tryGetColumnName } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { DatabaseMetadata } from '@contember/database'\n\ntype UniqueConstraintResult = {\n\tentity: Model.Entity\n\tfields: string[]\n}\n\nconst getEntityByTableName = (model: Model.Schema, tableName: string) => Object.values(model.entities).find(it => it.tableName === tableName)\n\nconst findUniqueConstraint = (\n\tmodel: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\ttableName: string,\n\tconstraintName: string,\n): UniqueConstraintResult | null => {\n\tconst constraint = databaseMetadata.uniqueConstraints.filter({ tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst entity = getEntityByTableName(model, constraint.tableName)\n\tif (!entity) {\n\t\treturn null\n\t}\n\tconst fieldsInConstraint: string[] = []\n\tfor (const field of Object.values(entity.fields)) {\n\t\tconst columnName = tryGetColumnName(model, entity, field.name)\n\t\tif (columnName && constraint.columnNames.includes(columnName)) {\n\t\t\tfieldsInConstraint.push(field.name)\n\t\t}\n\t}\n\tif (fieldsInConstraint.length === constraint.columnNames.length) {\n\t\treturn { entity, fields: fieldsInConstraint }\n\t}\n\treturn null\n}\n\ntype RelationInfo = {\n\towningEntity: Model.Entity\n\towningRelation: Model.Relation\n\ttargetEntity: Model.Entity\n}\n\nconst findForeignConstraint = (\n\tmodel: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\ttableName: string,\n\tconstraintName: string,\n): RelationInfo | null => {\n\tconst constraint = databaseMetadata.foreignKeys.filter({ fromTable: tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst owningEntity = getEntityByTableName(model, constraint.fromTable)\n\tif (!owningEntity) {\n\t\t// todo m:n\n\t\treturn null\n\t}\n\n\tconst targetEntity = getEntityByTableName(model, constraint.toTable)\n\tif (!targetEntity) {\n\t\treturn null\n\t}\n\tfor (const field of Object.values(owningEntity.fields)) {\n\t\tconst relation = acceptFieldVisitor<(Model.Relation & Model.JoiningColumnRelation) | null>(model, owningEntity, field, {\n\t\t\tvisitColumn: () => null,\n\t\t\tvisitOneHasOneInverse: () => null,\n\t\t\tvisitManyHasManyInverse: () => null,\n\t\t\tvisitManyHasManyOwning: () => null,\n\t\t\tvisitOneHasMany: () => null,\n\t\t\tvisitOneHasOneOwning: ({ relation }) => relation,\n\t\t\tvisitManyHasOne: ({ relation }) => relation,\n\t\t})\n\t\tif (relation && relation.joiningColumn.columnName === constraint.fromColumn) {\n\t\t\treturn {\n\t\t\t\towningEntity,\n\t\t\t\towningRelation: relation,\n\t\t\t\ttargetEntity,\n\t\t\t}\n\t\t}\n\t}\n\treturn null\n}\n\nexport const convertError = (\n\tschema: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\te: any,\n): MutationResult => {\n\tif (e instanceof Database.NotNullViolationError) {\n\t\treturn new MutationConstraintViolationError([], ConstraintType.notNull, e.originalMessage, [\n\t\t\tMutationResultHint.sqlError,\n\t\t])\n\t}\n\tif (e instanceof Database.ForeignKeyViolationError) {\n\t\tconst relationInfo = e.constraint && e.table ? findForeignConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) is still referenced from table/)\n\t\tconst message = relationInfo\n\t\t\t? `Cannot delete ${matchResult ? `row ${matchResult[1]}` : 'unknown row'}`\n\t\t\t\t+ ` of entity ${relationInfo.targetEntity.name},`\n\t\t\t\t+ ` because it is still referenced from ${relationInfo.owningEntity.name}::${relationInfo.owningRelation.name}.`\n\t\t\t\t+ ' This is possibly caused by ACL denial or by missing \"on delete cascade\"'\n\t\t\t: e.originalMessage\n\t\treturn new MutationConstraintViolationError([], ConstraintType.foreignKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.UniqueViolationError) {\n\t\tconst constraint = e.constraint && e.table ? findUniqueConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) already exists\\.$/)\n\t\tconst values = matchResult?.[1]\n\t\tconst message = constraint\n\t\t\t? `${values ? `Value (${values})` : 'Unknown value'}`\n\t\t\t\t+ ` already exists in unique columns (${constraint.fields.join(', ')}) on entity ${constraint.entity.name}`\n\t\t\t: e.originalMessage\n\t\tconst paths = constraint ? constraint.fields.map(it => [{ field: it }]) : []\n\t\treturn new MutationConstraintViolationError(paths, ConstraintType.uniqueKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof UniqueWhereError) {\n\t\treturn new MutationInputError([], InputErrorKind.nonUniqueWhere, e.message)\n\t}\n\tif (e instanceof Database.InvalidDataError) {\n\t\treturn new MutationInputError([], InputErrorKind.invalidData, e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.SerializationFailureError) {\n\t\tthrow e\n\t}\n\tif (e instanceof Database.TransactionAbortedError) {\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.subSequentSqlError])\n\t}\n\tif (e instanceof Database.QueryError || e instanceof Database.CannotCommitError) {\n\t\tlogger.error(e, { loc: 'convertError' })\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tthrow e\n}\n\nexport const tryMutation = async (\n\tschema: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\tcb: () => Promise<MutationResultList>,\n): Promise<MutationResultList> => {\n\ttry {\n\t\treturn await cb()\n\t} catch (e) {\n\t\treturn [convertError(schema, databaseMetadata, e)]\n\t}\n}\n"],"names":["tryGetColumnName","acceptFieldVisitor","relation","Database","MutationConstraintViolationError","ConstraintType","MutationResultHint","UniqueWhereError","MutationInputError","InputErrorKind","MutationSqlError","logger"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MutationConstraintViolationError, ConstraintType, MutationResultHint, MutationInputError, InputErrorKind, MutationSqlError } from "./Result.js";
|
|
2
2
|
import * as Database from "@contember/database";
|
|
3
|
-
import {
|
|
3
|
+
import { acceptFieldVisitor, tryGetColumnName } from "@contember/schema-utils";
|
|
4
4
|
import "@contember/schema";
|
|
5
5
|
import { UniqueWhereError } from "../inputProcessing/UniqueWhereExpander.js";
|
|
6
6
|
import { logger } from "@contember/logger";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorUtils.js","sources":["../../../../../packages/engine-content-api/src/mapper/ErrorUtils.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tInputErrorKind,\n\tMutationConstraintViolationError,\n\tMutationInputError,\n\tMutationResult,\n\tMutationResultHint,\n\tMutationResultList,\n\tMutationSqlError,\n} from './Result'\nimport * as Database from '@contember/database'\nimport { UniqueWhereError } from '../inputProcessing'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, tryGetColumnName } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { DatabaseMetadata } from '@contember/database'\n\
|
|
1
|
+
{"version":3,"file":"ErrorUtils.js","sources":["../../../../../packages/engine-content-api/src/mapper/ErrorUtils.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tInputErrorKind,\n\tMutationConstraintViolationError,\n\tMutationInputError,\n\tMutationResult,\n\tMutationResultHint,\n\tMutationResultList,\n\tMutationSqlError,\n} from './Result'\nimport * as Database from '@contember/database'\nimport { UniqueWhereError } from '../inputProcessing'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, tryGetColumnName } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { DatabaseMetadata } from '@contember/database'\n\ntype UniqueConstraintResult = {\n\tentity: Model.Entity\n\tfields: string[]\n}\n\nconst getEntityByTableName = (model: Model.Schema, tableName: string) => Object.values(model.entities).find(it => it.tableName === tableName)\n\nconst findUniqueConstraint = (\n\tmodel: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\ttableName: string,\n\tconstraintName: string,\n): UniqueConstraintResult | null => {\n\tconst constraint = databaseMetadata.uniqueConstraints.filter({ tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst entity = getEntityByTableName(model, constraint.tableName)\n\tif (!entity) {\n\t\treturn null\n\t}\n\tconst fieldsInConstraint: string[] = []\n\tfor (const field of Object.values(entity.fields)) {\n\t\tconst columnName = tryGetColumnName(model, entity, field.name)\n\t\tif (columnName && constraint.columnNames.includes(columnName)) {\n\t\t\tfieldsInConstraint.push(field.name)\n\t\t}\n\t}\n\tif (fieldsInConstraint.length === constraint.columnNames.length) {\n\t\treturn { entity, fields: fieldsInConstraint }\n\t}\n\treturn null\n}\n\ntype RelationInfo = {\n\towningEntity: Model.Entity\n\towningRelation: Model.Relation\n\ttargetEntity: Model.Entity\n}\n\nconst findForeignConstraint = (\n\tmodel: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\ttableName: string,\n\tconstraintName: string,\n): RelationInfo | null => {\n\tconst constraint = databaseMetadata.foreignKeys.filter({ fromTable: tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst owningEntity = getEntityByTableName(model, constraint.fromTable)\n\tif (!owningEntity) {\n\t\t// todo m:n\n\t\treturn null\n\t}\n\n\tconst targetEntity = getEntityByTableName(model, constraint.toTable)\n\tif (!targetEntity) {\n\t\treturn null\n\t}\n\tfor (const field of Object.values(owningEntity.fields)) {\n\t\tconst relation = acceptFieldVisitor<(Model.Relation & Model.JoiningColumnRelation) | null>(model, owningEntity, field, {\n\t\t\tvisitColumn: () => null,\n\t\t\tvisitOneHasOneInverse: () => null,\n\t\t\tvisitManyHasManyInverse: () => null,\n\t\t\tvisitManyHasManyOwning: () => null,\n\t\t\tvisitOneHasMany: () => null,\n\t\t\tvisitOneHasOneOwning: ({ relation }) => relation,\n\t\t\tvisitManyHasOne: ({ relation }) => relation,\n\t\t})\n\t\tif (relation && relation.joiningColumn.columnName === constraint.fromColumn) {\n\t\t\treturn {\n\t\t\t\towningEntity,\n\t\t\t\towningRelation: relation,\n\t\t\t\ttargetEntity,\n\t\t\t}\n\t\t}\n\t}\n\treturn null\n}\n\nexport const convertError = (\n\tschema: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\te: any,\n): MutationResult => {\n\tif (e instanceof Database.NotNullViolationError) {\n\t\treturn new MutationConstraintViolationError([], ConstraintType.notNull, e.originalMessage, [\n\t\t\tMutationResultHint.sqlError,\n\t\t])\n\t}\n\tif (e instanceof Database.ForeignKeyViolationError) {\n\t\tconst relationInfo = e.constraint && e.table ? findForeignConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) is still referenced from table/)\n\t\tconst message = relationInfo\n\t\t\t? `Cannot delete ${matchResult ? `row ${matchResult[1]}` : 'unknown row'}`\n\t\t\t\t+ ` of entity ${relationInfo.targetEntity.name},`\n\t\t\t\t+ ` because it is still referenced from ${relationInfo.owningEntity.name}::${relationInfo.owningRelation.name}.`\n\t\t\t\t+ ' This is possibly caused by ACL denial or by missing \"on delete cascade\"'\n\t\t\t: e.originalMessage\n\t\treturn new MutationConstraintViolationError([], ConstraintType.foreignKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.UniqueViolationError) {\n\t\tconst constraint = e.constraint && e.table ? findUniqueConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) already exists\\.$/)\n\t\tconst values = matchResult?.[1]\n\t\tconst message = constraint\n\t\t\t? `${values ? `Value (${values})` : 'Unknown value'}`\n\t\t\t\t+ ` already exists in unique columns (${constraint.fields.join(', ')}) on entity ${constraint.entity.name}`\n\t\t\t: e.originalMessage\n\t\tconst paths = constraint ? constraint.fields.map(it => [{ field: it }]) : []\n\t\treturn new MutationConstraintViolationError(paths, ConstraintType.uniqueKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof UniqueWhereError) {\n\t\treturn new MutationInputError([], InputErrorKind.nonUniqueWhere, e.message)\n\t}\n\tif (e instanceof Database.InvalidDataError) {\n\t\treturn new MutationInputError([], InputErrorKind.invalidData, e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.SerializationFailureError) {\n\t\tthrow e\n\t}\n\tif (e instanceof Database.TransactionAbortedError) {\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.subSequentSqlError])\n\t}\n\tif (e instanceof Database.QueryError || e instanceof Database.CannotCommitError) {\n\t\tlogger.error(e, { loc: 'convertError' })\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tthrow e\n}\n\nexport const tryMutation = async (\n\tschema: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\tcb: () => Promise<MutationResultList>,\n): Promise<MutationResultList> => {\n\ttry {\n\t\treturn await cb()\n\t} catch (e) {\n\t\treturn [convertError(schema, databaseMetadata, e)]\n\t}\n}\n"],"names":["relation"],"mappings":";;;;;;AAsBA,MAAM,uBAAuB,CAAC,OAAqB,cAAsB,OAAO,OAAO,MAAM,QAAQ,EAAE,KAAK,CAAA,OAAM,GAAG,cAAc,SAAS;AAE5I,MAAM,uBAAuB,CAC5B,OACA,kBACA,WACA,mBACmC;AACnC,QAAM,aAAa,iBAAiB,kBAAkB,OAAO,EAAE,WAAW,gBAAgB,EAAE,MAAA;AAC5F,MAAI,CAAC,YAAY;AAChB,WAAO;AAAA,EACR;AACA,QAAM,SAAS,qBAAqB,OAAO,WAAW,SAAS;AAC/D,MAAI,CAAC,QAAQ;AACZ,WAAO;AAAA,EACR;AACA,QAAM,qBAA+B,CAAA;AACrC,aAAW,SAAS,OAAO,OAAO,OAAO,MAAM,GAAG;AACjD,UAAM,aAAa,iBAAiB,OAAO,QAAQ,MAAM,IAAI;AAC7D,QAAI,cAAc,WAAW,YAAY,SAAS,UAAU,GAAG;AAC9D,yBAAmB,KAAK,MAAM,IAAI;AAAA,IACnC;AAAA,EACD;AACA,MAAI,mBAAmB,WAAW,WAAW,YAAY,QAAQ;AAChE,WAAO,EAAE,QAAQ,QAAQ,mBAAA;AAAA,EAC1B;AACA,SAAO;AACR;AAQA,MAAM,wBAAwB,CAC7B,OACA,kBACA,WACA,mBACyB;AACzB,QAAM,aAAa,iBAAiB,YAAY,OAAO,EAAE,WAAW,WAAW,gBAAgB,EAAE,MAAA;AACjG,MAAI,CAAC,YAAY;AAChB,WAAO;AAAA,EACR;AACA,QAAM,eAAe,qBAAqB,OAAO,WAAW,SAAS;AACrE,MAAI,CAAC,cAAc;AAElB,WAAO;AAAA,EACR;AAEA,QAAM,eAAe,qBAAqB,OAAO,WAAW,OAAO;AACnE,MAAI,CAAC,cAAc;AAClB,WAAO;AAAA,EACR;AACA,aAAW,SAAS,OAAO,OAAO,aAAa,MAAM,GAAG;AACvD,UAAM,WAAW,mBAA0E,OAAO,cAAc,OAAO;AAAA,MACtH,aAAa,MAAM;AAAA,MACnB,uBAAuB,MAAM;AAAA,MAC7B,yBAAyB,MAAM;AAAA,MAC/B,wBAAwB,MAAM;AAAA,MAC9B,iBAAiB,MAAM;AAAA,MACvB,sBAAsB,CAAC,EAAE,UAAAA,gBAAeA;AAAAA,MACxC,iBAAiB,CAAC,EAAE,UAAAA,gBAAeA;AAAAA,IAAA,CACnC;AACD,QAAI,YAAY,SAAS,cAAc,eAAe,WAAW,YAAY;AAC5E,aAAO;AAAA,QACN;AAAA,QACA,gBAAgB;AAAA,QAChB;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AACA,SAAO;AACR;AAEO,MAAM,eAAe,CAC3B,QACA,kBACA,MACoB;AACpB,MAAI,aAAa,SAAS,uBAAuB;AAChD,WAAO,IAAI,iCAAiC,CAAA,GAAI,eAAe,SAAS,EAAE,iBAAiB;AAAA,MAC1F,mBAAmB;AAAA,IAAA,CACnB;AAAA,EACF;AACA,MAAI,aAAa,SAAS,0BAA0B;AACnD,UAAM,eAAe,EAAE,cAAc,EAAE,QAAQ,sBAAsB,QAAQ,kBAAkB,EAAE,OAAO,EAAE,UAAU,IAAI;AACxH,UAAM,kBAA0B,YAAY,EAAE,WAAW,EAAE,SAAS,SAAS;AAC7E,UAAM,cAAc,gBAAgB,MAAM,qDAAqD;AAC/F,UAAM,UAAU,eACb,iBAAiB,cAAc,OAAO,YAAY,CAAC,CAAC,KAAK,aAAa,cACvD,aAAa,aAAa,IAAI,yCACJ,aAAa,aAAa,IAAI,KAAK,aAAa,eAAe,IAAI,8EAE5G,EAAE;AACL,WAAO,IAAI,iCAAiC,CAAA,GAAI,eAAe,YAAY,SAAS,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EAClH;AACA,MAAI,aAAa,SAAS,sBAAsB;AAC/C,UAAM,aAAa,EAAE,cAAc,EAAE,QAAQ,qBAAqB,QAAQ,kBAAkB,EAAE,OAAO,EAAE,UAAU,IAAI;AACrH,UAAM,kBAA0B,YAAY,EAAE,WAAW,EAAE,SAAS,SAAS;AAC7E,UAAM,cAAc,gBAAgB,MAAM,wCAAwC;AAClF,UAAM,SAAS,cAAc,CAAC;AAC9B,UAAM,UAAU,aACb,GAAG,SAAS,UAAU,MAAM,MAAM,eAAe,sCACV,WAAW,OAAO,KAAK,IAAI,CAAC,eAAe,WAAW,OAAO,IAAI,KACxG,EAAE;AACL,UAAM,QAAQ,aAAa,WAAW,OAAO,IAAI,CAAA,OAAM,CAAC,EAAE,OAAO,GAAA,CAAI,CAAC,IAAI,CAAA;AAC1E,WAAO,IAAI,iCAAiC,OAAO,eAAe,WAAW,SAAS,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EACpH;AACA,MAAI,aAAa,kBAAkB;AAClC,WAAO,IAAI,mBAAmB,CAAA,GAAI,eAAe,gBAAgB,EAAE,OAAO;AAAA,EAC3E;AACA,MAAI,aAAa,SAAS,kBAAkB;AAC3C,WAAO,IAAI,mBAAmB,CAAA,GAAI,eAAe,aAAa,EAAE,iBAAiB,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EAC/G;AACA,MAAI,aAAa,SAAS,2BAA2B;AACpD,UAAM;AAAA,EACP;AACA,MAAI,aAAa,SAAS,yBAAyB;AAClD,WAAO,IAAI,iBAAiB,IAAI,EAAE,iBAAiB,CAAC,mBAAmB,kBAAkB,CAAC;AAAA,EAC3F;AACA,MAAI,aAAa,SAAS,cAAc,aAAa,SAAS,mBAAmB;AAChF,WAAO,MAAM,GAAG,EAAE,KAAK,gBAAgB;AACvC,WAAO,IAAI,iBAAiB,IAAI,EAAE,iBAAiB,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EACjF;AACA,QAAM;AACP;AAEO,MAAM,cAAc,OAC1B,QACA,kBACA,OACiC;AACjC,MAAI;AACH,WAAO,MAAM,GAAA;AAAA,EACd,SAAS,GAAG;AACX,WAAO,CAAC,aAAa,QAAQ,kBAAkB,CAAC,CAAC;AAAA,EAClD;AACD;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventManager.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/EventManager.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { Mapper } from './Mapper'\nimport { ColumnValue } from './ColumnValue'\n\nexport class BeforeInsertEvent {\n\tpublic type = 'BeforeInsertEvent' as const\n\n\tpublic afterEvent: AfterInsertEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t) {\n\t}\n}\n\nexport class AfterInsertEvent {\n\tpublic type = 'AfterInsertEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\
|
|
1
|
+
{"version":3,"file":"EventManager.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/EventManager.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { Mapper } from './Mapper'\nimport { ColumnValue } from './ColumnValue'\n\nexport class BeforeInsertEvent {\n\tpublic type = 'BeforeInsertEvent' as const\n\n\tpublic afterEvent: AfterInsertEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t) {\n\t}\n}\n\nexport class AfterInsertEvent {\n\tpublic type = 'AfterInsertEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class BeforeUpdateEvent {\n\tpublic type = 'BeforeUpdateEvent' as const\n\n\tpublic afterEvent: AfterUpdateEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class AfterUpdateEvent {\n\tpublic type = 'AfterUpdateEvent' as const\n\n\tprivate _hasChanges: boolean | undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: (ColumnValue & { old: Value.FieldValue })[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n\tget hasChanges() {\n\t\t// todo: deep equals\n\t\treturn this._hasChanges = this.data.some(it => it.value !== it.old)\n\t}\n}\n\nexport class BeforeDeleteEvent {\n\tpublic type = 'BeforeDeleteEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class BeforeJunctionUpdateEvent {\n\tpublic type = 'BeforeJunctionUpdateEvent' as const\n\n\tpublic afterEvent: AfterJunctionUpdateEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly owningEntity: Model.Entity,\n\t\tpublic readonly owningRelation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningId: Input.PrimaryValue,\n\t\tpublic readonly inverseId: Input.PrimaryValue,\n\t\tpublic readonly operation: 'connect' | 'disconnect',\n\t) {\n\t}\n}\n\nexport class AfterJunctionUpdateEvent {\n\tpublic type = 'AfterJunctionUpdateEvent' as const\n\n\tconstructor(\n\t\tpublic readonly owningEntity: Model.Entity,\n\t\tpublic readonly owningRelation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningId: Input.PrimaryValue,\n\t\tpublic readonly inverseId: Input.PrimaryValue,\n\t\tpublic readonly operation: 'connect' | 'disconnect',\n\t\tpublic readonly hasChanges: boolean,\n\t) {\n\t}\n}\n\nexport class BeforeCommitEvent {\n\tpublic type = 'BeforeCommitEvent' as const\n}\n\nexport class AfterCommitEvent {\n\tpublic type = 'AfterCommitEvent' as const\n}\n\nexport type DataModificationEvent =\n\t| BeforeInsertEvent\n\t| AfterInsertEvent\n\t| BeforeUpdateEvent\n\t| AfterUpdateEvent\n\t| BeforeJunctionUpdateEvent\n\t| AfterJunctionUpdateEvent\n\t| BeforeDeleteEvent\n\nexport type AnyEvent =\n\t| DataModificationEvent\n\t| BeforeCommitEvent\n\t| AfterCommitEvent\n\nexport type EventMap<E extends AnyEvent = AnyEvent> = {\n\t[K in E['type']]: E extends { type: K } ? E : never\n}\n\nexport type EventListener<K extends keyof EventMap> = (event: EventMap[K], mapper: Mapper) => Promise<void>\n\nexport class EventManager {\n\tprivate listeners: { [K in keyof EventMap]: EventListener<K>[] } = {\n\t\tBeforeInsertEvent: [],\n\t\tAfterInsertEvent: [],\n\t\tBeforeUpdateEvent: [],\n\t\tAfterUpdateEvent: [],\n\t\tBeforeDeleteEvent: [],\n\t\tBeforeCommitEvent: [],\n\t\tAfterCommitEvent: [],\n\t\tBeforeJunctionUpdateEvent: [],\n\t\tAfterJunctionUpdateEvent: [],\n\t}\n\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic listen<K extends keyof EventMap>(type: K, cb: EventListener<K>) {\n\t\tthis.listeners[type].push(cb)\n\t}\n\n\tpublic async fire<K extends keyof EventMap>(event: EventMap[K]) {\n\t\tfor (const listener of this.listeners[event.type]) {\n\t\t\tawait listener(event, this.mapper)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,kBAAkB;AAAA,EAK9B,YACiB,QACA,MACf;AAFe,SAAA,SAAA;AACA,SAAA,OAAA;AANjB,kBAAA,MAAO,QAAO,mBAAA;AAEd,kBAAA,MAAO,YAAA;AAAA,EAMP;AACD;AAEO,MAAM,iBAAiB;AAAA,EAG7B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AALjB,kBAAA,MAAO,QAAO,kBAAA;AAAA,EAOd;AACD;AAEO,MAAM,kBAAkB;AAAA,EAK9B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AAPjB,kBAAA,MAAO,QAAO,mBAAA;AAEd,kBAAA,MAAO,YAAA;AAAA,EAOP;AACD;AAEO,MAAM,iBAAiB;AAAA,EAK7B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AAPjB,kBAAA,MAAO,QAAO,kBAAA;AAEd,kBAAA,MAAQ,aAAA;AAAA,EAOR;AAAA,EACA,IAAI,aAAa;AAEhB,WAAO,KAAK,cAAc,KAAK,KAAK,KAAK,CAAA,OAAM,GAAG,UAAU,GAAG,GAAG;AAAA,EACnE;AACD;AAEO,MAAM,kBAAkB;AAAA,EAG9B,YACiB,QACA,IACf;AAFe,SAAA,SAAA;AACA,SAAA,KAAA;AAJjB,kBAAA,MAAO,QAAO,mBAAA;AAAA,EAMd;AACD;AAEO,MAAM,0BAA0B;AAAA,EAKtC,YACiB,cACA,gBACA,UACA,WACA,WACf;AALe,SAAA,eAAA;AACA,SAAA,iBAAA;AACA,SAAA,WAAA;AACA,SAAA,YAAA;AACA,SAAA,YAAA;AATjB,kBAAA,MAAO,QAAO,2BAAA;AAEd,kBAAA,MAAO,YAAA;AAAA,EASP;AACD;AAEO,MAAM,yBAAyB;AAAA,EAGrC,YACiB,cACA,gBACA,UACA,WACA,WACA,YACf;AANe,SAAA,eAAA;AACA,SAAA,iBAAA;AACA,SAAA,WAAA;AACA,SAAA,YAAA;AACA,SAAA,YAAA;AACA,SAAA,aAAA;AARjB,kBAAA,MAAO,QAAO,0BAAA;AAAA,EAUd;AACD;AAEO,MAAM,kBAAkB;AAAA,EAAxB,cAAA;AACN,kBAAA,MAAO,QAAO,mBAAA;AAAA,EAAA;AACf;AAEO,MAAM,iBAAiB;AAAA,EAAvB,cAAA;AACN,kBAAA,MAAO,QAAO,kBAAA;AAAA,EAAA;AACf;AAsBO,MAAM,aAAa;AAAA,EAazB,YACkB,QAChB;AADgB,SAAA,SAAA;AAblB,kBAAA,MAAQ,aAA2D;AAAA,MAClE,mBAAmB,CAAA;AAAA,MACnB,kBAAkB,CAAA;AAAA,MAClB,mBAAmB,CAAA;AAAA,MACnB,kBAAkB,CAAA;AAAA,MAClB,mBAAmB,CAAA;AAAA,MACnB,mBAAmB,CAAA;AAAA,MACnB,kBAAkB,CAAA;AAAA,MAClB,2BAA2B,CAAA;AAAA,MAC3B,0BAA0B,CAAA;AAAA,IAAC,CAC5B;AAAA,EAKA;AAAA,EAEO,OAAiC,MAAS,IAAsB;AACtE,SAAK,UAAU,IAAI,EAAE,KAAK,EAAE;AAAA,EAC7B;AAAA,EAEA,MAAa,KAA+B,OAAoB;AAC/D,eAAW,YAAY,KAAK,UAAU,MAAM,IAAI,GAAG;AAClD,YAAM,SAAS,OAAO,KAAK,MAAM;AAAA,IAClC;AAAA,EACD;AACD;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventManager.js","sources":["../../../../../packages/engine-content-api/src/mapper/EventManager.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { Mapper } from './Mapper'\nimport { ColumnValue } from './ColumnValue'\n\nexport class BeforeInsertEvent {\n\tpublic type = 'BeforeInsertEvent' as const\n\n\tpublic afterEvent: AfterInsertEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t) {\n\t}\n}\n\nexport class AfterInsertEvent {\n\tpublic type = 'AfterInsertEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\
|
|
1
|
+
{"version":3,"file":"EventManager.js","sources":["../../../../../packages/engine-content-api/src/mapper/EventManager.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { Mapper } from './Mapper'\nimport { ColumnValue } from './ColumnValue'\n\nexport class BeforeInsertEvent {\n\tpublic type = 'BeforeInsertEvent' as const\n\n\tpublic afterEvent: AfterInsertEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t) {\n\t}\n}\n\nexport class AfterInsertEvent {\n\tpublic type = 'AfterInsertEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class BeforeUpdateEvent {\n\tpublic type = 'BeforeUpdateEvent' as const\n\n\tpublic afterEvent: AfterUpdateEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class AfterUpdateEvent {\n\tpublic type = 'AfterUpdateEvent' as const\n\n\tprivate _hasChanges: boolean | undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: (ColumnValue & { old: Value.FieldValue })[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n\tget hasChanges() {\n\t\t// todo: deep equals\n\t\treturn this._hasChanges = this.data.some(it => it.value !== it.old)\n\t}\n}\n\nexport class BeforeDeleteEvent {\n\tpublic type = 'BeforeDeleteEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class BeforeJunctionUpdateEvent {\n\tpublic type = 'BeforeJunctionUpdateEvent' as const\n\n\tpublic afterEvent: AfterJunctionUpdateEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly owningEntity: Model.Entity,\n\t\tpublic readonly owningRelation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningId: Input.PrimaryValue,\n\t\tpublic readonly inverseId: Input.PrimaryValue,\n\t\tpublic readonly operation: 'connect' | 'disconnect',\n\t) {\n\t}\n}\n\nexport class AfterJunctionUpdateEvent {\n\tpublic type = 'AfterJunctionUpdateEvent' as const\n\n\tconstructor(\n\t\tpublic readonly owningEntity: Model.Entity,\n\t\tpublic readonly owningRelation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningId: Input.PrimaryValue,\n\t\tpublic readonly inverseId: Input.PrimaryValue,\n\t\tpublic readonly operation: 'connect' | 'disconnect',\n\t\tpublic readonly hasChanges: boolean,\n\t) {\n\t}\n}\n\nexport class BeforeCommitEvent {\n\tpublic type = 'BeforeCommitEvent' as const\n}\n\nexport class AfterCommitEvent {\n\tpublic type = 'AfterCommitEvent' as const\n}\n\nexport type DataModificationEvent =\n\t| BeforeInsertEvent\n\t| AfterInsertEvent\n\t| BeforeUpdateEvent\n\t| AfterUpdateEvent\n\t| BeforeJunctionUpdateEvent\n\t| AfterJunctionUpdateEvent\n\t| BeforeDeleteEvent\n\nexport type AnyEvent =\n\t| DataModificationEvent\n\t| BeforeCommitEvent\n\t| AfterCommitEvent\n\nexport type EventMap<E extends AnyEvent = AnyEvent> = {\n\t[K in E['type']]: E extends { type: K } ? E : never\n}\n\nexport type EventListener<K extends keyof EventMap> = (event: EventMap[K], mapper: Mapper) => Promise<void>\n\nexport class EventManager {\n\tprivate listeners: { [K in keyof EventMap]: EventListener<K>[] } = {\n\t\tBeforeInsertEvent: [],\n\t\tAfterInsertEvent: [],\n\t\tBeforeUpdateEvent: [],\n\t\tAfterUpdateEvent: [],\n\t\tBeforeDeleteEvent: [],\n\t\tBeforeCommitEvent: [],\n\t\tAfterCommitEvent: [],\n\t\tBeforeJunctionUpdateEvent: [],\n\t\tAfterJunctionUpdateEvent: [],\n\t}\n\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic listen<K extends keyof EventMap>(type: K, cb: EventListener<K>) {\n\t\tthis.listeners[type].push(cb)\n\t}\n\n\tpublic async fire<K extends keyof EventMap>(event: EventMap[K]) {\n\t\tfor (const listener of this.listeners[event.type]) {\n\t\t\tawait listener(event, this.mapper)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,kBAAkB;AAAA,EAK9B,YACiB,QACA,MACf;AAFe,SAAA,SAAA;AACA,SAAA,OAAA;AANjB,kBAAA,MAAO,QAAO,mBAAA;AAEd,kBAAA,MAAO,YAAA;AAAA,EAMP;AACD;AAEO,MAAM,iBAAiB;AAAA,EAG7B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AALjB,kBAAA,MAAO,QAAO,kBAAA;AAAA,EAOd;AACD;AAEO,MAAM,kBAAkB;AAAA,EAK9B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AAPjB,kBAAA,MAAO,QAAO,mBAAA;AAEd,kBAAA,MAAO,YAAA;AAAA,EAOP;AACD;AAEO,MAAM,iBAAiB;AAAA,EAK7B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AAPjB,kBAAA,MAAO,QAAO,kBAAA;AAEd,kBAAA,MAAQ,aAAA;AAAA,EAOR;AAAA,EACA,IAAI,aAAa;AAEhB,WAAO,KAAK,cAAc,KAAK,KAAK,KAAK,CAAA,OAAM,GAAG,UAAU,GAAG,GAAG;AAAA,EACnE;AACD;AAEO,MAAM,kBAAkB;AAAA,EAG9B,YACiB,QACA,IACf;AAFe,SAAA,SAAA;AACA,SAAA,KAAA;AAJjB,kBAAA,MAAO,QAAO,mBAAA;AAAA,EAMd;AACD;AAEO,MAAM,0BAA0B;AAAA,EAKtC,YACiB,cACA,gBACA,UACA,WACA,WACf;AALe,SAAA,eAAA;AACA,SAAA,iBAAA;AACA,SAAA,WAAA;AACA,SAAA,YAAA;AACA,SAAA,YAAA;AATjB,kBAAA,MAAO,QAAO,2BAAA;AAEd,kBAAA,MAAO,YAAA;AAAA,EASP;AACD;AAEO,MAAM,yBAAyB;AAAA,EAGrC,YACiB,cACA,gBACA,UACA,WACA,WACA,YACf;AANe,SAAA,eAAA;AACA,SAAA,iBAAA;AACA,SAAA,WAAA;AACA,SAAA,YAAA;AACA,SAAA,YAAA;AACA,SAAA,aAAA;AARjB,kBAAA,MAAO,QAAO,0BAAA;AAAA,EAUd;AACD;AAEO,MAAM,kBAAkB;AAAA,EAAxB,cAAA;AACN,kBAAA,MAAO,QAAO,mBAAA;AAAA,EAAA;AACf;AAEO,MAAM,iBAAiB;AAAA,EAAvB,cAAA;AACN,kBAAA,MAAO,QAAO,kBAAA;AAAA,EAAA;AACf;AAsBO,MAAM,aAAa;AAAA,EAazB,YACkB,QAChB;AADgB,SAAA,SAAA;AAblB,kBAAA,MAAQ,aAA2D;AAAA,MAClE,mBAAmB,CAAA;AAAA,MACnB,kBAAkB,CAAA;AAAA,MAClB,mBAAmB,CAAA;AAAA,MACnB,kBAAkB,CAAA;AAAA,MAClB,mBAAmB,CAAA;AAAA,MACnB,mBAAmB,CAAA;AAAA,MACnB,kBAAkB,CAAA;AAAA,MAClB,2BAA2B,CAAA;AAAA,MAC3B,0BAA0B,CAAA;AAAA,IAAC,CAC5B;AAAA,EAKA;AAAA,EAEO,OAAiC,MAAS,IAAsB;AACtE,SAAK,UAAU,IAAI,EAAE,KAAK,EAAE;AAAA,EAC7B;AAAA,EAEA,MAAa,KAA+B,OAAoB;AAC/D,eAAW,YAAY,KAAK,UAAU,MAAM,IAAI,GAAG;AAClD,YAAM,SAAS,OAAO,KAAK,MAAM;AAAA,IAClC;AAAA,EACD;AACD;"}
|
|
@@ -27,7 +27,14 @@ class JunctionTableManager {
|
|
|
27
27
|
this.connectJunctionHandler
|
|
28
28
|
);
|
|
29
29
|
if (result.result !== Result.MutationResultType.noResultError) {
|
|
30
|
-
const afterEvent = new EventManager.AfterJunctionUpdateEvent(
|
|
30
|
+
const afterEvent = new EventManager.AfterJunctionUpdateEvent(
|
|
31
|
+
owningEntity,
|
|
32
|
+
relation,
|
|
33
|
+
owningUnique,
|
|
34
|
+
inverseUnique,
|
|
35
|
+
"connect",
|
|
36
|
+
result.result === Result.MutationResultType.ok
|
|
37
|
+
);
|
|
31
38
|
await mapper.eventManager.fire(afterEvent);
|
|
32
39
|
}
|
|
33
40
|
return [result];
|
|
@@ -44,7 +51,14 @@ class JunctionTableManager {
|
|
|
44
51
|
this.disconnectJunctionHandler
|
|
45
52
|
);
|
|
46
53
|
if (result.result !== Result.MutationResultType.noResultError) {
|
|
47
|
-
const afterEvent = new EventManager.AfterJunctionUpdateEvent(
|
|
54
|
+
const afterEvent = new EventManager.AfterJunctionUpdateEvent(
|
|
55
|
+
owningEntity,
|
|
56
|
+
relation,
|
|
57
|
+
owningUnique,
|
|
58
|
+
inverseUnique,
|
|
59
|
+
"disconnect",
|
|
60
|
+
result.result === Result.MutationResultType.ok
|
|
61
|
+
);
|
|
48
62
|
beforeEvent.afterEvent = afterEvent;
|
|
49
63
|
await mapper.eventManager.fire(afterEvent);
|
|
50
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JunctionTableManager.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/JunctionTableManager.ts"],"sourcesContent":["import { getEntity } from '@contember/schema-utils'\nimport { PathFactory, WhereBuilder } from './select'\nimport { PredicateFactory } from '../acl'\nimport {\n\tClient,\n\tConflictActionType,\n\tDeleteBuilder,\n\tInsertBuilder,\n\tLiteral,\n\tOperator,\n\tSelectBuilder,\n} from '@contember/database'\nimport { Acl, Input, Model } from '@contember/schema'\nimport {\n\tMutationJunctionUpdateOk,\n\tMutationNoResultError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tMutationResultType,\n\tNothingToDoReason,\n} from './Result'\nimport { ImplementationException } from '../exception'\nimport { AfterJunctionUpdateEvent, BeforeJunctionUpdateEvent } from './EventManager'\nimport { Mapper } from './Mapper'\n\ntype OkResultFactory = () => MutationJunctionUpdateOk\n\ntype JunctionMutationResult =\n\t| MutationJunctionUpdateOk\n\t| MutationNothingToDo\n\t| MutationNoResultError\n\nexport class JunctionTableManager {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly connectJunctionHandler: JunctionConnectHandler,\n\t\tprivate readonly disconnectJunctionHandler: JunctionDisconnectHandler,\n\t\tprivate readonly pathFactory: PathFactory,\n\t) {}\n\n\tpublic async connectJunction(\n\t\tmapper: Mapper,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningUnique: Input.PrimaryValue,\n\t\tinverseUnique: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tconst beforeEvent = new BeforeJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect')\n\t\tawait mapper.eventManager.fire(beforeEvent)\n\t\tconst result = await this.executeJunctionModification(\n\t\t\tmapper.db,\n\t\t\towningEntity,\n\t\t\trelation,\n\t\t\towningUnique,\n\t\t\tinverseUnique,\n\t\t\tthis.connectJunctionHandler,\n\t\t)\n\t\tif (result.result !== MutationResultType.noResultError) {\n\t\t\tconst afterEvent = new AfterJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect', result.result === MutationResultType.ok)\n\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t}\n\t\treturn [result]\n\t}\n\n\tpublic async disconnectJunction(\n\t\tmapper: Mapper,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningUnique: Input.PrimaryValue,\n\t\tinverseUnique: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tconst beforeEvent = new BeforeJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect')\n\t\tawait mapper.eventManager.fire(beforeEvent)\n\t\tconst result = await this.executeJunctionModification(\n\t\t\tmapper.db,\n\t\t\towningEntity,\n\t\t\trelation,\n\t\t\towningUnique,\n\t\t\tinverseUnique,\n\t\t\tthis.disconnectJunctionHandler,\n\t\t)\n\t\tif (result.result !== MutationResultType.noResultError) {\n\t\t\tconst afterEvent = new AfterJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'disconnect', result.result === MutationResultType.ok)\n\t\t\tbeforeEvent.afterEvent = afterEvent\n\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t}\n\t\treturn [result]\n\t}\n\n\n\tprivate async executeJunctionModification(\n\t\tdb: Client,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningPrimary: Input.PrimaryValue,\n\t\tinversePrimary: Input.PrimaryValue,\n\t\thandler: JunctionHandler,\n\t): Promise<JunctionMutationResult> {\n\t\tconst joiningTable = relation.joiningTable\n\t\tconst inverseEntity = getEntity(this.schema, relation.target)\n\t\tif (inverseEntity.view || owningEntity.view) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\n\t\tconst owningPredicate = this.predicateFactory.create(owningEntity, Acl.Operation.update, [relation.name])\n\t\tlet inversePredicate: Input.OptionalWhere = {}\n\t\tif (relation.inversedBy) {\n\t\t\tinversePredicate = this.predicateFactory.create(inverseEntity, Acl.Operation.update, [relation.inversedBy])\n\t\t}\n\n\t\tconst hasNoPredicates = Object.keys(owningPredicate).length === 0 && Object.keys(inversePredicate).length === 0\n\n\t\tconst okResultFactory = () =>\n\t\t\tnew MutationJunctionUpdateOk([], owningEntity, relation, owningPrimary, inversePrimary)\n\t\tif (hasNoPredicates) {\n\t\t\treturn await handler.executeSimple({ db, joiningTable, owningPrimary, inversePrimary, okResultFactory })\n\t\t} else {\n\t\t\tconst owningWhere: Input.OptionalWhere = {\n\t\t\t\tand: [owningPredicate, { [owningEntity.primary]: { eq: owningPrimary } }],\n\t\t\t}\n\n\t\t\tconst inverseWhere: Input.OptionalWhere = {\n\t\t\t\tand: [inversePredicate, { [inverseEntity.primary]: { eq: inversePrimary } }],\n\t\t\t}\n\n\t\t\tconst dataCallback: SelectBuilder.Callback = qb => {\n\t\t\t\tqb = qb\n\t\t\t\t\t.select(expr => expr.select(['owning', owningEntity.primaryColumn]), joiningTable.joiningColumn.columnName)\n\t\t\t\t\t.select(\n\t\t\t\t\t\texpr => expr.select(['inverse', inverseEntity.primaryColumn]),\n\t\t\t\t\t\tjoiningTable.inverseJoiningColumn.columnName,\n\t\t\t\t\t)\n\t\t\t\t\t.select(expr => expr.raw('true'), 'selected')\n\t\t\t\t\t.from(new Literal('(values (null))'), 't')\n\n\t\t\t\t\t.join(owningEntity.tableName, 'owning', condition => condition.raw('true'))\n\t\t\t\t\t.join(inverseEntity.tableName, 'inverse', condition => condition.raw('true'))\n\t\t\t\tqb = this.whereBuilder.build(qb, owningEntity, this.pathFactory.create([], 'owning'), owningWhere)\n\t\t\t\tqb = this.whereBuilder.build(qb, inverseEntity, this.pathFactory.create([], 'inverse'), inverseWhere)\n\t\t\t\treturn qb\n\t\t\t}\n\n\t\t\treturn await handler.executeComplex({ db, joiningTable, dataCallback, okResultFactory })\n\t\t}\n\t}\n}\n\ninterface JunctionSimpleExecutionArgs {\n\tdb: Client\n\tjoiningTable: Model.JoiningTable\n\towningPrimary: Input.PrimaryValue\n\tinversePrimary: Input.PrimaryValue\n\tokResultFactory: OkResultFactory\n}\n\ninterface JunctionComplexExecutionArgs {\n\tdb: Client\n\tjoiningTable: Model.JoiningTable\n\tdataCallback: SelectBuilder.Callback\n\tokResultFactory: OkResultFactory\n}\n\ninterface JunctionHandler {\n\texecuteSimple(args: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult>\n\n\texecuteComplex(args: JunctionComplexExecutionArgs): Promise<JunctionMutationResult>\n}\n\nexport class JunctionConnectHandler implements JunctionHandler {\n\tasync executeSimple({\n\t\tdb,\n\t\tjoiningTable,\n\t\towningPrimary,\n\t\tinversePrimary,\n\t\tokResultFactory,\n\t}: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst result = await InsertBuilder.create()\n\t\t\t.into(joiningTable.tableName)\n\t\t\t.values({\n\t\t\t\t[joiningTable.joiningColumn.columnName]: expr => expr.selectValue(owningPrimary),\n\t\t\t\t[joiningTable.inverseJoiningColumn.columnName]: expr => expr.selectValue(inversePrimary),\n\t\t\t})\n\t\t\t.onConflict(ConflictActionType.doNothing)\n\t\t\t.execute(db)\n\t\tif (result === 0) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n\n\tasync executeComplex({\n\t\tdb,\n\t\tjoiningTable,\n\t\tdataCallback,\n\t\tokResultFactory,\n\t}: JunctionComplexExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst insert = InsertBuilder.create()\n\t\t\t.into(joiningTable.tableName)\n\t\t\t.values({\n\t\t\t\t[joiningTable.joiningColumn.columnName]: expr => expr.select(['data', joiningTable.joiningColumn.columnName]),\n\t\t\t\t[joiningTable.inverseJoiningColumn.columnName]: expr =>\n\t\t\t\t\texpr.select(['data', joiningTable.inverseJoiningColumn.columnName]),\n\t\t\t})\n\t\t\t.returning(new Literal('true as inserted'))\n\t\t\t.from(qb => qb.from('data'))\n\t\t\t.onConflict(ConflictActionType.doNothing)\n\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.with('data', dataCallback)\n\t\t\t.with('insert', insert)\n\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t.leftJoin('data', 'data', condition => condition.raw('true'))\n\t\t\t.leftJoin('insert', 'insert', condition => condition.raw('true'))\n\t\t\t.select(expr => expr.raw('coalesce(data.selected, false)'), 'selected')\n\t\t\t.select(expr => expr.raw('coalesce(insert.inserted, false)'), 'inserted')\n\n\t\tconst result = await qb.getResult(db)\n\t\tif (result[0]['selected'] === false) {\n\t\t\treturn new MutationNoResultError([])\n\t\t}\n\t\tif (result[0]['inserted'] === false) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n}\n\nexport class JunctionDisconnectHandler implements JunctionHandler {\n\tpublic async executeSimple({\n\t\tdb,\n\t\tjoiningTable,\n\t\towningPrimary,\n\t\tinversePrimary,\n\t\tokResultFactory,\n\t}: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst qb = DeleteBuilder.create()\n\t\t\t.from(joiningTable.tableName)\n\t\t\t.where(cond => cond.compare(joiningTable.joiningColumn.columnName, Operator.eq, owningPrimary))\n\t\t\t.where(cond => cond.compare(joiningTable.inverseJoiningColumn.columnName, Operator.eq, inversePrimary))\n\n\t\tconst result = await qb.execute(db)\n\t\tif (result === 0) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n\n\tpublic async executeComplex({\n\t\tdb,\n\t\tjoiningTable,\n\t\tdataCallback,\n\t\tokResultFactory,\n\t}: JunctionComplexExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst deleteQb = DeleteBuilder.create()\n\t\t\t.from(joiningTable.tableName)\n\t\t\t.using('data')\n\t\t\t.where(cond => {\n\t\t\t\tcond = cond.compareColumns([joiningTable.tableName, joiningTable.joiningColumn.columnName], Operator.eq, [\n\t\t\t\t\t'data',\n\t\t\t\t\tjoiningTable.joiningColumn.columnName,\n\t\t\t\t])\n\t\t\t\tcond = cond.compareColumns(\n\t\t\t\t\t[joiningTable.tableName, joiningTable.inverseJoiningColumn.columnName],\n\t\t\t\t\tOperator.eq,\n\t\t\t\t\t['data', joiningTable.inverseJoiningColumn.columnName],\n\t\t\t\t)\n\t\t\t\treturn cond\n\t\t\t})\n\t\t\t.returning(new Literal('true as deleted'))\n\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.with('data', dataCallback)\n\t\t\t.with('delete', deleteQb)\n\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t.leftJoin('data', 'data', condition => condition.raw('true'))\n\t\t\t.leftJoin('delete', 'delete', condition => condition.raw('true'))\n\t\t\t.select(expr => expr.raw('coalesce(data.selected, false)'), 'selected')\n\t\t\t.select(expr => expr.raw('coalesce(delete.deleted, false)'), 'deleted')\n\n\t\tconst result = await qb.getResult(db)\n\t\tif (result[0]['selected'] === false) {\n\t\t\treturn new MutationNoResultError([])\n\t\t}\n\t\tif (result[0]['inserted'] === false) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n}\n"],"names":["schema","BeforeJunctionUpdateEvent","MutationResultType","AfterJunctionUpdateEvent","getEntity","ImplementationException","Acl","MutationJunctionUpdateOk","Literal","InsertBuilder","ConflictActionType","MutationNothingToDo","NothingToDoReason","qb","SelectBuilder","MutationNoResultError","DeleteBuilder","Operator"],"mappings":";;;;;;;;AAgCO,MAAM,qBAAqB;AAAA,EACjC,YACkBA,SACA,kBACA,cACA,wBACA,2BACA,aAChB;AANgB,SAAA,SAAAA;AACA,SAAA,mBAAA;AACA,SAAA,eAAA;AACA,SAAA,yBAAA;AACA,SAAA,4BAAA;AACA,SAAA,cAAA;AAAA,EAAA;AAAA,EAGlB,MAAa,gBACZ,QACA,cACA,UACA,cACA,eAC8B;AAC9B,UAAM,cAAc,IAAIC,uCAA0B,cAAc,UAAU,cAAc,eAAe,SAAS;AAC1G,UAAA,OAAO,aAAa,KAAK,WAAW;AACpC,UAAA,SAAS,MAAM,KAAK;AAAA,MACzB,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK;AAAA,IACN;AACI,QAAA,OAAO,WAAWC,OAAA,mBAAmB,eAAe;AACjD,YAAA,aAAa,IAAIC,sCAAyB,cAAc,UAAU,cAAc,eAAe,WAAW,OAAO,WAAWD,OAAAA,mBAAmB,EAAE;AACjJ,YAAA,OAAO,aAAa,KAAK,UAAU;AAAA,IAAA;AAE1C,WAAO,CAAC,MAAM;AAAA,EAAA;AAAA,EAGf,MAAa,mBACZ,QACA,cACA,UACA,cACA,eAC8B;AAC9B,UAAM,cAAc,IAAID,uCAA0B,cAAc,UAAU,cAAc,eAAe,SAAS;AAC1G,UAAA,OAAO,aAAa,KAAK,WAAW;AACpC,UAAA,SAAS,MAAM,KAAK;AAAA,MACzB,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK;AAAA,IACN;AACI,QAAA,OAAO,WAAWC,OAAA,mBAAmB,eAAe;AACjD,YAAA,aAAa,IAAIC,sCAAyB,cAAc,UAAU,cAAc,eAAe,cAAc,OAAO,WAAWD,OAAAA,mBAAmB,EAAE;AAC1J,kBAAY,aAAa;AACnB,YAAA,OAAO,aAAa,KAAK,UAAU;AAAA,IAAA;AAE1C,WAAO,CAAC,MAAM;AAAA,EAAA;AAAA,EAIf,MAAc,4BACb,IACA,cACA,UACA,eACA,gBACA,SACkC;AAClC,UAAM,eAAe,SAAS;AAC9B,UAAM,gBAAgBE,YAAAA,UAAU,KAAK,QAAQ,SAAS,MAAM;AACxD,QAAA,cAAc,QAAQ,aAAa,MAAM;AAC5C,YAAM,IAAIC,UAAAA,wBAAwB;AAAA,IAAA;AAG7B,UAAA,kBAAkB,KAAK,iBAAiB,OAAO,cAAcC,WAAI,UAAU,QAAQ,CAAC,SAAS,IAAI,CAAC;AACxG,QAAI,mBAAwC,CAAC;AAC7C,QAAI,SAAS,YAAY;AACL,yBAAA,KAAK,iBAAiB,OAAO,eAAeA,WAAI,UAAU,QAAQ,CAAC,SAAS,UAAU,CAAC;AAAA,IAAA;AAGrG,UAAA,kBAAkB,OAAO,KAAK,eAAe,EAAE,WAAW,KAAK,OAAO,KAAK,gBAAgB,EAAE,WAAW;AAExG,UAAA,kBAAkB,MACvB,IAAIC,gCAAyB,CAAA,GAAI,cAAc,UAAU,eAAe,cAAc;AACvF,QAAI,iBAAiB;AACb,aAAA,MAAM,QAAQ,cAAc,EAAE,IAAI,cAAc,eAAe,gBAAgB,iBAAiB;AAAA,IAAA,OACjG;AACN,YAAM,cAAmC;AAAA,QACxC,KAAK,CAAC,iBAAiB,EAAE,CAAC,aAAa,OAAO,GAAG,EAAE,IAAI,gBAAiB,CAAA;AAAA,MACzE;AAEA,YAAM,eAAoC;AAAA,QACzC,KAAK,CAAC,kBAAkB,EAAE,CAAC,cAAc,OAAO,GAAG,EAAE,IAAI,iBAAkB,CAAA;AAAA,MAC5E;AAEA,YAAM,eAAuC,CAAM,OAAA;AAClD,aAAK,GACH,OAAO,CAAQ,SAAA,KAAK,OAAO,CAAC,UAAU,aAAa,aAAa,CAAC,GAAG,aAAa,cAAc,UAAU,EACzG;AAAA,UACA,UAAQ,KAAK,OAAO,CAAC,WAAW,cAAc,aAAa,CAAC;AAAA,UAC5D,aAAa,qBAAqB;AAAA,QAAA,EAElC,OAAO,CAAQ,SAAA,KAAK,IAAI,MAAM,GAAG,UAAU,EAC3C,KAAK,IAAIC,SAAAA,QAAQ,iBAAiB,GAAG,GAAG,EAExC,KAAK,aAAa,WAAW,UAAU,CAAA,cAAa,UAAU,IAAI,MAAM,CAAC,EACzE,KAAK,cAAc,WAAW,WAAW,CAAA,cAAa,UAAU,IAAI,MAAM,CAAC;AAC7E,aAAK,KAAK,aAAa,MAAM,IAAI,cAAc,KAAK,YAAY,OAAO,CAAA,GAAI,QAAQ,GAAG,WAAW;AACjG,aAAK,KAAK,aAAa,MAAM,IAAI,eAAe,KAAK,YAAY,OAAO,CAAA,GAAI,SAAS,GAAG,YAAY;AAC7F,eAAA;AAAA,MACR;AAEO,aAAA,MAAM,QAAQ,eAAe,EAAE,IAAI,cAAc,cAAc,iBAAiB;AAAA,IAAA;AAAA,EACxF;AAEF;AAuBO,MAAM,uBAAkD;AAAA,EAC9D,MAAM,cAAc;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GACgE;AAC1D,UAAA,SAAS,MAAMC,SAAAA,cAAc,OAAA,EACjC,KAAK,aAAa,SAAS,EAC3B,OAAO;AAAA,MACP,CAAC,aAAa,cAAc,UAAU,GAAG,CAAQ,SAAA,KAAK,YAAY,aAAa;AAAA,MAC/E,CAAC,aAAa,qBAAqB,UAAU,GAAG,CAAQ,SAAA,KAAK,YAAY,cAAc;AAAA,IAAA,CACvF,EACA,WAAWC,4BAAmB,SAAS,EACvC,QAAQ,EAAE;AACZ,QAAI,WAAW,GAAG;AACjB,aAAO,IAAIC,OAAA,oBAAoB,IAAIC,OAAAA,kBAAkB,aAAa;AAAA,IAAA;AAEnE,WAAO,gBAAgB;AAAA,EAAA;AAAA,EAGxB,MAAM,eAAe;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GACiE;AAC3D,UAAA,SAASH,uBAAc,OAAO,EAClC,KAAK,aAAa,SAAS,EAC3B,OAAO;AAAA,MACP,CAAC,aAAa,cAAc,UAAU,GAAG,CAAA,SAAQ,KAAK,OAAO,CAAC,QAAQ,aAAa,cAAc,UAAU,CAAC;AAAA,MAC5G,CAAC,aAAa,qBAAqB,UAAU,GAAG,CAAA,SAC/C,KAAK,OAAO,CAAC,QAAQ,aAAa,qBAAqB,UAAU,CAAC;AAAA,IAAA,CACnE,EACA,UAAU,IAAID,SAAAA,QAAQ,kBAAkB,CAAC,EACzC,KAAK,CAAAK,QAAMA,IAAG,KAAK,MAAM,CAAC,EAC1B,WAAWH,4BAAmB,SAAS;AAEnC,UAAA,KAAKI,SAAAA,cAAc,OAAO,EAC9B,KAAK,QAAQ,YAAY,EACzB,KAAK,UAAU,MAAM,EACrB,KAAK,IAAIN,iBAAQ,iBAAiB,GAAG,GAAG,EACxC,SAAS,QAAQ,QAAQ,CAAA,cAAa,UAAU,IAAI,MAAM,CAAC,EAC3D,SAAS,UAAU,UAAU,CAAA,cAAa,UAAU,IAAI,MAAM,CAAC,EAC/D,OAAO,CAAA,SAAQ,KAAK,IAAI,gCAAgC,GAAG,UAAU,EACrE,OAAO,UAAQ,KAAK,IAAI,kCAAkC,GAAG,UAAU;AAEzE,UAAM,SAAS,MAAM,GAAG,UAAU,EAAE;AACpC,QAAI,OAAO,CAAC,EAAE,UAAU,MAAM,OAAO;AAC7B,aAAA,IAAIO,OAAsB,sBAAA,EAAE;AAAA,IAAA;AAEpC,QAAI,OAAO,CAAC,EAAE,UAAU,MAAM,OAAO;AACpC,aAAO,IAAIJ,OAAA,oBAAoB,IAAIC,OAAAA,kBAAkB,aAAa;AAAA,IAAA;AAEnE,WAAO,gBAAgB;AAAA,EAAA;AAEzB;AAEO,MAAM,0BAAqD;AAAA,EACjE,MAAa,cAAc;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GACgE;AAChE,UAAM,KAAKI,SAAA,cAAc,OAAO,EAC9B,KAAK,aAAa,SAAS,EAC3B,MAAM,CAAA,SAAQ,KAAK,QAAQ,aAAa,cAAc,YAAYC,SAAAA,SAAS,IAAI,aAAa,CAAC,EAC7F,MAAM,CAAQ,SAAA,KAAK,QAAQ,aAAa,qBAAqB,YAAYA,SAAS,SAAA,IAAI,cAAc,CAAC;AAEvG,UAAM,SAAS,MAAM,GAAG,QAAQ,EAAE;AAClC,QAAI,WAAW,GAAG;AACjB,aAAO,IAAIN,OAAA,oBAAoB,IAAIC,OAAAA,kBAAkB,aAAa;AAAA,IAAA;AAEnE,WAAO,gBAAgB;AAAA,EAAA;AAAA,EAGxB,MAAa,eAAe;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GACiE;AACjE,UAAM,WAAWI,SAAA,cAAc,OAAO,EACpC,KAAK,aAAa,SAAS,EAC3B,MAAM,MAAM,EACZ,MAAM,CAAQ,SAAA;AACP,aAAA,KAAK,eAAe,CAAC,aAAa,WAAW,aAAa,cAAc,UAAU,GAAGC,SAAAA,SAAS,IAAI;AAAA,QACxG;AAAA,QACA,aAAa,cAAc;AAAA,MAAA,CAC3B;AACD,aAAO,KAAK;AAAA,QACX,CAAC,aAAa,WAAW,aAAa,qBAAqB,UAAU;AAAA,QACrEA,SAAAA,SAAS;AAAA,QACT,CAAC,QAAQ,aAAa,qBAAqB,UAAU;AAAA,MACtD;AACO,aAAA;AAAA,IACP,CAAA,EACA,UAAU,IAAIT,SAAA,QAAQ,iBAAiB,CAAC;AAEpC,UAAA,KAAKM,SAAAA,cAAc,OAAO,EAC9B,KAAK,QAAQ,YAAY,EACzB,KAAK,UAAU,QAAQ,EACvB,KAAK,IAAIN,iBAAQ,iBAAiB,GAAG,GAAG,EACxC,SAAS,QAAQ,QAAQ,CAAA,cAAa,UAAU,IAAI,MAAM,CAAC,EAC3D,SAAS,UAAU,UAAU,CAAA,cAAa,UAAU,IAAI,MAAM,CAAC,EAC/D,OAAO,CAAA,SAAQ,KAAK,IAAI,gCAAgC,GAAG,UAAU,EACrE,OAAO,UAAQ,KAAK,IAAI,iCAAiC,GAAG,SAAS;AAEvE,UAAM,SAAS,MAAM,GAAG,UAAU,EAAE;AACpC,QAAI,OAAO,CAAC,EAAE,UAAU,MAAM,OAAO;AAC7B,aAAA,IAAIO,OAAsB,sBAAA,EAAE;AAAA,IAAA;AAEpC,QAAI,OAAO,CAAC,EAAE,UAAU,MAAM,OAAO;AACpC,aAAO,IAAIJ,OAAA,oBAAoB,IAAIC,OAAAA,kBAAkB,aAAa;AAAA,IAAA;AAEnE,WAAO,gBAAgB;AAAA,EAAA;AAEzB;;;;"}
|
|
1
|
+
{"version":3,"file":"JunctionTableManager.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/JunctionTableManager.ts"],"sourcesContent":["import { getEntity } from '@contember/schema-utils'\nimport { PathFactory, WhereBuilder } from './select'\nimport { PredicateFactory } from '../acl'\nimport { Client, ConflictActionType, DeleteBuilder, InsertBuilder, Literal, Operator, SelectBuilder } from '@contember/database'\nimport { Acl, Input, Model } from '@contember/schema'\nimport {\n\tMutationJunctionUpdateOk,\n\tMutationNoResultError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tMutationResultType,\n\tNothingToDoReason,\n} from './Result'\nimport { ImplementationException } from '../exception'\nimport { AfterJunctionUpdateEvent, BeforeJunctionUpdateEvent } from './EventManager'\nimport { Mapper } from './Mapper'\n\ntype OkResultFactory = () => MutationJunctionUpdateOk\n\ntype JunctionMutationResult =\n\t| MutationJunctionUpdateOk\n\t| MutationNothingToDo\n\t| MutationNoResultError\n\nexport class JunctionTableManager {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly connectJunctionHandler: JunctionConnectHandler,\n\t\tprivate readonly disconnectJunctionHandler: JunctionDisconnectHandler,\n\t\tprivate readonly pathFactory: PathFactory,\n\t) {}\n\n\tpublic async connectJunction(\n\t\tmapper: Mapper,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningUnique: Input.PrimaryValue,\n\t\tinverseUnique: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tconst beforeEvent = new BeforeJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect')\n\t\tawait mapper.eventManager.fire(beforeEvent)\n\t\tconst result = await this.executeJunctionModification(\n\t\t\tmapper.db,\n\t\t\towningEntity,\n\t\t\trelation,\n\t\t\towningUnique,\n\t\t\tinverseUnique,\n\t\t\tthis.connectJunctionHandler,\n\t\t)\n\t\tif (result.result !== MutationResultType.noResultError) {\n\t\t\tconst afterEvent = new AfterJunctionUpdateEvent(\n\t\t\t\towningEntity,\n\t\t\t\trelation,\n\t\t\t\towningUnique,\n\t\t\t\tinverseUnique,\n\t\t\t\t'connect',\n\t\t\t\tresult.result === MutationResultType.ok,\n\t\t\t)\n\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t}\n\t\treturn [result]\n\t}\n\n\tpublic async disconnectJunction(\n\t\tmapper: Mapper,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningUnique: Input.PrimaryValue,\n\t\tinverseUnique: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tconst beforeEvent = new BeforeJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect')\n\t\tawait mapper.eventManager.fire(beforeEvent)\n\t\tconst result = await this.executeJunctionModification(\n\t\t\tmapper.db,\n\t\t\towningEntity,\n\t\t\trelation,\n\t\t\towningUnique,\n\t\t\tinverseUnique,\n\t\t\tthis.disconnectJunctionHandler,\n\t\t)\n\t\tif (result.result !== MutationResultType.noResultError) {\n\t\t\tconst afterEvent = new AfterJunctionUpdateEvent(\n\t\t\t\towningEntity,\n\t\t\t\trelation,\n\t\t\t\towningUnique,\n\t\t\t\tinverseUnique,\n\t\t\t\t'disconnect',\n\t\t\t\tresult.result === MutationResultType.ok,\n\t\t\t)\n\t\t\tbeforeEvent.afterEvent = afterEvent\n\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t}\n\t\treturn [result]\n\t}\n\n\tprivate async executeJunctionModification(\n\t\tdb: Client,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningPrimary: Input.PrimaryValue,\n\t\tinversePrimary: Input.PrimaryValue,\n\t\thandler: JunctionHandler,\n\t): Promise<JunctionMutationResult> {\n\t\tconst joiningTable = relation.joiningTable\n\t\tconst inverseEntity = getEntity(this.schema, relation.target)\n\t\tif (inverseEntity.view || owningEntity.view) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\n\t\tconst owningPredicate = this.predicateFactory.create(owningEntity, Acl.Operation.update, [relation.name])\n\t\tlet inversePredicate: Input.OptionalWhere = {}\n\t\tif (relation.inversedBy) {\n\t\t\tinversePredicate = this.predicateFactory.create(inverseEntity, Acl.Operation.update, [relation.inversedBy])\n\t\t}\n\n\t\tconst hasNoPredicates = Object.keys(owningPredicate).length === 0 && Object.keys(inversePredicate).length === 0\n\n\t\tconst okResultFactory = () => new MutationJunctionUpdateOk([], owningEntity, relation, owningPrimary, inversePrimary)\n\t\tif (hasNoPredicates) {\n\t\t\treturn await handler.executeSimple({ db, joiningTable, owningPrimary, inversePrimary, okResultFactory })\n\t\t} else {\n\t\t\tconst owningWhere: Input.OptionalWhere = {\n\t\t\t\tand: [owningPredicate, { [owningEntity.primary]: { eq: owningPrimary } }],\n\t\t\t}\n\n\t\t\tconst inverseWhere: Input.OptionalWhere = {\n\t\t\t\tand: [inversePredicate, { [inverseEntity.primary]: { eq: inversePrimary } }],\n\t\t\t}\n\n\t\t\tconst dataCallback: SelectBuilder.Callback = qb => {\n\t\t\t\tqb = qb\n\t\t\t\t\t.select(expr => expr.select(['owning', owningEntity.primaryColumn]), joiningTable.joiningColumn.columnName)\n\t\t\t\t\t.select(\n\t\t\t\t\t\texpr => expr.select(['inverse', inverseEntity.primaryColumn]),\n\t\t\t\t\t\tjoiningTable.inverseJoiningColumn.columnName,\n\t\t\t\t\t)\n\t\t\t\t\t.select(expr => expr.raw('true'), 'selected')\n\t\t\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t\t\t.join(owningEntity.tableName, 'owning', condition => condition.raw('true'))\n\t\t\t\t\t.join(inverseEntity.tableName, 'inverse', condition => condition.raw('true'))\n\t\t\t\tqb = this.whereBuilder.build(qb, owningEntity, this.pathFactory.create([], 'owning'), owningWhere)\n\t\t\t\tqb = this.whereBuilder.build(qb, inverseEntity, this.pathFactory.create([], 'inverse'), inverseWhere)\n\t\t\t\treturn qb\n\t\t\t}\n\n\t\t\treturn await handler.executeComplex({ db, joiningTable, dataCallback, okResultFactory })\n\t\t}\n\t}\n}\n\ninterface JunctionSimpleExecutionArgs {\n\tdb: Client\n\tjoiningTable: Model.JoiningTable\n\towningPrimary: Input.PrimaryValue\n\tinversePrimary: Input.PrimaryValue\n\tokResultFactory: OkResultFactory\n}\n\ninterface JunctionComplexExecutionArgs {\n\tdb: Client\n\tjoiningTable: Model.JoiningTable\n\tdataCallback: SelectBuilder.Callback\n\tokResultFactory: OkResultFactory\n}\n\ninterface JunctionHandler {\n\texecuteSimple(args: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult>\n\n\texecuteComplex(args: JunctionComplexExecutionArgs): Promise<JunctionMutationResult>\n}\n\nexport class JunctionConnectHandler implements JunctionHandler {\n\tasync executeSimple({\n\t\tdb,\n\t\tjoiningTable,\n\t\towningPrimary,\n\t\tinversePrimary,\n\t\tokResultFactory,\n\t}: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst result = await InsertBuilder.create()\n\t\t\t.into(joiningTable.tableName)\n\t\t\t.values({\n\t\t\t\t[joiningTable.joiningColumn.columnName]: expr => expr.selectValue(owningPrimary),\n\t\t\t\t[joiningTable.inverseJoiningColumn.columnName]: expr => expr.selectValue(inversePrimary),\n\t\t\t})\n\t\t\t.onConflict(ConflictActionType.doNothing)\n\t\t\t.execute(db)\n\t\tif (result === 0) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n\n\tasync executeComplex({\n\t\tdb,\n\t\tjoiningTable,\n\t\tdataCallback,\n\t\tokResultFactory,\n\t}: JunctionComplexExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst insert = InsertBuilder.create()\n\t\t\t.into(joiningTable.tableName)\n\t\t\t.values({\n\t\t\t\t[joiningTable.joiningColumn.columnName]: expr => expr.select(['data', joiningTable.joiningColumn.columnName]),\n\t\t\t\t[joiningTable.inverseJoiningColumn.columnName]: expr => expr.select(['data', joiningTable.inverseJoiningColumn.columnName]),\n\t\t\t})\n\t\t\t.returning(new Literal('true as inserted'))\n\t\t\t.from(qb => qb.from('data'))\n\t\t\t.onConflict(ConflictActionType.doNothing)\n\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.with('data', dataCallback)\n\t\t\t.with('insert', insert)\n\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t.leftJoin('data', 'data', condition => condition.raw('true'))\n\t\t\t.leftJoin('insert', 'insert', condition => condition.raw('true'))\n\t\t\t.select(expr => expr.raw('coalesce(data.selected, false)'), 'selected')\n\t\t\t.select(expr => expr.raw('coalesce(insert.inserted, false)'), 'inserted')\n\n\t\tconst result = await qb.getResult(db)\n\t\tif (result[0]['selected'] === false) {\n\t\t\treturn new MutationNoResultError([])\n\t\t}\n\t\tif (result[0]['inserted'] === false) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n}\n\nexport class JunctionDisconnectHandler implements JunctionHandler {\n\tpublic async executeSimple({\n\t\tdb,\n\t\tjoiningTable,\n\t\towningPrimary,\n\t\tinversePrimary,\n\t\tokResultFactory,\n\t}: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst qb = DeleteBuilder.create()\n\t\t\t.from(joiningTable.tableName)\n\t\t\t.where(cond => cond.compare(joiningTable.joiningColumn.columnName, Operator.eq, owningPrimary))\n\t\t\t.where(cond => cond.compare(joiningTable.inverseJoiningColumn.columnName, Operator.eq, inversePrimary))\n\n\t\tconst result = await qb.execute(db)\n\t\tif (result === 0) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n\n\tpublic async executeComplex({\n\t\tdb,\n\t\tjoiningTable,\n\t\tdataCallback,\n\t\tokResultFactory,\n\t}: JunctionComplexExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst deleteQb = DeleteBuilder.create()\n\t\t\t.from(joiningTable.tableName)\n\t\t\t.using('data')\n\t\t\t.where(cond => {\n\t\t\t\tcond = cond.compareColumns([joiningTable.tableName, joiningTable.joiningColumn.columnName], Operator.eq, [\n\t\t\t\t\t'data',\n\t\t\t\t\tjoiningTable.joiningColumn.columnName,\n\t\t\t\t])\n\t\t\t\tcond = cond.compareColumns(\n\t\t\t\t\t[joiningTable.tableName, joiningTable.inverseJoiningColumn.columnName],\n\t\t\t\t\tOperator.eq,\n\t\t\t\t\t['data', joiningTable.inverseJoiningColumn.columnName],\n\t\t\t\t)\n\t\t\t\treturn cond\n\t\t\t})\n\t\t\t.returning(new Literal('true as deleted'))\n\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.with('data', dataCallback)\n\t\t\t.with('delete', deleteQb)\n\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t.leftJoin('data', 'data', condition => condition.raw('true'))\n\t\t\t.leftJoin('delete', 'delete', condition => condition.raw('true'))\n\t\t\t.select(expr => expr.raw('coalesce(data.selected, false)'), 'selected')\n\t\t\t.select(expr => expr.raw('coalesce(delete.deleted, false)'), 'deleted')\n\n\t\tconst result = await qb.getResult(db)\n\t\tif (result[0]['selected'] === false) {\n\t\t\treturn new MutationNoResultError([])\n\t\t}\n\t\tif (result[0]['inserted'] === false) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n}\n"],"names":["schema","BeforeJunctionUpdateEvent","MutationResultType","AfterJunctionUpdateEvent","getEntity","ImplementationException","Acl","MutationJunctionUpdateOk","Literal","InsertBuilder","ConflictActionType","MutationNothingToDo","NothingToDoReason","qb","SelectBuilder","MutationNoResultError","DeleteBuilder","Operator"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getEntity } from "@contember/schema-utils";
|
|
2
2
|
import { InsertBuilder as InsertBuilder$1, ConflictActionType, Literal, SelectBuilder, DeleteBuilder, Operator } from "@contember/database";
|
|
3
3
|
import { Acl } from "@contember/schema";
|
|
4
|
-
import {
|
|
4
|
+
import { MutationNothingToDo, NothingToDoReason, MutationNoResultError, MutationResultType, MutationJunctionUpdateOk } from "./Result.js";
|
|
5
5
|
import { ImplementationException } from "../exception.js";
|
|
6
6
|
import { BeforeJunctionUpdateEvent, AfterJunctionUpdateEvent } from "./EventManager.js";
|
|
7
7
|
class JunctionTableManager {
|
|
@@ -25,7 +25,14 @@ class JunctionTableManager {
|
|
|
25
25
|
this.connectJunctionHandler
|
|
26
26
|
);
|
|
27
27
|
if (result.result !== MutationResultType.noResultError) {
|
|
28
|
-
const afterEvent = new AfterJunctionUpdateEvent(
|
|
28
|
+
const afterEvent = new AfterJunctionUpdateEvent(
|
|
29
|
+
owningEntity,
|
|
30
|
+
relation,
|
|
31
|
+
owningUnique,
|
|
32
|
+
inverseUnique,
|
|
33
|
+
"connect",
|
|
34
|
+
result.result === MutationResultType.ok
|
|
35
|
+
);
|
|
29
36
|
await mapper.eventManager.fire(afterEvent);
|
|
30
37
|
}
|
|
31
38
|
return [result];
|
|
@@ -42,7 +49,14 @@ class JunctionTableManager {
|
|
|
42
49
|
this.disconnectJunctionHandler
|
|
43
50
|
);
|
|
44
51
|
if (result.result !== MutationResultType.noResultError) {
|
|
45
|
-
const afterEvent = new AfterJunctionUpdateEvent(
|
|
52
|
+
const afterEvent = new AfterJunctionUpdateEvent(
|
|
53
|
+
owningEntity,
|
|
54
|
+
relation,
|
|
55
|
+
owningUnique,
|
|
56
|
+
inverseUnique,
|
|
57
|
+
"disconnect",
|
|
58
|
+
result.result === MutationResultType.ok
|
|
59
|
+
);
|
|
46
60
|
beforeEvent.afterEvent = afterEvent;
|
|
47
61
|
await mapper.eventManager.fire(afterEvent);
|
|
48
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JunctionTableManager.js","sources":["../../../../../packages/engine-content-api/src/mapper/JunctionTableManager.ts"],"sourcesContent":["import { getEntity } from '@contember/schema-utils'\nimport { PathFactory, WhereBuilder } from './select'\nimport { PredicateFactory } from '../acl'\nimport {\n\tClient,\n\tConflictActionType,\n\tDeleteBuilder,\n\tInsertBuilder,\n\tLiteral,\n\tOperator,\n\tSelectBuilder,\n} from '@contember/database'\nimport { Acl, Input, Model } from '@contember/schema'\nimport {\n\tMutationJunctionUpdateOk,\n\tMutationNoResultError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tMutationResultType,\n\tNothingToDoReason,\n} from './Result'\nimport { ImplementationException } from '../exception'\nimport { AfterJunctionUpdateEvent, BeforeJunctionUpdateEvent } from './EventManager'\nimport { Mapper } from './Mapper'\n\ntype OkResultFactory = () => MutationJunctionUpdateOk\n\ntype JunctionMutationResult =\n\t| MutationJunctionUpdateOk\n\t| MutationNothingToDo\n\t| MutationNoResultError\n\nexport class JunctionTableManager {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly connectJunctionHandler: JunctionConnectHandler,\n\t\tprivate readonly disconnectJunctionHandler: JunctionDisconnectHandler,\n\t\tprivate readonly pathFactory: PathFactory,\n\t) {}\n\n\tpublic async connectJunction(\n\t\tmapper: Mapper,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningUnique: Input.PrimaryValue,\n\t\tinverseUnique: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tconst beforeEvent = new BeforeJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect')\n\t\tawait mapper.eventManager.fire(beforeEvent)\n\t\tconst result = await this.executeJunctionModification(\n\t\t\tmapper.db,\n\t\t\towningEntity,\n\t\t\trelation,\n\t\t\towningUnique,\n\t\t\tinverseUnique,\n\t\t\tthis.connectJunctionHandler,\n\t\t)\n\t\tif (result.result !== MutationResultType.noResultError) {\n\t\t\tconst afterEvent = new AfterJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect', result.result === MutationResultType.ok)\n\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t}\n\t\treturn [result]\n\t}\n\n\tpublic async disconnectJunction(\n\t\tmapper: Mapper,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningUnique: Input.PrimaryValue,\n\t\tinverseUnique: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tconst beforeEvent = new BeforeJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect')\n\t\tawait mapper.eventManager.fire(beforeEvent)\n\t\tconst result = await this.executeJunctionModification(\n\t\t\tmapper.db,\n\t\t\towningEntity,\n\t\t\trelation,\n\t\t\towningUnique,\n\t\t\tinverseUnique,\n\t\t\tthis.disconnectJunctionHandler,\n\t\t)\n\t\tif (result.result !== MutationResultType.noResultError) {\n\t\t\tconst afterEvent = new AfterJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'disconnect', result.result === MutationResultType.ok)\n\t\t\tbeforeEvent.afterEvent = afterEvent\n\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t}\n\t\treturn [result]\n\t}\n\n\n\tprivate async executeJunctionModification(\n\t\tdb: Client,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningPrimary: Input.PrimaryValue,\n\t\tinversePrimary: Input.PrimaryValue,\n\t\thandler: JunctionHandler,\n\t): Promise<JunctionMutationResult> {\n\t\tconst joiningTable = relation.joiningTable\n\t\tconst inverseEntity = getEntity(this.schema, relation.target)\n\t\tif (inverseEntity.view || owningEntity.view) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\n\t\tconst owningPredicate = this.predicateFactory.create(owningEntity, Acl.Operation.update, [relation.name])\n\t\tlet inversePredicate: Input.OptionalWhere = {}\n\t\tif (relation.inversedBy) {\n\t\t\tinversePredicate = this.predicateFactory.create(inverseEntity, Acl.Operation.update, [relation.inversedBy])\n\t\t}\n\n\t\tconst hasNoPredicates = Object.keys(owningPredicate).length === 0 && Object.keys(inversePredicate).length === 0\n\n\t\tconst okResultFactory = () =>\n\t\t\tnew MutationJunctionUpdateOk([], owningEntity, relation, owningPrimary, inversePrimary)\n\t\tif (hasNoPredicates) {\n\t\t\treturn await handler.executeSimple({ db, joiningTable, owningPrimary, inversePrimary, okResultFactory })\n\t\t} else {\n\t\t\tconst owningWhere: Input.OptionalWhere = {\n\t\t\t\tand: [owningPredicate, { [owningEntity.primary]: { eq: owningPrimary } }],\n\t\t\t}\n\n\t\t\tconst inverseWhere: Input.OptionalWhere = {\n\t\t\t\tand: [inversePredicate, { [inverseEntity.primary]: { eq: inversePrimary } }],\n\t\t\t}\n\n\t\t\tconst dataCallback: SelectBuilder.Callback = qb => {\n\t\t\t\tqb = qb\n\t\t\t\t\t.select(expr => expr.select(['owning', owningEntity.primaryColumn]), joiningTable.joiningColumn.columnName)\n\t\t\t\t\t.select(\n\t\t\t\t\t\texpr => expr.select(['inverse', inverseEntity.primaryColumn]),\n\t\t\t\t\t\tjoiningTable.inverseJoiningColumn.columnName,\n\t\t\t\t\t)\n\t\t\t\t\t.select(expr => expr.raw('true'), 'selected')\n\t\t\t\t\t.from(new Literal('(values (null))'), 't')\n\n\t\t\t\t\t.join(owningEntity.tableName, 'owning', condition => condition.raw('true'))\n\t\t\t\t\t.join(inverseEntity.tableName, 'inverse', condition => condition.raw('true'))\n\t\t\t\tqb = this.whereBuilder.build(qb, owningEntity, this.pathFactory.create([], 'owning'), owningWhere)\n\t\t\t\tqb = this.whereBuilder.build(qb, inverseEntity, this.pathFactory.create([], 'inverse'), inverseWhere)\n\t\t\t\treturn qb\n\t\t\t}\n\n\t\t\treturn await handler.executeComplex({ db, joiningTable, dataCallback, okResultFactory })\n\t\t}\n\t}\n}\n\ninterface JunctionSimpleExecutionArgs {\n\tdb: Client\n\tjoiningTable: Model.JoiningTable\n\towningPrimary: Input.PrimaryValue\n\tinversePrimary: Input.PrimaryValue\n\tokResultFactory: OkResultFactory\n}\n\ninterface JunctionComplexExecutionArgs {\n\tdb: Client\n\tjoiningTable: Model.JoiningTable\n\tdataCallback: SelectBuilder.Callback\n\tokResultFactory: OkResultFactory\n}\n\ninterface JunctionHandler {\n\texecuteSimple(args: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult>\n\n\texecuteComplex(args: JunctionComplexExecutionArgs): Promise<JunctionMutationResult>\n}\n\nexport class JunctionConnectHandler implements JunctionHandler {\n\tasync executeSimple({\n\t\tdb,\n\t\tjoiningTable,\n\t\towningPrimary,\n\t\tinversePrimary,\n\t\tokResultFactory,\n\t}: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst result = await InsertBuilder.create()\n\t\t\t.into(joiningTable.tableName)\n\t\t\t.values({\n\t\t\t\t[joiningTable.joiningColumn.columnName]: expr => expr.selectValue(owningPrimary),\n\t\t\t\t[joiningTable.inverseJoiningColumn.columnName]: expr => expr.selectValue(inversePrimary),\n\t\t\t})\n\t\t\t.onConflict(ConflictActionType.doNothing)\n\t\t\t.execute(db)\n\t\tif (result === 0) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n\n\tasync executeComplex({\n\t\tdb,\n\t\tjoiningTable,\n\t\tdataCallback,\n\t\tokResultFactory,\n\t}: JunctionComplexExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst insert = InsertBuilder.create()\n\t\t\t.into(joiningTable.tableName)\n\t\t\t.values({\n\t\t\t\t[joiningTable.joiningColumn.columnName]: expr => expr.select(['data', joiningTable.joiningColumn.columnName]),\n\t\t\t\t[joiningTable.inverseJoiningColumn.columnName]: expr =>\n\t\t\t\t\texpr.select(['data', joiningTable.inverseJoiningColumn.columnName]),\n\t\t\t})\n\t\t\t.returning(new Literal('true as inserted'))\n\t\t\t.from(qb => qb.from('data'))\n\t\t\t.onConflict(ConflictActionType.doNothing)\n\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.with('data', dataCallback)\n\t\t\t.with('insert', insert)\n\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t.leftJoin('data', 'data', condition => condition.raw('true'))\n\t\t\t.leftJoin('insert', 'insert', condition => condition.raw('true'))\n\t\t\t.select(expr => expr.raw('coalesce(data.selected, false)'), 'selected')\n\t\t\t.select(expr => expr.raw('coalesce(insert.inserted, false)'), 'inserted')\n\n\t\tconst result = await qb.getResult(db)\n\t\tif (result[0]['selected'] === false) {\n\t\t\treturn new MutationNoResultError([])\n\t\t}\n\t\tif (result[0]['inserted'] === false) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n}\n\nexport class JunctionDisconnectHandler implements JunctionHandler {\n\tpublic async executeSimple({\n\t\tdb,\n\t\tjoiningTable,\n\t\towningPrimary,\n\t\tinversePrimary,\n\t\tokResultFactory,\n\t}: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst qb = DeleteBuilder.create()\n\t\t\t.from(joiningTable.tableName)\n\t\t\t.where(cond => cond.compare(joiningTable.joiningColumn.columnName, Operator.eq, owningPrimary))\n\t\t\t.where(cond => cond.compare(joiningTable.inverseJoiningColumn.columnName, Operator.eq, inversePrimary))\n\n\t\tconst result = await qb.execute(db)\n\t\tif (result === 0) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n\n\tpublic async executeComplex({\n\t\tdb,\n\t\tjoiningTable,\n\t\tdataCallback,\n\t\tokResultFactory,\n\t}: JunctionComplexExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst deleteQb = DeleteBuilder.create()\n\t\t\t.from(joiningTable.tableName)\n\t\t\t.using('data')\n\t\t\t.where(cond => {\n\t\t\t\tcond = cond.compareColumns([joiningTable.tableName, joiningTable.joiningColumn.columnName], Operator.eq, [\n\t\t\t\t\t'data',\n\t\t\t\t\tjoiningTable.joiningColumn.columnName,\n\t\t\t\t])\n\t\t\t\tcond = cond.compareColumns(\n\t\t\t\t\t[joiningTable.tableName, joiningTable.inverseJoiningColumn.columnName],\n\t\t\t\t\tOperator.eq,\n\t\t\t\t\t['data', joiningTable.inverseJoiningColumn.columnName],\n\t\t\t\t)\n\t\t\t\treturn cond\n\t\t\t})\n\t\t\t.returning(new Literal('true as deleted'))\n\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.with('data', dataCallback)\n\t\t\t.with('delete', deleteQb)\n\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t.leftJoin('data', 'data', condition => condition.raw('true'))\n\t\t\t.leftJoin('delete', 'delete', condition => condition.raw('true'))\n\t\t\t.select(expr => expr.raw('coalesce(data.selected, false)'), 'selected')\n\t\t\t.select(expr => expr.raw('coalesce(delete.deleted, false)'), 'deleted')\n\n\t\tconst result = await qb.getResult(db)\n\t\tif (result[0]['selected'] === false) {\n\t\t\treturn new MutationNoResultError([])\n\t\t}\n\t\tif (result[0]['inserted'] === false) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n}\n"],"names":["InsertBuilder","qb"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JunctionTableManager.js","sources":["../../../../../packages/engine-content-api/src/mapper/JunctionTableManager.ts"],"sourcesContent":["import { getEntity } from '@contember/schema-utils'\nimport { PathFactory, WhereBuilder } from './select'\nimport { PredicateFactory } from '../acl'\nimport { Client, ConflictActionType, DeleteBuilder, InsertBuilder, Literal, Operator, SelectBuilder } from '@contember/database'\nimport { Acl, Input, Model } from '@contember/schema'\nimport {\n\tMutationJunctionUpdateOk,\n\tMutationNoResultError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tMutationResultType,\n\tNothingToDoReason,\n} from './Result'\nimport { ImplementationException } from '../exception'\nimport { AfterJunctionUpdateEvent, BeforeJunctionUpdateEvent } from './EventManager'\nimport { Mapper } from './Mapper'\n\ntype OkResultFactory = () => MutationJunctionUpdateOk\n\ntype JunctionMutationResult =\n\t| MutationJunctionUpdateOk\n\t| MutationNothingToDo\n\t| MutationNoResultError\n\nexport class JunctionTableManager {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly connectJunctionHandler: JunctionConnectHandler,\n\t\tprivate readonly disconnectJunctionHandler: JunctionDisconnectHandler,\n\t\tprivate readonly pathFactory: PathFactory,\n\t) {}\n\n\tpublic async connectJunction(\n\t\tmapper: Mapper,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningUnique: Input.PrimaryValue,\n\t\tinverseUnique: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tconst beforeEvent = new BeforeJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect')\n\t\tawait mapper.eventManager.fire(beforeEvent)\n\t\tconst result = await this.executeJunctionModification(\n\t\t\tmapper.db,\n\t\t\towningEntity,\n\t\t\trelation,\n\t\t\towningUnique,\n\t\t\tinverseUnique,\n\t\t\tthis.connectJunctionHandler,\n\t\t)\n\t\tif (result.result !== MutationResultType.noResultError) {\n\t\t\tconst afterEvent = new AfterJunctionUpdateEvent(\n\t\t\t\towningEntity,\n\t\t\t\trelation,\n\t\t\t\towningUnique,\n\t\t\t\tinverseUnique,\n\t\t\t\t'connect',\n\t\t\t\tresult.result === MutationResultType.ok,\n\t\t\t)\n\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t}\n\t\treturn [result]\n\t}\n\n\tpublic async disconnectJunction(\n\t\tmapper: Mapper,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningUnique: Input.PrimaryValue,\n\t\tinverseUnique: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tconst beforeEvent = new BeforeJunctionUpdateEvent(owningEntity, relation, owningUnique, inverseUnique, 'connect')\n\t\tawait mapper.eventManager.fire(beforeEvent)\n\t\tconst result = await this.executeJunctionModification(\n\t\t\tmapper.db,\n\t\t\towningEntity,\n\t\t\trelation,\n\t\t\towningUnique,\n\t\t\tinverseUnique,\n\t\t\tthis.disconnectJunctionHandler,\n\t\t)\n\t\tif (result.result !== MutationResultType.noResultError) {\n\t\t\tconst afterEvent = new AfterJunctionUpdateEvent(\n\t\t\t\towningEntity,\n\t\t\t\trelation,\n\t\t\t\towningUnique,\n\t\t\t\tinverseUnique,\n\t\t\t\t'disconnect',\n\t\t\t\tresult.result === MutationResultType.ok,\n\t\t\t)\n\t\t\tbeforeEvent.afterEvent = afterEvent\n\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t}\n\t\treturn [result]\n\t}\n\n\tprivate async executeJunctionModification(\n\t\tdb: Client,\n\t\towningEntity: Model.Entity,\n\t\trelation: Model.ManyHasManyOwningRelation,\n\t\towningPrimary: Input.PrimaryValue,\n\t\tinversePrimary: Input.PrimaryValue,\n\t\thandler: JunctionHandler,\n\t): Promise<JunctionMutationResult> {\n\t\tconst joiningTable = relation.joiningTable\n\t\tconst inverseEntity = getEntity(this.schema, relation.target)\n\t\tif (inverseEntity.view || owningEntity.view) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\n\t\tconst owningPredicate = this.predicateFactory.create(owningEntity, Acl.Operation.update, [relation.name])\n\t\tlet inversePredicate: Input.OptionalWhere = {}\n\t\tif (relation.inversedBy) {\n\t\t\tinversePredicate = this.predicateFactory.create(inverseEntity, Acl.Operation.update, [relation.inversedBy])\n\t\t}\n\n\t\tconst hasNoPredicates = Object.keys(owningPredicate).length === 0 && Object.keys(inversePredicate).length === 0\n\n\t\tconst okResultFactory = () => new MutationJunctionUpdateOk([], owningEntity, relation, owningPrimary, inversePrimary)\n\t\tif (hasNoPredicates) {\n\t\t\treturn await handler.executeSimple({ db, joiningTable, owningPrimary, inversePrimary, okResultFactory })\n\t\t} else {\n\t\t\tconst owningWhere: Input.OptionalWhere = {\n\t\t\t\tand: [owningPredicate, { [owningEntity.primary]: { eq: owningPrimary } }],\n\t\t\t}\n\n\t\t\tconst inverseWhere: Input.OptionalWhere = {\n\t\t\t\tand: [inversePredicate, { [inverseEntity.primary]: { eq: inversePrimary } }],\n\t\t\t}\n\n\t\t\tconst dataCallback: SelectBuilder.Callback = qb => {\n\t\t\t\tqb = qb\n\t\t\t\t\t.select(expr => expr.select(['owning', owningEntity.primaryColumn]), joiningTable.joiningColumn.columnName)\n\t\t\t\t\t.select(\n\t\t\t\t\t\texpr => expr.select(['inverse', inverseEntity.primaryColumn]),\n\t\t\t\t\t\tjoiningTable.inverseJoiningColumn.columnName,\n\t\t\t\t\t)\n\t\t\t\t\t.select(expr => expr.raw('true'), 'selected')\n\t\t\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t\t\t.join(owningEntity.tableName, 'owning', condition => condition.raw('true'))\n\t\t\t\t\t.join(inverseEntity.tableName, 'inverse', condition => condition.raw('true'))\n\t\t\t\tqb = this.whereBuilder.build(qb, owningEntity, this.pathFactory.create([], 'owning'), owningWhere)\n\t\t\t\tqb = this.whereBuilder.build(qb, inverseEntity, this.pathFactory.create([], 'inverse'), inverseWhere)\n\t\t\t\treturn qb\n\t\t\t}\n\n\t\t\treturn await handler.executeComplex({ db, joiningTable, dataCallback, okResultFactory })\n\t\t}\n\t}\n}\n\ninterface JunctionSimpleExecutionArgs {\n\tdb: Client\n\tjoiningTable: Model.JoiningTable\n\towningPrimary: Input.PrimaryValue\n\tinversePrimary: Input.PrimaryValue\n\tokResultFactory: OkResultFactory\n}\n\ninterface JunctionComplexExecutionArgs {\n\tdb: Client\n\tjoiningTable: Model.JoiningTable\n\tdataCallback: SelectBuilder.Callback\n\tokResultFactory: OkResultFactory\n}\n\ninterface JunctionHandler {\n\texecuteSimple(args: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult>\n\n\texecuteComplex(args: JunctionComplexExecutionArgs): Promise<JunctionMutationResult>\n}\n\nexport class JunctionConnectHandler implements JunctionHandler {\n\tasync executeSimple({\n\t\tdb,\n\t\tjoiningTable,\n\t\towningPrimary,\n\t\tinversePrimary,\n\t\tokResultFactory,\n\t}: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst result = await InsertBuilder.create()\n\t\t\t.into(joiningTable.tableName)\n\t\t\t.values({\n\t\t\t\t[joiningTable.joiningColumn.columnName]: expr => expr.selectValue(owningPrimary),\n\t\t\t\t[joiningTable.inverseJoiningColumn.columnName]: expr => expr.selectValue(inversePrimary),\n\t\t\t})\n\t\t\t.onConflict(ConflictActionType.doNothing)\n\t\t\t.execute(db)\n\t\tif (result === 0) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n\n\tasync executeComplex({\n\t\tdb,\n\t\tjoiningTable,\n\t\tdataCallback,\n\t\tokResultFactory,\n\t}: JunctionComplexExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst insert = InsertBuilder.create()\n\t\t\t.into(joiningTable.tableName)\n\t\t\t.values({\n\t\t\t\t[joiningTable.joiningColumn.columnName]: expr => expr.select(['data', joiningTable.joiningColumn.columnName]),\n\t\t\t\t[joiningTable.inverseJoiningColumn.columnName]: expr => expr.select(['data', joiningTable.inverseJoiningColumn.columnName]),\n\t\t\t})\n\t\t\t.returning(new Literal('true as inserted'))\n\t\t\t.from(qb => qb.from('data'))\n\t\t\t.onConflict(ConflictActionType.doNothing)\n\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.with('data', dataCallback)\n\t\t\t.with('insert', insert)\n\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t.leftJoin('data', 'data', condition => condition.raw('true'))\n\t\t\t.leftJoin('insert', 'insert', condition => condition.raw('true'))\n\t\t\t.select(expr => expr.raw('coalesce(data.selected, false)'), 'selected')\n\t\t\t.select(expr => expr.raw('coalesce(insert.inserted, false)'), 'inserted')\n\n\t\tconst result = await qb.getResult(db)\n\t\tif (result[0]['selected'] === false) {\n\t\t\treturn new MutationNoResultError([])\n\t\t}\n\t\tif (result[0]['inserted'] === false) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n}\n\nexport class JunctionDisconnectHandler implements JunctionHandler {\n\tpublic async executeSimple({\n\t\tdb,\n\t\tjoiningTable,\n\t\towningPrimary,\n\t\tinversePrimary,\n\t\tokResultFactory,\n\t}: JunctionSimpleExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst qb = DeleteBuilder.create()\n\t\t\t.from(joiningTable.tableName)\n\t\t\t.where(cond => cond.compare(joiningTable.joiningColumn.columnName, Operator.eq, owningPrimary))\n\t\t\t.where(cond => cond.compare(joiningTable.inverseJoiningColumn.columnName, Operator.eq, inversePrimary))\n\n\t\tconst result = await qb.execute(db)\n\t\tif (result === 0) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n\n\tpublic async executeComplex({\n\t\tdb,\n\t\tjoiningTable,\n\t\tdataCallback,\n\t\tokResultFactory,\n\t}: JunctionComplexExecutionArgs): Promise<JunctionMutationResult> {\n\t\tconst deleteQb = DeleteBuilder.create()\n\t\t\t.from(joiningTable.tableName)\n\t\t\t.using('data')\n\t\t\t.where(cond => {\n\t\t\t\tcond = cond.compareColumns([joiningTable.tableName, joiningTable.joiningColumn.columnName], Operator.eq, [\n\t\t\t\t\t'data',\n\t\t\t\t\tjoiningTable.joiningColumn.columnName,\n\t\t\t\t])\n\t\t\t\tcond = cond.compareColumns(\n\t\t\t\t\t[joiningTable.tableName, joiningTable.inverseJoiningColumn.columnName],\n\t\t\t\t\tOperator.eq,\n\t\t\t\t\t['data', joiningTable.inverseJoiningColumn.columnName],\n\t\t\t\t)\n\t\t\t\treturn cond\n\t\t\t})\n\t\t\t.returning(new Literal('true as deleted'))\n\n\t\tconst qb = SelectBuilder.create()\n\t\t\t.with('data', dataCallback)\n\t\t\t.with('delete', deleteQb)\n\t\t\t.from(new Literal('(values (null))'), 't')\n\t\t\t.leftJoin('data', 'data', condition => condition.raw('true'))\n\t\t\t.leftJoin('delete', 'delete', condition => condition.raw('true'))\n\t\t\t.select(expr => expr.raw('coalesce(data.selected, false)'), 'selected')\n\t\t\t.select(expr => expr.raw('coalesce(delete.deleted, false)'), 'deleted')\n\n\t\tconst result = await qb.getResult(db)\n\t\tif (result[0]['selected'] === false) {\n\t\t\treturn new MutationNoResultError([])\n\t\t}\n\t\tif (result[0]['inserted'] === false) {\n\t\t\treturn new MutationNothingToDo([], NothingToDoReason.alreadyExists)\n\t\t}\n\t\treturn okResultFactory()\n\t}\n}\n"],"names":["InsertBuilder","qb"],"mappings":"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"}
|