@contember/engine-content-api 2.0.0-alpha.15 → 2.0.0-alpha.17

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.
Files changed (70) hide show
  1. package/dist/development/index.cjs +2 -1
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +2 -1
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs +3 -0
  6. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  7. package/dist/development/src/inputProcessing/UpdateInputVisitor.js +3 -0
  8. package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  9. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs +6 -163
  10. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
  11. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js +5 -162
  12. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
  13. package/dist/development/src/introspection/introspection.schema.cjs +163 -0
  14. package/dist/development/src/introspection/introspection.schema.cjs.map +1 -0
  15. package/dist/development/src/introspection/introspection.schema.js +163 -0
  16. package/dist/development/src/introspection/introspection.schema.js.map +1 -0
  17. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs +2 -0
  18. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
  19. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -0
  20. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  21. package/dist/production/index.cjs +2 -1
  22. package/dist/production/index.cjs.map +1 -1
  23. package/dist/production/index.js +2 -1
  24. package/dist/production/index.js.map +1 -1
  25. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs +3 -0
  26. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  27. package/dist/production/src/inputProcessing/UpdateInputVisitor.js +3 -0
  28. package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  29. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs +6 -163
  30. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
  31. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js +5 -162
  32. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
  33. package/dist/production/src/introspection/introspection.schema.cjs +163 -0
  34. package/dist/production/src/introspection/introspection.schema.cjs.map +1 -0
  35. package/dist/production/src/introspection/introspection.schema.js +163 -0
  36. package/dist/production/src/introspection/introspection.schema.js.map +1 -0
  37. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs +2 -0
  38. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
  39. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -0
  40. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  41. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.d.ts +2 -0
  42. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.d.ts.map +1 -0
  43. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.d.ts +2 -0
  44. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.d.ts.map +1 -0
  45. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  46. package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
  47. package/dist/types/introspection/IntrospectionSchemaDefinitionFactory.d.ts +1 -3
  48. package/dist/types/introspection/IntrospectionSchemaDefinitionFactory.d.ts.map +1 -1
  49. package/dist/types/introspection/index.d.ts +2 -1
  50. package/dist/types/introspection/index.d.ts.map +1 -1
  51. package/dist/types/introspection/introspection.schema.d.ts +5 -0
  52. package/dist/types/introspection/introspection.schema.d.ts.map +1 -0
  53. package/dist/types/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  54. package/dist/types/tsconfig.tsbuildinfo +1 -1
  55. package/graphql.codegen.yml +2 -2
  56. package/package.json +13 -17
  57. package/src/inputProcessing/UpdateInputVisitor.ts +3 -0
  58. package/src/introspection/IntrospectionSchemaDefinitionFactory.ts +2 -194
  59. package/src/introspection/index.ts +2 -1
  60. package/src/introspection/introspection.schema.ts +194 -0
  61. package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +5 -0
  62. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.ts +100 -0
  63. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +90 -0
  64. package/tests/cases/integration/graphQlSchema/schema-acl-allowed.gql +1 -0
  65. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-delete.gql +1 -0
  66. package/tests/cases/integration/graphQlSchema/schema-basic.gql +4 -0
  67. package/tests/cases/integration/graphQlSchema/schema-bug-66.gql +1 -0
  68. package/tests/cases/integration/graphQlSchema/schema-custom-primary.gql +4 -0
  69. package/tests/cases/integration/graphQlSchema/schema-has-many-reduction.gql +1 -0
  70. package/tests/cases/integration/graphQlSchema/schema-new-builder.gql +4 -0
