@contember/client 1.2.6 → 1.3.0-alpha.3

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 (220) hide show
  1. package/dist/development/content/formatContentApiRelativeUrl.cjs +5 -0
  2. package/dist/development/content/formatContentApiRelativeUrl.cjs.map +1 -0
  3. package/dist/development/content/params/whereToFilter.cjs +17 -0
  4. package/dist/development/content/params/whereToFilter.cjs.map +1 -0
  5. package/dist/development/content/replaceGraphQlLiteral.cjs +15 -0
  6. package/dist/development/content/replaceGraphQlLiteral.cjs.map +1 -0
  7. package/dist/development/content/replaceGraphQlLiteral.js +15 -0
  8. package/dist/development/content/replaceGraphQlLiteral.js.map +1 -0
  9. package/dist/development/content/upload/FileUploadError.cjs +10 -0
  10. package/dist/development/content/upload/FileUploadError.cjs.map +1 -0
  11. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.cjs +64 -0
  12. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.cjs.map +1 -0
  13. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.js +48 -19
  14. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.js.map +1 -1
  15. package/dist/development/content/upload/S3FileUploader.cjs +107 -0
  16. package/dist/development/content/upload/S3FileUploader.cjs.map +1 -0
  17. package/dist/development/content/upload/S3FileUploader.js +1 -2
  18. package/dist/development/content/upload/S3FileUploader.js.map +1 -1
  19. package/dist/development/graphQlBuilder/GraphQlLiteral.cjs +15 -0
  20. package/dist/development/graphQlBuilder/GraphQlLiteral.cjs.map +1 -0
  21. package/dist/development/graphQlBuilder/GraphQlLiteral.js +3 -0
  22. package/dist/development/graphQlBuilder/GraphQlLiteral.js.map +1 -1
  23. package/dist/development/graphQlClient/GraphQlClient.cjs +26 -0
  24. package/dist/development/graphQlClient/GraphQlClient.cjs.map +1 -0
  25. package/dist/development/graphQlClient/GraphQlClient.js +9 -16
  26. package/dist/development/graphQlClient/GraphQlClient.js.map +1 -1
  27. package/dist/development/index.cjs +46 -0
  28. package/dist/development/index.cjs.map +1 -0
  29. package/dist/development/index.js +5 -26
  30. package/dist/development/index.js.map +1 -1
  31. package/dist/development/system/formatSystemApiRelativeUrl.cjs +5 -0
  32. package/dist/development/system/formatSystemApiRelativeUrl.cjs.map +1 -0
  33. package/dist/development/tenant/loginMutation.cjs +34 -0
  34. package/dist/development/tenant/loginMutation.cjs.map +1 -0
  35. package/dist/development/tenant/tenantApiRelativeUrl.cjs +5 -0
  36. package/dist/development/tenant/tenantApiRelativeUrl.cjs.map +1 -0
  37. package/dist/development/tenant/tenantErrorMessages.cjs +18 -0
  38. package/dist/development/tenant/tenantErrorMessages.cjs.map +1 -0
  39. package/dist/development/utils/readFileAsArrayBuffer.cjs +15 -0
  40. package/dist/development/utils/readFileAsArrayBuffer.cjs.map +1 -0
  41. package/dist/production/content/formatContentApiRelativeUrl.cjs +5 -0
  42. package/dist/production/content/formatContentApiRelativeUrl.cjs.map +1 -0
  43. package/dist/production/content/params/whereToFilter.cjs +17 -0
  44. package/dist/production/content/params/whereToFilter.cjs.map +1 -0
  45. package/dist/production/content/replaceGraphQlLiteral.cjs +15 -0
  46. package/dist/production/content/replaceGraphQlLiteral.cjs.map +1 -0
  47. package/dist/production/content/replaceGraphQlLiteral.js +15 -0
  48. package/dist/production/content/replaceGraphQlLiteral.js.map +1 -0
  49. package/dist/production/content/upload/FileUploadError.cjs +10 -0
  50. package/dist/production/content/upload/FileUploadError.cjs.map +1 -0
  51. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.cjs +64 -0
  52. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.cjs.map +1 -0
  53. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.js +48 -19
  54. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.js.map +1 -1
  55. package/dist/production/content/upload/S3FileUploader.cjs +107 -0
  56. package/dist/production/content/upload/S3FileUploader.cjs.map +1 -0
  57. package/dist/production/content/upload/S3FileUploader.js +1 -2
  58. package/dist/production/content/upload/S3FileUploader.js.map +1 -1
  59. package/dist/production/graphQlBuilder/GraphQlLiteral.cjs +12 -0
  60. package/dist/production/graphQlBuilder/GraphQlLiteral.cjs.map +1 -0
  61. package/dist/production/graphQlBuilder/GraphQlLiteral.js.map +1 -1
  62. package/dist/production/graphQlClient/GraphQlClient.cjs +26 -0
  63. package/dist/production/graphQlClient/GraphQlClient.cjs.map +1 -0
  64. package/dist/production/graphQlClient/GraphQlClient.js +9 -16
  65. package/dist/production/graphQlClient/GraphQlClient.js.map +1 -1
  66. package/dist/production/index.cjs +46 -0
  67. package/dist/production/index.cjs.map +1 -0
  68. package/dist/production/index.js +5 -26
  69. package/dist/production/index.js.map +1 -1
  70. package/dist/production/system/formatSystemApiRelativeUrl.cjs +5 -0
  71. package/dist/production/system/formatSystemApiRelativeUrl.cjs.map +1 -0
  72. package/dist/production/tenant/loginMutation.cjs +34 -0
  73. package/dist/production/tenant/loginMutation.cjs.map +1 -0
  74. package/dist/production/tenant/tenantApiRelativeUrl.cjs +5 -0
  75. package/dist/production/tenant/tenantApiRelativeUrl.cjs.map +1 -0
  76. package/dist/production/tenant/tenantErrorMessages.cjs +18 -0
  77. package/dist/production/tenant/tenantErrorMessages.cjs.map +1 -0
  78. package/dist/production/utils/readFileAsArrayBuffer.cjs +15 -0
  79. package/dist/production/utils/readFileAsArrayBuffer.cjs.map +1 -0
  80. package/dist/types/content/index.d.ts +1 -0
  81. package/dist/types/content/index.d.ts.map +1 -1
  82. package/dist/types/content/replaceGraphQlLiteral.d.ts +6 -0
  83. package/dist/types/content/replaceGraphQlLiteral.d.ts.map +1 -0
  84. package/dist/types/content/upload/GenerateUploadUrlMutationBuilder.d.ts +8 -4
  85. package/dist/types/content/upload/GenerateUploadUrlMutationBuilder.d.ts.map +1 -1
  86. package/dist/types/content/upload/S3FileUploader.d.ts.map +1 -1
  87. package/dist/types/crudQueryBuilder/index.d.ts +0 -6
  88. package/dist/types/crudQueryBuilder/index.d.ts.map +1 -1
  89. package/dist/types/crudQueryBuilder/types.d.ts +2 -43
  90. package/dist/types/crudQueryBuilder/types.d.ts.map +1 -1
  91. package/dist/types/graphQlBuilder/GraphQlLiteral.d.ts +3 -0
  92. package/dist/types/graphQlBuilder/GraphQlLiteral.d.ts.map +1 -1
  93. package/dist/types/graphQlBuilder/QueryBuilder.d.ts +2 -8
  94. package/dist/types/graphQlBuilder/QueryBuilder.d.ts.map +1 -1
  95. package/dist/types/graphQlBuilder/index.d.ts +0 -3
  96. package/dist/types/graphQlBuilder/index.d.ts.map +1 -1
  97. package/dist/types/graphQlClient/GraphQlClient.d.ts +10 -12
  98. package/dist/types/graphQlClient/GraphQlClient.d.ts.map +1 -1
  99. package/dist/types/graphQlClient/index.d.ts +2 -0
  100. package/dist/types/graphQlClient/index.d.ts.map +1 -1
  101. package/dist/types/index.d.ts +1 -29
  102. package/dist/types/index.d.ts.map +1 -1
  103. package/dist/types/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +18 -3
  105. package/src/content/index.ts +1 -1
  106. package/src/content/replaceGraphQlLiteral.ts +22 -0
  107. package/src/content/upload/GenerateUploadUrlMutationBuilder.ts +56 -33
  108. package/src/content/upload/S3FileUploader.ts +1 -2
  109. package/src/crudQueryBuilder/index.ts +0 -6
  110. package/src/crudQueryBuilder/types.ts +5 -70
  111. package/src/graphQlBuilder/GraphQlLiteral.ts +8 -1
  112. package/src/graphQlBuilder/QueryBuilder.ts +2 -23
  113. package/src/graphQlBuilder/index.ts +0 -3
  114. package/src/graphQlClient/GraphQlClient.ts +15 -28
  115. package/src/graphQlClient/index.ts +7 -0
  116. package/src/index.ts +5 -31
  117. package/src/tsconfig.json +12 -1
  118. package/dist/development/crudQueryBuilder/CrudQueryBuilder.js +0 -104
  119. package/dist/development/crudQueryBuilder/CrudQueryBuilder.js.map +0 -1
  120. package/dist/development/crudQueryBuilder/CrudQueryBuilderError.js +0 -6
  121. package/dist/development/crudQueryBuilder/CrudQueryBuilderError.js.map +0 -1
  122. package/dist/development/crudQueryBuilder/ErrorsRelationBuilder.js +0 -15
  123. package/dist/development/crudQueryBuilder/ErrorsRelationBuilder.js.map +0 -1
  124. package/dist/development/crudQueryBuilder/ReadBuilder.js +0 -70
  125. package/dist/development/crudQueryBuilder/ReadBuilder.js.map +0 -1
  126. package/dist/development/crudQueryBuilder/ValidationRelationBuilder.js +0 -18
  127. package/dist/development/crudQueryBuilder/ValidationRelationBuilder.js.map +0 -1
  128. package/dist/development/crudQueryBuilder/WriteBuilder.js +0 -54
  129. package/dist/development/crudQueryBuilder/WriteBuilder.js.map +0 -1
  130. package/dist/development/crudQueryBuilder/WriteDataBuilder.js +0 -110
  131. package/dist/development/crudQueryBuilder/WriteDataBuilder.js.map +0 -1
  132. package/dist/development/crudQueryBuilder/WriteManyRelationBuilder.js +0 -77
  133. package/dist/development/crudQueryBuilder/WriteManyRelationBuilder.js.map +0 -1
  134. package/dist/development/crudQueryBuilder/WriteOneRelationBuilder.js +0 -51
  135. package/dist/development/crudQueryBuilder/WriteOneRelationBuilder.js.map +0 -1
  136. package/dist/development/crudQueryBuilder/types.js +0 -40
  137. package/dist/development/crudQueryBuilder/types.js.map +0 -1
  138. package/dist/development/graphQlBuilder/GraphQlBuilderError.js +0 -6
  139. package/dist/development/graphQlBuilder/GraphQlBuilderError.js.map +0 -1
  140. package/dist/development/graphQlBuilder/ObjectBuilder.js +0 -80
  141. package/dist/development/graphQlBuilder/ObjectBuilder.js.map +0 -1
  142. package/dist/development/graphQlBuilder/QueryBuilder.js +0 -22
  143. package/dist/development/graphQlBuilder/QueryBuilder.js.map +0 -1
  144. package/dist/development/graphQlBuilder/QueryCompiler.js +0 -101
  145. package/dist/development/graphQlBuilder/QueryCompiler.js.map +0 -1
  146. package/dist/development/graphQlBuilder/RootObjectBuilder.js +0 -31
  147. package/dist/development/graphQlBuilder/RootObjectBuilder.js.map +0 -1
  148. package/dist/development/utils/isEmptyObject.js +0 -12
  149. package/dist/development/utils/isEmptyObject.js.map +0 -1
  150. package/dist/production/crudQueryBuilder/CrudQueryBuilder.js +0 -104
  151. package/dist/production/crudQueryBuilder/CrudQueryBuilder.js.map +0 -1
  152. package/dist/production/crudQueryBuilder/CrudQueryBuilderError.js +0 -6
  153. package/dist/production/crudQueryBuilder/CrudQueryBuilderError.js.map +0 -1
  154. package/dist/production/crudQueryBuilder/ErrorsRelationBuilder.js +0 -15
  155. package/dist/production/crudQueryBuilder/ErrorsRelationBuilder.js.map +0 -1
  156. package/dist/production/crudQueryBuilder/ReadBuilder.js +0 -70
  157. package/dist/production/crudQueryBuilder/ReadBuilder.js.map +0 -1
  158. package/dist/production/crudQueryBuilder/ValidationRelationBuilder.js +0 -18
  159. package/dist/production/crudQueryBuilder/ValidationRelationBuilder.js.map +0 -1
  160. package/dist/production/crudQueryBuilder/WriteBuilder.js +0 -54
  161. package/dist/production/crudQueryBuilder/WriteBuilder.js.map +0 -1
  162. package/dist/production/crudQueryBuilder/WriteDataBuilder.js +0 -110
  163. package/dist/production/crudQueryBuilder/WriteDataBuilder.js.map +0 -1
  164. package/dist/production/crudQueryBuilder/WriteManyRelationBuilder.js +0 -77
  165. package/dist/production/crudQueryBuilder/WriteManyRelationBuilder.js.map +0 -1
  166. package/dist/production/crudQueryBuilder/WriteOneRelationBuilder.js +0 -51
  167. package/dist/production/crudQueryBuilder/WriteOneRelationBuilder.js.map +0 -1
  168. package/dist/production/crudQueryBuilder/types.js +0 -40
  169. package/dist/production/crudQueryBuilder/types.js.map +0 -1
  170. package/dist/production/graphQlBuilder/GraphQlBuilderError.js +0 -6
  171. package/dist/production/graphQlBuilder/GraphQlBuilderError.js.map +0 -1
  172. package/dist/production/graphQlBuilder/ObjectBuilder.js +0 -80
  173. package/dist/production/graphQlBuilder/ObjectBuilder.js.map +0 -1
  174. package/dist/production/graphQlBuilder/QueryBuilder.js +0 -22
  175. package/dist/production/graphQlBuilder/QueryBuilder.js.map +0 -1
  176. package/dist/production/graphQlBuilder/QueryCompiler.js +0 -101
  177. package/dist/production/graphQlBuilder/QueryCompiler.js.map +0 -1
  178. package/dist/production/graphQlBuilder/RootObjectBuilder.js +0 -31
  179. package/dist/production/graphQlBuilder/RootObjectBuilder.js.map +0 -1
  180. package/dist/production/utils/isEmptyObject.js +0 -12
  181. package/dist/production/utils/isEmptyObject.js.map +0 -1
  182. package/dist/types/crudQueryBuilder/CrudQueryBuilder.d.ts +0 -21
  183. package/dist/types/crudQueryBuilder/CrudQueryBuilder.d.ts.map +0 -1
  184. package/dist/types/crudQueryBuilder/CrudQueryBuilderError.d.ts +0 -3
  185. package/dist/types/crudQueryBuilder/CrudQueryBuilderError.d.ts.map +0 -1
  186. package/dist/types/crudQueryBuilder/ErrorsRelationBuilder.d.ts +0 -5
  187. package/dist/types/crudQueryBuilder/ErrorsRelationBuilder.d.ts.map +0 -1
  188. package/dist/types/crudQueryBuilder/ReadBuilder.d.ts +0 -31
  189. package/dist/types/crudQueryBuilder/ReadBuilder.d.ts.map +0 -1
  190. package/dist/types/crudQueryBuilder/ValidationRelationBuilder.d.ts +0 -5
  191. package/dist/types/crudQueryBuilder/ValidationRelationBuilder.d.ts.map +0 -1
  192. package/dist/types/crudQueryBuilder/WriteBuilder.d.ts +0 -24
  193. package/dist/types/crudQueryBuilder/WriteBuilder.d.ts.map +0 -1
  194. package/dist/types/crudQueryBuilder/WriteDataBuilder.d.ts +0 -24
  195. package/dist/types/crudQueryBuilder/WriteDataBuilder.d.ts.map +0 -1
  196. package/dist/types/crudQueryBuilder/WriteManyRelationBuilder.d.ts +0 -27
  197. package/dist/types/crudQueryBuilder/WriteManyRelationBuilder.d.ts.map +0 -1
  198. package/dist/types/crudQueryBuilder/WriteOneRelationBuilder.d.ts +0 -28
  199. package/dist/types/crudQueryBuilder/WriteOneRelationBuilder.d.ts.map +0 -1
  200. package/dist/types/graphQlBuilder/GraphQlBuilderError.d.ts +0 -3
  201. package/dist/types/graphQlBuilder/GraphQlBuilderError.d.ts.map +0 -1
  202. package/dist/types/graphQlBuilder/ObjectBuilder.d.ts +0 -28
  203. package/dist/types/graphQlBuilder/ObjectBuilder.d.ts.map +0 -1
  204. package/dist/types/graphQlBuilder/QueryCompiler.d.ts +0 -13
  205. package/dist/types/graphQlBuilder/QueryCompiler.d.ts.map +0 -1
  206. package/dist/types/graphQlBuilder/RootObjectBuilder.d.ts +0 -17
  207. package/dist/types/graphQlBuilder/RootObjectBuilder.d.ts.map +0 -1
  208. package/src/crudQueryBuilder/CrudQueryBuilder.ts +0 -168
  209. package/src/crudQueryBuilder/CrudQueryBuilderError.ts +0 -1
  210. package/src/crudQueryBuilder/ErrorsRelationBuilder.ts +0 -16
  211. package/src/crudQueryBuilder/ReadBuilder.ts +0 -106
  212. package/src/crudQueryBuilder/ValidationRelationBuilder.ts +0 -17
  213. package/src/crudQueryBuilder/WriteBuilder.ts +0 -79
  214. package/src/crudQueryBuilder/WriteDataBuilder.ts +0 -153
  215. package/src/crudQueryBuilder/WriteManyRelationBuilder.ts +0 -141
  216. package/src/crudQueryBuilder/WriteOneRelationBuilder.ts +0 -101
  217. package/src/graphQlBuilder/GraphQlBuilderError.ts +0 -1
  218. package/src/graphQlBuilder/ObjectBuilder.ts +0 -87
  219. package/src/graphQlBuilder/QueryCompiler.ts +0 -115
  220. package/src/graphQlBuilder/RootObjectBuilder.ts +0 -36
