@contember/engine-content-api 2.0.0-alpha.9 → 2.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/development/index.cjs +3 -2
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +3 -2
- package/dist/development/index.js.map +1 -1
- package/dist/development/src/ExecutionContainer.cjs +2 -2
- package/dist/development/src/ExecutionContainer.cjs.map +1 -1
- package/dist/development/src/ExecutionContainer.js +2 -2
- 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.map +1 -1
- package/dist/development/src/acl/PermissionFactory.js.map +1 -1
- package/dist/development/src/acl/PredicateFactory.cjs.map +1 -1
- package/dist/development/src/acl/PredicateFactory.js.map +1 -1
- package/dist/development/src/acl/PredicatesInjector.cjs.map +1 -1
- 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 +31 -6
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
- package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +31 -6
- 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.map +1 -1
- 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 +1 -1
- package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
- package/dist/development/src/input-validation/preValidation/InputPreValidator.js +1 -1
- 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 +16 -17
- package/dist/development/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
- package/dist/development/src/inputProcessing/CreateInputVisitor.js +16 -17
- 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 +29 -27
- package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
- package/dist/development/src/inputProcessing/UpdateInputVisitor.js +29 -27
- package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs +6 -163
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js +5 -162
- 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/introspection.schema.cjs +163 -0
- package/dist/development/src/introspection/introspection.schema.cjs.map +1 -0
- package/dist/development/src/introspection/introspection.schema.js +163 -0
- package/dist/development/src/introspection/introspection.schema.js.map +1 -0
- 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 +8 -18
- package/dist/development/src/mapper/ColumnValue.cjs.map +1 -1
- package/dist/development/src/mapper/ColumnValue.js +8 -18
- package/dist/development/src/mapper/ColumnValue.js.map +1 -1
- package/dist/development/src/mapper/ErrorUtils.cjs +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 +4 -7
- package/dist/development/src/mapper/EventManager.cjs.map +1 -1
- package/dist/development/src/mapper/EventManager.js +4 -7
- package/dist/development/src/mapper/EventManager.js.map +1 -1
- package/dist/development/src/mapper/JunctionTableManager.cjs.map +1 -1
- package/dist/development/src/mapper/JunctionTableManager.js.map +1 -1
- package/dist/development/src/mapper/Mapper.cjs +10 -29
- package/dist/development/src/mapper/Mapper.cjs.map +1 -1
- package/dist/development/src/mapper/Mapper.js +10 -29
- 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 +10 -2
- package/dist/development/src/mapper/MutationProcessorHelper.cjs.map +1 -1
- package/dist/development/src/mapper/MutationProcessorHelper.js +10 -2
- package/dist/development/src/mapper/MutationProcessorHelper.js.map +1 -1
- package/dist/development/src/mapper/Result.cjs +10 -27
- package/dist/development/src/mapper/Result.cjs.map +1 -1
- package/dist/development/src/mapper/Result.js +10 -27
- package/dist/development/src/mapper/Result.js.map +1 -1
- package/dist/development/src/mapper/delete/DeleteExecutor.cjs +4 -8
- package/dist/development/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
- package/dist/development/src/mapper/delete/DeleteExecutor.js +5 -9
- 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 +13 -21
- package/dist/development/src/mapper/insert/InsertBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/insert/InsertBuilder.js +14 -22
- 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 +43 -21
- package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
- package/dist/development/src/mapper/insert/Inserter.js +45 -23
- package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs +23 -79
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js +23 -79
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +43 -0
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +43 -0
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +40 -0
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +40 -0
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +38 -0
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +38 -0
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +23 -32
- package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +23 -32
- package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +65 -0
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +65 -0
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/select/ConditionBuilder.cjs.map +1 -1
- 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.map +1 -1
- package/dist/development/src/mapper/select/SelectBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/SelectHydrator.cjs.map +1 -1
- package/dist/development/src/mapper/select/SelectHydrator.js.map +1 -1
- package/dist/development/src/mapper/select/WhereBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/select/WhereBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +3 -0
- 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.map +1 -1
- 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 +36 -36
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/update/UpdateBuilder.cjs +14 -19
- package/dist/development/src/mapper/update/UpdateBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/update/UpdateBuilder.js +15 -20
- 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 +45 -17
- package/dist/development/src/mapper/update/Updater.cjs.map +1 -1
- package/dist/development/src/mapper/update/Updater.js +47 -19
- package/dist/development/src/mapper/update/Updater.js.map +1 -1
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +84 -0
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +84 -0
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +88 -0
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +88 -0
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +87 -0
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +87 -0
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs +147 -0
- package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js +147 -0
- package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +183 -0
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +183 -0
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
- 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 +8 -4
- package/dist/development/src/resolvers/MutationResolver.cjs.map +1 -1
- package/dist/development/src/resolvers/MutationResolver.js +8 -4
- 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/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.map +1 -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.map +1 -1
- 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.map +1 -1
- package/dist/development/src/schema/GraphQlSchemaBuilder.js.map +1 -1
- package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
- 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.map +1 -1
- package/dist/development/src/schema/OperationExtension.cjs.map +1 -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.map +1 -1
- package/dist/development/src/schema/PaginatedFieldConfigFactory.cjs.map +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.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.map +1 -1
- package/dist/development/src/schema/ValidationQueriesProvider.js.map +1 -1
- package/dist/development/src/schema/WhereTypeProvider.cjs.map +1 -1
- 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 +2 -0
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -0
- 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/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/singletonFactory.cjs.map +1 -1
- package/dist/development/src/utils/singletonFactory.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/production/index.cjs +3 -2
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +3 -2
- package/dist/production/index.js.map +1 -1
- package/dist/production/src/ExecutionContainer.cjs +2 -2
- package/dist/production/src/ExecutionContainer.cjs.map +1 -1
- package/dist/production/src/ExecutionContainer.js +2 -2
- 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.map +1 -1
- package/dist/production/src/acl/PermissionFactory.js.map +1 -1
- package/dist/production/src/acl/PredicateFactory.cjs.map +1 -1
- package/dist/production/src/acl/PredicateFactory.js.map +1 -1
- package/dist/production/src/acl/PredicatesInjector.cjs.map +1 -1
- 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 +31 -6
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
- package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +31 -6
- 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.map +1 -1
- 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 +1 -1
- package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
- package/dist/production/src/input-validation/preValidation/InputPreValidator.js +1 -1
- 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 +16 -17
- package/dist/production/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
- package/dist/production/src/inputProcessing/CreateInputVisitor.js +16 -17
- 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 +29 -27
- package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
- package/dist/production/src/inputProcessing/UpdateInputVisitor.js +29 -27
- package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs +6 -163
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js +5 -162
- 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/introspection.schema.cjs +163 -0
- package/dist/production/src/introspection/introspection.schema.cjs.map +1 -0
- package/dist/production/src/introspection/introspection.schema.js +163 -0
- package/dist/production/src/introspection/introspection.schema.js.map +1 -0
- 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 +8 -18
- package/dist/production/src/mapper/ColumnValue.cjs.map +1 -1
- package/dist/production/src/mapper/ColumnValue.js +8 -18
- package/dist/production/src/mapper/ColumnValue.js.map +1 -1
- package/dist/production/src/mapper/ErrorUtils.cjs +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 +4 -7
- package/dist/production/src/mapper/EventManager.cjs.map +1 -1
- package/dist/production/src/mapper/EventManager.js +4 -7
- package/dist/production/src/mapper/EventManager.js.map +1 -1
- package/dist/production/src/mapper/JunctionTableManager.cjs.map +1 -1
- package/dist/production/src/mapper/JunctionTableManager.js.map +1 -1
- package/dist/production/src/mapper/Mapper.cjs +10 -29
- package/dist/production/src/mapper/Mapper.cjs.map +1 -1
- package/dist/production/src/mapper/Mapper.js +10 -29
- 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 +10 -2
- package/dist/production/src/mapper/MutationProcessorHelper.cjs.map +1 -1
- package/dist/production/src/mapper/MutationProcessorHelper.js +10 -2
- package/dist/production/src/mapper/MutationProcessorHelper.js.map +1 -1
- package/dist/production/src/mapper/Result.cjs +10 -27
- package/dist/production/src/mapper/Result.cjs.map +1 -1
- package/dist/production/src/mapper/Result.js +10 -27
- package/dist/production/src/mapper/Result.js.map +1 -1
- package/dist/production/src/mapper/delete/DeleteExecutor.cjs +4 -8
- package/dist/production/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
- package/dist/production/src/mapper/delete/DeleteExecutor.js +5 -9
- 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 +13 -21
- package/dist/production/src/mapper/insert/InsertBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/insert/InsertBuilder.js +14 -22
- 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 +43 -21
- package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
- package/dist/production/src/mapper/insert/Inserter.js +45 -23
- package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs +23 -79
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js +23 -79
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +43 -0
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +43 -0
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +40 -0
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +40 -0
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +38 -0
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +38 -0
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +23 -32
- package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +23 -32
- package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +65 -0
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +65 -0
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/select/ConditionBuilder.cjs.map +1 -1
- 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.map +1 -1
- package/dist/production/src/mapper/select/SelectBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/SelectHydrator.cjs.map +1 -1
- package/dist/production/src/mapper/select/SelectHydrator.js.map +1 -1
- package/dist/production/src/mapper/select/WhereBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/select/WhereBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +3 -0
- 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.map +1 -1
- 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 +36 -36
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/update/UpdateBuilder.cjs +14 -19
- package/dist/production/src/mapper/update/UpdateBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/update/UpdateBuilder.js +15 -20
- 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 +45 -17
- package/dist/production/src/mapper/update/Updater.cjs.map +1 -1
- package/dist/production/src/mapper/update/Updater.js +47 -19
- package/dist/production/src/mapper/update/Updater.js.map +1 -1
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +84 -0
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +84 -0
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +88 -0
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +88 -0
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +87 -0
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +87 -0
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs +147 -0
- package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js +147 -0
- package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +183 -0
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +183 -0
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
- 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 +8 -4
- package/dist/production/src/resolvers/MutationResolver.cjs.map +1 -1
- package/dist/production/src/resolvers/MutationResolver.js +8 -4
- 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/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.map +1 -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.map +1 -1
- 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.map +1 -1
- package/dist/production/src/schema/GraphQlSchemaBuilder.js.map +1 -1
- package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
- 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.map +1 -1
- package/dist/production/src/schema/OperationExtension.cjs.map +1 -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.map +1 -1
- package/dist/production/src/schema/PaginatedFieldConfigFactory.cjs.map +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.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.map +1 -1
- package/dist/production/src/schema/ValidationQueriesProvider.js.map +1 -1
- package/dist/production/src/schema/WhereTypeProvider.cjs.map +1 -1
- 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 +2 -0
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -0
- 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/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/singletonFactory.cjs.map +1 -1
- package/dist/production/src/utils/singletonFactory.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/tests/cases/integration/graphQlRequests/insert/jsonInsert.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/insert/jsonInsert.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/validation/conditions.test.d.ts +2 -2
- 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 +1 -1
- package/dist/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.d.ts.map +1 -1
- package/dist/tests/cases/integration/graphQlSchema/model.d.ts +4 -4
- package/dist/tests/cases/integration/graphQlSchema/model.d.ts.map +1 -1
- package/dist/tests/src/assert.d.ts +5 -0
- package/dist/tests/src/assert.d.ts.map +1 -0
- package/dist/tests/src/test.d.ts.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/ExecutionContainer.d.ts +8 -5
- package/dist/types/ExecutionContainer.d.ts.map +1 -1
- package/dist/types/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.d.ts.map +1 -1
- package/dist/types/input-validation/ColumnValueResolver.d.ts +1 -1
- package/dist/types/input-validation/ColumnValueResolver.d.ts.map +1 -1
- package/dist/types/input-validation/ValidationDataSelector.d.ts +1 -1
- package/dist/types/input-validation/preValidation/CreateInputPreValidationProcessor.d.ts +3 -3
- package/dist/types/input-validation/preValidation/CreateInputPreValidationProcessor.d.ts.map +1 -1
- package/dist/types/input-validation/preValidation/InputPreValidator.d.ts +3 -3
- package/dist/types/input-validation/preValidation/InputPreValidator.d.ts.map +1 -1
- package/dist/types/input-validation/preValidation/UpdateInputPreValidationProcessor.d.ts +4 -4
- package/dist/types/input-validation/preValidation/UpdateInputPreValidationProcessor.d.ts.map +1 -1
- package/dist/types/inputProcessing/CreateInputProcessor.d.ts +8 -6
- package/dist/types/inputProcessing/CreateInputProcessor.d.ts.map +1 -1
- package/dist/types/inputProcessing/CreateInputVisitor.d.ts +11 -10
- package/dist/types/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
- package/dist/types/inputProcessing/UpdateInputProcessor.d.ts +14 -12
- package/dist/types/inputProcessing/UpdateInputProcessor.d.ts.map +1 -1
- package/dist/types/inputProcessing/UpdateInputVisitor.d.ts +11 -10
- package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
- package/dist/types/introspection/IntrospectionSchemaDefinitionFactory.d.ts +1 -3
- package/dist/types/introspection/IntrospectionSchemaDefinitionFactory.d.ts.map +1 -1
- package/dist/types/introspection/index.d.ts +2 -1
- package/dist/types/introspection/index.d.ts.map +1 -1
- package/dist/types/introspection/introspection.schema.d.ts +5 -0
- package/dist/types/introspection/introspection.schema.d.ts.map +1 -0
- package/dist/types/mapper/ColumnValue.d.ts +4 -8
- package/dist/types/mapper/ColumnValue.d.ts.map +1 -1
- package/dist/types/mapper/EventManager.d.ts +9 -9
- package/dist/types/mapper/EventManager.d.ts.map +1 -1
- package/dist/types/mapper/Mapper.d.ts +6 -7
- package/dist/types/mapper/Mapper.d.ts.map +1 -1
- package/dist/types/mapper/MutationProcessorHelper.d.ts +2 -2
- package/dist/types/mapper/MutationProcessorHelper.d.ts.map +1 -1
- package/dist/types/mapper/Result.d.ts +16 -9
- 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/insert/InsertBuilder.d.ts +4 -9
- package/dist/types/mapper/insert/InsertBuilder.d.ts.map +1 -1
- package/dist/types/mapper/insert/Inserter.d.ts +3 -3
- package/dist/types/mapper/insert/Inserter.d.ts.map +1 -1
- package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts +11 -8
- package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts +26 -0
- package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts +25 -0
- package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts +28 -0
- package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts +31 -0
- package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts +26 -0
- package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
- package/dist/types/mapper/types.d.ts +84 -1
- package/dist/types/mapper/types.d.ts.map +1 -1
- package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts +12 -8
- package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/update/UpdateBuilder.d.ts +4 -8
- package/dist/types/mapper/update/UpdateBuilder.d.ts.map +1 -1
- package/dist/types/mapper/update/Updater.d.ts +2 -2
- package/dist/types/mapper/update/Updater.d.ts.map +1 -1
- package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts +48 -0
- package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts +42 -0
- package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts +48 -0
- package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts +38 -0
- package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts +42 -0
- package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/resolvers/MutationResolver.d.ts.map +1 -1
- package/dist/types/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/graphql.codegen.yml +2 -2
- package/package.json +14 -18
- package/src/ExecutionContainer.ts +5 -2
- package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts +35 -2
- package/src/input-validation/ColumnValueResolver.ts +1 -1
- package/src/input-validation/preValidation/CreateInputPreValidationProcessor.ts +2 -2
- package/src/input-validation/preValidation/InputPreValidator.ts +10 -12
- package/src/input-validation/preValidation/UpdateInputPreValidationProcessor.ts +3 -3
- package/src/inputProcessing/CreateInputProcessor.ts +8 -6
- package/src/inputProcessing/CreateInputVisitor.ts +32 -33
- package/src/inputProcessing/UpdateInputProcessor.ts +13 -11
- package/src/inputProcessing/UpdateInputVisitor.ts +44 -40
- package/src/introspection/IntrospectionSchemaDefinitionFactory.ts +2 -194
- package/src/introspection/index.ts +2 -1
- package/src/introspection/introspection.schema.ts +194 -0
- package/src/mapper/ColumnValue.ts +11 -25
- package/src/mapper/ErrorUtils.ts +1 -1
- package/src/mapper/EventManager.ts +9 -13
- package/src/mapper/Mapper.ts +21 -38
- package/src/mapper/MutationProcessorHelper.ts +16 -8
- package/src/mapper/Result.ts +14 -49
- package/src/mapper/delete/DeleteExecutor.ts +4 -8
- package/src/mapper/insert/InsertBuilder.ts +23 -34
- package/src/mapper/insert/Inserter.ts +55 -41
- package/src/mapper/insert/SqlCreateInputProcessor.ts +36 -91
- package/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.ts +59 -0
- package/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.ts +57 -0
- package/src/mapper/insert/relations/OneHasManyCreateInputProcessor.ts +52 -0
- package/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.ts +90 -0
- package/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.ts +87 -0
- package/src/mapper/select/handlers/FieldsVisitor.ts +3 -0
- package/src/mapper/types.ts +115 -1
- package/src/mapper/update/SqlUpdateInputProcessor.ts +50 -47
- package/src/mapper/update/UpdateBuilder.ts +25 -31
- package/src/mapper/update/Updater.ts +55 -35
- package/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.ts +112 -0
- package/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.ts +125 -0
- package/src/mapper/update/relations/OneHasManyUpdateInputProcessor.ts +113 -0
- package/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.ts +184 -0
- package/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.ts +240 -0
- package/src/resolvers/MutationResolver.ts +6 -4
- package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +5 -0
- package/tests/cases/bugs/bug-filter-or.test.ts +1 -1
- package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +1 -1
- package/tests/cases/bugs/bug102.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/delete/aclDelete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/delete/deleteById.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/acl/setField.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/aclInsert.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/basicInsert.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/insertCustomId.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/jsonInsert.test.ts +37 -0
- package/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.ts +9 -9
- package/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/insert/validation/toBeFixed.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/orPredicate.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/relationAcl.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/acl/sameRowAndFieldPredicate.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/filter/backReferencedFilter.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/filter/complexCondition.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/filter/composedFilter.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/filter/containsQuery.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/filter/manyHasManyOwnerRelation.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/filter/manyHasOneRelation.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/filter/oneHasManyRelation.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/formatting/dateFormat.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/fragments.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/misc/aliasedType.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/misc/longAliasHash.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/misc/reducedHasMany.test.ts +70 -1
- package/tests/cases/integration/graphQlRequests/query/misc/transaction.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/pagination/hasManyLimit.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/pagination/paginate.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/pagination/paginateAliased.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/pagination/simpleLimit.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/relations/advanced.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyInverse.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyOwning.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/query/relations/manyHasOne.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/relations/oneHasMany.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneInverse.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneOwner.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/sorting/byRelations.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/sorting/defaultOrdering.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/sorting/randomSort.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/sorting/sortNulls.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/sorting/sortedHasMany.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/unique/basicQueryById.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/unique/composedUnique.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/unique/oneHasManyUnique.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/unique/uniqueWithFilter.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/query/view/view.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +69 -2
- package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/connect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/disconnect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.ts +100 -0
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/disconnect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +1 -6
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +1 -6
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +90 -0
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +10 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +1 -6
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +1 -6
- package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/update/validation/toBeFixed.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/conditions.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/nestedValidation.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/optionalAssert.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/required.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/andRule.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/lengthRangeRule.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/maxLengthRule.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/minLength.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/notEmptyRule.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/notRule.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/orRule.test.ts +1 -1
- package/tests/cases/integration/graphQlRequests/validation/rules/patternRule.test.ts +1 -2
- package/tests/cases/integration/graphQlRequests/validation/rules/rangeRule.test.ts +1 -1
- package/tests/cases/integration/graphQlSchema/graphQlSchemaBuilder.test.ts +4 -4
- package/tests/cases/integration/graphQlSchema/schema-acl-allowed.gql +6 -0
- package/tests/cases/integration/graphQlSchema/schema-acl-create-only.gql +28 -28
- package/tests/cases/integration/graphQlSchema/schema-acl-restricted-create.gql +5 -0
- package/tests/cases/integration/graphQlSchema/schema-acl-restricted-delete.gql +6 -0
- package/tests/cases/integration/graphQlSchema/schema-acl-restricted-update.gql +5 -0
- package/tests/cases/integration/graphQlSchema/schema-basic.gql +15 -0
- package/tests/cases/integration/graphQlSchema/schema-bug-66.gql +7 -0
- package/tests/cases/integration/graphQlSchema/schema-custom-primary.gql +15 -0
- package/tests/cases/integration/graphQlSchema/schema-has-many-reduction.gql +7 -0
- package/tests/cases/integration/graphQlSchema/schema-new-builder.gql +123 -107
- package/tests/cases/unit/aclVariablesFactory.test.ts +5 -5
- package/tests/cases/unit/conditionOptimizer.test.ts +7 -1
- package/tests/cases/unit/inputPreValidator.test.ts +3 -2
- package/tests/cases/unit/inputValidation.test.ts +7 -6
- package/tests/cases/unit/orderbyHelper.test.ts +3 -2
- package/tests/cases/unit/permissionMerger.test.ts +2 -1
- package/tests/cases/unit/predicatesFactory.test.ts +2 -1
- package/tests/cases/unit/predicatesInjector.test.ts +2 -1
- package/tests/cases/unit/uuidType.test.ts +5 -5
- package/tests/cases/unit/variableInjector.test.ts +2 -1
- package/tests/cases/unit/whereBuilder.test.ts +2 -1
- package/tests/cases/unit/whereOptimizer.test.ts +2 -1
- package/tests/src/assert.ts +10 -0
- package/tests/src/test.ts +4 -1
- package/tests/src/testGraphql.ts +3 -3
- package/dist/development/src/mapper/DataManipulationBuilder.cjs +0 -5
- package/dist/development/src/mapper/DataManipulationBuilder.cjs.map +0 -1
- package/dist/development/src/mapper/DataManipulationBuilder.js +0 -5
- package/dist/development/src/mapper/DataManipulationBuilder.js.map +0 -1
- package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
- package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
- package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
- package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
- package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
- package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
- package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs +0 -131
- package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js +0 -131
- package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
- package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
- package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
- package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
- package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/DataManipulationBuilder.cjs +0 -5
- package/dist/production/src/mapper/DataManipulationBuilder.cjs.map +0 -1
- package/dist/production/src/mapper/DataManipulationBuilder.js +0 -5
- package/dist/production/src/mapper/DataManipulationBuilder.js.map +0 -1
- package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
- package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
- package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
- package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
- package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
- package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
- package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs +0 -131
- package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js +0 -131
- package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
- package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
- package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
- package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
- package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
- package/dist/types/mapper/DataManipulationBuilder.d.ts +0 -7
- package/dist/types/mapper/DataManipulationBuilder.d.ts.map +0 -1
- package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts +0 -32
- package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts +0 -32
- package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts +0 -29
- package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts +0 -21
- package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts +0 -32
- package/dist/types/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts +0 -21
- package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts +0 -37
- package/dist/types/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +0 -1
- package/src/mapper/DataManipulationBuilder.ts +0 -12
- package/src/mapper/relations/ManyHasManyInputProcessor.ts +0 -108
- package/src/mapper/relations/ManyHasOneInputProcessor.ts +0 -158
- package/src/mapper/relations/OneHasManyInputProcessor.ts +0 -101
- package/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts +0 -99
- package/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.ts +0 -164
- package/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts +0 -92
- package/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.ts +0 -253
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateBuilder.js","sources":["../../../../../../packages/engine-content-api/src/mapper/update/UpdateBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport { Acl, Input, Model, Value } from '@contember/schema'\nimport { acceptEveryFieldVisitor, getColumnName, getColumnType } from '@contember/schema-utils'\nimport { Client, Operator, QueryBuilder, UpdateBuilder as DbUpdateBuilder, Value as DbValue } from '@contember/database'\nimport { PathFactory, WhereBuilder } from '../select'\nimport { ColumnValue, ResolvedColumnValue, resolveGenericValue, resolveRowData } from '../ColumnValue'\nimport { PredicateFactory } from '../../acl'\nimport { AbortDataManipulation, DataManipulationBuilder } from '../DataManipulationBuilder'\nimport { AfterUpdateEvent, BeforeUpdateEvent, EventManager } from '../EventManager'\nimport { Mapper } from '../Mapper'\n\nexport interface UpdateResult {\n\tvalues: ResolvedColumnValue[]\n\texecuted: boolean\n\taborted: boolean\n\taffectedRows: number | null\n}\n\nexport class UpdateBuilder implements DataManipulationBuilder {\n\tprivate resolver: (value: number | null) => void = () => {\n\t\tthrow new Error('UpdateBuilder: Resolver called too soon')\n\t}\n\tpublic readonly update: Promise<number | null> = new Promise(resolve => (this.resolver = resolve))\n\n\tprivate rowData: Map<string, ColumnValue<AbortDataManipulation>> = new Map()\n\n\tprivate newWhere: { and: Input.OptionalWhere[] } = { and: [] }\n\tprivate oldWhere: { and: Input.OptionalWhere[] } = { and: [] }\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly entity: Model.Entity,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly primary: Input.PrimaryValue,\n\t\tprivate readonly pathFactory: PathFactory,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t) {}\n\n\tpublic addFieldValue(\n\t\tfieldName: string,\n\t\tvalue: Value.GenericValueLike<Value.AtomicValue<AbortDataManipulation | undefined>>,\n\t): Promise<Value.AtomicValue<AbortDataManipulation | undefined>> {\n\t\tconst columnName = getColumnName(this.schema, this.entity, fieldName)\n\t\tconst columnType = getColumnType(this.schema, this.entity, fieldName)\n\t\tconst resolvedValue = resolveGenericValue(value)\n\t\tthis.rowData.set(columnName, { columnName, value: resolvedValue, columnType, fieldName })\n\t\treturn resolvedValue\n\t}\n\n\tpublic addNewWhere(where: Input.OptionalWhere): void {\n\t\tthis.newWhere.and.push(where)\n\t}\n\n\tpublic addOldWhere(where: Input.OptionalWhere): void {\n\t\tthis.oldWhere.and.push(where)\n\t}\n\n\tpublic addPredicates(fields: string[]): void {\n\t\tconst predicate = this.predicateFactory.create(this.entity, Acl.Operation.update, fields)\n\t\tthis.addNewWhere(predicate)\n\t\tthis.addOldWhere(predicate)\n\t}\n\n\tpublic async execute(mapper: Mapper): Promise<UpdateResult> {\n\t\ttry {\n\t\t\tconst resolvedData = await resolveRowData<AbortDataManipulation>([...this.rowData.values()])\n\t\t\tif (Object.keys(resolvedData).length === 0) {\n\t\t\t\tthis.resolver(null)\n\t\t\t\treturn { values: [], affectedRows: null, executed: false, aborted: false }\n\t\t\t}\n\t\t\tif (resolvedData.find(it => it.resolvedValue === AbortDataManipulation)) {\n\t\t\t\tthis.resolver(null)\n\t\t\t\treturn { values: [], affectedRows: null, executed: false, aborted: true }\n\t\t\t}\n\t\t\tconst oldColSuffix = '_old__'\n\n\t\t\tconst qb = DbUpdateBuilder.create()\n\t\t\t\t.with('newData_', qb => {\n\t\t\t\t\tqb = resolvedData.reduce(\n\t\t\t\t\t\t(qb, value) =>\n\t\t\t\t\t\t\tqb\n\t\t\t\t\t\t\t\t.select(expr => expr.selectValue(value.resolvedValue as DbValue, value.columnType), value.columnName)\n\t\t\t\t\t\t\t\t.select(['root_', value.columnName], value.columnName + oldColSuffix),\n\t\t\t\t\t\tqb,\n\t\t\t\t\t)\n\t\t\t\t\tconst columns = new Set(resolvedData.map(it => it.columnName))\n\t\t\t\t\tconst allColumns: string[] = Object.values(\n\t\t\t\t\t\tacceptEveryFieldVisitor(this.schema, this.entity, {\n\t\t\t\t\t\t\tvisitColumn: ({ column }) => column.columnName,\n\t\t\t\t\t\t\tvisitManyHasOne: ({ relation }) => relation.joiningColumn.columnName,\n\t\t\t\t\t\t\tvisitOneHasOneOwning: ({ relation }) => relation.joiningColumn.columnName,\n\t\t\t\t\t\t\tvisitManyHasManyInverse: () => null,\n\t\t\t\t\t\t\tvisitManyHasManyOwning: () => null,\n\t\t\t\t\t\t\tvisitOneHasOneInverse: () => null,\n\t\t\t\t\t\t\tvisitOneHasMany: () => null,\n\t\t\t\t\t\t}),\n\t\t\t\t\t).filter((it): it is string => it !== null)\n\n\t\t\t\t\tconst remainingColumns = allColumns.filter(it => !columns.has(it))\n\t\t\t\t\tqb = qb.from(this.entity.tableName, 'root_')\n\n\t\t\t\t\tqb = remainingColumns.reduce((qb, columnName) => qb.select(['root_', columnName]), qb)\n\n\t\t\t\t\tqb = this.whereBuilder.build(qb, this.entity, this.pathFactory.create([]), {\n\t\t\t\t\t\tand: [{\n\t\t\t\t\t\t\t[this.entity.primary]: { eq: this.primary },\n\t\t\t\t\t\t}, this.oldWhere],\n\t\t\t\t\t})\n\n\t\t\t\t\treturn qb\n\t\t\t\t})\n\t\t\t\t.table(this.entity.tableName)\n\t\t\t\t.values(\n\t\t\t\t\tresolvedData.reduce<QueryBuilder.ColumnExpressionMap>(\n\t\t\t\t\t\t(result: object, item) => ({\n\t\t\t\t\t\t\t...result,\n\t\t\t\t\t\t\t[item.columnName]: expr => expr.select(['newData_', item.columnName]),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.returning(...resolvedData.map(it => it.columnName + oldColSuffix))\n\t\t\t\t.from(qb => {\n\t\t\t\t\tqb = qb.from('newData_')\n\t\t\t\t\tconst col1 = tuple(this.entity.tableName, this.entity.primaryColumn)\n\t\t\t\t\tconst col2 = tuple('newData_', this.entity.primaryColumn)\n\t\t\t\t\tqb = qb.where(expr => expr.compareColumns(col1, Operator.eq, col2))\n\t\t\t\t\tqb = this.whereBuilder.build(qb, this.entity, this.pathFactory.create([], 'newData_'), this.newWhere)\n\t\t\t\t\treturn qb\n\t\t\t\t})\n\n\n\t\t\tconst beforeEvent = new BeforeUpdateEvent(this.entity, resolvedData as ResolvedColumnValue[], this.primary)\n\t\t\tawait mapper.eventManager.fire(beforeEvent)\n\n\t\t\tconst result = await qb.execute(mapper.db)\n\t\t\tthis.resolver(result.length)\n\n\t\t\tif (result.length === 1) {\n\t\t\t\tconst eventData = (resolvedData as ResolvedColumnValue[]).map(it => ({\n\t\t\t\t\t...it,\n\t\t\t\t\told: result[0][it.columnName + oldColSuffix],\n\t\t\t\t}))\n\t\t\t\tconst afterUpdateEvent = new AfterUpdateEvent(this.entity, eventData, this.primary)\n\t\t\t\tbeforeEvent.afterEvent = afterUpdateEvent\n\t\t\t\tawait mapper.eventManager.fire(afterUpdateEvent)\n\t\t\t}\n\n\t\t\treturn { values: resolvedData as ResolvedColumnValue[], affectedRows: result.length, executed: true, aborted: false }\n\t\t} catch (e) {\n\t\t\tthis.resolver(null)\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":["DbUpdateBuilder","qb","result"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UpdateBuilder.js","sources":["../../../../../../packages/engine-content-api/src/mapper/update/UpdateBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport { Acl, Input, Model, Value } from '@contember/schema'\nimport { acceptEveryFieldVisitor, getColumnName, getColumnType } from '@contember/schema-utils'\nimport { Operator, QueryBuilder, UpdateBuilder as DbUpdateBuilder, Value as DbValue } from '@contember/database'\nimport { PathFactory, WhereBuilder } from '../select'\nimport { ColumnValue, normalizeDbValue } from '../ColumnValue'\nimport { PredicateFactory } from '../../acl'\nimport { AfterUpdateEvent, BeforeUpdateEvent } from '../EventManager'\nimport { Mapper } from '../Mapper'\n\nexport interface UpdateResult {\n\tvalues: ColumnValue[]\n\texecuted: boolean\n\taffectedRows: number | null\n}\n\nexport class UpdateBuilder {\n\tprivate rowData: Map<string, ColumnValue> = new Map()\n\n\tprivate newWhere: { and: Input.OptionalWhere[] } = { and: [] }\n\tprivate oldWhere: { and: Input.OptionalWhere[] } = { and: [] }\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly entity: Model.Entity,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly primary: Input.PrimaryValue,\n\t\tprivate readonly pathFactory: PathFactory,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t) {}\n\n\tpublic addFieldValue(\n\t\tfieldName: string,\n\t\tvalue: Value.FieldValue | undefined,\n\t): void {\n\t\tif (value === undefined) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = getColumnName(this.schema, this.entity, fieldName)\n\t\tconst columnType = getColumnType(this.schema, this.entity, fieldName)\n\n\t\tthis.rowData.set(columnName, { columnName, value, columnType, fieldName })\n\t}\n\n\tpublic addNewWhere(where: Input.OptionalWhere): void {\n\t\tthis.newWhere.and.push(where)\n\t}\n\n\tpublic addOldWhere(where: Input.OptionalWhere): void {\n\t\tthis.oldWhere.and.push(where)\n\t}\n\n\tpublic addPredicates(fields: string[]): void {\n\t\tconst predicate = this.predicateFactory.create(this.entity, Acl.Operation.update, fields)\n\t\tthis.addNewWhere(predicate)\n\t\tthis.addOldWhere(predicate)\n\t}\n\n\tpublic async execute(mapper: Mapper): Promise<UpdateResult> {\n\t\ttry {\n\t\t\tconst resolvedData = [...this.rowData.values()]\n\t\t\tif (Object.keys(resolvedData).length === 0) {\n\t\t\t\treturn { values: [], affectedRows: null, executed: false }\n\t\t\t}\n\t\t\tconst oldColSuffix = '_old__'\n\n\t\t\tconst qb = DbUpdateBuilder.create()\n\t\t\t\t.with('newData_', qb => {\n\t\t\t\t\tqb = resolvedData.reduce(\n\t\t\t\t\t\t(qb, value) =>\n\t\t\t\t\t\t\tqb\n\t\t\t\t\t\t\t\t.select(\n\t\t\t\t\t\t\t\t\texpr => expr.selectValue(\n\t\t\t\t\t\t\t\t\t\tnormalizeDbValue(value.value, value.columnType),\n\t\t\t\t\t\t\t\t\t\tvalue.columnType,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tvalue.columnName,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.select(['root_', value.columnName], value.columnName + oldColSuffix),\n\t\t\t\t\t\tqb,\n\t\t\t\t\t)\n\t\t\t\t\tconst columns = new Set(resolvedData.map(it => it.columnName))\n\t\t\t\t\tconst allColumns: string[] = Object.values(\n\t\t\t\t\t\tacceptEveryFieldVisitor(this.schema, this.entity, {\n\t\t\t\t\t\t\tvisitColumn: ({ column }) => column.columnName,\n\t\t\t\t\t\t\tvisitManyHasOne: ({ relation }) => relation.joiningColumn.columnName,\n\t\t\t\t\t\t\tvisitOneHasOneOwning: ({ relation }) => relation.joiningColumn.columnName,\n\t\t\t\t\t\t\tvisitManyHasManyInverse: () => null,\n\t\t\t\t\t\t\tvisitManyHasManyOwning: () => null,\n\t\t\t\t\t\t\tvisitOneHasOneInverse: () => null,\n\t\t\t\t\t\t\tvisitOneHasMany: () => null,\n\t\t\t\t\t\t}),\n\t\t\t\t\t).filter((it): it is string => it !== null)\n\n\t\t\t\t\tconst remainingColumns = allColumns.filter(it => !columns.has(it))\n\t\t\t\t\tqb = qb.from(this.entity.tableName, 'root_')\n\n\t\t\t\t\tqb = remainingColumns.reduce((qb, columnName) => qb.select(['root_', columnName]), qb)\n\n\t\t\t\t\tqb = this.whereBuilder.build(qb, this.entity, this.pathFactory.create([]), {\n\t\t\t\t\t\tand: [{\n\t\t\t\t\t\t\t[this.entity.primary]: { eq: this.primary },\n\t\t\t\t\t\t}, this.oldWhere],\n\t\t\t\t\t})\n\n\t\t\t\t\treturn qb\n\t\t\t\t})\n\t\t\t\t.table(this.entity.tableName)\n\t\t\t\t.values(\n\t\t\t\t\tresolvedData.reduce<QueryBuilder.ColumnExpressionMap>(\n\t\t\t\t\t\t(result: object, item) => ({\n\t\t\t\t\t\t\t...result,\n\t\t\t\t\t\t\t[item.columnName]: expr => expr.select(['newData_', item.columnName]),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.returning(...resolvedData.map(it => it.columnName + oldColSuffix))\n\t\t\t\t.from(qb => {\n\t\t\t\t\tqb = qb.from('newData_')\n\t\t\t\t\tconst col1 = tuple(this.entity.tableName, this.entity.primaryColumn)\n\t\t\t\t\tconst col2 = tuple('newData_', this.entity.primaryColumn)\n\t\t\t\t\tqb = qb.where(expr => expr.compareColumns(col1, Operator.eq, col2))\n\t\t\t\t\tqb = this.whereBuilder.build(qb, this.entity, this.pathFactory.create([], 'newData_'), this.newWhere)\n\t\t\t\t\treturn qb\n\t\t\t\t})\n\n\n\t\t\tconst beforeEvent = new BeforeUpdateEvent(this.entity, resolvedData, this.primary)\n\t\t\tawait mapper.eventManager.fire(beforeEvent)\n\n\t\t\tconst result = await qb.execute(mapper.db)\n\n\t\t\tif (result.length === 1) {\n\t\t\t\tconst eventData = (resolvedData).map(it => ({\n\t\t\t\t\t...it,\n\t\t\t\t\told: result[0][it.columnName + oldColSuffix],\n\t\t\t\t}))\n\t\t\t\tconst afterUpdateEvent = new AfterUpdateEvent(this.entity, eventData, this.primary)\n\t\t\t\tbeforeEvent.afterEvent = afterUpdateEvent\n\t\t\t\tawait mapper.eventManager.fire(afterUpdateEvent)\n\t\t\t}\n\n\t\t\treturn { values: resolvedData, affectedRows: result.length, executed: true }\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":["DbUpdateBuilder","qb","result"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateBuilderFactory.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/update/UpdateBuilderFactory.ts"],"sourcesContent":["import { PathFactory, WhereBuilder } from '../select'\nimport { Input, Model } from '@contember/schema'\nimport { UpdateBuilder } from './UpdateBuilder'\nimport { PredicateFactory } from '../../acl'\n\nexport class UpdateBuilderFactory {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly pathFactory: PathFactory,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t) {}\n\n\tpublic create(entity: Model.Entity, primary: Input.PrimaryValue): UpdateBuilder {\n\t\treturn new UpdateBuilder(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\tthis.whereBuilder,\n\t\t\tprimary,\n\t\t\tthis.pathFactory,\n\t\t\tthis.predicateFactory,\n\t\t)\n\t}\n}\n"],"names":["UpdateBuilder"],"mappings":";;;AAKO,MAAM,qBAAqB;AAAA,EACjC,YACkB,QACA,cACA,aACA,kBAChB;AAJgB,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,cAAA;AACA,SAAA,mBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"UpdateBuilderFactory.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/update/UpdateBuilderFactory.ts"],"sourcesContent":["import { PathFactory, WhereBuilder } from '../select'\nimport { Input, Model } from '@contember/schema'\nimport { UpdateBuilder } from './UpdateBuilder'\nimport { PredicateFactory } from '../../acl'\n\nexport class UpdateBuilderFactory {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly pathFactory: PathFactory,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t) {}\n\n\tpublic create(entity: Model.Entity, primary: Input.PrimaryValue): UpdateBuilder {\n\t\treturn new UpdateBuilder(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\tthis.whereBuilder,\n\t\t\tprimary,\n\t\t\tthis.pathFactory,\n\t\t\tthis.predicateFactory,\n\t\t)\n\t}\n}\n"],"names":["UpdateBuilder"],"mappings":";;;AAKO,MAAM,qBAAqB;AAAA,EACjC,YACkB,QACA,cACA,aACA,kBAChB;AAJgB,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,cAAA;AACA,SAAA,mBAAA;AAAA,EAAA;AAAA,EAGX,OAAO,QAAsB,SAA4C;AAC/E,WAAO,IAAIA,cAAA;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,EAAA;AAEF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateBuilderFactory.js","sources":["../../../../../../packages/engine-content-api/src/mapper/update/UpdateBuilderFactory.ts"],"sourcesContent":["import { PathFactory, WhereBuilder } from '../select'\nimport { Input, Model } from '@contember/schema'\nimport { UpdateBuilder } from './UpdateBuilder'\nimport { PredicateFactory } from '../../acl'\n\nexport class UpdateBuilderFactory {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly pathFactory: PathFactory,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t) {}\n\n\tpublic create(entity: Model.Entity, primary: Input.PrimaryValue): UpdateBuilder {\n\t\treturn new UpdateBuilder(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\tthis.whereBuilder,\n\t\t\tprimary,\n\t\t\tthis.pathFactory,\n\t\t\tthis.predicateFactory,\n\t\t)\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,qBAAqB;AAAA,EACjC,YACkB,QACA,cACA,aACA,kBAChB;AAJgB,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,cAAA;AACA,SAAA,mBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"UpdateBuilderFactory.js","sources":["../../../../../../packages/engine-content-api/src/mapper/update/UpdateBuilderFactory.ts"],"sourcesContent":["import { PathFactory, WhereBuilder } from '../select'\nimport { Input, Model } from '@contember/schema'\nimport { UpdateBuilder } from './UpdateBuilder'\nimport { PredicateFactory } from '../../acl'\n\nexport class UpdateBuilderFactory {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly pathFactory: PathFactory,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t) {}\n\n\tpublic create(entity: Model.Entity, primary: Input.PrimaryValue): UpdateBuilder {\n\t\treturn new UpdateBuilder(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\tthis.whereBuilder,\n\t\t\tprimary,\n\t\t\tthis.pathFactory,\n\t\t\tthis.predicateFactory,\n\t\t)\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,qBAAqB;AAAA,EACjC,YACkB,QACA,cACA,aACA,kBAChB;AAJgB,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,cAAA;AACA,SAAA,mBAAA;AAAA,EAAA;AAAA,EAGX,OAAO,QAAsB,SAA4C;AAC/E,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,EAAA;AAEF;"}
|
|
@@ -20,36 +20,64 @@ class Updater {
|
|
|
20
20
|
if (filter && Object.keys(filter).length > 0) {
|
|
21
21
|
updateBuilder.addOldWhere(filter);
|
|
22
22
|
}
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
const visitor = new UpdateInputVisitor.UpdateInputVisitor(
|
|
24
|
+
new SqlUpdateInputProcessor.SqlUpdateInputProcessor(primaryValue, data, updateBuilder, mapper),
|
|
25
|
+
this.schema,
|
|
26
|
+
data
|
|
27
|
+
);
|
|
28
|
+
const resultList = [];
|
|
29
|
+
const postUpdates = [];
|
|
30
|
+
for (const key of Object.keys(data)) {
|
|
31
|
+
const resultSet = await schemaUtils.acceptFieldVisitor(
|
|
32
|
+
this.schema,
|
|
33
|
+
entity,
|
|
34
|
+
key,
|
|
35
|
+
visitor
|
|
36
|
+
);
|
|
37
|
+
for (const result2 of resultSet) {
|
|
38
|
+
if (typeof result2 === "function") {
|
|
39
|
+
postUpdates.push(result2);
|
|
40
|
+
} else {
|
|
41
|
+
for (const resultItem of await result2) {
|
|
42
|
+
resultList.push(resultItem);
|
|
43
|
+
if (resultItem.error) {
|
|
44
|
+
return resultList;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const result = await updateBuilder.execute(mapper);
|
|
51
|
+
if (!result.executed) {
|
|
52
|
+
resultList.unshift(new Result.MutationNothingToDo([], Result.NothingToDoReason.noData));
|
|
53
|
+
} else if (result.affectedRows !== 1) {
|
|
54
|
+
return [new Result.MutationNoResultError([])];
|
|
31
55
|
} else {
|
|
32
|
-
|
|
56
|
+
const okResult = new Result.MutationUpdateOk([], entity, primaryValue, data, ColumnValue.rowDataToFieldValues(result.values));
|
|
57
|
+
resultList.unshift(okResult);
|
|
33
58
|
}
|
|
59
|
+
for (const postUpdate of postUpdates) {
|
|
60
|
+
const postInsertResult = await postUpdate({ primary: primaryValue });
|
|
61
|
+
for (const result2 of postInsertResult) {
|
|
62
|
+
resultList.push(result2);
|
|
63
|
+
if (result2.error) {
|
|
64
|
+
return resultList;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return resultList;
|
|
34
69
|
}
|
|
35
70
|
async updateCb(mapper, entity, primaryValue, builderCb) {
|
|
36
71
|
const updateBuilder = this.updateBuilderFactory.create(entity, primaryValue);
|
|
37
|
-
const okResultFactory = (values) => new Result.MutationUpdateOk([], entity, primaryValue, {}, values);
|
|
38
72
|
builderCb(updateBuilder);
|
|
39
|
-
return Updater.executeUpdate(updateBuilder, mapper, okResultFactory);
|
|
40
|
-
}
|
|
41
|
-
static async executeUpdate(updateBuilder, mapper, okResultFactory) {
|
|
42
73
|
const result = await updateBuilder.execute(mapper);
|
|
43
|
-
if (result.aborted) {
|
|
44
|
-
return [new Result.MutationNothingToDo([], Result.NothingToDoReason.aborted)];
|
|
45
|
-
}
|
|
46
74
|
if (!result.executed) {
|
|
47
75
|
return [new Result.MutationNothingToDo([], Result.NothingToDoReason.noData)];
|
|
48
76
|
}
|
|
49
77
|
if (result.affectedRows !== 1) {
|
|
50
78
|
return [new Result.MutationNoResultError([])];
|
|
51
79
|
}
|
|
52
|
-
return [
|
|
80
|
+
return [new Result.MutationUpdateOk([], entity, primaryValue, {}, ColumnValue.rowDataToFieldValues(result.values))];
|
|
53
81
|
}
|
|
54
82
|
}
|
|
55
83
|
exports.Updater = Updater;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Updater.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/update/Updater.ts"],"sourcesContent":["import { SqlUpdateInputProcessor } from './SqlUpdateInputProcessor'\nimport { UpdateInputVisitor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { PredicateFactory } from '../../acl'\nimport { UpdateBuilderFactory } from './UpdateBuilderFactory'\nimport { Mapper } from '../Mapper'\nimport {
|
|
1
|
+
{"version":3,"file":"Updater.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/update/Updater.ts"],"sourcesContent":["import { SqlUpdateInputProcessor, SqlUpdateInputProcessorResult } from './SqlUpdateInputProcessor'\nimport { UpdateInputVisitor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { PredicateFactory } from '../../acl'\nimport { UpdateBuilderFactory } from './UpdateBuilderFactory'\nimport { Mapper } from '../Mapper'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { MutationNoResultError, MutationNothingToDo, MutationResultList, MutationUpdateOk, NothingToDoReason } from '../Result'\nimport { UpdateBuilder } from './UpdateBuilder'\nimport { rowDataToFieldValues } from '../ColumnValue'\nimport { DatabaseMetadata } from '@contember/database'\nimport { MapperInput } from '../types'\n\nexport class Updater {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly schemaDatabaseMetadata: DatabaseMetadata,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t\tprivate readonly updateBuilderFactory: UpdateBuilderFactory,\n\t) {}\n\n\tpublic async update(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tprimaryValue: Input.PrimaryValue,\n\t\tdata: MapperInput.UpdateDataInput,\n\t\tfilter?: Input.OptionalWhere,\n\t): Promise<MutationResultList> {\n\t\tconst updateBuilder = this.updateBuilderFactory.create(entity, primaryValue)\n\n\t\tconst predicateFields = Object.keys(data)\n\t\tupdateBuilder.addPredicates(predicateFields)\n\t\tif (filter && Object.keys(filter).length > 0) {\n\t\t\tupdateBuilder.addOldWhere(filter)\n\t\t}\n\n\t\tconst visitor = new UpdateInputVisitor<SqlUpdateInputProcessorResult>(\n\t\t\tnew SqlUpdateInputProcessor(primaryValue, data, updateBuilder, mapper),\n\t\t\tthis.schema,\n\t\t\tdata,\n\t\t)\n\t\tconst resultList: MutationResultList = []\n\t\tconst postUpdates: Exclude<SqlUpdateInputProcessorResult, MutationResultList>[] = []\n\n\t\tfor (const key of Object.keys(data)) {\n\t\t\tconst resultSet = await acceptFieldVisitor(\n\t\t\t\tthis.schema,\n\t\t\t\tentity,\n\t\t\t\tkey,\n\t\t\t\tvisitor,\n\t\t\t)\n\t\t\tfor (const result of resultSet) {\n\t\t\t\tif (typeof result === 'function') {\n\t\t\t\t\tpostUpdates.push(result)\n\t\t\t\t} else {\n\t\t\t\t\tfor (const resultItem of await result) {\n\t\t\t\t\t\tresultList.push(resultItem)\n\t\t\t\t\t\tif (resultItem.error) {\n\t\t\t\t\t\t\treturn resultList\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst result = await updateBuilder.execute(mapper)\n\n\t\tif (!result.executed) {\n\t\t\tresultList.unshift(new MutationNothingToDo([], NothingToDoReason.noData))\n\t\t} else if (result.affectedRows !== 1) {\n\t\t\treturn [new MutationNoResultError([])]\n\t\t} else {\n\t\t\tconst okResult = new MutationUpdateOk([], entity, primaryValue, data, rowDataToFieldValues(result.values))\n\t\t\tresultList.unshift(okResult)\n\t\t}\n\n\t\tfor (const postUpdate of postUpdates) {\n\t\t\tconst postInsertResult = await postUpdate({ primary: primaryValue })\n\t\t\tfor (const result of postInsertResult) {\n\t\t\t\tresultList.push(result)\n\t\t\t\tif (result.error) {\n\t\t\t\t\treturn resultList\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn resultList\n\t}\n\n\tpublic async updateCb(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tprimaryValue: Input.PrimaryValue,\n\t\tbuilderCb: (builder: UpdateBuilder) => void,\n\t): Promise<MutationResultList> {\n\t\tconst updateBuilder = this.updateBuilderFactory.create(entity, primaryValue)\n\n\t\tbuilderCb(updateBuilder)\n\n\t\tconst result = await updateBuilder.execute(mapper)\n\n\t\tif (!result.executed) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.noData)]\n\t\t}\n\t\tif (result.affectedRows !== 1) {\n\t\t\treturn [new MutationNoResultError([])]\n\t\t}\n\t\treturn [new MutationUpdateOk([], entity, primaryValue, {}, rowDataToFieldValues(result.values))]\n\t}\n}\n"],"names":["UpdateInputVisitor","SqlUpdateInputProcessor","acceptFieldVisitor","result","MutationNothingToDo","NothingToDoReason","MutationNoResultError","MutationUpdateOk","rowDataToFieldValues"],"mappings":";;;;;;;;AAaO,MAAM,QAAQ;AAAA,EACpB,YACkB,QACA,wBACA,kBACA,sBAChB;AAJgB,SAAA,SAAA;AACA,SAAA,yBAAA;AACA,SAAA,mBAAA;AACA,SAAA,uBAAA;AAAA,EAAA;AAAA,EAGlB,MAAa,OACZ,QACA,QACA,cACA,MACA,QAC8B;AAC9B,UAAM,gBAAgB,KAAK,qBAAqB,OAAO,QAAQ,YAAY;AAErE,UAAA,kBAAkB,OAAO,KAAK,IAAI;AACxC,kBAAc,cAAc,eAAe;AAC3C,QAAI,UAAU,OAAO,KAAK,MAAM,EAAE,SAAS,GAAG;AAC7C,oBAAc,YAAY,MAAM;AAAA,IAAA;AAGjC,UAAM,UAAU,IAAIA,mBAAA;AAAA,MACnB,IAAIC,wBAAA,wBAAwB,cAAc,MAAM,eAAe,MAAM;AAAA,MACrE,KAAK;AAAA,MACL;AAAA,IACD;AACA,UAAM,aAAiC,CAAC;AACxC,UAAM,cAA4E,CAAC;AAEnF,eAAW,OAAO,OAAO,KAAK,IAAI,GAAG;AACpC,YAAM,YAAY,MAAMC,YAAA;AAAA,QACvB,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,iBAAWC,WAAU,WAAW;AAC3B,YAAA,OAAOA,YAAW,YAAY;AACjC,sBAAY,KAAKA,OAAM;AAAA,QAAA,OACjB;AACK,qBAAA,cAAc,MAAMA,SAAQ;AACtC,uBAAW,KAAK,UAAU;AAC1B,gBAAI,WAAW,OAAO;AACd,qBAAA;AAAA,YAAA;AAAA,UACR;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAGD,UAAM,SAAS,MAAM,cAAc,QAAQ,MAAM;AAE7C,QAAA,CAAC,OAAO,UAAU;AACrB,iBAAW,QAAQ,IAAIC,OAAAA,oBAAoB,CAAA,GAAIC,OAAAA,kBAAkB,MAAM,CAAC;AAAA,IAAA,WAC9D,OAAO,iBAAiB,GAAG;AACrC,aAAO,CAAC,IAAIC,6BAAsB,CAAA,CAAE,CAAC;AAAA,IAAA,OAC/B;AACA,YAAA,WAAW,IAAIC,wBAAiB,CAAA,GAAI,QAAQ,cAAc,MAAMC,YAAA,qBAAqB,OAAO,MAAM,CAAC;AACzG,iBAAW,QAAQ,QAAQ;AAAA,IAAA;AAG5B,eAAW,cAAc,aAAa;AACrC,YAAM,mBAAmB,MAAM,WAAW,EAAE,SAAS,cAAc;AACnE,iBAAWL,WAAU,kBAAkB;AACtC,mBAAW,KAAKA,OAAM;AACtB,YAAIA,QAAO,OAAO;AACV,iBAAA;AAAA,QAAA;AAAA,MACR;AAAA,IACD;AAGM,WAAA;AAAA,EAAA;AAAA,EAGR,MAAa,SACZ,QACA,QACA,cACA,WAC8B;AAC9B,UAAM,gBAAgB,KAAK,qBAAqB,OAAO,QAAQ,YAAY;AAE3E,cAAU,aAAa;AAEvB,UAAM,SAAS,MAAM,cAAc,QAAQ,MAAM;AAE7C,QAAA,CAAC,OAAO,UAAU;AACrB,aAAO,CAAC,IAAIC,OAAA,oBAAoB,CAAI,GAAAC,OAAA,kBAAkB,MAAM,CAAC;AAAA,IAAA;AAE1D,QAAA,OAAO,iBAAiB,GAAG;AAC9B,aAAO,CAAC,IAAIC,6BAAsB,CAAA,CAAE,CAAC;AAAA,IAAA;AAEtC,WAAO,CAAC,IAAIC,OAAAA,iBAAiB,CAAI,GAAA,QAAQ,cAAc,CAAI,GAAAC,iCAAqB,OAAO,MAAM,CAAC,CAAC;AAAA,EAAA;AAEjG;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SqlUpdateInputProcessor } from "./SqlUpdateInputProcessor.js";
|
|
2
|
-
import {
|
|
2
|
+
import { acceptFieldVisitor } from "@contember/schema-utils";
|
|
3
3
|
import "@contember/schema";
|
|
4
4
|
import { UpdateInputVisitor } from "../../inputProcessing/UpdateInputVisitor.js";
|
|
5
|
-
import {
|
|
5
|
+
import { MutationNothingToDo, NothingToDoReason, MutationNoResultError, MutationUpdateOk } from "../Result.js";
|
|
6
6
|
import { rowDataToFieldValues } from "../ColumnValue.js";
|
|
7
7
|
class Updater {
|
|
8
8
|
constructor(schema, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory) {
|
|
@@ -18,36 +18,64 @@ class Updater {
|
|
|
18
18
|
if (filter && Object.keys(filter).length > 0) {
|
|
19
19
|
updateBuilder.addOldWhere(filter);
|
|
20
20
|
}
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
const visitor = new UpdateInputVisitor(
|
|
22
|
+
new SqlUpdateInputProcessor(primaryValue, data, updateBuilder, mapper),
|
|
23
|
+
this.schema,
|
|
24
|
+
data
|
|
25
|
+
);
|
|
26
|
+
const resultList = [];
|
|
27
|
+
const postUpdates = [];
|
|
28
|
+
for (const key of Object.keys(data)) {
|
|
29
|
+
const resultSet = await acceptFieldVisitor(
|
|
30
|
+
this.schema,
|
|
31
|
+
entity,
|
|
32
|
+
key,
|
|
33
|
+
visitor
|
|
34
|
+
);
|
|
35
|
+
for (const result2 of resultSet) {
|
|
36
|
+
if (typeof result2 === "function") {
|
|
37
|
+
postUpdates.push(result2);
|
|
38
|
+
} else {
|
|
39
|
+
for (const resultItem of await result2) {
|
|
40
|
+
resultList.push(resultItem);
|
|
41
|
+
if (resultItem.error) {
|
|
42
|
+
return resultList;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const result = await updateBuilder.execute(mapper);
|
|
49
|
+
if (!result.executed) {
|
|
50
|
+
resultList.unshift(new MutationNothingToDo([], NothingToDoReason.noData));
|
|
51
|
+
} else if (result.affectedRows !== 1) {
|
|
52
|
+
return [new MutationNoResultError([])];
|
|
29
53
|
} else {
|
|
30
|
-
|
|
54
|
+
const okResult = new MutationUpdateOk([], entity, primaryValue, data, rowDataToFieldValues(result.values));
|
|
55
|
+
resultList.unshift(okResult);
|
|
31
56
|
}
|
|
57
|
+
for (const postUpdate of postUpdates) {
|
|
58
|
+
const postInsertResult = await postUpdate({ primary: primaryValue });
|
|
59
|
+
for (const result2 of postInsertResult) {
|
|
60
|
+
resultList.push(result2);
|
|
61
|
+
if (result2.error) {
|
|
62
|
+
return resultList;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return resultList;
|
|
32
67
|
}
|
|
33
68
|
async updateCb(mapper, entity, primaryValue, builderCb) {
|
|
34
69
|
const updateBuilder = this.updateBuilderFactory.create(entity, primaryValue);
|
|
35
|
-
const okResultFactory = (values) => new MutationUpdateOk([], entity, primaryValue, {}, values);
|
|
36
70
|
builderCb(updateBuilder);
|
|
37
|
-
return Updater.executeUpdate(updateBuilder, mapper, okResultFactory);
|
|
38
|
-
}
|
|
39
|
-
static async executeUpdate(updateBuilder, mapper, okResultFactory) {
|
|
40
71
|
const result = await updateBuilder.execute(mapper);
|
|
41
|
-
if (result.aborted) {
|
|
42
|
-
return [new MutationNothingToDo([], NothingToDoReason.aborted)];
|
|
43
|
-
}
|
|
44
72
|
if (!result.executed) {
|
|
45
73
|
return [new MutationNothingToDo([], NothingToDoReason.noData)];
|
|
46
74
|
}
|
|
47
75
|
if (result.affectedRows !== 1) {
|
|
48
76
|
return [new MutationNoResultError([])];
|
|
49
77
|
}
|
|
50
|
-
return [
|
|
78
|
+
return [new MutationUpdateOk([], entity, primaryValue, {}, rowDataToFieldValues(result.values))];
|
|
51
79
|
}
|
|
52
80
|
}
|
|
53
81
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Updater.js","sources":["../../../../../../packages/engine-content-api/src/mapper/update/Updater.ts"],"sourcesContent":["import { SqlUpdateInputProcessor } from './SqlUpdateInputProcessor'\nimport { UpdateInputVisitor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { PredicateFactory } from '../../acl'\nimport { UpdateBuilderFactory } from './UpdateBuilderFactory'\nimport { Mapper } from '../Mapper'\nimport {
|
|
1
|
+
{"version":3,"file":"Updater.js","sources":["../../../../../../packages/engine-content-api/src/mapper/update/Updater.ts"],"sourcesContent":["import { SqlUpdateInputProcessor, SqlUpdateInputProcessorResult } from './SqlUpdateInputProcessor'\nimport { UpdateInputVisitor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { PredicateFactory } from '../../acl'\nimport { UpdateBuilderFactory } from './UpdateBuilderFactory'\nimport { Mapper } from '../Mapper'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { MutationNoResultError, MutationNothingToDo, MutationResultList, MutationUpdateOk, NothingToDoReason } from '../Result'\nimport { UpdateBuilder } from './UpdateBuilder'\nimport { rowDataToFieldValues } from '../ColumnValue'\nimport { DatabaseMetadata } from '@contember/database'\nimport { MapperInput } from '../types'\n\nexport class Updater {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly schemaDatabaseMetadata: DatabaseMetadata,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t\tprivate readonly updateBuilderFactory: UpdateBuilderFactory,\n\t) {}\n\n\tpublic async update(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tprimaryValue: Input.PrimaryValue,\n\t\tdata: MapperInput.UpdateDataInput,\n\t\tfilter?: Input.OptionalWhere,\n\t): Promise<MutationResultList> {\n\t\tconst updateBuilder = this.updateBuilderFactory.create(entity, primaryValue)\n\n\t\tconst predicateFields = Object.keys(data)\n\t\tupdateBuilder.addPredicates(predicateFields)\n\t\tif (filter && Object.keys(filter).length > 0) {\n\t\t\tupdateBuilder.addOldWhere(filter)\n\t\t}\n\n\t\tconst visitor = new UpdateInputVisitor<SqlUpdateInputProcessorResult>(\n\t\t\tnew SqlUpdateInputProcessor(primaryValue, data, updateBuilder, mapper),\n\t\t\tthis.schema,\n\t\t\tdata,\n\t\t)\n\t\tconst resultList: MutationResultList = []\n\t\tconst postUpdates: Exclude<SqlUpdateInputProcessorResult, MutationResultList>[] = []\n\n\t\tfor (const key of Object.keys(data)) {\n\t\t\tconst resultSet = await acceptFieldVisitor(\n\t\t\t\tthis.schema,\n\t\t\t\tentity,\n\t\t\t\tkey,\n\t\t\t\tvisitor,\n\t\t\t)\n\t\t\tfor (const result of resultSet) {\n\t\t\t\tif (typeof result === 'function') {\n\t\t\t\t\tpostUpdates.push(result)\n\t\t\t\t} else {\n\t\t\t\t\tfor (const resultItem of await result) {\n\t\t\t\t\t\tresultList.push(resultItem)\n\t\t\t\t\t\tif (resultItem.error) {\n\t\t\t\t\t\t\treturn resultList\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst result = await updateBuilder.execute(mapper)\n\n\t\tif (!result.executed) {\n\t\t\tresultList.unshift(new MutationNothingToDo([], NothingToDoReason.noData))\n\t\t} else if (result.affectedRows !== 1) {\n\t\t\treturn [new MutationNoResultError([])]\n\t\t} else {\n\t\t\tconst okResult = new MutationUpdateOk([], entity, primaryValue, data, rowDataToFieldValues(result.values))\n\t\t\tresultList.unshift(okResult)\n\t\t}\n\n\t\tfor (const postUpdate of postUpdates) {\n\t\t\tconst postInsertResult = await postUpdate({ primary: primaryValue })\n\t\t\tfor (const result of postInsertResult) {\n\t\t\t\tresultList.push(result)\n\t\t\t\tif (result.error) {\n\t\t\t\t\treturn resultList\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn resultList\n\t}\n\n\tpublic async updateCb(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tprimaryValue: Input.PrimaryValue,\n\t\tbuilderCb: (builder: UpdateBuilder) => void,\n\t): Promise<MutationResultList> {\n\t\tconst updateBuilder = this.updateBuilderFactory.create(entity, primaryValue)\n\n\t\tbuilderCb(updateBuilder)\n\n\t\tconst result = await updateBuilder.execute(mapper)\n\n\t\tif (!result.executed) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.noData)]\n\t\t}\n\t\tif (result.affectedRows !== 1) {\n\t\t\treturn [new MutationNoResultError([])]\n\t\t}\n\t\treturn [new MutationUpdateOk([], entity, primaryValue, {}, rowDataToFieldValues(result.values))]\n\t}\n}\n"],"names":["result"],"mappings":";;;;;;AAaO,MAAM,QAAQ;AAAA,EACpB,YACkB,QACA,wBACA,kBACA,sBAChB;AAJgB,SAAA,SAAA;AACA,SAAA,yBAAA;AACA,SAAA,mBAAA;AACA,SAAA,uBAAA;AAAA,EAAA;AAAA,EAGlB,MAAa,OACZ,QACA,QACA,cACA,MACA,QAC8B;AAC9B,UAAM,gBAAgB,KAAK,qBAAqB,OAAO,QAAQ,YAAY;AAErE,UAAA,kBAAkB,OAAO,KAAK,IAAI;AACxC,kBAAc,cAAc,eAAe;AAC3C,QAAI,UAAU,OAAO,KAAK,MAAM,EAAE,SAAS,GAAG;AAC7C,oBAAc,YAAY,MAAM;AAAA,IAAA;AAGjC,UAAM,UAAU,IAAI;AAAA,MACnB,IAAI,wBAAwB,cAAc,MAAM,eAAe,MAAM;AAAA,MACrE,KAAK;AAAA,MACL;AAAA,IACD;AACA,UAAM,aAAiC,CAAC;AACxC,UAAM,cAA4E,CAAC;AAEnF,eAAW,OAAO,OAAO,KAAK,IAAI,GAAG;AACpC,YAAM,YAAY,MAAM;AAAA,QACvB,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,iBAAWA,WAAU,WAAW;AAC3B,YAAA,OAAOA,YAAW,YAAY;AACjC,sBAAY,KAAKA,OAAM;AAAA,QAAA,OACjB;AACK,qBAAA,cAAc,MAAMA,SAAQ;AACtC,uBAAW,KAAK,UAAU;AAC1B,gBAAI,WAAW,OAAO;AACd,qBAAA;AAAA,YAAA;AAAA,UACR;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAGD,UAAM,SAAS,MAAM,cAAc,QAAQ,MAAM;AAE7C,QAAA,CAAC,OAAO,UAAU;AACrB,iBAAW,QAAQ,IAAI,oBAAoB,CAAA,GAAI,kBAAkB,MAAM,CAAC;AAAA,IAAA,WAC9D,OAAO,iBAAiB,GAAG;AACrC,aAAO,CAAC,IAAI,sBAAsB,CAAA,CAAE,CAAC;AAAA,IAAA,OAC/B;AACA,YAAA,WAAW,IAAI,iBAAiB,CAAA,GAAI,QAAQ,cAAc,MAAM,qBAAqB,OAAO,MAAM,CAAC;AACzG,iBAAW,QAAQ,QAAQ;AAAA,IAAA;AAG5B,eAAW,cAAc,aAAa;AACrC,YAAM,mBAAmB,MAAM,WAAW,EAAE,SAAS,cAAc;AACnE,iBAAWA,WAAU,kBAAkB;AACtC,mBAAW,KAAKA,OAAM;AACtB,YAAIA,QAAO,OAAO;AACV,iBAAA;AAAA,QAAA;AAAA,MACR;AAAA,IACD;AAGM,WAAA;AAAA,EAAA;AAAA,EAGR,MAAa,SACZ,QACA,QACA,cACA,WAC8B;AAC9B,UAAM,gBAAgB,KAAK,qBAAqB,OAAO,QAAQ,YAAY;AAE3E,cAAU,aAAa;AAEvB,UAAM,SAAS,MAAM,cAAc,QAAQ,MAAM;AAE7C,QAAA,CAAC,OAAO,UAAU;AACrB,aAAO,CAAC,IAAI,oBAAoB,CAAI,GAAA,kBAAkB,MAAM,CAAC;AAAA,IAAA;AAE1D,QAAA,OAAO,iBAAiB,GAAG;AAC9B,aAAO,CAAC,IAAI,sBAAsB,CAAA,CAAE,CAAC;AAAA,IAAA;AAEtC,WAAO,CAAC,IAAI,iBAAiB,CAAI,GAAA,QAAQ,cAAc,CAAI,GAAA,qBAAqB,OAAO,MAAM,CAAC,CAAC;AAAA,EAAA;AAEjG;"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const Result = require("../../Result.cjs");
|
|
4
|
+
const CheckedPrimary = require("../../CheckedPrimary.cjs");
|
|
5
|
+
class ManyHasManyUpdateInputProcessor {
|
|
6
|
+
constructor(mapper) {
|
|
7
|
+
this.mapper = mapper;
|
|
8
|
+
}
|
|
9
|
+
async connect({ entity, targetEntity, relation, targetRelation, input }) {
|
|
10
|
+
return async ({ primary }) => {
|
|
11
|
+
const [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, input);
|
|
12
|
+
if (err) return [err];
|
|
13
|
+
return await this.mapper.connectJunction(entity, relation, primary, otherPrimary);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
async create({ entity, targetEntity, relation, input }) {
|
|
17
|
+
return async ({ primary }) => {
|
|
18
|
+
const insertResult = await this.mapper.insert(targetEntity, input);
|
|
19
|
+
const insertPrimary = Result.getInsertPrimary(insertResult);
|
|
20
|
+
if (!insertPrimary) {
|
|
21
|
+
return insertResult;
|
|
22
|
+
}
|
|
23
|
+
return [
|
|
24
|
+
...insertResult,
|
|
25
|
+
...await this.mapper.connectJunction(entity, relation, primary, insertPrimary)
|
|
26
|
+
];
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async connectOrCreate(context) {
|
|
30
|
+
return async ({ primary }) => {
|
|
31
|
+
let [otherPrimary] = await this.mapper.getPrimaryValue(context.targetEntity, context.input.connect);
|
|
32
|
+
if (!otherPrimary) {
|
|
33
|
+
const insertResult = await this.mapper.insert(context.targetEntity, context.input.create);
|
|
34
|
+
otherPrimary = Result.getInsertPrimary(insertResult);
|
|
35
|
+
if (!otherPrimary) {
|
|
36
|
+
return insertResult;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return await this.mapper.connectJunction(context.entity, context.relation, primary, otherPrimary);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async update({ entity, targetEntity, relation, input: { where, data } }) {
|
|
43
|
+
return async ({ primary }) => {
|
|
44
|
+
const [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, where);
|
|
45
|
+
if (err) return [err];
|
|
46
|
+
return [
|
|
47
|
+
...await this.mapper.update(targetEntity, new CheckedPrimary.CheckedPrimary(otherPrimary), data),
|
|
48
|
+
...await this.mapper.connectJunction(entity, relation, primary, otherPrimary)
|
|
49
|
+
];
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async upsert({ entity, relation, targetEntity, input: { create, update, where } }) {
|
|
53
|
+
return async ({ primary }) => {
|
|
54
|
+
const [otherPrimary] = await this.mapper.getPrimaryValue(targetEntity, where);
|
|
55
|
+
if (otherPrimary) {
|
|
56
|
+
const updateResult = await this.mapper.update(targetEntity, new CheckedPrimary.CheckedPrimary(otherPrimary), update);
|
|
57
|
+
const connectResult = await this.mapper.connectJunction(entity, relation, primary, otherPrimary);
|
|
58
|
+
return [...updateResult, ...connectResult];
|
|
59
|
+
} else {
|
|
60
|
+
const insertResult = await this.mapper.insert(targetEntity, create);
|
|
61
|
+
const primaryValue = Result.getInsertPrimary(insertResult);
|
|
62
|
+
if (!primaryValue) {
|
|
63
|
+
return insertResult;
|
|
64
|
+
}
|
|
65
|
+
const connectResult = await this.mapper.connectJunction(entity, relation, primary, primaryValue);
|
|
66
|
+
return [...insertResult, ...connectResult];
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
async disconnect({ entity, targetEntity, relation, input }) {
|
|
71
|
+
return async ({ primary }) => {
|
|
72
|
+
const [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, input);
|
|
73
|
+
if (err) return [err];
|
|
74
|
+
return await this.mapper.disconnectJunction(entity, relation, primary, otherPrimary);
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async delete({ entity, targetEntity, relation, targetRelation, input }) {
|
|
78
|
+
return async ({ primary }) => {
|
|
79
|
+
return await this.mapper.delete(targetEntity, input);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.ManyHasManyUpdateInputProcessor = ManyHasManyUpdateInputProcessor;
|
|
84
|
+
//# sourceMappingURL=ManyHasManyUpdateInputProcessor.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyHasManyUpdateInputProcessor.cjs","sources":["../../../../../../../packages/engine-content-api/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { getInsertPrimary, MutationEntryNotFoundError } from '../../Result'\nimport { Mapper } from '../../Mapper'\nimport { SqlUpdateInputProcessorResult } from '../../update'\nimport { CheckedPrimary } from '../../CheckedPrimary'\nimport { MapperInput } from '../../types'\n\ntype Context = Model.ManyHasManyOwningContext | Model.ManyHasManyInverseContext\n\nexport class ManyHasManyUpdateInputProcessor implements UpdateInputProcessor.HasManyRelationInputProcessor<Context, SqlUpdateInputProcessorResult> {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Context & { input: Input.UniqueWhere | CheckedPrimary },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (err) return [err]\n\t\t\treturn await this.mapper.connectJunction(entity, relation, primary, otherPrimary)\n\t\t}\n\t}\n\n\tpublic async create(\n\t\t{ entity, targetEntity, relation, input }: Context & { input: MapperInput.CreateDataInput },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, input)\n\t\t\tconst insertPrimary = getInsertPrimary(insertResult)\n\t\t\tif (!insertPrimary) {\n\t\t\t\treturn insertResult\n\t\t\t}\n\t\t\treturn [\n\t\t\t\t...insertResult,\n\t\t\t\t...(await this.mapper.connectJunction(entity, relation, primary, insertPrimary)),\n\t\t\t]\n\t\t}\n\t}\n\n\tpublic async connectOrCreate(\n\t\tcontext: Context & { input: MapperInput.ConnectOrCreateInput },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tlet [otherPrimary] = await this.mapper.getPrimaryValue(context.targetEntity, context.input.connect)\n\t\t\tif (!otherPrimary) {\n\t\t\t\tconst insertResult = await this.mapper.insert(context.targetEntity, context.input.create)\n\t\t\t\totherPrimary = getInsertPrimary(insertResult)\n\t\t\t\tif (!otherPrimary) {\n\t\t\t\t\treturn insertResult\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn await this.mapper.connectJunction(context.entity, context.relation, primary, otherPrimary)\n\t\t}\n\t}\n\n\tpublic async update(\n\t\t{ entity, targetEntity, relation, input: { where, data } }: Context & { input: UpdateInputProcessor.UpdateManyInput },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, where)\n\t\t\tif (err) return [err]\n\t\t\treturn [\n\t\t\t\t...(await this.mapper.update(targetEntity, new CheckedPrimary(otherPrimary), data)),\n\t\t\t\t...(await this.mapper.connectJunction(entity, relation, primary, otherPrimary)),\n\t\t\t]\n\t\t}\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, relation, targetEntity, input: { create, update, where } }: Context & { input: UpdateInputProcessor.UpsertManyInput },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst [otherPrimary] = await this.mapper.getPrimaryValue(targetEntity, where)\n\t\t\tif (otherPrimary) {\n\t\t\t\tconst updateResult = await this.mapper.update(targetEntity, new CheckedPrimary(otherPrimary), update)\n\t\t\t\tconst connectResult = await this.mapper.connectJunction(entity, relation, primary, otherPrimary)\n\t\t\t\treturn [...updateResult, ...connectResult]\n\t\t\t} else {\n\t\t\t\tconst insertResult = await this.mapper.insert(targetEntity, create)\n\n\t\t\t\tconst primaryValue = getInsertPrimary(insertResult)\n\t\t\t\tif (!primaryValue) {\n\t\t\t\t\treturn insertResult\n\t\t\t\t}\n\t\t\t\tconst connectResult = await this.mapper.connectJunction(entity, relation, primary, primaryValue)\n\t\t\t\treturn [...insertResult, ...connectResult]\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, input }: Context & { input: Input.UniqueWhere },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (err) return [err]\n\n\t\t\treturn await this.mapper.disconnectJunction(entity, relation, primary, otherPrimary)\n\t\t}\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Context & { input: Input.UniqueWhere },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\treturn await this.mapper.delete(targetEntity, input)\n\t\t}\n\t}\n}\n"],"names":["getInsertPrimary","CheckedPrimary"],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { getInsertPrimary } from "../../Result.js";
|
|
2
|
+
import { CheckedPrimary } from "../../CheckedPrimary.js";
|
|
3
|
+
class ManyHasManyUpdateInputProcessor {
|
|
4
|
+
constructor(mapper) {
|
|
5
|
+
this.mapper = mapper;
|
|
6
|
+
}
|
|
7
|
+
async connect({ entity, targetEntity, relation, targetRelation, input }) {
|
|
8
|
+
return async ({ primary }) => {
|
|
9
|
+
const [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, input);
|
|
10
|
+
if (err) return [err];
|
|
11
|
+
return await this.mapper.connectJunction(entity, relation, primary, otherPrimary);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
async create({ entity, targetEntity, relation, input }) {
|
|
15
|
+
return async ({ primary }) => {
|
|
16
|
+
const insertResult = await this.mapper.insert(targetEntity, input);
|
|
17
|
+
const insertPrimary = getInsertPrimary(insertResult);
|
|
18
|
+
if (!insertPrimary) {
|
|
19
|
+
return insertResult;
|
|
20
|
+
}
|
|
21
|
+
return [
|
|
22
|
+
...insertResult,
|
|
23
|
+
...await this.mapper.connectJunction(entity, relation, primary, insertPrimary)
|
|
24
|
+
];
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async connectOrCreate(context) {
|
|
28
|
+
return async ({ primary }) => {
|
|
29
|
+
let [otherPrimary] = await this.mapper.getPrimaryValue(context.targetEntity, context.input.connect);
|
|
30
|
+
if (!otherPrimary) {
|
|
31
|
+
const insertResult = await this.mapper.insert(context.targetEntity, context.input.create);
|
|
32
|
+
otherPrimary = getInsertPrimary(insertResult);
|
|
33
|
+
if (!otherPrimary) {
|
|
34
|
+
return insertResult;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return await this.mapper.connectJunction(context.entity, context.relation, primary, otherPrimary);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
async update({ entity, targetEntity, relation, input: { where, data } }) {
|
|
41
|
+
return async ({ primary }) => {
|
|
42
|
+
const [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, where);
|
|
43
|
+
if (err) return [err];
|
|
44
|
+
return [
|
|
45
|
+
...await this.mapper.update(targetEntity, new CheckedPrimary(otherPrimary), data),
|
|
46
|
+
...await this.mapper.connectJunction(entity, relation, primary, otherPrimary)
|
|
47
|
+
];
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
async upsert({ entity, relation, targetEntity, input: { create, update, where } }) {
|
|
51
|
+
return async ({ primary }) => {
|
|
52
|
+
const [otherPrimary] = await this.mapper.getPrimaryValue(targetEntity, where);
|
|
53
|
+
if (otherPrimary) {
|
|
54
|
+
const updateResult = await this.mapper.update(targetEntity, new CheckedPrimary(otherPrimary), update);
|
|
55
|
+
const connectResult = await this.mapper.connectJunction(entity, relation, primary, otherPrimary);
|
|
56
|
+
return [...updateResult, ...connectResult];
|
|
57
|
+
} else {
|
|
58
|
+
const insertResult = await this.mapper.insert(targetEntity, create);
|
|
59
|
+
const primaryValue = getInsertPrimary(insertResult);
|
|
60
|
+
if (!primaryValue) {
|
|
61
|
+
return insertResult;
|
|
62
|
+
}
|
|
63
|
+
const connectResult = await this.mapper.connectJunction(entity, relation, primary, primaryValue);
|
|
64
|
+
return [...insertResult, ...connectResult];
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async disconnect({ entity, targetEntity, relation, input }) {
|
|
69
|
+
return async ({ primary }) => {
|
|
70
|
+
const [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, input);
|
|
71
|
+
if (err) return [err];
|
|
72
|
+
return await this.mapper.disconnectJunction(entity, relation, primary, otherPrimary);
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
async delete({ entity, targetEntity, relation, targetRelation, input }) {
|
|
76
|
+
return async ({ primary }) => {
|
|
77
|
+
return await this.mapper.delete(targetEntity, input);
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
ManyHasManyUpdateInputProcessor
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=ManyHasManyUpdateInputProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManyHasManyUpdateInputProcessor.js","sources":["../../../../../../../packages/engine-content-api/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { getInsertPrimary, MutationEntryNotFoundError } from '../../Result'\nimport { Mapper } from '../../Mapper'\nimport { SqlUpdateInputProcessorResult } from '../../update'\nimport { CheckedPrimary } from '../../CheckedPrimary'\nimport { MapperInput } from '../../types'\n\ntype Context = Model.ManyHasManyOwningContext | Model.ManyHasManyInverseContext\n\nexport class ManyHasManyUpdateInputProcessor implements UpdateInputProcessor.HasManyRelationInputProcessor<Context, SqlUpdateInputProcessorResult> {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Context & { input: Input.UniqueWhere | CheckedPrimary },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (err) return [err]\n\t\t\treturn await this.mapper.connectJunction(entity, relation, primary, otherPrimary)\n\t\t}\n\t}\n\n\tpublic async create(\n\t\t{ entity, targetEntity, relation, input }: Context & { input: MapperInput.CreateDataInput },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, input)\n\t\t\tconst insertPrimary = getInsertPrimary(insertResult)\n\t\t\tif (!insertPrimary) {\n\t\t\t\treturn insertResult\n\t\t\t}\n\t\t\treturn [\n\t\t\t\t...insertResult,\n\t\t\t\t...(await this.mapper.connectJunction(entity, relation, primary, insertPrimary)),\n\t\t\t]\n\t\t}\n\t}\n\n\tpublic async connectOrCreate(\n\t\tcontext: Context & { input: MapperInput.ConnectOrCreateInput },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tlet [otherPrimary] = await this.mapper.getPrimaryValue(context.targetEntity, context.input.connect)\n\t\t\tif (!otherPrimary) {\n\t\t\t\tconst insertResult = await this.mapper.insert(context.targetEntity, context.input.create)\n\t\t\t\totherPrimary = getInsertPrimary(insertResult)\n\t\t\t\tif (!otherPrimary) {\n\t\t\t\t\treturn insertResult\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn await this.mapper.connectJunction(context.entity, context.relation, primary, otherPrimary)\n\t\t}\n\t}\n\n\tpublic async update(\n\t\t{ entity, targetEntity, relation, input: { where, data } }: Context & { input: UpdateInputProcessor.UpdateManyInput },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, where)\n\t\t\tif (err) return [err]\n\t\t\treturn [\n\t\t\t\t...(await this.mapper.update(targetEntity, new CheckedPrimary(otherPrimary), data)),\n\t\t\t\t...(await this.mapper.connectJunction(entity, relation, primary, otherPrimary)),\n\t\t\t]\n\t\t}\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, relation, targetEntity, input: { create, update, where } }: Context & { input: UpdateInputProcessor.UpsertManyInput },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst [otherPrimary] = await this.mapper.getPrimaryValue(targetEntity, where)\n\t\t\tif (otherPrimary) {\n\t\t\t\tconst updateResult = await this.mapper.update(targetEntity, new CheckedPrimary(otherPrimary), update)\n\t\t\t\tconst connectResult = await this.mapper.connectJunction(entity, relation, primary, otherPrimary)\n\t\t\t\treturn [...updateResult, ...connectResult]\n\t\t\t} else {\n\t\t\t\tconst insertResult = await this.mapper.insert(targetEntity, create)\n\n\t\t\t\tconst primaryValue = getInsertPrimary(insertResult)\n\t\t\t\tif (!primaryValue) {\n\t\t\t\t\treturn insertResult\n\t\t\t\t}\n\t\t\t\tconst connectResult = await this.mapper.connectJunction(entity, relation, primary, primaryValue)\n\t\t\t\treturn [...insertResult, ...connectResult]\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, input }: Context & { input: Input.UniqueWhere },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\tconst [otherPrimary, err] = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (err) return [err]\n\n\t\t\treturn await this.mapper.disconnectJunction(entity, relation, primary, otherPrimary)\n\t\t}\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Context & { input: Input.UniqueWhere },\n\t) {\n\t\treturn async ({ primary }: { primary: Input.PrimaryValue }) => {\n\t\t\treturn await this.mapper.delete(targetEntity, input)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const schema = require("@contember/schema");
|
|
4
|
+
const Result = require("../../Result.cjs");
|
|
5
|
+
const CheckedPrimary = require("../../CheckedPrimary.cjs");
|
|
6
|
+
class ManyHasOneUpdateInputProcessor {
|
|
7
|
+
constructor(mapper, builder, primary) {
|
|
8
|
+
this.mapper = mapper;
|
|
9
|
+
this.builder = builder;
|
|
10
|
+
this.primary = primary;
|
|
11
|
+
}
|
|
12
|
+
async connect({ targetEntity, relation, input }) {
|
|
13
|
+
const [value, err] = await this.mapper.getPrimaryValue(targetEntity, input);
|
|
14
|
+
if (err) return [err];
|
|
15
|
+
this.builder.addFieldValue(relation.name, value);
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
async create({ relation, targetEntity, input }) {
|
|
19
|
+
const insertResult = await this.mapper.insert(targetEntity, input);
|
|
20
|
+
const value = Result.getInsertPrimary(insertResult);
|
|
21
|
+
if (!value) {
|
|
22
|
+
return insertResult;
|
|
23
|
+
}
|
|
24
|
+
this.builder.addFieldValue(relation.name, value);
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
async connectOrCreate({ input: { connect, create }, relation, targetEntity }) {
|
|
28
|
+
const [value] = await this.mapper.getPrimaryValue(targetEntity, connect);
|
|
29
|
+
if (value) {
|
|
30
|
+
this.builder.addFieldValue(relation.name, value);
|
|
31
|
+
} else {
|
|
32
|
+
const insertResult = await this.mapper.insert(targetEntity, create);
|
|
33
|
+
const primary = Result.getInsertPrimary(insertResult);
|
|
34
|
+
if (!primary) {
|
|
35
|
+
return insertResult;
|
|
36
|
+
}
|
|
37
|
+
this.builder.addFieldValue(relation.name, primary);
|
|
38
|
+
}
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
async update({ entity, relation, targetEntity, targetRelation, input }) {
|
|
42
|
+
return async ({ primary }) => {
|
|
43
|
+
const inversePrimary = await this.mapper.selectField(
|
|
44
|
+
entity,
|
|
45
|
+
{ [entity.primary]: primary },
|
|
46
|
+
relation.name
|
|
47
|
+
);
|
|
48
|
+
if (!inversePrimary) {
|
|
49
|
+
return [new Result.MutationNothingToDo([], Result.NothingToDoReason.emptyRelation)];
|
|
50
|
+
}
|
|
51
|
+
return await this.mapper.update(targetEntity, new CheckedPrimary.CheckedPrimary(inversePrimary), input);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async upsert({ entity, relation, targetEntity, input: { create, update } }) {
|
|
55
|
+
const inversePrimary = await this.mapper.selectField(entity, { [entity.primary]: this.primary }, relation.name);
|
|
56
|
+
if (!inversePrimary) {
|
|
57
|
+
const insertResult = await this.mapper.insert(targetEntity, create);
|
|
58
|
+
const insertPrimary = Result.getInsertPrimary(insertResult);
|
|
59
|
+
if (insertPrimary) {
|
|
60
|
+
this.builder.addFieldValue(relation.name, insertPrimary);
|
|
61
|
+
}
|
|
62
|
+
return insertResult;
|
|
63
|
+
}
|
|
64
|
+
return async () => await this.mapper.update(targetEntity, new CheckedPrimary.CheckedPrimary(inversePrimary), update);
|
|
65
|
+
}
|
|
66
|
+
async disconnect({ entity, targetEntity, relation, targetRelation }) {
|
|
67
|
+
if (!relation.nullable) {
|
|
68
|
+
return [new Result.MutationConstraintViolationError([], Result.ConstraintType.notNull)];
|
|
69
|
+
}
|
|
70
|
+
this.builder.addFieldValue(relation.name, null);
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
async delete({ entity, targetEntity, relation, targetRelation }) {
|
|
74
|
+
if (!relation.nullable && relation.joiningColumn.onDelete !== schema.Model.OnDelete.cascade) {
|
|
75
|
+
return [new Result.MutationConstraintViolationError([], Result.ConstraintType.notNull)];
|
|
76
|
+
}
|
|
77
|
+
return async ({ primary }) => {
|
|
78
|
+
const inversePrimary = await this.mapper.selectField(
|
|
79
|
+
entity,
|
|
80
|
+
{ [entity.primary]: primary },
|
|
81
|
+
relation.name
|
|
82
|
+
);
|
|
83
|
+
return await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary });
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.ManyHasOneUpdateInputProcessor = ManyHasOneUpdateInputProcessor;
|
|
88
|
+
//# sourceMappingURL=ManyHasOneUpdateInputProcessor.cjs.map
|