@@ -0,0 +1,163 @@
1
+ import { JSONType } from "@contember/graphql-utils";
2
+ import { GraphQLObjectType, GraphQLString, GraphQLNonNull, GraphQLInt, GraphQLList, GraphQLUnionType, GraphQLInterfaceType, GraphQLBoolean, GraphQLEnumType, GraphQLSchema } from "graphql";
3
+ const _RuleMessage = new GraphQLObjectType({
4
+ name: "_RuleMessage",
5
+ fields: {
6
+ text: { type: GraphQLString }
7
+ }
8
+ });
9
+ const _ValidatorArgument = new GraphQLObjectType({
10
+ name: "_ValidatorArgument",
11
+ fields: {
12
+ validator: { type: new GraphQLNonNull(GraphQLInt) }
13
+ }
14
+ });
15
+ const _PathArgument = new GraphQLObjectType({
16
+ name: "_PathArgument",
17
+ fields: {
18
+ path: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) }
19
+ }
20
+ });
21
+ const _LiteralArgument = new GraphQLObjectType({
22
+ name: "_LiteralArgument",
23
+ fields: {
24
+ value: { type: JSONType }
25
+ }
26
+ });
27
+ const _Argument = new GraphQLUnionType({
28
+ name: "_Argument",
29
+ types: [_ValidatorArgument, _PathArgument, _LiteralArgument]
30
+ });
31
+ const _Validator = new GraphQLObjectType({
32
+ name: "_Validator",
33
+ fields: {
34
+ operation: { type: new GraphQLNonNull(GraphQLString) },
35
+ arguments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) }
36
+ }
37
+ });
38
+ const _Rule = new GraphQLObjectType({
39
+ name: "_Rule",
40
+ fields: {
41
+ message: { type: _RuleMessage },
42
+ validator: { type: new GraphQLNonNull(GraphQLInt) }
43
+ }
44
+ });
45
+ const _FieldInterface = new GraphQLInterfaceType({
46
+ name: "_Field",
47
+ fields: {
48
+ name: { type: new GraphQLNonNull(GraphQLString) },
49
+ type: { type: new GraphQLNonNull(GraphQLString) },
50
+ nullable: { type: GraphQLBoolean },
51
+ rules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },
52
+ validators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) }
53
+ }
54
+ });
55
+ const _OrderByDirection = new GraphQLEnumType({
56
+ name: "_OrderByDirection",
57
+ values: {
58
+ asc: {},
59
+ desc: {}
60
+ }
61
+ });
62
+ const _OrderBy = new GraphQLObjectType({
63
+ name: "_OrderBy",
64
+ fields: {
65
+ path: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },
66
+ direction: { type: new GraphQLNonNull(_OrderByDirection) }
67
+ }
68
+ });
69
+ const _OnDeleteBehaviour = new GraphQLEnumType({
70
+ name: "_OnDeleteBehaviour",
71
+ values: {
72
+ restrict: {},
73
+ cascade: {},
74
+ setNull: {}
75
+ }
76
+ });
77
+ const _RelationSide = new GraphQLEnumType({
78
+ name: "_RelationSide",
79
+ values: {
80
+ owning: {},
81
+ inverse: {}
82
+ }
83
+ });
84
+ const _Relation = new GraphQLObjectType({
85
+ name: "_Relation",
86
+ interfaces: [_FieldInterface],
87
+ fields: {
88
+ name: { type: new GraphQLNonNull(GraphQLString) },
89
+ type: { type: new GraphQLNonNull(GraphQLString) },
90
+ side: { type: new GraphQLNonNull(_RelationSide) },
91
+ targetEntity: { type: new GraphQLNonNull(GraphQLString) },
92
+ ownedBy: { type: GraphQLString },
93
+ inversedBy: { type: GraphQLString },
94
+ nullable: { type: GraphQLBoolean },
95
+ onDelete: { type: _OnDeleteBehaviour },
96
+ orphanRemoval: { type: GraphQLBoolean },
97
+ orderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },
98
+ rules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },
99
+ validators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) }
100
+ }
101
+ });
102
+ const _Column = new GraphQLObjectType({
103
+ name: "_Column",
104
+ interfaces: [_FieldInterface],
105
+ fields: {
106
+ name: { type: new GraphQLNonNull(GraphQLString) },
107
+ type: { type: new GraphQLNonNull(GraphQLString) },
108
+ enumName: { type: GraphQLString },
109
+ defaultValue: { type: JSONType },
110
+ nullable: { type: new GraphQLNonNull(GraphQLBoolean) },
111
+ rules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },
112
+ validators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) }
113
+ }
114
+ });
115
+ const _UniqueConstraint = new GraphQLObjectType({
116
+ name: "_UniqueConstraint",
117
+ fields: {
118
+ fields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) }
119
+ }
120
+ });
121
+ const _Entity = new GraphQLObjectType({
122
+ name: "_Entity",
123
+ fields: {
124
+ name: { type: new GraphQLNonNull(GraphQLString) },
125
+ customPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },
126
+ fields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },
127
+ unique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) }
128
+ }
129
+ });
130
+ const _Enum = new GraphQLObjectType({
131
+ name: "_Enum",
132
+ fields: {
133
+ name: { type: new GraphQLNonNull(GraphQLString) },
134
+ values: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) }
135
+ }
136
+ });
137
+ const _Schema = new GraphQLObjectType({
138
+ name: "_Schema",
139
+ fields: {
140
+ enums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },
141
+ entities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) }
142
+ }
143
+ });
144
+ const createSchemaConfig = (resolver) => {
145
+ return {
146
+ query: new GraphQLObjectType({
147
+ name: "Query",
148
+ fields: {
149
+ schema: {
150
+ type: _Schema,
151
+ resolve: resolver
152
+ }
153
+ }
154
+ }),
155
+ types: [_Column, _Relation]
156
+ };
157
+ };
158
+ const introspection_schema = new GraphQLSchema(createSchemaConfig());
159
+ export {
160
+ createSchemaConfig,
161
+ introspection_schema as default
162
+ };
163
+ //# sourceMappingURL=introspection.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspection.schema.js","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":[],"mappings":"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"}
@@ -84,11 +84,13 @@ class UpdateEntityRelationInputFieldVisitor {
84
84
  })