@@ -1,168 +0,0 @@
1
- import { ObjectBuilder, QueryBuilder, RootObjectBuilder } from '../graphQlBuilder'
2
- import { isEmptyObject } from '../utils'
3
- import { CrudQueryBuilderError } from './CrudQueryBuilderError'
4
- import { ReadBuilder } from './ReadBuilder'
5
- import type {
6
- CreateMutationArguments,
7
- CreateMutationFields,
8
- DeleteMutationArguments,
9
- DeleteMutationFields,
10
- GetQueryArguments,
11
- ListQueryArguments,
12
- Mutations,
13
- PaginateQueryArguments,
14
- Queries,
15
- UpdateMutationArguments,
16
- UpdateMutationFields,
17
- WriteOperation,
18
- } from './types'
19
- import { WriteBuilder } from './WriteBuilder'
20
-
21
- export class CrudQueryBuilder {
22
- constructor(
23
- private type: undefined | 'query' | 'mutation' = undefined,
24
- private rootObjectBuilder: RootObjectBuilder = new RootObjectBuilder(),
25
- ) {}
26
-
27
- public fragment(name: string, typeName: string, query: ReadBuilder.BuilderFactory<never>): CrudQueryBuilder {
28
- const readBuilder = ReadBuilder.instantiateFromFactory(query)
29
- const objectBuilder = readBuilder.objectBuilder.name(typeName)
30
-
31
- return new CrudQueryBuilder(this.type, this.rootObjectBuilder.fragment(name, objectBuilder))
32
- }
33
-
34
- public list(
35
- name: string,
36
- query: ReadBuilder.BuilderFactory<ListQueryArguments>,
37
- alias?: string,
38
- ): Omit<CrudQueryBuilder, Mutations> {
39
- if (this.type === 'mutation') {
40
- throw new CrudQueryBuilderError('Cannot combine queries and mutations')
41
- }
42
- name = `list${name}`
43
- query = ReadBuilder.instantiateFromFactory(query)
44
-
45
- const [objectName, objectBuilder] =
46
- typeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]
47
-
48
- return new CrudQueryBuilder('query', this.rootObjectBuilder.object(objectName, objectBuilder))
49
- }
50
-
51
- public paginate(
52
- name: string,
53
- query: ReadBuilder.BuilderFactory<PaginateQueryArguments>,
54
- alias?: string,
55
- ): Omit<CrudQueryBuilder, Mutations> {
56
- if (this.type === 'mutation') {
57
- throw new CrudQueryBuilderError('Cannot combine queries and mutations')
58
- }
59
- name = `paginate${name}`
60
- query = ReadBuilder.instantiateFromFactory(query)
61
-
62
- const [objectName, objectBuilder] =
63
- typeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]
64
-
65
- return new CrudQueryBuilder('query', this.rootObjectBuilder.object(objectName, objectBuilder))
66
- }
67
-
68
- public get(
69
- name: string,
70
- query: ReadBuilder.BuilderFactory<GetQueryArguments>,
71
- alias?: string,
72
- ): Omit<CrudQueryBuilder, Mutations> {
73
- if (this.type === 'mutation') {
74
- throw new CrudQueryBuilderError('Cannot combine queries and mutations')
75
- }
76
- name = `get${name}`
77
- query = ReadBuilder.instantiateFromFactory(query)
78
-
79
- const [objectName, objectBuilder] =
80
- typeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]
81
-
82
- return new CrudQueryBuilder('query', this.rootObjectBuilder.object(objectName, objectBuilder))
83
- }
84
-
85
- public update(
86
- name: string,
87
- query: WriteBuilder.BuilderFactory<UpdateMutationArguments, UpdateMutationFields, WriteOperation.Update>,
88
- alias?: string,
89
- ): Omit<CrudQueryBuilder, Queries> {
90
- if (this.type === 'query') {
91
- throw new CrudQueryBuilderError('Cannot combine queries and mutations')
92
- }
93
- name = `update${name}`
94
- query = WriteBuilder.instantiateFromFactory(query)
95
-
96
- if (isEmptyObject(query.objectBuilder.args.data)) {
97
- return this
98
- }
99
-
100
- const [objectName, objectBuilder] =
101
- typeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]
102
-
103
- return new CrudQueryBuilder('mutation', this.rootObjectBuilder.object(objectName, objectBuilder))
104
- }
105
-
106
- public create(
107
- name: string,
108
- query: WriteBuilder.BuilderFactory<CreateMutationArguments, CreateMutationFields, WriteOperation.Create>,
109
- alias?: string,
110
- ): Omit<CrudQueryBuilder, Queries> {
111
- if (this.type === 'query') {
112
- throw new CrudQueryBuilderError('Cannot combine queries and mutations')
113
- }
114
- name = `create${name}`
115
- query = WriteBuilder.instantiateFromFactory(query)
116
-
117
- if (isEmptyObject(query.objectBuilder.args.data)) {
118
- return this
119
- }
120
-
121
- const [objectName, objectBuilder] =
122
- typeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]
123
-
124
- return new CrudQueryBuilder('mutation', this.rootObjectBuilder.object(objectName, objectBuilder))
125
- }
126
-
127
- public delete(
128
- name: string,
129
- query: WriteBuilder.BuilderFactory<DeleteMutationArguments, DeleteMutationFields, WriteOperation.Delete>,
130
- alias?: string,
131
- ): Omit<CrudQueryBuilder, Queries> {
132
- if (this.type === 'query') {
133
- throw new CrudQueryBuilderError('Cannot combine queries and mutations')
134
- }
135
- name = `delete${name}`
136
- query = WriteBuilder.instantiateFromFactory(query)
137
-
138
- const [objectName, objectBuilder] =
139
- typeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]
140
-
141
- return new CrudQueryBuilder('mutation', this.rootObjectBuilder.object(objectName, objectBuilder))
142
- }
143
-
144
- public inTransaction(alias: string = 'transaction', options: { deferForeignKeyConstraints?: boolean } = {}): CrudQueryBuilder {
145
- const objectBuilder = new ObjectBuilder(
146
- ['ok', 'errorMessage'],
147
- { ...this.rootObjectBuilder.objects },
148
- { options },
149
- undefined,
150
- undefined,
151
- 'transaction',
152
- )
153
-
154
- return new CrudQueryBuilder(this.type, new RootObjectBuilder({ [alias]: objectBuilder }, this.rootObjectBuilder.fragmentDefinitions))
155
- }
156
-
157
- getGql(): string {
158
- const builder = new QueryBuilder()
159
- switch (this.type) {
160
- case 'mutation':
161
- return builder.mutation(this.rootObjectBuilder)
162
- case 'query':
163
- return builder.query(this.rootObjectBuilder)
164
- default:
165
- throw new CrudQueryBuilderError(`Invalid type ${this.type}`)
166
- }
167
- }
168
- }
@@ -1 +0,0 @@
1
- export class CrudQueryBuilderError extends Error {}
@@ -1,16 +0,0 @@
1
- import type { ObjectBuilder } from '../graphQlBuilder'
2
-
3
- export class ErrorsRelationBuilder {
4
- public static errorsRelation(objectBuilder: ObjectBuilder): ObjectBuilder {
5
- return objectBuilder.object('errors', builder =>
6
- builder
7
- .field('type')
8
- .field('message')
9
- .object('path', builder =>
10
- builder
11
- .inlineFragment('_FieldPathFragment', builder => builder.field('field'))
12
- .inlineFragment('_IndexPathFragment', builder => builder.field('index').field('alias')),
13
- ),
14
- )
15
- }
16
- }
@@ -1,106 +0,0 @@
1
- import type { Input } from '@contember/schema'
2
- import { GraphQlLiteral, ObjectBuilder } from '../graphQlBuilder'
3
- import type { HasManyArguments, HasOneArguments, OrderDirection, ReadArguments, ReductionArguments } from './types'
4
-
5
- class ReadBuilder<AllowedArgs extends ReadArguments = ReadArguments> {
6
- protected constructor(public readonly objectBuilder: ObjectBuilder = new ObjectBuilder()) {}
7
-
8
- public static instantiate<AllowedArgs extends ReadArguments = ReadArguments>(
9
- objectBuilder: ObjectBuilder = new ObjectBuilder(),
10
- ): ReadBuilder.Builder<AllowedArgs> {
11
- return new ReadBuilder<AllowedArgs>(objectBuilder)
12
- }
13
-
14
- public static instantiateFromFactory<AllowedArgs extends ReadArguments>(
15
- builder: ReadBuilder.BuilderFactory<AllowedArgs>,
16
- ): ReadBuilder.Builder<never> {
17
- if (typeof builder === 'function') {
18
- return builder(ReadBuilder.instantiate())
19
- }
20
- return builder
21
- }
22
-
23
- protected instantiate<AA extends ReadArguments = ReadArguments>(
24
- objectBuilder: ObjectBuilder = new ObjectBuilder(),
25
- ): ReadBuilder.Builder<AA> {
26
- return ReadBuilder.instantiate<AA>(objectBuilder)
27
- }
28
-
29
- public by(by: Input.UniqueWhere<GraphQlLiteral>) {
30
- return this.instantiate<Exclude<AllowedArgs, 'by'>>(this.objectBuilder.argument('by', by))
31
- }
32
-
33
- public filter(where: Input.Where<Input.Condition<Input.ColumnValue<GraphQlLiteral>>>) {
34
- return this.instantiate<Exclude<AllowedArgs, 'filter'>>(this.objectBuilder.argument('filter', where))
35
- }
36
-
37
- public orderBy(orderBy: Input.OrderBy<OrderDirection>[]) {
38
- return this.instantiate<Exclude<AllowedArgs, 'orderBy'>>(this.objectBuilder.argument('orderBy', orderBy))
39
- }
40
-
41
- public offset(offset: number) {
42
- return this.instantiate<Exclude<AllowedArgs, 'offset'>>(this.objectBuilder.argument('offset', offset))
43
- }
44
-
45
- public limit(limit: number) {
46
- return this.instantiate<Exclude<AllowedArgs, 'limit'>>(this.objectBuilder.argument('limit', limit))
47
- }
48
-
49
- public skip(offset: number) {
50
- return this.instantiate<Exclude<AllowedArgs, 'skip'>>(this.objectBuilder.argument('skip', offset))
51
- }
52
-
53
- public first(limit: number) {
54
- return this.instantiate<Exclude<AllowedArgs, 'first'>>(this.objectBuilder.argument('first', limit))
55
- }
56
-
57
- public column(name: string) {
58
- return this.instantiate<AllowedArgs>(this.objectBuilder.field(name))
59
- }
60
-
61
- public inlineFragment(typeName: string, builder: ReadBuilder.BuilderFactory<never>) {
62
- builder = ReadBuilder.instantiateFromFactory(builder)
63
- return this.instantiate<AllowedArgs>(this.objectBuilder.inlineFragment(typeName, builder.objectBuilder))
64
- }
65
-
66
- public applyFragment(fragmentName: string) {
67
- return this.instantiate<AllowedArgs>(this.objectBuilder.applyFragment(fragmentName))
68
- }
69
-
70
- public reductionRelation(name: string, builder: ReadBuilder.BuilderFactory<ReductionArguments>, alias?: string) {
71
- return this.relation(name, builder, alias)
72
- }
73
-
74
- public hasOneRelation(name: string, builder: ReadBuilder.BuilderFactory<HasOneArguments>, alias?: string) {
75
- return this.relation(name, builder, alias)
76
- }
77
-
78
- public hasManyRelation(name: string, builder: ReadBuilder.BuilderFactory<HasManyArguments>, alias?: string) {
79
- return this.relation(name, builder, alias)
80
- }
81
-
82
- public anyRelation(name: string, builder: ReadBuilder.BuilderFactory<never>, alias?: string) {
83
- return this.relation(name, builder, alias)
84
- }
85
-
86
- protected relation<A extends ReadArguments>(name: string, builder: ReadBuilder.BuilderFactory<A>, alias?: string) {
87
- builder = ReadBuilder.instantiateFromFactory(builder)
88
-
89
- const [objectName, objectBuilder] =
90
- typeof alias === 'string' ? [alias, builder.objectBuilder.name(name)] : [name, builder.objectBuilder]
91
-
92
- return this.instantiate<AllowedArgs>(this.objectBuilder.object(objectName, objectBuilder))
93
- }
94
- }
95
-
96
- namespace ReadBuilder {
97
- export type Builder<AllowedArgs extends ReadArguments> = Omit<
98
- ReadBuilder<AllowedArgs>,
99
- Exclude<ReadArguments, AllowedArgs>
100
- >
101
- export type BuilderFactory<AllowedArgs extends ReadArguments> =
102
- | Builder<never>
103
- | ((builder: Builder<AllowedArgs>) => Builder<never>)
104
- }
105
-
106
- export { ReadBuilder }
@@ -1,17 +0,0 @@
1
- import type { ObjectBuilder } from '../graphQlBuilder'
2
-
3
- export class ValidationRelationBuilder {
4
- public static validationRelation(objectBuilder: ObjectBuilder): ObjectBuilder {
5
- return objectBuilder.object('validation', builder =>
6
- builder.field('valid').object('errors', builder =>
7
- builder
8
- .object('path', builder =>
9
- builder
10
- .inlineFragment('_FieldPathFragment', builder => builder.field('field'))
11
- .inlineFragment('_IndexPathFragment', builder => builder.field('index').field('alias')),
12
- )
13
- .object('message', builder => builder.field('text')),
14
- ),
15
- )
16
- }
17
- }
@@ -1,79 +0,0 @@
1
- import type { Input } from '@contember/schema'
2
- import { GraphQlLiteral, ObjectBuilder } from '../graphQlBuilder'
3
- import { ErrorsRelationBuilder } from './ErrorsRelationBuilder'
4
- import { ReadBuilder } from './ReadBuilder'
5
- import type { WriteArguments, WriteFields, WriteOperation } from './types'
6
- import { ValidationRelationBuilder } from './ValidationRelationBuilder'
7
- import { WriteDataBuilder } from './WriteDataBuilder'
8
-
9
- class WriteBuilder<AA extends WriteArguments, AF extends WriteFields, Op extends WriteOperation.Operation> {
10
- protected constructor(public readonly objectBuilder: ObjectBuilder = new ObjectBuilder()) {}
11
-
12
- public static instantiate<AA extends WriteArguments, AF extends WriteFields, Op extends WriteOperation.Operation>(
13
- objectBuilder: ObjectBuilder = new ObjectBuilder(),
14
- ): WriteBuilder.Builder<AA, AF, Op> {
15
- return new WriteBuilder<AA, AF, Op>(objectBuilder)
16
- }
17
-
18
- public static instantiateFromFactory<
19
- AA extends WriteArguments,
20
- AF extends WriteFields,
21
- Op extends WriteOperation.Operation,
22
- >(builder: WriteBuilder.BuilderFactory<AA, AF, Op>): WriteBuilder.Builder<never, never, Op> {
23
- if (typeof builder === 'function') {
24
- return builder(WriteBuilder.instantiate())
25
- }
26
- return builder
27
- }
28
-
29
- public data<SubOp extends Op & WriteOperation.ContentfulOperation>(data: WriteDataBuilder.DataLike<SubOp>) {
30
- const resolvedData = WriteDataBuilder.resolveData(data)
31
- return WriteBuilder.instantiate<Exclude<AA, 'data'>, AF, Op>(
32
- resolvedData === undefined ? this.objectBuilder : this.objectBuilder.argument('data', resolvedData),
33
- )
34
- }
35
-
36
- public by(by: Input.UniqueWhere<GraphQlLiteral>) {
37
- return WriteBuilder.instantiate<Exclude<AA, 'by'>, AF, Op>(this.objectBuilder.argument('by', by))
38
- }
39
-
40
- public ok() {
41
- return WriteBuilder.instantiate<AA, Exclude<AF, 'ok'>, Op>(this.objectBuilder.field('ok'))
42
- }
43
-
44
- public errorMessage() {
45
- return WriteBuilder.instantiate<AA, Exclude<AF, 'errorMessage'>, Op>(this.objectBuilder.field('errorMessage'))
46
- }
47
-
48
- public validation() {
49
- return WriteBuilder.instantiate<AA, Exclude<AF, 'validation'>, Op>(
50
- ValidationRelationBuilder.validationRelation(this.objectBuilder),
51
- )
52
- }
53
-
54
- public errors() {
55
- return WriteBuilder.instantiate<AA, Exclude<AF, 'errors'>, Op>(
56
- ErrorsRelationBuilder.errorsRelation(this.objectBuilder),
57
- )
58
- }
59
-
60
- public node(builder: ReadBuilder.BuilderFactory<never>) {
61
- const readBuilder = ReadBuilder.instantiateFromFactory(builder)
62
- return WriteBuilder.instantiate<AA, Exclude<AF, 'node'>, Op>(
63
- this.objectBuilder.object('node', readBuilder.objectBuilder),
64
- )
65
- }
66
- }
67
-
68
- namespace WriteBuilder {
69
- export type Builder<AA extends WriteArguments, AF extends WriteFields, Op extends WriteOperation.Operation> = Omit<
70
- Omit<WriteBuilder<AA, AF, Op>, Exclude<WriteArguments, AA>>,
71
- Exclude<WriteFields, AF>
72
- >
73
-
74
- export type BuilderFactory<AA extends WriteArguments, AF extends WriteFields, Op extends WriteOperation.Operation> =
75
- | Builder<never, never, Op>
76
- | ((builder: Builder<AA, AF, Op>) => Builder<never, never, Op>)
77
- }
78
-
79
- export { WriteBuilder }
@@ -1,153 +0,0 @@
1
- import type { Input, Value } from '@contember/schema'
2
- import { GraphQlLiteral } from '../graphQlBuilder'
3
- import { isEmptyObject } from '../utils'
4
- import { CrudQueryBuilderError } from './CrudQueryBuilderError'
5
- import type { WriteOperation } from './types'
6
- import { WriteManyRelationBuilder } from './WriteManyRelationBuilder'
7
- import { WriteOneRelationBuilder } from './WriteOneRelationBuilder'
8
-
9
- class WriteDataBuilder<Op extends WriteOperation.ContentfulOperation> {
10
- public readonly data: WriteDataBuilder.DataFormat[Op['op']]
11
-
12
- public constructor(data?: WriteDataBuilder.DataFormat[Op['op']]) {
13
- this.data = data || {}
14
- }
15
-
16
- public static resolveData<Op extends WriteOperation.ContentfulOperation>(
17
- dataLike: WriteDataBuilder.DataLike<Op>,
18
- ): WriteDataBuilder.DataFormat[Op['op']] | undefined {
19
- let resolvedData: WriteDataBuilder.DataFormat[Op['op']]
20
-
21
- if (dataLike instanceof WriteDataBuilder) {
22
- resolvedData = dataLike.data
23
- } else if (typeof dataLike === 'function') {
24
- resolvedData = dataLike(new WriteDataBuilder()).data
25
- } else {
26
- resolvedData = dataLike
27
- }
28
-
29
- if (isEmptyObject(resolvedData)) {
30
- return undefined
31
- }
32
- return resolvedData
33
- }
34
-
35
- public set(fieldName: string, value: Input.ColumnValue<GraphQlLiteral>) {
36
- return new WriteDataBuilder<Op>({ ...this.data, [fieldName]: value })
37
- }
38
-
39
- public many(fieldName: string, data: WriteManyRelationBuilder.BuilderFactory<Op>): WriteDataBuilder<Op> {
40
- const resolvedData = WriteManyRelationBuilder.instantiateFromFactory(data).data
41
- return resolvedData === undefined || resolvedData.length === 0
42
- ? this
43
- : new WriteDataBuilder<Op>(this.mergeInFreshData(this.data, fieldName, resolvedData))
44
- }
45
-
46
- public one(fieldName: string, data: WriteOneRelationBuilder.BuilderFactory<Op>): WriteDataBuilder<Op> {
47
- const resolvedData = WriteOneRelationBuilder.instantiateFromFactory(data).data
48
- return resolvedData === undefined || isEmptyObject(resolvedData)
49
- ? this
50
- : new WriteDataBuilder<Op>(this.mergeInFreshData(this.data, fieldName, resolvedData))
51
- }
52
-
53
- private mergeInFreshData(
54
- original: WriteDataBuilder.DataFormat[Op['op']],
55
- fieldName: string,
56
- fresh: WriteManyRelationBuilder.DataFormat[Op['op']] | WriteOneRelationBuilder.DataFormat[Op['op']],
57
- ): WriteDataBuilder.DataFormat[Op['op']] {
58
- if (fieldName in original) {
59
- const existingValue = original[fieldName]
60
- if (Array.isArray(existingValue)) {
61
- if (Array.isArray(fresh)) {
62
- return { ...original, [fieldName]: [...existingValue, ...fresh] }
63
- }
64
- throw new CrudQueryBuilderError(`Inconsistent data.`)
65
- }
66
- if (Array.isArray(fresh)) {
67
- throw new CrudQueryBuilderError(`Inconsistent data.`)
68
- }
69
- return { ...original, [fieldName]: this.mergeUpdateOne(existingValue, fresh) }
70
- }
71
- return { ...original, [fieldName]: fresh }
72
- }
73
-
74
- private mergeUpdateOne(
75
- original:
76
- | Value.FieldValue<GraphQlLiteral>
77
- | Input.CreateOneRelationInput<GraphQlLiteral>
78
- | Input.UpdateOneRelationInput<GraphQlLiteral>,
79
- fresh:
80
- | Value.FieldValue<GraphQlLiteral>
81
- | Input.CreateOneRelationInput<GraphQlLiteral>
82
- | Input.UpdateOneRelationInput<GraphQlLiteral>,
83
- ):
84
- | Value.FieldValue<GraphQlLiteral>
85
- | Input.CreateOneRelationInput<GraphQlLiteral>
86
- | Input.UpdateOneRelationInput<GraphQlLiteral> {
87
- // TODO This implementation pretty bad but it will have to do for now.
88
- if (original instanceof GraphQlLiteral) {
89
- if (fresh instanceof GraphQlLiteral) {
90
- if (original.value === fresh.value) {
91
- return original
92
- }
93
- }
94
- throw new CrudQueryBuilderError(`Inconsistent data.`)
95
- }
96
- if (fresh instanceof GraphQlLiteral) {
97
- throw new CrudQueryBuilderError(`Inconsistent data.`)
98
- }
99
-
100
- if (Array.isArray(original)) {
101
- if (Array.isArray(fresh)) {
102
- return [...original, ...fresh]
103
- }
104
- throw new CrudQueryBuilderError(`Inconsistent data.`)
105
- }
106
- if (Array.isArray(fresh)) {
107
- throw new CrudQueryBuilderError(`Inconsistent data.`)
108
- }
109
-
110
- if (original === null) {
111
- if (fresh === null) {
112
- return original
113
- }
114
- }
115
- if (fresh === null) {
116
- throw new CrudQueryBuilderError(`Inconsistent data.`)
117
- }
118
-
119
- if (typeof original === 'object') {
120
- if (typeof fresh === 'object') {
121
- const composite: any = { ...original }
122
- for (const field in fresh) {
123
- const fromFresh = (fresh as any)[field]
124
- composite[field] = field in composite ? this.mergeUpdateOne(composite[field], fromFresh) : fromFresh
125
- }
126
- return composite
127
- }
128
- throw new CrudQueryBuilderError(`Inconsistent data.`)
129
- }
130
- if (typeof fresh === 'object') {
131
- throw new CrudQueryBuilderError(`Inconsistent data.`)
132
- }
133
-
134
- if (original === fresh) {
135
- return original
136
- }
137
- throw new CrudQueryBuilderError(`Inconsistent data.`)
138
- }
139
- }
140
-
141
- namespace WriteDataBuilder {
142
- export interface DataFormat {
143
- create: Input.CreateDataInput<GraphQlLiteral>
144
- update: Input.UpdateDataInput<GraphQlLiteral>
145
- }
146
-
147
- export type DataLike<Op extends WriteOperation.ContentfulOperation> =
148
- | DataFormat[Op['op']]
149
- | WriteDataBuilder<Op>
150
- | ((builder: WriteDataBuilder<Op>) => WriteDataBuilder<Op>)
151
- }
152
-
153
- export { WriteDataBuilder }
@@ -1,141 +0,0 @@
1
- import type { Input } from '@contember/schema'
2
- import type { GraphQlLiteral } from '../graphQlBuilder'
3
- import type { WriteOperation, WriteRelationOps } from './types'
4
- import { WriteDataBuilder } from './WriteDataBuilder'
5
-
6
- class WriteManyRelationBuilder<
7
- Op extends WriteOperation.ContentfulOperation,
8
- Allowed extends WriteRelationOps[Op['op']],
9
- > {
10
- private constructor(public readonly data: WriteManyRelationBuilder.DataFormat[Op['op']] = []) {}
11
-
12
- public static instantiate<
13
- Op extends WriteOperation.ContentfulOperation,
14
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
15
- >(data: WriteManyRelationBuilder.DataFormat[Op['op']] = []): WriteManyRelationBuilder.Builder<Op, Allowed> {
16
- return new WriteManyRelationBuilder<Op, Allowed>(data)
17
- }
18
-
19
- public static instantiateFromFactory<
20
- Op extends WriteOperation.ContentfulOperation,
21
- Allowed extends WriteRelationOps[Op['op']],
22
- >(builder: WriteManyRelationBuilder.BuilderFactory<Op, Allowed>): WriteManyRelationBuilder.Builder<Op, never> {
23
- if (typeof builder === 'function') {
24
- return builder(WriteManyRelationBuilder.instantiate())
25
- }
26
- if ('data' in builder) {
27
- return WriteManyRelationBuilder.instantiate(builder.data)
28
- }
29
- return WriteManyRelationBuilder.instantiate(builder)
30
- }
31
-
32
- public create(
33
- data: WriteDataBuilder.DataLike<WriteOperation.Create>,
34
- alias?: string,
35
- ): WriteManyRelationBuilder.Builder<Op> {
36
- const resolvedData = WriteDataBuilder.resolveData(data)
37
- return (
38
- resolvedData === undefined
39
- ? this
40
- : WriteManyRelationBuilder.instantiate<Op>([
41
- ...this.data,
42
- this.withAlias({ create: resolvedData }, alias),
43
- ] as WriteManyRelationBuilder.DataFormat[WriteOperation.Create['op']])
44
- ) as WriteManyRelationBuilder.Builder<Op>
45
- }
46
-
47
- public connect(where: Input.UniqueWhere<GraphQlLiteral>, alias?: string) {
48
- return WriteManyRelationBuilder.instantiate<Op>([
49
- ...this.data,
50
- this.withAlias({ connect: where }, alias),
51
- ] as WriteManyRelationBuilder.DataFormat[Op['op']])
52
- }
53
-
54
- public delete(where: Input.UniqueWhere<GraphQlLiteral>, alias?: string) {
55
- return WriteManyRelationBuilder.instantiate<WriteOperation.Update>([
56
- ...this.data,
57
- this.withAlias({ delete: where }, alias),
58
- ])
59
- }
60
-
61
- public disconnect(where: Input.UniqueWhere<GraphQlLiteral>, alias?: string) {
62
- return WriteManyRelationBuilder.instantiate<WriteOperation.Update>([
63
- ...this.data,
64
- this.withAlias({ disconnect: where }, alias),
65
- ])
66
- }
67
-
68
- public update(
69
- where: Input.UniqueWhere<GraphQlLiteral>,
70
- data: WriteDataBuilder.DataLike<WriteOperation.Update>,
71
- alias?: string,
72
- ): WriteManyRelationBuilder.Builder<WriteOperation.Update> {
73
- const resolvedData = WriteDataBuilder.resolveData(data)
74
- return (
75
- resolvedData === undefined
76
- ? this
77
- : WriteManyRelationBuilder.instantiate<WriteOperation.Update>([
78
- ...this.data,
79
- this.withAlias({ update: { by: where, data: resolvedData } }, alias),
80
- ])
81
- ) as WriteManyRelationBuilder.Builder<WriteOperation.Update>
82
- }
83
-
84
- public upsert(
85
- where: Input.UniqueWhere<GraphQlLiteral>,
86
- update: WriteDataBuilder.DataLike<WriteOperation.Update>,
87
- create: WriteDataBuilder.DataLike<WriteOperation.Create>,
88
- alias?: string,
89
- ): WriteManyRelationBuilder.Builder<WriteOperation.Update> {
90
- const resolvedUpdate = WriteDataBuilder.resolveData(update)
91
- const resolvedCreate = WriteDataBuilder.resolveData(create)
92
- return (
93
- resolvedUpdate === undefined && resolvedCreate === undefined
94
- ? this
95
- : WriteManyRelationBuilder.instantiate<WriteOperation.Update>([
96
- ...this.data,
97
- this.withAlias(
98
- {
99
- upsert: {
100
- by: where,
101
- update: resolvedUpdate || {},
102
- create: resolvedCreate || {},
103
- },
104
- },
105
- alias,
106
- ),
107
- ])
108
- ) as WriteManyRelationBuilder.Builder<WriteOperation.Update>
109
- }
110
-
111
- private withAlias<
112
- D extends Input.CreateOneRelationInput<GraphQlLiteral> | Input.UpdateManyRelationInputItem<GraphQlLiteral>,
113
- >(data: D, alias?: string): D {
114
- if (alias !== undefined) {
115
- data.alias = alias
116
- }
117
- return data
118
- }
119
- }
120
-
121
- namespace WriteManyRelationBuilder {
122
- export interface DataFormat {
123
- create: Input.CreateManyRelationInput<GraphQlLiteral>
124
- update: Input.UpdateManyRelationInput<GraphQlLiteral>
125
- }
126
-
127
- export type Builder<
128
- Op extends WriteOperation.ContentfulOperation,
129
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
130
- > = Omit<
131
- WriteManyRelationBuilder<Op, Allowed>,
132
- Exclude<WriteRelationOps[WriteOperation.ContentfulOperation['op']], Allowed>
133
- >
134
-
135
- export type BuilderFactory<
136
- Op extends WriteOperation.ContentfulOperation,
137
- Allowed extends WriteRelationOps[Op['op']] = WriteRelationOps[Op['op']],
138
- > = DataFormat[Op['op']] | Builder<Op, never> | ((builder: Builder<Op, Allowed>) => Builder<Op, never>)
139
- }
140
-
141
- export { WriteManyRelationBuilder }