85
85
  })
86
86
  } : void 0;
87
+ const connectOrCreateInput = createInput && whereInputType ? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) } : void 0;
87
88
  const fields = {
88
89
  [schema.Input.UpdateRelationOperation.create]: createInput,
89
90
  [schema.Input.UpdateRelationOperation.update]: updateSpecifiedInput,
90
91
  [schema.Input.UpdateRelationOperation.upsert]: upsertInput,
91
92
  [schema.Input.UpdateRelationOperation.connect]: whereInput,
93
+ [schema.Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,
92
94
  [schema.Input.UpdateRelationOperation.disconnect]: whereInput,
93
95
  [schema.Input.UpdateRelationOperation.delete]: whereInput
94
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateEntityRelationInputFieldVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLInputFieldConfig,\n\tGraphQLInputFieldConfigMap,\n\tGraphQLInputObjectType, GraphQLNonNull,\n\tGraphQLString,\n} from 'graphql'\nimport { Acl, Input, Model } from '@contember/schema'\nimport { GqlTypeName } from '../utils'\nimport { WhereTypeProvider } from '../WhereTypeProvider'\nimport { Accessor, filterObject } from '../../utils'\nimport { EntityInputProvider, EntityInputType } from './EntityInputProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { UpdateEntityRelationAllowedOperationsVisitor } from './UpdateEntityRelationAllowedOperationsVisitor'\nimport { Authorizator } from '../../acl'\nimport { ImplementationException } from '../../exception'\nimport { ConnectOrCreateRelationInputProvider } from './ConnectOrCreateRelationInputProvider'\n\nexport class UpdateEntityRelationInputFieldVisitor implements Model.ColumnVisitor<never>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputObjectType | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly whereTypeBuilder: WhereTypeProvider,\n\t\tprivate readonly updateEntityInputProviderAccessor: Accessor<EntityInputProvider<EntityInputType.update>>,\n\t\tprivate readonly createEntityInputProvider: EntityInputProvider<EntityInputType.create>,\n\t\tprivate readonly updateEntityRelationAllowedOperationsVisitor: UpdateEntityRelationAllowedOperationsVisitor,\n\t\tprivate readonly connectOrCreateRelationInputProvider: ConnectOrCreateRelationInputProvider,\n\t) {\n\t}\n\n\tpublic visitColumn(): never {\n\t\tthrow new Error('UpdateEntityRelationInputFieldVisitor: Not applicable for a column')\n\t}\n\n\tpublic visitHasOne({ targetRelation, targetEntity, relation, entity }: Model.AnyHasOneRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\t\tconst updateInput = updateInputType ? { type: updateInputType } : undefined\n\n\t\tconst upsertInput = updateInputType && createInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst booleanInput = {\n\t\t\ttype: GraphQLBoolean,\n\t\t}\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: booleanInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: booleanInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => filteredFields,\n\t\t})\n\t}\n\n\tpublic visitHasMany({ entity, relation, targetEntity, targetRelation }: Model.AnyHasManyRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\n\t\tconst updateSpecifiedInput = updateInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tdata: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst upsertInput = updateInputType && createInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateSpecifiedInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: whereInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => ({\n\t\t\t\t...filteredFields,\n\t\t\t\talias: { type: GraphQLString },\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate filterAllowedOperations(\n\t\tentity: Model.Entity,\n\t\trelation: Model.Relation,\n\t\tgraphQlFields: { [key: string]: GraphQLInputFieldConfig | undefined },\n\t): GraphQLInputFieldConfigMap {\n\t\tconst allowedOperations = acceptFieldVisitor(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\trelation.name,\n\t\t\tthis.updateEntityRelationAllowedOperationsVisitor,\n\t\t)\n\t\treturn filterObject(\n\t\t\tgraphQlFields,\n\t\t\t(key, value): value is GraphQLInputFieldConfig =>\n\t\t\t\tallowedOperations.includes(key as Input.UpdateRelationOperation) && value !== undefined,\n\t\t)\n\t}\n\n\tprivate createUniqueWhereInput(targetEntity: Model.Entity): GraphQLInputObjectType | undefined {\n\t\tif (this.authorizator.getEntityPermission(Acl.Operation.read, targetEntity.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst uniqueWhere = this.whereTypeBuilder.getEntityUniqueWhereType(targetEntity.name)\n\t\tif (!uniqueWhere) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\t\treturn uniqueWhere\n\t}\n}\n"],"names":["schema","GraphQLInputObjectType","GqlTypeName","GraphQLNonNull","GraphQLBoolean","Input","GraphQLString","acceptFieldVisitor","filterObject","Acl","ImplementationException"],"mappings":"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"}
1
+ {"version":3,"file":"UpdateEntityRelationInputFieldVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLInputFieldConfig,\n\tGraphQLInputFieldConfigMap,\n\tGraphQLInputObjectType, GraphQLNonNull,\n\tGraphQLString,\n} from 'graphql'\nimport { Acl, Input, Model } from '@contember/schema'\nimport { GqlTypeName } from '../utils'\nimport { WhereTypeProvider } from '../WhereTypeProvider'\nimport { Accessor, filterObject } from '../../utils'\nimport { EntityInputProvider, EntityInputType } from './EntityInputProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { UpdateEntityRelationAllowedOperationsVisitor } from './UpdateEntityRelationAllowedOperationsVisitor'\nimport { Authorizator } from '../../acl'\nimport { ImplementationException } from '../../exception'\nimport { ConnectOrCreateRelationInputProvider } from './ConnectOrCreateRelationInputProvider'\n\nexport class UpdateEntityRelationInputFieldVisitor implements Model.ColumnVisitor<never>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputObjectType | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly whereTypeBuilder: WhereTypeProvider,\n\t\tprivate readonly updateEntityInputProviderAccessor: Accessor<EntityInputProvider<EntityInputType.update>>,\n\t\tprivate readonly createEntityInputProvider: EntityInputProvider<EntityInputType.create>,\n\t\tprivate readonly updateEntityRelationAllowedOperationsVisitor: UpdateEntityRelationAllowedOperationsVisitor,\n\t\tprivate readonly connectOrCreateRelationInputProvider: ConnectOrCreateRelationInputProvider,\n\t) {\n\t}\n\n\tpublic visitColumn(): never {\n\t\tthrow new Error('UpdateEntityRelationInputFieldVisitor: Not applicable for a column')\n\t}\n\n\tpublic visitHasOne({ targetRelation, targetEntity, relation, entity }: Model.AnyHasOneRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\t\tconst updateInput = updateInputType ? { type: updateInputType } : undefined\n\n\t\tconst upsertInput = updateInputType && createInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst booleanInput = {\n\t\t\ttype: GraphQLBoolean,\n\t\t}\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: booleanInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: booleanInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => filteredFields,\n\t\t})\n\t}\n\n\tpublic visitHasMany({ entity, relation, targetEntity, targetRelation }: Model.AnyHasManyRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\n\t\tconst updateSpecifiedInput = updateInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tdata: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst upsertInput = updateInputType && createInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateSpecifiedInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: whereInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => ({\n\t\t\t\t...filteredFields,\n\t\t\t\talias: { type: GraphQLString },\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate filterAllowedOperations(\n\t\tentity: Model.Entity,\n\t\trelation: Model.Relation,\n\t\tgraphQlFields: { [key: string]: GraphQLInputFieldConfig | undefined },\n\t): GraphQLInputFieldConfigMap {\n\t\tconst allowedOperations = acceptFieldVisitor(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\trelation.name,\n\t\t\tthis.updateEntityRelationAllowedOperationsVisitor,\n\t\t)\n\t\treturn filterObject(\n\t\t\tgraphQlFields,\n\t\t\t(key, value): value is GraphQLInputFieldConfig =>\n\t\t\t\tallowedOperations.includes(key as Input.UpdateRelationOperation) && value !== undefined,\n\t\t)\n\t}\n\n\tprivate createUniqueWhereInput(targetEntity: Model.Entity): GraphQLInputObjectType | undefined {\n\t\tif (this.authorizator.getEntityPermission(Acl.Operation.read, targetEntity.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst uniqueWhere = this.whereTypeBuilder.getEntityUniqueWhereType(targetEntity.name)\n\t\tif (!uniqueWhere) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\t\treturn uniqueWhere\n\t}\n}\n"],"names":["schema","GraphQLInputObjectType","GqlTypeName","GraphQLNonNull","GraphQLBoolean","Input","GraphQLString","acceptFieldVisitor","filterObject","Acl","ImplementationException"],"mappings":"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"}
@@ -82,11 +82,13 @@ class UpdateEntityRelationInputFieldVisitor {
82
82
  })
83
83
  })
84
84
  } : void 0;
85
+ const connectOrCreateInput = createInput && whereInputType ? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) } : void 0;
85
86
  const fields = {
86
87
  [Input.UpdateRelationOperation.create]: createInput,
87
88
  [Input.UpdateRelationOperation.update]: updateSpecifiedInput,
88
89
  [Input.UpdateRelationOperation.upsert]: upsertInput,
89
90
  [Input.UpdateRelationOperation.connect]: whereInput,
91
+ [Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,
90
92
  [Input.UpdateRelationOperation.disconnect]: whereInput,
91
93
  [Input.UpdateRelationOperation.delete]: whereInput
92
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateEntityRelationInputFieldVisitor.js","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLInputFieldConfig,\n\tGraphQLInputFieldConfigMap,\n\tGraphQLInputObjectType, GraphQLNonNull,\n\tGraphQLString,\n} from 'graphql'\nimport { Acl, Input, Model } from '@contember/schema'\nimport { GqlTypeName } from '../utils'\nimport { WhereTypeProvider } from '../WhereTypeProvider'\nimport { Accessor, filterObject } from '../../utils'\nimport { EntityInputProvider, EntityInputType } from './EntityInputProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { UpdateEntityRelationAllowedOperationsVisitor } from './UpdateEntityRelationAllowedOperationsVisitor'\nimport { Authorizator } from '../../acl'\nimport { ImplementationException } from '../../exception'\nimport { ConnectOrCreateRelationInputProvider } from './ConnectOrCreateRelationInputProvider'\n\nexport class UpdateEntityRelationInputFieldVisitor implements Model.ColumnVisitor<never>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputObjectType | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly whereTypeBuilder: WhereTypeProvider,\n\t\tprivate readonly updateEntityInputProviderAccessor: Accessor<EntityInputProvider<EntityInputType.update>>,\n\t\tprivate readonly createEntityInputProvider: EntityInputProvider<EntityInputType.create>,\n\t\tprivate readonly updateEntityRelationAllowedOperationsVisitor: UpdateEntityRelationAllowedOperationsVisitor,\n\t\tprivate readonly connectOrCreateRelationInputProvider: ConnectOrCreateRelationInputProvider,\n\t) {\n\t}\n\n\tpublic visitColumn(): never {\n\t\tthrow new Error('UpdateEntityRelationInputFieldVisitor: Not applicable for a column')\n\t}\n\n\tpublic visitHasOne({ targetRelation, targetEntity, relation, entity }: Model.AnyHasOneRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\t\tconst updateInput = updateInputType ? { type: updateInputType } : undefined\n\n\t\tconst upsertInput = updateInputType && createInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst booleanInput = {\n\t\t\ttype: GraphQLBoolean,\n\t\t}\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: booleanInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: booleanInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => filteredFields,\n\t\t})\n\t}\n\n\tpublic visitHasMany({ entity, relation, targetEntity, targetRelation }: Model.AnyHasManyRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\n\t\tconst updateSpecifiedInput = updateInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tdata: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst upsertInput = updateInputType && createInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateSpecifiedInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: whereInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => ({\n\t\t\t\t...filteredFields,\n\t\t\t\talias: { type: GraphQLString },\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate filterAllowedOperations(\n\t\tentity: Model.Entity,\n\t\trelation: Model.Relation,\n\t\tgraphQlFields: { [key: string]: GraphQLInputFieldConfig | undefined },\n\t): GraphQLInputFieldConfigMap {\n\t\tconst allowedOperations = acceptFieldVisitor(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\trelation.name,\n\t\t\tthis.updateEntityRelationAllowedOperationsVisitor,\n\t\t)\n\t\treturn filterObject(\n\t\t\tgraphQlFields,\n\t\t\t(key, value): value is GraphQLInputFieldConfig =>\n\t\t\t\tallowedOperations.includes(key as Input.UpdateRelationOperation) && value !== undefined,\n\t\t)\n\t}\n\n\tprivate createUniqueWhereInput(targetEntity: Model.Entity): GraphQLInputObjectType | undefined {\n\t\tif (this.authorizator.getEntityPermission(Acl.Operation.read, targetEntity.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst uniqueWhere = this.whereTypeBuilder.getEntityUniqueWhereType(targetEntity.name)\n\t\tif (!uniqueWhere) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\t\treturn uniqueWhere\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateEntityRelationInputFieldVisitor.js","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLInputFieldConfig,\n\tGraphQLInputFieldConfigMap,\n\tGraphQLInputObjectType, GraphQLNonNull,\n\tGraphQLString,\n} from 'graphql'\nimport { Acl, Input, Model } from '@contember/schema'\nimport { GqlTypeName } from '../utils'\nimport { WhereTypeProvider } from '../WhereTypeProvider'\nimport { Accessor, filterObject } from '../../utils'\nimport { EntityInputProvider, EntityInputType } from './EntityInputProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { UpdateEntityRelationAllowedOperationsVisitor } from './UpdateEntityRelationAllowedOperationsVisitor'\nimport { Authorizator } from '../../acl'\nimport { ImplementationException } from '../../exception'\nimport { ConnectOrCreateRelationInputProvider } from './ConnectOrCreateRelationInputProvider'\n\nexport class UpdateEntityRelationInputFieldVisitor implements Model.ColumnVisitor<never>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputObjectType | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly whereTypeBuilder: WhereTypeProvider,\n\t\tprivate readonly updateEntityInputProviderAccessor: Accessor<EntityInputProvider<EntityInputType.update>>,\n\t\tprivate readonly createEntityInputProvider: EntityInputProvider<EntityInputType.create>,\n\t\tprivate readonly updateEntityRelationAllowedOperationsVisitor: UpdateEntityRelationAllowedOperationsVisitor,\n\t\tprivate readonly connectOrCreateRelationInputProvider: ConnectOrCreateRelationInputProvider,\n\t) {\n\t}\n\n\tpublic visitColumn(): never {\n\t\tthrow new Error('UpdateEntityRelationInputFieldVisitor: Not applicable for a column')\n\t}\n\n\tpublic visitHasOne({ targetRelation, targetEntity, relation, entity }: Model.AnyHasOneRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\t\tconst updateInput = updateInputType ? { type: updateInputType } : undefined\n\n\t\tconst upsertInput = updateInputType && createInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst booleanInput = {\n\t\t\ttype: GraphQLBoolean,\n\t\t}\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: booleanInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: booleanInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => filteredFields,\n\t\t})\n\t}\n\n\tpublic visitHasMany({ entity, relation, targetEntity, targetRelation }: Model.AnyHasManyRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\n\t\tconst updateSpecifiedInput = updateInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tdata: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst upsertInput = updateInputType && createInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateSpecifiedInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: whereInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => ({\n\t\t\t\t...filteredFields,\n\t\t\t\talias: { type: GraphQLString },\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate filterAllowedOperations(\n\t\tentity: Model.Entity,\n\t\trelation: Model.Relation,\n\t\tgraphQlFields: { [key: string]: GraphQLInputFieldConfig | undefined },\n\t): GraphQLInputFieldConfigMap {\n\t\tconst allowedOperations = acceptFieldVisitor(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\trelation.name,\n\t\t\tthis.updateEntityRelationAllowedOperationsVisitor,\n\t\t)\n\t\treturn filterObject(\n\t\t\tgraphQlFields,\n\t\t\t(key, value): value is GraphQLInputFieldConfig =>\n\t\t\t\tallowedOperations.includes(key as Input.UpdateRelationOperation) && value !== undefined,\n\t\t)\n\t}\n\n\tprivate createUniqueWhereInput(targetEntity: Model.Entity): GraphQLInputObjectType | undefined {\n\t\tif (this.authorizator.getEntityPermission(Acl.Operation.read, targetEntity.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst uniqueWhere = this.whereTypeBuilder.getEntityUniqueWhereType(targetEntity.name)\n\t\tif (!uniqueWhere) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\t\treturn uniqueWhere\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connectOrCreate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectOrCreate.test.d.ts","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connectOrCreate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectOrCreate.test.d.ts","sourceRoot":"","sources":["../../../../../../../tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts"],"names":[],"mappings":""}