@contember/client 0.0.0

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 (257) hide show
  1. package/dist/development/content/formatContentApiRelativeUrl.js +5 -0
  2. package/dist/development/content/formatContentApiRelativeUrl.js.map +1 -0
  3. package/dist/development/content/params/whereToFilter.js +17 -0
  4. package/dist/development/content/params/whereToFilter.js.map +1 -0
  5. package/dist/development/content/upload/FileUploadError.js +10 -0
  6. package/dist/development/content/upload/FileUploadError.js.map +1 -0
  7. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.js +35 -0
  8. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.js.map +1 -0
  9. package/dist/development/content/upload/S3FileUploader.js +108 -0
  10. package/dist/development/content/upload/S3FileUploader.js.map +1 -0
  11. package/dist/development/crudQueryBuilder/CrudQueryBuilder.js +104 -0
  12. package/dist/development/crudQueryBuilder/CrudQueryBuilder.js.map +1 -0
  13. package/dist/development/crudQueryBuilder/CrudQueryBuilderError.js +6 -0
  14. package/dist/development/crudQueryBuilder/CrudQueryBuilderError.js.map +1 -0
  15. package/dist/development/crudQueryBuilder/ErrorsRelationBuilder.js +15 -0
  16. package/dist/development/crudQueryBuilder/ErrorsRelationBuilder.js.map +1 -0
  17. package/dist/development/crudQueryBuilder/ReadBuilder.js +70 -0
  18. package/dist/development/crudQueryBuilder/ReadBuilder.js.map +1 -0
  19. package/dist/development/crudQueryBuilder/ValidationRelationBuilder.js +18 -0
  20. package/dist/development/crudQueryBuilder/ValidationRelationBuilder.js.map +1 -0
  21. package/dist/development/crudQueryBuilder/WriteBuilder.js +54 -0
  22. package/dist/development/crudQueryBuilder/WriteBuilder.js.map +1 -0
  23. package/dist/development/crudQueryBuilder/WriteDataBuilder.js +110 -0
  24. package/dist/development/crudQueryBuilder/WriteDataBuilder.js.map +1 -0
  25. package/dist/development/crudQueryBuilder/WriteManyRelationBuilder.js +77 -0
  26. package/dist/development/crudQueryBuilder/WriteManyRelationBuilder.js.map +1 -0
  27. package/dist/development/crudQueryBuilder/WriteOneRelationBuilder.js +51 -0
  28. package/dist/development/crudQueryBuilder/WriteOneRelationBuilder.js.map +1 -0
  29. package/dist/development/crudQueryBuilder/types.js +40 -0
  30. package/dist/development/crudQueryBuilder/types.js.map +1 -0
  31. package/dist/development/graphQlBuilder/GraphQlBuilderError.js +6 -0
  32. package/dist/development/graphQlBuilder/GraphQlBuilderError.js.map +1 -0
  33. package/dist/development/graphQlBuilder/GraphQlLiteral.js +12 -0
  34. package/dist/development/graphQlBuilder/GraphQlLiteral.js.map +1 -0
  35. package/dist/development/graphQlBuilder/ObjectBuilder.js +80 -0
  36. package/dist/development/graphQlBuilder/ObjectBuilder.js.map +1 -0
  37. package/dist/development/graphQlBuilder/QueryBuilder.js +22 -0
  38. package/dist/development/graphQlBuilder/QueryBuilder.js.map +1 -0
  39. package/dist/development/graphQlBuilder/QueryCompiler.js +101 -0
  40. package/dist/development/graphQlBuilder/QueryCompiler.js.map +1 -0
  41. package/dist/development/graphQlBuilder/RootObjectBuilder.js +31 -0
  42. package/dist/development/graphQlBuilder/RootObjectBuilder.js.map +1 -0
  43. package/dist/development/graphQlClient/GraphQlClient.js +33 -0
  44. package/dist/development/graphQlClient/GraphQlClient.js.map +1 -0
  45. package/dist/development/index.js +58 -0
  46. package/dist/development/index.js.map +1 -0
  47. package/dist/development/system/formatSystemApiRelativeUrl.js +5 -0
  48. package/dist/development/system/formatSystemApiRelativeUrl.js.map +1 -0
  49. package/dist/development/tenant/loginMutation.js +34 -0
  50. package/dist/development/tenant/loginMutation.js.map +1 -0
  51. package/dist/development/tenant/tenantApiRelativeUrl.js +5 -0
  52. package/dist/development/tenant/tenantApiRelativeUrl.js.map +1 -0
  53. package/dist/development/tenant/tenantErrorMessages.js +18 -0
  54. package/dist/development/tenant/tenantErrorMessages.js.map +1 -0
  55. package/dist/development/utils/isEmptyObject.js +12 -0
  56. package/dist/development/utils/isEmptyObject.js.map +1 -0
  57. package/dist/development/utils/readFileAsArrayBuffer.js +15 -0
  58. package/dist/development/utils/readFileAsArrayBuffer.js.map +1 -0
  59. package/dist/production/content/formatContentApiRelativeUrl.js +5 -0
  60. package/dist/production/content/formatContentApiRelativeUrl.js.map +1 -0
  61. package/dist/production/content/params/whereToFilter.js +17 -0
  62. package/dist/production/content/params/whereToFilter.js.map +1 -0
  63. package/dist/production/content/upload/FileUploadError.js +10 -0
  64. package/dist/production/content/upload/FileUploadError.js.map +1 -0
  65. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.js +35 -0
  66. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.js.map +1 -0
  67. package/dist/production/content/upload/S3FileUploader.js +108 -0
  68. package/dist/production/content/upload/S3FileUploader.js.map +1 -0
  69. package/dist/production/crudQueryBuilder/CrudQueryBuilder.js +104 -0
  70. package/dist/production/crudQueryBuilder/CrudQueryBuilder.js.map +1 -0
  71. package/dist/production/crudQueryBuilder/CrudQueryBuilderError.js +6 -0
  72. package/dist/production/crudQueryBuilder/CrudQueryBuilderError.js.map +1 -0
  73. package/dist/production/crudQueryBuilder/ErrorsRelationBuilder.js +15 -0
  74. package/dist/production/crudQueryBuilder/ErrorsRelationBuilder.js.map +1 -0
  75. package/dist/production/crudQueryBuilder/ReadBuilder.js +70 -0
  76. package/dist/production/crudQueryBuilder/ReadBuilder.js.map +1 -0
  77. package/dist/production/crudQueryBuilder/ValidationRelationBuilder.js +18 -0
  78. package/dist/production/crudQueryBuilder/ValidationRelationBuilder.js.map +1 -0
  79. package/dist/production/crudQueryBuilder/WriteBuilder.js +54 -0
  80. package/dist/production/crudQueryBuilder/WriteBuilder.js.map +1 -0
  81. package/dist/production/crudQueryBuilder/WriteDataBuilder.js +110 -0
  82. package/dist/production/crudQueryBuilder/WriteDataBuilder.js.map +1 -0
  83. package/dist/production/crudQueryBuilder/WriteManyRelationBuilder.js +77 -0
  84. package/dist/production/crudQueryBuilder/WriteManyRelationBuilder.js.map +1 -0
  85. package/dist/production/crudQueryBuilder/WriteOneRelationBuilder.js +51 -0
  86. package/dist/production/crudQueryBuilder/WriteOneRelationBuilder.js.map +1 -0
  87. package/dist/production/crudQueryBuilder/types.js +40 -0
  88. package/dist/production/crudQueryBuilder/types.js.map +1 -0
  89. package/dist/production/graphQlBuilder/GraphQlBuilderError.js +6 -0
  90. package/dist/production/graphQlBuilder/GraphQlBuilderError.js.map +1 -0
  91. package/dist/production/graphQlBuilder/GraphQlLiteral.js +12 -0
  92. package/dist/production/graphQlBuilder/GraphQlLiteral.js.map +1 -0
  93. package/dist/production/graphQlBuilder/ObjectBuilder.js +80 -0
  94. package/dist/production/graphQlBuilder/ObjectBuilder.js.map +1 -0
  95. package/dist/production/graphQlBuilder/QueryBuilder.js +22 -0
  96. package/dist/production/graphQlBuilder/QueryBuilder.js.map +1 -0
  97. package/dist/production/graphQlBuilder/QueryCompiler.js +101 -0
  98. package/dist/production/graphQlBuilder/QueryCompiler.js.map +1 -0
  99. package/dist/production/graphQlBuilder/RootObjectBuilder.js +31 -0
  100. package/dist/production/graphQlBuilder/RootObjectBuilder.js.map +1 -0
  101. package/dist/production/graphQlClient/GraphQlClient.js +33 -0
  102. package/dist/production/graphQlClient/GraphQlClient.js.map +1 -0
  103. package/dist/production/index.js +58 -0
  104. package/dist/production/index.js.map +1 -0
  105. package/dist/production/system/formatSystemApiRelativeUrl.js +5 -0
  106. package/dist/production/system/formatSystemApiRelativeUrl.js.map +1 -0
  107. package/dist/production/tenant/loginMutation.js +34 -0
  108. package/dist/production/tenant/loginMutation.js.map +1 -0
  109. package/dist/production/tenant/tenantApiRelativeUrl.js +5 -0
  110. package/dist/production/tenant/tenantApiRelativeUrl.js.map +1 -0
  111. package/dist/production/tenant/tenantErrorMessages.js +18 -0
  112. package/dist/production/tenant/tenantErrorMessages.js.map +1 -0
  113. package/dist/production/utils/isEmptyObject.js +12 -0
  114. package/dist/production/utils/isEmptyObject.js.map +1 -0
  115. package/dist/production/utils/readFileAsArrayBuffer.js +15 -0
  116. package/dist/production/utils/readFileAsArrayBuffer.js.map +1 -0
  117. package/dist/types/content/formatContentApiRelativeUrl.d.ts +2 -0
  118. package/dist/types/content/formatContentApiRelativeUrl.d.ts.map +1 -0
  119. package/dist/types/content/index.d.ts +4 -0
  120. package/dist/types/content/index.d.ts.map +1 -0
  121. package/dist/types/content/params/index.d.ts +2 -0
  122. package/dist/types/content/params/index.d.ts.map +1 -0
  123. package/dist/types/content/params/whereToFilter.d.ts +4 -0
  124. package/dist/types/content/params/whereToFilter.d.ts.map +1 -0
  125. package/dist/types/content/upload/FileUploadError.d.ts +9 -0
  126. package/dist/types/content/upload/FileUploadError.d.ts.map +1 -0
  127. package/dist/types/content/upload/FileUploadProgress.d.ts +4 -0
  128. package/dist/types/content/upload/FileUploadProgress.d.ts.map +1 -0
  129. package/dist/types/content/upload/FileUploader.d.ts +15 -0
  130. package/dist/types/content/upload/FileUploader.d.ts.map +1 -0
  131. package/dist/types/content/upload/GenerateUploadUrlMutationBuilder.d.ts +35 -0
  132. package/dist/types/content/upload/GenerateUploadUrlMutationBuilder.d.ts.map +1 -0
  133. package/dist/types/content/upload/S3FileUploader.d.ts +33 -0
  134. package/dist/types/content/upload/S3FileUploader.d.ts.map +1 -0
  135. package/dist/types/content/upload/SwitchFileUploader.d.ts +13 -0
  136. package/dist/types/content/upload/SwitchFileUploader.d.ts.map +1 -0
  137. package/dist/types/content/upload/UploadedFileMetadata.d.ts +4 -0
  138. package/dist/types/content/upload/UploadedFileMetadata.d.ts.map +1 -0
  139. package/dist/types/content/upload/index.d.ts +8 -0
  140. package/dist/types/content/upload/index.d.ts.map +1 -0
  141. package/dist/types/crudQueryBuilder/CrudQueryBuilder.d.ts +21 -0
  142. package/dist/types/crudQueryBuilder/CrudQueryBuilder.d.ts.map +1 -0
  143. package/dist/types/crudQueryBuilder/CrudQueryBuilderError.d.ts +3 -0
  144. package/dist/types/crudQueryBuilder/CrudQueryBuilderError.d.ts.map +1 -0
  145. package/dist/types/crudQueryBuilder/ErrorsRelationBuilder.d.ts +5 -0
  146. package/dist/types/crudQueryBuilder/ErrorsRelationBuilder.d.ts.map +1 -0
  147. package/dist/types/crudQueryBuilder/ReadBuilder.d.ts +31 -0
  148. package/dist/types/crudQueryBuilder/ReadBuilder.d.ts.map +1 -0
  149. package/dist/types/crudQueryBuilder/ValidationRelationBuilder.d.ts +5 -0
  150. package/dist/types/crudQueryBuilder/ValidationRelationBuilder.d.ts.map +1 -0
  151. package/dist/types/crudQueryBuilder/WriteBuilder.d.ts +24 -0
  152. package/dist/types/crudQueryBuilder/WriteBuilder.d.ts.map +1 -0
  153. package/dist/types/crudQueryBuilder/WriteDataBuilder.d.ts +24 -0
  154. package/dist/types/crudQueryBuilder/WriteDataBuilder.d.ts.map +1 -0
  155. package/dist/types/crudQueryBuilder/WriteManyRelationBuilder.d.ts +27 -0
  156. package/dist/types/crudQueryBuilder/WriteManyRelationBuilder.d.ts.map +1 -0
  157. package/dist/types/crudQueryBuilder/WriteOneRelationBuilder.d.ts +28 -0
  158. package/dist/types/crudQueryBuilder/WriteOneRelationBuilder.d.ts.map +1 -0
  159. package/dist/types/crudQueryBuilder/index.d.ts +8 -0
  160. package/dist/types/crudQueryBuilder/index.d.ts.map +1 -0
  161. package/dist/types/crudQueryBuilder/types.d.ts +45 -0
  162. package/dist/types/crudQueryBuilder/types.d.ts.map +1 -0
  163. package/dist/types/graphQlBuilder/GraphQlBuilderError.d.ts +3 -0
  164. package/dist/types/graphQlBuilder/GraphQlBuilderError.d.ts.map +1 -0
  165. package/dist/types/graphQlBuilder/GraphQlLiteral.d.ts +6 -0
  166. package/dist/types/graphQlBuilder/GraphQlLiteral.d.ts.map +1 -0
  167. package/dist/types/graphQlBuilder/ObjectBuilder.d.ts +28 -0
  168. package/dist/types/graphQlBuilder/ObjectBuilder.d.ts.map +1 -0
  169. package/dist/types/graphQlBuilder/QueryBuilder.d.ts +17 -0
  170. package/dist/types/graphQlBuilder/QueryBuilder.d.ts.map +1 -0
  171. package/dist/types/graphQlBuilder/QueryCompiler.d.ts +13 -0
  172. package/dist/types/graphQlBuilder/QueryCompiler.d.ts.map +1 -0
  173. package/dist/types/graphQlBuilder/RootObjectBuilder.d.ts +17 -0
  174. package/dist/types/graphQlBuilder/RootObjectBuilder.d.ts.map +1 -0
  175. package/dist/types/graphQlBuilder/index.d.ts +6 -0
  176. package/dist/types/graphQlBuilder/index.d.ts.map +1 -0
  177. package/dist/types/graphQlClient/GraphQlClient.d.ts +19 -0
  178. package/dist/types/graphQlClient/GraphQlClient.d.ts.map +1 -0
  179. package/dist/types/graphQlClient/index.d.ts +2 -0
  180. package/dist/types/graphQlClient/index.d.ts.map +1 -0
  181. package/dist/types/index.d.ts +45 -0
  182. package/dist/types/index.d.ts.map +1 -0
  183. package/dist/types/system/events/RelationFilter.d.ts +5 -0
  184. package/dist/types/system/events/RelationFilter.d.ts.map +1 -0
  185. package/dist/types/system/events/SystemEvent.d.ts +10 -0
  186. package/dist/types/system/events/SystemEvent.d.ts.map +1 -0
  187. package/dist/types/system/events/TreeFilter.d.ts +7 -0
  188. package/dist/types/system/events/TreeFilter.d.ts.map +1 -0
  189. package/dist/types/system/events/index.d.ts +4 -0
  190. package/dist/types/system/events/index.d.ts.map +1 -0
  191. package/dist/types/system/formatSystemApiRelativeUrl.d.ts +2 -0
  192. package/dist/types/system/formatSystemApiRelativeUrl.d.ts.map +1 -0
  193. package/dist/types/system/index.d.ts +3 -0
  194. package/dist/types/system/index.d.ts.map +1 -0
  195. package/dist/types/tenant/index.d.ts +4 -0
  196. package/dist/types/tenant/index.d.ts.map +1 -0
  197. package/dist/types/tenant/loginMutation.d.ts +32 -0
  198. package/dist/types/tenant/loginMutation.d.ts.map +1 -0
  199. package/dist/types/tenant/tenantApiRelativeUrl.d.ts +2 -0
  200. package/dist/types/tenant/tenantApiRelativeUrl.d.ts.map +1 -0
  201. package/dist/types/tenant/tenantErrorMessages.d.ts +5 -0
  202. package/dist/types/tenant/tenantErrorMessages.d.ts.map +1 -0
  203. package/dist/types/tsconfig.tsbuildinfo +1 -0
  204. package/dist/types/utils/index.d.ts +3 -0
  205. package/dist/types/utils/index.d.ts.map +1 -0
  206. package/dist/types/utils/isEmptyObject.d.ts +2 -0
  207. package/dist/types/utils/isEmptyObject.d.ts.map +1 -0
  208. package/dist/types/utils/readFileAsArrayBuffer.d.ts +2 -0
  209. package/dist/types/utils/readFileAsArrayBuffer.d.ts.map +1 -0
  210. package/package.json +35 -0
  211. package/src/content/formatContentApiRelativeUrl.ts +2 -0
  212. package/src/content/index.ts +4 -0
  213. package/src/content/params/index.ts +1 -0
  214. package/src/content/params/whereToFilter.ts +19 -0
  215. package/src/content/upload/FileUploadError.ts +10 -0
  216. package/src/content/upload/FileUploadProgress.ts +3 -0
  217. package/src/content/upload/FileUploader.ts +19 -0
  218. package/src/content/upload/GenerateUploadUrlMutationBuilder.ts +72 -0
  219. package/src/content/upload/S3FileUploader.ts +151 -0
  220. package/src/content/upload/SwitchFileUploader.ts +40 -0
  221. package/src/content/upload/UploadedFileMetadata.ts +3 -0
  222. package/src/content/upload/index.ts +7 -0
  223. package/src/crudQueryBuilder/CrudQueryBuilder.ts +168 -0
  224. package/src/crudQueryBuilder/CrudQueryBuilderError.ts +1 -0
  225. package/src/crudQueryBuilder/ErrorsRelationBuilder.ts +16 -0
  226. package/src/crudQueryBuilder/ReadBuilder.ts +106 -0
  227. package/src/crudQueryBuilder/ValidationRelationBuilder.ts +17 -0
  228. package/src/crudQueryBuilder/WriteBuilder.ts +79 -0
  229. package/src/crudQueryBuilder/WriteDataBuilder.ts +153 -0
  230. package/src/crudQueryBuilder/WriteManyRelationBuilder.ts +141 -0
  231. package/src/crudQueryBuilder/WriteOneRelationBuilder.ts +101 -0
  232. package/src/crudQueryBuilder/index.ts +7 -0
  233. package/src/crudQueryBuilder/types.ts +73 -0
  234. package/src/graphQlBuilder/GraphQlBuilderError.ts +1 -0
  235. package/src/graphQlBuilder/GraphQlLiteral.ts +7 -0
  236. package/src/graphQlBuilder/ObjectBuilder.ts +87 -0
  237. package/src/graphQlBuilder/QueryBuilder.ts +34 -0
  238. package/src/graphQlBuilder/QueryCompiler.ts +115 -0
  239. package/src/graphQlBuilder/RootObjectBuilder.ts +36 -0
  240. package/src/graphQlBuilder/index.ts +5 -0
  241. package/src/graphQlClient/GraphQlClient.ts +52 -0
  242. package/src/graphQlClient/index.ts +1 -0
  243. package/src/index.ts +49 -0
  244. package/src/system/events/RelationFilter.ts +4 -0
  245. package/src/system/events/SystemEvent.ts +9 -0
  246. package/src/system/events/TreeFilter.ts +7 -0
  247. package/src/system/events/index.ts +3 -0
  248. package/src/system/formatSystemApiRelativeUrl.ts +1 -0
  249. package/src/system/index.ts +2 -0
  250. package/src/tenant/index.ts +3 -0
  251. package/src/tenant/loginMutation.ts +61 -0
  252. package/src/tenant/tenantApiRelativeUrl.ts +1 -0
  253. package/src/tenant/tenantErrorMessages.ts +14 -0
  254. package/src/tsconfig.json +6 -0
  255. package/src/utils/index.ts +2 -0
  256. package/src/utils/isEmptyObject.ts +9 -0
  257. package/src/utils/readFileAsArrayBuffer.ts +12 -0
@@ -0,0 +1,5 @@
1
+ const formatContentApiRelativeUrl = (projectSlug, stageSlug) => `/content/${projectSlug}/${stageSlug}`;
2
+ export {
3
+ formatContentApiRelativeUrl
4
+ };
5
+ //# sourceMappingURL=formatContentApiRelativeUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatContentApiRelativeUrl.js","sources":["../../../src/content/formatContentApiRelativeUrl.ts"],"sourcesContent":["export const formatContentApiRelativeUrl = (projectSlug: string, stageSlug: string) =>\n\t`/content/${projectSlug}/${stageSlug}`\n"],"names":[],"mappings":"AAAO,MAAM,8BAA8B,CAAC,aAAqB,cAChE,YAAY,eAAe;"}
@@ -0,0 +1,17 @@
1
+ import { GraphQlLiteral } from "../../graphQlBuilder/GraphQlLiteral.js";
2
+ const whereToFilter = (by) => {
3
+ const where = {};
4
+ for (const key in by) {
5
+ const value = by[key];
6
+ if (value instanceof GraphQlLiteral || typeof value === "string" || typeof value === "number") {
7
+ where[key] = { eq: value };
8
+ } else {
9
+ where[key] = whereToFilter(value);
10
+ }
11
+ }
12
+ return where;
13
+ };
14
+ export {
15
+ whereToFilter
16
+ };
17
+ //# sourceMappingURL=whereToFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whereToFilter.js","sources":["../../../../src/content/params/whereToFilter.ts"],"sourcesContent":["import type { Input, Writable } from '@contember/schema'\nimport { GraphQlLiteral } from '../../graphQlBuilder'\n\nexport const whereToFilter = (\n\tby: Input.UniqueWhere<GraphQlLiteral>,\n): Input.Where<Input.Condition<Input.ColumnValue<GraphQlLiteral>>> => {\n\tconst where: Writable<Input.Where<Input.Condition<Input.ColumnValue<GraphQlLiteral>>>> = {}\n\tfor (const key in by) {\n\t\tconst value = by[key]\n\n\t\tif (value instanceof GraphQlLiteral || typeof value === 'string' || typeof value === 'number') {\n\t\t\twhere[key] = { eq: value }\n\t\t} else {\n\t\t\twhere[key] = whereToFilter(value)\n\t\t}\n\t}\n\n\treturn where\n}\n"],"names":[],"mappings":";AAGa,MAAA,gBAAgB,CAC5B,OACqE;AACrE,QAAM,QAAmF,CAAA;AACzF,aAAW,OAAO,IAAI;AACf,UAAA,QAAQ,GAAG,GAAG;AAEpB,QAAI,iBAAiB,kBAAkB,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AAC9F,YAAM,GAAG,IAAI,EAAE,IAAI,MAAM;AAAA,IAAA,OACnB;AACA,YAAA,GAAG,IAAI,cAAc,KAAK;AAAA,IACjC;AAAA,EACD;AAEO,SAAA;AACR;"}
@@ -0,0 +1,10 @@
1
+ class FileUploadError extends Error {
2
+ constructor(options = {}) {
3
+ super(options.developerMessage);
4
+ this.options = options;
5
+ }
6
+ }
7
+ export {
8
+ FileUploadError
9
+ };
10
+ //# sourceMappingURL=FileUploadError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadError.js","sources":["../../../../src/content/upload/FileUploadError.ts"],"sourcesContent":["export interface FileUploadErrorOptions {\n\tdeveloperMessage?: string\n\tendUserMessage?: string\n}\n\nexport class FileUploadError extends Error {\n\tpublic constructor(public readonly options: FileUploadErrorOptions = {}) {\n\t\tsuper(options.developerMessage)\n\t}\n}\n"],"names":[],"mappings":"AAKO,MAAM,wBAAwB,MAAM;AAAA,EACnC,YAA4B,UAAkC,IAAI;AACxE,UAAM,QAAQ,gBAAgB;AADI,SAAA,UAAA;AAAA,EAEnC;AACD;"}
@@ -0,0 +1,35 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import { ObjectBuilder } from "../../graphQlBuilder/ObjectBuilder.js";
8
+ import { QueryBuilder } from "../../graphQlBuilder/QueryBuilder.js";
9
+ const _GenerateUploadUrlMutationBuilder = class {
10
+ static buildQuery(parameters) {
11
+ return new QueryBuilder().mutation((builder) => {
12
+ for (const alias in parameters) {
13
+ const fileParameters = parameters[alias];
14
+ if (fileParameters.suffix || fileParameters.fileName || fileParameters.extension) {
15
+ builder = builder.object(
16
+ alias,
17
+ _GenerateUploadUrlMutationBuilder.generateUploadUrlFields.argument("input", fileParameters)
18
+ );
19
+ } else {
20
+ builder = builder.object(
21
+ alias,
22
+ _GenerateUploadUrlMutationBuilder.generateUploadUrlFields.argument("contentType", fileParameters.contentType).argument("expiration", fileParameters.expiration).argument("prefix", fileParameters.prefix).argument("acl", fileParameters.acl)
23
+ );
24
+ }
25
+ }
26
+ return builder;
27
+ });
28
+ }
29
+ };
30
+ let GenerateUploadUrlMutationBuilder = _GenerateUploadUrlMutationBuilder;
31
+ __publicField(GenerateUploadUrlMutationBuilder, "generateUploadUrlFields", new ObjectBuilder().name("generateUploadUrl").field("url").field("publicUrl").field("method").object("headers", (builder) => builder.field("key").field("value")));
32
+ export {
33
+ GenerateUploadUrlMutationBuilder
34
+ };
35
+ //# sourceMappingURL=GenerateUploadUrlMutationBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateUploadUrlMutationBuilder.js","sources":["../../../../src/content/upload/GenerateUploadUrlMutationBuilder.ts"],"sourcesContent":["import { GraphQlLiteral, ObjectBuilder, QueryBuilder } from '../../graphQlBuilder'\n\nclass GenerateUploadUrlMutationBuilder {\n\tprivate static generateUploadUrlFields = new ObjectBuilder()\n\t\t.name('generateUploadUrl')\n\t\t.field('url')\n\t\t.field('publicUrl')\n\t\t.field('method')\n\t\t.object('headers', builder => builder.field('key').field('value'))\n\n\tpublic static buildQuery(parameters: GenerateUploadUrlMutationBuilder.MutationParameters): string {\n\t\treturn new QueryBuilder().mutation(builder => {\n\t\t\tfor (const alias in parameters) {\n\t\t\t\tconst fileParameters = parameters[alias]\n\t\t\t\tif (fileParameters.suffix || fileParameters.fileName || fileParameters.extension) {\n\t\t\t\t\tbuilder = builder.object(\n\t\t\t\t\t\talias,\n\t\t\t\t\t\tGenerateUploadUrlMutationBuilder.generateUploadUrlFields\n\t\t\t\t\t\t\t.argument('input', fileParameters),\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\t// BC\n\t\t\t\t\tbuilder = builder.object(\n\t\t\t\t\t\talias,\n\t\t\t\t\t\tGenerateUploadUrlMutationBuilder.generateUploadUrlFields\n\t\t\t\t\t\t\t.argument('contentType', fileParameters.contentType)\n\t\t\t\t\t\t\t.argument('expiration', fileParameters.expiration)\n\t\t\t\t\t\t\t.argument('prefix', fileParameters.prefix)\n\t\t\t\t\t\t\t.argument('acl', fileParameters.acl),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn builder\n\t\t})\n\t}\n}\n\nnamespace GenerateUploadUrlMutationBuilder {\n\texport type Acl = GraphQlLiteral<'PUBLIC_READ' | 'PRIVATE' | 'NONE'>;\n\n\texport interface FileParameters {\n\t\tcontentType: string\n\t\texpiration?: number\n\t\tsize?: number\n\t\tprefix?: string\n\t\textension?: string\n\t\tsuffix?: string\n\t\tfileName?: string\n\t\tacl?: Acl\n\t}\n\n\texport interface MutationParameters {\n\t\t[alias: string]: FileParameters\n\t}\n\n\texport interface ResponseBody {\n\t\turl: string\n\t\tpublicUrl: string\n\t\tmethod: string\n\t\theaders: Array<{\n\t\t\tkey: string\n\t\t\tvalue: string\n\t\t}>\n\t}\n\n\texport interface MutationResponse {\n\t\t[alias: string]: ResponseBody\n\t}\n}\n\nexport { GenerateUploadUrlMutationBuilder }\n"],"names":[],"mappings":";;;;;;;;AAEA,MAAM,oCAAN,MAAuC;AAAA,EAQtC,OAAc,WAAW,YAAyE;AACjG,WAAO,IAAI,aAAA,EAAe,SAAS,CAAW,YAAA;AAC7C,iBAAW,SAAS,YAAY;AACzB,cAAA,iBAAiB,WAAW,KAAK;AACvC,YAAI,eAAe,UAAU,eAAe,YAAY,eAAe,WAAW;AACjF,oBAAU,QAAQ;AAAA,YACjB;AAAA,YACA,kCAAiC,wBAC/B,SAAS,SAAS,cAAc;AAAA,UAAA;AAAA,QACnC,OACM;AAEN,oBAAU,QAAQ;AAAA,YACjB;AAAA,YACA,kCAAiC,wBAC/B,SAAS,eAAe,eAAe,WAAW,EAClD,SAAS,cAAc,eAAe,UAAU,EAChD,SAAS,UAAU,eAAe,MAAM,EACxC,SAAS,OAAO,eAAe,GAAG;AAAA,UAAA;AAAA,QAEtC;AAAA,MACD;AAEO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;AAlCA,IAAM,mCAAN;AACC,cADK,kCACU,2BAA0B,IAAI,cAAc,EACzD,KAAK,mBAAmB,EACxB,MAAM,KAAK,EACX,MAAM,WAAW,EACjB,MAAM,QAAQ,EACd,OAAO,WAAW,CAAA,YAAW,QAAQ,MAAM,KAAK,EAAE,MAAM,OAAO,CAAC;"}
@@ -0,0 +1,108 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import pLimit from "p-limit";
8
+ import { FileUploadError } from "./FileUploadError.js";
9
+ import { GenerateUploadUrlMutationBuilder } from "./GenerateUploadUrlMutationBuilder.js";
10
+ import { readFileAsArrayBuffer } from "../../utils/readFileAsArrayBuffer.js";
11
+ class S3FileUploader {
12
+ constructor(options = {}) {
13
+ __publicField(this, "uploadState");
14
+ __publicField(this, "generateNewAlias", (() => {
15
+ let alias = 1;
16
+ return () => alias++;
17
+ })());
18
+ this.options = options;
19
+ this.uploadState = /* @__PURE__ */ new WeakMap();
20
+ }
21
+ static formatFullAlias(alias) {
22
+ return `file${alias}`;
23
+ }
24
+ async upload(files, options) {
25
+ const parameters = {};
26
+ for (const [file, metadata] of files) {
27
+ if (this.uploadState.has(file)) {
28
+ const uploadState = this.uploadState.get(file);
29
+ uploadState.request?.abort();
30
+ }
31
+ const alias = this.generateNewAlias();
32
+ this.uploadState.set(file, {
33
+ alias
34
+ });
35
+ const uploadOptions = this.options.getUploadOptions?.(file);
36
+ parameters[S3FileUploader.formatFullAlias(alias)] = {
37
+ contentType: uploadOptions?.fileType ?? file.type,
38
+ prefix: uploadOptions?.filePrefix,
39
+ suffix: uploadOptions?.fileSuffix,
40
+ size: uploadOptions?.fileSize,
41
+ extension: uploadOptions?.fileExtension,
42
+ fileName: uploadOptions?.fileName,
43
+ expiration: uploadOptions?.fileExpiration,
44
+ acl: uploadOptions?.fileAcl
45
+ };
46
+ metadata.abortSignal.addEventListener("abort", () => {
47
+ this.uploadState.get(file)?.request?.abort();
48
+ });
49
+ }
50
+ const mutation = GenerateUploadUrlMutationBuilder.buildQuery(parameters);
51
+ try {
52
+ const response = await options.contentApiClient.sendRequest(mutation);
53
+ const responseData = response.data;
54
+ const limit = pLimit(this.options.concurrency ?? 5);
55
+ const promises = [];
56
+ for (const [file] of files) {
57
+ promises.push(limit(() => this.uploadSingleFile(file, responseData, options)));
58
+ }
59
+ await Promise.all(promises);
60
+ } catch (error) {
61
+ if (error instanceof FileUploadError) {
62
+ const fileUploadError = error;
63
+ options.onError(Array.from(files).map(([file]) => [file, fileUploadError]));
64
+ } else {
65
+ throw error;
66
+ }
67
+ }
68
+ }
69
+ uploadSingleFile(file, responseData, { onProgress, onError, onSuccess }) {
70
+ return new Promise(async (resolve, reject) => {
71
+ const fileState = this.uploadState.get(file);
72
+ const datumBody = responseData[S3FileUploader.formatFullAlias(fileState.alias)];
73
+ const uploadRequestBody = await readFileAsArrayBuffer(file);
74
+ const xhr = new XMLHttpRequest();
75
+ fileState.request = xhr;
76
+ xhr.open(datumBody.method, datumBody.url);
77
+ for (const header of datumBody.headers) {
78
+ xhr.setRequestHeader(header.key, header.value);
79
+ }
80
+ xhr.addEventListener("load", () => {
81
+ const successMetadata = {
82
+ fileUrl: datumBody.publicUrl
83
+ };
84
+ onSuccess([[file, successMetadata]]);
85
+ resolve();
86
+ });
87
+ xhr.addEventListener("error", (e) => {
88
+ onError([file]);
89
+ reject(e);
90
+ });
91
+ xhr.upload?.addEventListener("progress", (e) => {
92
+ onProgress([
93
+ [
94
+ file,
95
+ {
96
+ progress: e.loaded / e.total
97
+ }
98
+ ]
99
+ ]);
100
+ });
101
+ xhr.send(uploadRequestBody);
102
+ });
103
+ }
104
+ }
105
+ export {
106
+ S3FileUploader
107
+ };
108
+ //# sourceMappingURL=S3FileUploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3FileUploader.js","sources":["../../../../src/content/upload/S3FileUploader.ts"],"sourcesContent":["import pLimit from 'p-limit'\nimport { readFileAsArrayBuffer } from '../../utils'\nimport { FileUploadError } from './FileUploadError'\nimport type { FileUploader, FileUploaderInitializeOptions } from './FileUploader'\nimport { GenerateUploadUrlMutationBuilder } from './GenerateUploadUrlMutationBuilder'\nimport type { UploadedFileMetadata } from './UploadedFileMetadata'\n\ninterface S3UploadState {\n\trequest?: XMLHttpRequest\n\talias: number\n}\n\nclass S3FileUploader implements FileUploader<S3FileUploader.SuccessMetadata> {\n\tprivate readonly uploadState: WeakMap<File, S3UploadState>\n\n\tpublic constructor(public readonly options: S3FileUploader.Options = {}) {\n\t\tthis.uploadState = new WeakMap()\n\t}\n\n\tprivate generateNewAlias = (() => {\n\t\tlet alias = 1\n\t\treturn () => alias++\n\t})()\n\n\tprivate static formatFullAlias(alias: number) {\n\t\treturn `file${alias}`\n\t}\n\n\tpublic async upload(\n\t\tfiles: Map<File, UploadedFileMetadata>,\n\t\toptions: FileUploaderInitializeOptions,\n\t) {\n\t\tconst parameters: GenerateUploadUrlMutationBuilder.MutationParameters = {}\n\n\t\tfor (const [file, metadata] of files) {\n\t\t\tif (this.uploadState.has(file)) {\n\t\t\t\tconst uploadState = this.uploadState.get(file)!\n\t\t\t\tuploadState.request?.abort()\n\t\t\t}\n\n\t\t\tconst alias = this.generateNewAlias()\n\t\t\tthis.uploadState.set(file, {\n\t\t\t\talias,\n\t\t\t})\n\n\t\t\tconst uploadOptions = this.options.getUploadOptions?.(file)\n\n\t\t\tparameters[S3FileUploader.formatFullAlias(alias)] = {\n\t\t\t\tcontentType: uploadOptions?.fileType ?? file.type,\n\t\t\t\tprefix: uploadOptions?.filePrefix,\n\t\t\t\tsuffix: uploadOptions?.fileSuffix,\n\t\t\t\tsize: uploadOptions?.fileSize,\n\t\t\t\textension: uploadOptions?.fileExtension,\n\t\t\t\tfileName: uploadOptions?.fileName,\n\t\t\t\texpiration: uploadOptions?.fileExpiration,\n\t\t\t\tacl: uploadOptions?.fileAcl,\n\t\t\t}\n\n\t\t\tmetadata.abortSignal.addEventListener('abort', () => {\n\t\t\t\tthis.uploadState.get(file)?.request?.abort()\n\t\t\t})\n\t\t}\n\n\t\tconst mutation = GenerateUploadUrlMutationBuilder.buildQuery(parameters)\n\t\ttry {\n\t\t\tconst response = await options.contentApiClient.sendRequest<{ data: GenerateUploadUrlMutationBuilder.MutationResponse }>(mutation)\n\t\t\tconst responseData = response.data\n\t\t\tconst limit = pLimit(this.options.concurrency ?? 5)\n\t\t\tconst promises: Promise<void>[] = []\n\t\t\tfor (const [file] of files) {\n\t\t\t\tpromises.push(limit(() => this.uploadSingleFile(file, responseData, options)))\n\t\t\t}\n\t\t\tawait Promise.all(promises)\n\t\t} catch (error) {\n\t\t\tif (error instanceof FileUploadError) {\n\t\t\t\tconst fileUploadError = error\n\t\t\t\toptions.onError(Array.from(files).map(([file]) => [file, fileUploadError]))\n\n\t\t\t} else {\n\t\t\t\tthrow error\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate uploadSingleFile(\n\t\tfile: File,\n\t\tresponseData: GenerateUploadUrlMutationBuilder.MutationResponse,\n\t\t{ onProgress, onError, onSuccess }: FileUploaderInitializeOptions,\n\t) {\n\t\treturn new Promise<void>(async (resolve, reject) => {\n\t\t\tconst fileState = this.uploadState.get(file)!\n\t\t\tconst datumBody = responseData[S3FileUploader.formatFullAlias(fileState.alias)]\n\t\t\tconst uploadRequestBody = await readFileAsArrayBuffer(file)\n\t\t\tconst xhr = new XMLHttpRequest()\n\n\t\t\tfileState.request = xhr\n\n\t\t\txhr.open(datumBody.method, datumBody.url)\n\n\t\t\tfor (const header of datumBody.headers) {\n\t\t\t\txhr.setRequestHeader(header.key, header.value)\n\t\t\t}\n\t\t\txhr.addEventListener('load', () => {\n\t\t\t\tconst successMetadata: S3FileUploader.SuccessMetadata = {\n\t\t\t\t\tfileUrl: datumBody.publicUrl,\n\t\t\t\t}\n\t\t\t\tonSuccess([[file, successMetadata]])\n\t\t\t\tresolve()\n\t\t\t})\n\t\t\txhr.addEventListener('error', e => {\n\t\t\t\tonError([file])\n\t\t\t\treject(e)\n\t\t\t})\n\t\t\txhr.upload?.addEventListener('progress', e => {\n\t\t\t\tonProgress([\n\t\t\t\t\t[\n\t\t\t\t\t\tfile,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprogress: e.loaded / e.total,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t])\n\t\t\t})\n\t\t\txhr.send(uploadRequestBody)\n\t\t})\n\t}\n}\n\nnamespace S3FileUploader {\n\texport interface SuccessMetadata {\n\t\tfileUrl: string\n\t}\n\n\texport interface Options {\n\t\tgetUploadOptions?: (file: File) => S3UploadOptions\n\t\tconcurrency?: number\n\t}\n\n\texport interface S3UploadOptions {\n\t\tfileType?: GenerateUploadUrlMutationBuilder.FileParameters['contentType']\n\t\tfileExpiration?: number\n\t\tfileSize?: number\n\t\tfilePrefix?: string\n\t\tfileSuffix?: string\n\t\tfileName?: string\n\t\tfileExtension?: string\n\t\tfileAcl?: GenerateUploadUrlMutationBuilder.Acl\n\t}\n}\n\nexport { S3FileUploader }\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { CrudQueryBuilderError } from "./CrudQueryBuilderError.js";
2
+ import { ReadBuilder } from "./ReadBuilder.js";
3
+ import { WriteBuilder } from "./WriteBuilder.js";
4
+ import { RootObjectBuilder } from "../graphQlBuilder/RootObjectBuilder.js";
5
+ import { QueryBuilder } from "../graphQlBuilder/QueryBuilder.js";
6
+ import { isEmptyObject } from "../utils/isEmptyObject.js";
7
+ import { ObjectBuilder } from "../graphQlBuilder/ObjectBuilder.js";
8
+ class CrudQueryBuilder {
9
+ constructor(type = void 0, rootObjectBuilder = new RootObjectBuilder()) {
10
+ this.type = type;
11
+ this.rootObjectBuilder = rootObjectBuilder;
12
+ }
13
+ fragment(name, typeName, query) {
14
+ const readBuilder = ReadBuilder.instantiateFromFactory(query);
15
+ const objectBuilder = readBuilder.objectBuilder.name(typeName);
16
+ return new CrudQueryBuilder(this.type, this.rootObjectBuilder.fragment(name, objectBuilder));
17
+ }
18
+ list(name, query, alias) {
19
+ if (this.type === "mutation") {
20
+ throw new CrudQueryBuilderError("Cannot combine queries and mutations");
21
+ }
22
+ name = `list${name}`;
23
+ query = ReadBuilder.instantiateFromFactory(query);
24
+ const [objectName, objectBuilder] = typeof alias === "string" ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder];
25
+ return new CrudQueryBuilder("query", this.rootObjectBuilder.object(objectName, objectBuilder));
26
+ }
27
+ paginate(name, query, alias) {
28
+ if (this.type === "mutation") {
29
+ throw new CrudQueryBuilderError("Cannot combine queries and mutations");
30
+ }
31
+ name = `paginate${name}`;
32
+ query = ReadBuilder.instantiateFromFactory(query);
33
+ const [objectName, objectBuilder] = typeof alias === "string" ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder];
34
+ return new CrudQueryBuilder("query", this.rootObjectBuilder.object(objectName, objectBuilder));
35
+ }
36
+ get(name, query, alias) {
37
+ if (this.type === "mutation") {
38
+ throw new CrudQueryBuilderError("Cannot combine queries and mutations");
39
+ }
40
+ name = `get${name}`;
41
+ query = ReadBuilder.instantiateFromFactory(query);
42
+ const [objectName, objectBuilder] = typeof alias === "string" ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder];
43
+ return new CrudQueryBuilder("query", this.rootObjectBuilder.object(objectName, objectBuilder));
44
+ }
45
+ update(name, query, alias) {
46
+ if (this.type === "query") {
47
+ throw new CrudQueryBuilderError("Cannot combine queries and mutations");
48
+ }
49
+ name = `update${name}`;
50
+ query = WriteBuilder.instantiateFromFactory(query);
51
+ if (isEmptyObject(query.objectBuilder.args.data)) {
52
+ return this;
53
+ }
54
+ const [objectName, objectBuilder] = typeof alias === "string" ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder];
55
+ return new CrudQueryBuilder("mutation", this.rootObjectBuilder.object(objectName, objectBuilder));
56
+ }
57
+ create(name, query, alias) {
58
+ if (this.type === "query") {
59
+ throw new CrudQueryBuilderError("Cannot combine queries and mutations");
60
+ }
61
+ name = `create${name}`;
62
+ query = WriteBuilder.instantiateFromFactory(query);
63
+ if (isEmptyObject(query.objectBuilder.args.data)) {
64
+ return this;
65
+ }
66
+ const [objectName, objectBuilder] = typeof alias === "string" ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder];
67
+ return new CrudQueryBuilder("mutation", this.rootObjectBuilder.object(objectName, objectBuilder));
68
+ }
69
+ delete(name, query, alias) {
70
+ if (this.type === "query") {
71
+ throw new CrudQueryBuilderError("Cannot combine queries and mutations");
72
+ }
73
+ name = `delete${name}`;
74
+ query = WriteBuilder.instantiateFromFactory(query);
75
+ const [objectName, objectBuilder] = typeof alias === "string" ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder];
76
+ return new CrudQueryBuilder("mutation", this.rootObjectBuilder.object(objectName, objectBuilder));
77
+ }
78
+ inTransaction(alias = "transaction", options = {}) {
79
+ const objectBuilder = new ObjectBuilder(
80
+ ["ok", "errorMessage"],
81
+ { ...this.rootObjectBuilder.objects },
82
+ { options },
83
+ void 0,
84
+ void 0,
85
+ "transaction"
86
+ );
87
+ return new CrudQueryBuilder(this.type, new RootObjectBuilder({ [alias]: objectBuilder }, this.rootObjectBuilder.fragmentDefinitions));
88
+ }
89
+ getGql() {
90
+ const builder = new QueryBuilder();
91
+ switch (this.type) {
92
+ case "mutation":
93
+ return builder.mutation(this.rootObjectBuilder);
94
+ case "query":
95
+ return builder.query(this.rootObjectBuilder);
96
+ default:
97
+ throw new CrudQueryBuilderError(`Invalid type ${this.type}`);
98
+ }
99
+ }
100
+ }
101
+ export {
102
+ CrudQueryBuilder
103
+ };
104
+ //# sourceMappingURL=CrudQueryBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrudQueryBuilder.js","sources":["../../../src/crudQueryBuilder/CrudQueryBuilder.ts"],"sourcesContent":["import { ObjectBuilder, QueryBuilder, RootObjectBuilder } from '../graphQlBuilder'\nimport { isEmptyObject } from '../utils'\nimport { CrudQueryBuilderError } from './CrudQueryBuilderError'\nimport { ReadBuilder } from './ReadBuilder'\nimport type {\n\tCreateMutationArguments,\n\tCreateMutationFields,\n\tDeleteMutationArguments,\n\tDeleteMutationFields,\n\tGetQueryArguments,\n\tListQueryArguments,\n\tMutations,\n\tPaginateQueryArguments,\n\tQueries,\n\tUpdateMutationArguments,\n\tUpdateMutationFields,\n\tWriteOperation,\n} from './types'\nimport { WriteBuilder } from './WriteBuilder'\n\nexport class CrudQueryBuilder {\n\tconstructor(\n\t\tprivate type: undefined | 'query' | 'mutation' = undefined,\n\t\tprivate rootObjectBuilder: RootObjectBuilder = new RootObjectBuilder(),\n\t) {}\n\n\tpublic fragment(name: string, typeName: string, query: ReadBuilder.BuilderFactory<never>): CrudQueryBuilder {\n\t\tconst readBuilder = ReadBuilder.instantiateFromFactory(query)\n\t\tconst objectBuilder = readBuilder.objectBuilder.name(typeName)\n\n\t\treturn new CrudQueryBuilder(this.type, this.rootObjectBuilder.fragment(name, objectBuilder))\n\t}\n\n\tpublic list(\n\t\tname: string,\n\t\tquery: ReadBuilder.BuilderFactory<ListQueryArguments>,\n\t\talias?: string,\n\t): Omit<CrudQueryBuilder, Mutations> {\n\t\tif (this.type === 'mutation') {\n\t\t\tthrow new CrudQueryBuilderError('Cannot combine queries and mutations')\n\t\t}\n\t\tname = `list${name}`\n\t\tquery = ReadBuilder.instantiateFromFactory(query)\n\n\t\tconst [objectName, objectBuilder] =\n\t\t\ttypeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]\n\n\t\treturn new CrudQueryBuilder('query', this.rootObjectBuilder.object(objectName, objectBuilder))\n\t}\n\n\tpublic paginate(\n\t\tname: string,\n\t\tquery: ReadBuilder.BuilderFactory<PaginateQueryArguments>,\n\t\talias?: string,\n\t): Omit<CrudQueryBuilder, Mutations> {\n\t\tif (this.type === 'mutation') {\n\t\t\tthrow new CrudQueryBuilderError('Cannot combine queries and mutations')\n\t\t}\n\t\tname = `paginate${name}`\n\t\tquery = ReadBuilder.instantiateFromFactory(query)\n\n\t\tconst [objectName, objectBuilder] =\n\t\t\ttypeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]\n\n\t\treturn new CrudQueryBuilder('query', this.rootObjectBuilder.object(objectName, objectBuilder))\n\t}\n\n\tpublic get(\n\t\tname: string,\n\t\tquery: ReadBuilder.BuilderFactory<GetQueryArguments>,\n\t\talias?: string,\n\t): Omit<CrudQueryBuilder, Mutations> {\n\t\tif (this.type === 'mutation') {\n\t\t\tthrow new CrudQueryBuilderError('Cannot combine queries and mutations')\n\t\t}\n\t\tname = `get${name}`\n\t\tquery = ReadBuilder.instantiateFromFactory(query)\n\n\t\tconst [objectName, objectBuilder] =\n\t\t\ttypeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]\n\n\t\treturn new CrudQueryBuilder('query', this.rootObjectBuilder.object(objectName, objectBuilder))\n\t}\n\n\tpublic update(\n\t\tname: string,\n\t\tquery: WriteBuilder.BuilderFactory<UpdateMutationArguments, UpdateMutationFields, WriteOperation.Update>,\n\t\talias?: string,\n\t): Omit<CrudQueryBuilder, Queries> {\n\t\tif (this.type === 'query') {\n\t\t\tthrow new CrudQueryBuilderError('Cannot combine queries and mutations')\n\t\t}\n\t\tname = `update${name}`\n\t\tquery = WriteBuilder.instantiateFromFactory(query)\n\n\t\tif (isEmptyObject(query.objectBuilder.args.data)) {\n\t\t\treturn this\n\t\t}\n\n\t\tconst [objectName, objectBuilder] =\n\t\t\ttypeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]\n\n\t\treturn new CrudQueryBuilder('mutation', this.rootObjectBuilder.object(objectName, objectBuilder))\n\t}\n\n\tpublic create(\n\t\tname: string,\n\t\tquery: WriteBuilder.BuilderFactory<CreateMutationArguments, CreateMutationFields, WriteOperation.Create>,\n\t\talias?: string,\n\t): Omit<CrudQueryBuilder, Queries> {\n\t\tif (this.type === 'query') {\n\t\t\tthrow new CrudQueryBuilderError('Cannot combine queries and mutations')\n\t\t}\n\t\tname = `create${name}`\n\t\tquery = WriteBuilder.instantiateFromFactory(query)\n\n\t\tif (isEmptyObject(query.objectBuilder.args.data)) {\n\t\t\treturn this\n\t\t}\n\n\t\tconst [objectName, objectBuilder] =\n\t\t\ttypeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]\n\n\t\treturn new CrudQueryBuilder('mutation', this.rootObjectBuilder.object(objectName, objectBuilder))\n\t}\n\n\tpublic delete(\n\t\tname: string,\n\t\tquery: WriteBuilder.BuilderFactory<DeleteMutationArguments, DeleteMutationFields, WriteOperation.Delete>,\n\t\talias?: string,\n\t): Omit<CrudQueryBuilder, Queries> {\n\t\tif (this.type === 'query') {\n\t\t\tthrow new CrudQueryBuilderError('Cannot combine queries and mutations')\n\t\t}\n\t\tname = `delete${name}`\n\t\tquery = WriteBuilder.instantiateFromFactory(query)\n\n\t\tconst [objectName, objectBuilder] =\n\t\t\ttypeof alias === 'string' ? [alias, query.objectBuilder.name(name)] : [name, query.objectBuilder]\n\n\t\treturn new CrudQueryBuilder('mutation', this.rootObjectBuilder.object(objectName, objectBuilder))\n\t}\n\n\tpublic inTransaction(alias: string = 'transaction', options: { deferForeignKeyConstraints?: boolean } = {}): CrudQueryBuilder {\n\t\tconst objectBuilder = new ObjectBuilder(\n\t\t\t['ok', 'errorMessage'],\n\t\t\t{ ...this.rootObjectBuilder.objects },\n\t\t\t{ options },\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\t'transaction',\n\t\t)\n\n\t\treturn new CrudQueryBuilder(this.type, new RootObjectBuilder({ [alias]: objectBuilder }, this.rootObjectBuilder.fragmentDefinitions))\n\t}\n\n\tgetGql(): string {\n\t\tconst builder = new QueryBuilder()\n\t\tswitch (this.type) {\n\t\t\tcase 'mutation':\n\t\t\t\treturn builder.mutation(this.rootObjectBuilder)\n\t\t\tcase 'query':\n\t\t\t\treturn builder.query(this.rootObjectBuilder)\n\t\t\tdefault:\n\t\t\t\tthrow new CrudQueryBuilderError(`Invalid type ${this.type}`)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AAoBO,MAAM,iBAAiB;AAAA,EAC7B,YACS,OAAyC,QACzC,oBAAuC,IAAI,qBAClD;AAFO,SAAA,OAAA;AACA,SAAA,oBAAA;AAAA,EACN;AAAA,EAEI,SAAS,MAAc,UAAkB,OAA4D;AACrG,UAAA,cAAc,YAAY,uBAAuB,KAAK;AAC5D,UAAM,gBAAgB,YAAY,cAAc,KAAK,QAAQ;AAEtD,WAAA,IAAI,iBAAiB,KAAK,MAAM,KAAK,kBAAkB,SAAS,MAAM,aAAa,CAAC;AAAA,EAC5F;AAAA,EAEO,KACN,MACA,OACA,OACoC;AAChC,QAAA,KAAK,SAAS,YAAY;AACvB,YAAA,IAAI,sBAAsB,sCAAsC;AAAA,IACvE;AACA,WAAO,OAAO;AACN,YAAA,YAAY,uBAAuB,KAAK;AAEhD,UAAM,CAAC,YAAY,aAAa,IAC/B,OAAO,UAAU,WAAW,CAAC,OAAO,MAAM,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,aAAa;AAE1F,WAAA,IAAI,iBAAiB,SAAS,KAAK,kBAAkB,OAAO,YAAY,aAAa,CAAC;AAAA,EAC9F;AAAA,EAEO,SACN,MACA,OACA,OACoC;AAChC,QAAA,KAAK,SAAS,YAAY;AACvB,YAAA,IAAI,sBAAsB,sCAAsC;AAAA,IACvE;AACA,WAAO,WAAW;AACV,YAAA,YAAY,uBAAuB,KAAK;AAEhD,UAAM,CAAC,YAAY,aAAa,IAC/B,OAAO,UAAU,WAAW,CAAC,OAAO,MAAM,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,aAAa;AAE1F,WAAA,IAAI,iBAAiB,SAAS,KAAK,kBAAkB,OAAO,YAAY,aAAa,CAAC;AAAA,EAC9F;AAAA,EAEO,IACN,MACA,OACA,OACoC;AAChC,QAAA,KAAK,SAAS,YAAY;AACvB,YAAA,IAAI,sBAAsB,sCAAsC;AAAA,IACvE;AACA,WAAO,MAAM;AACL,YAAA,YAAY,uBAAuB,KAAK;AAEhD,UAAM,CAAC,YAAY,aAAa,IAC/B,OAAO,UAAU,WAAW,CAAC,OAAO,MAAM,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,aAAa;AAE1F,WAAA,IAAI,iBAAiB,SAAS,KAAK,kBAAkB,OAAO,YAAY,aAAa,CAAC;AAAA,EAC9F;AAAA,EAEO,OACN,MACA,OACA,OACkC;AAC9B,QAAA,KAAK,SAAS,SAAS;AACpB,YAAA,IAAI,sBAAsB,sCAAsC;AAAA,IACvE;AACA,WAAO,SAAS;AACR,YAAA,aAAa,uBAAuB,KAAK;AAEjD,QAAI,cAAc,MAAM,cAAc,KAAK,IAAI,GAAG;AAC1C,aAAA;AAAA,IACR;AAEA,UAAM,CAAC,YAAY,aAAa,IAC/B,OAAO,UAAU,WAAW,CAAC,OAAO,MAAM,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,aAAa;AAE1F,WAAA,IAAI,iBAAiB,YAAY,KAAK,kBAAkB,OAAO,YAAY,aAAa,CAAC;AAAA,EACjG;AAAA,EAEO,OACN,MACA,OACA,OACkC;AAC9B,QAAA,KAAK,SAAS,SAAS;AACpB,YAAA,IAAI,sBAAsB,sCAAsC;AAAA,IACvE;AACA,WAAO,SAAS;AACR,YAAA,aAAa,uBAAuB,KAAK;AAEjD,QAAI,cAAc,MAAM,cAAc,KAAK,IAAI,GAAG;AAC1C,aAAA;AAAA,IACR;AAEA,UAAM,CAAC,YAAY,aAAa,IAC/B,OAAO,UAAU,WAAW,CAAC,OAAO,MAAM,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,aAAa;AAE1F,WAAA,IAAI,iBAAiB,YAAY,KAAK,kBAAkB,OAAO,YAAY,aAAa,CAAC;AAAA,EACjG;AAAA,EAEO,OACN,MACA,OACA,OACkC;AAC9B,QAAA,KAAK,SAAS,SAAS;AACpB,YAAA,IAAI,sBAAsB,sCAAsC;AAAA,IACvE;AACA,WAAO,SAAS;AACR,YAAA,aAAa,uBAAuB,KAAK;AAEjD,UAAM,CAAC,YAAY,aAAa,IAC/B,OAAO,UAAU,WAAW,CAAC,OAAO,MAAM,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,aAAa;AAE1F,WAAA,IAAI,iBAAiB,YAAY,KAAK,kBAAkB,OAAO,YAAY,aAAa,CAAC;AAAA,EACjG;AAAA,EAEO,cAAc,QAAgB,eAAe,UAAoD,CAAA,GAAsB;AAC7H,UAAM,gBAAgB,IAAI;AAAA,MACzB,CAAC,MAAM,cAAc;AAAA,MACrB,EAAE,GAAG,KAAK,kBAAkB,QAAQ;AAAA,MACpC,EAAE,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGD,WAAO,IAAI,iBAAiB,KAAK,MAAM,IAAI,kBAAkB,EAAE,CAAC,KAAK,GAAG,cAAc,GAAG,KAAK,kBAAkB,mBAAmB,CAAC;AAAA,EACrI;AAAA,EAEA,SAAiB;AACV,UAAA,UAAU,IAAI;AACpB,YAAQ,KAAK,MAAM;AAAA,MAClB,KAAK;AACG,eAAA,QAAQ,SAAS,KAAK,iBAAiB;AAAA,MAC/C,KAAK;AACG,eAAA,QAAQ,MAAM,KAAK,iBAAiB;AAAA,MAC5C;AACC,cAAM,IAAI,sBAAsB,gBAAgB,KAAK,MAAM;AAAA,IAC7D;AAAA,EACD;AACD;"}
@@ -0,0 +1,6 @@
1
+ class CrudQueryBuilderError extends Error {
2
+ }
3
+ export {
4
+ CrudQueryBuilderError
5
+ };
6
+ //# sourceMappingURL=CrudQueryBuilderError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrudQueryBuilderError.js","sources":["../../../src/crudQueryBuilder/CrudQueryBuilderError.ts"],"sourcesContent":["export class CrudQueryBuilderError extends Error {}\n"],"names":[],"mappings":"AAAO,MAAM,8BAA8B,MAAM;AAAC;"}
@@ -0,0 +1,15 @@
1
+ class ErrorsRelationBuilder {
2
+ static errorsRelation(objectBuilder) {
3
+ return objectBuilder.object(
4
+ "errors",
5
+ (builder) => builder.field("type").field("message").object(
6
+ "path",
7
+ (builder2) => builder2.inlineFragment("_FieldPathFragment", (builder3) => builder3.field("field")).inlineFragment("_IndexPathFragment", (builder3) => builder3.field("index").field("alias"))
8
+ )
9
+ );
10
+ }
11
+ }
12
+ export {
13
+ ErrorsRelationBuilder
14
+ };
15
+ //# sourceMappingURL=ErrorsRelationBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorsRelationBuilder.js","sources":["../../../src/crudQueryBuilder/ErrorsRelationBuilder.ts"],"sourcesContent":["import type { ObjectBuilder } from '../graphQlBuilder'\n\nexport class ErrorsRelationBuilder {\n\tpublic static errorsRelation(objectBuilder: ObjectBuilder): ObjectBuilder {\n\t\treturn objectBuilder.object('errors', builder =>\n\t\t\tbuilder\n\t\t\t\t.field('type')\n\t\t\t\t.field('message')\n\t\t\t\t.object('path', builder =>\n\t\t\t\t\tbuilder\n\t\t\t\t\t\t.inlineFragment('_FieldPathFragment', builder => builder.field('field'))\n\t\t\t\t\t\t.inlineFragment('_IndexPathFragment', builder => builder.field('index').field('alias')),\n\t\t\t\t),\n\t\t)\n\t}\n}\n"],"names":["builder"],"mappings":"AAEO,MAAM,sBAAsB;AAAA,EAClC,OAAc,eAAe,eAA6C;AACzE,WAAO,cAAc;AAAA,MAAO;AAAA,MAAU,aACrC,QACE,MAAM,MAAM,EACZ,MAAM,SAAS,EACf;AAAA,QAAO;AAAA,QAAQ,CAAAA,aACfA,SACE,eAAe,sBAAsB,CAAAA,aAAWA,SAAQ,MAAM,OAAO,CAAC,EACtE,eAAe,sBAAsB,CAAAA,aAAWA,SAAQ,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,MACxF;AAAA,IAAA;AAAA,EAEH;AACD;"}
@@ -0,0 +1,70 @@
1
+ import { ObjectBuilder } from "../graphQlBuilder/ObjectBuilder.js";
2
+ class ReadBuilder {
3
+ constructor(objectBuilder = new ObjectBuilder()) {
4
+ this.objectBuilder = objectBuilder;
5
+ }
6
+ static instantiate(objectBuilder = new ObjectBuilder()) {
7
+ return new ReadBuilder(objectBuilder);
8
+ }
9
+ static instantiateFromFactory(builder) {
10
+ if (typeof builder === "function") {
11
+ return builder(ReadBuilder.instantiate());
12
+ }
13
+ return builder;
14
+ }
15
+ instantiate(objectBuilder = new ObjectBuilder()) {
16
+ return ReadBuilder.instantiate(objectBuilder);
17
+ }
18
+ by(by) {
19
+ return this.instantiate(this.objectBuilder.argument("by", by));
20
+ }
21
+ filter(where) {
22
+ return this.instantiate(this.objectBuilder.argument("filter", where));
23
+ }
24
+ orderBy(orderBy) {
25
+ return this.instantiate(this.objectBuilder.argument("orderBy", orderBy));
26
+ }
27
+ offset(offset) {
28
+ return this.instantiate(this.objectBuilder.argument("offset", offset));
29
+ }
30
+ limit(limit) {
31
+ return this.instantiate(this.objectBuilder.argument("limit", limit));
32
+ }
33
+ skip(offset) {
34
+ return this.instantiate(this.objectBuilder.argument("skip", offset));
35
+ }
36
+ first(limit) {
37
+ return this.instantiate(this.objectBuilder.argument("first", limit));
38
+ }
39
+ column(name) {
40
+ return this.instantiate(this.objectBuilder.field(name));
41
+ }
42
+ inlineFragment(typeName, builder) {
43
+ builder = ReadBuilder.instantiateFromFactory(builder);
44
+ return this.instantiate(this.objectBuilder.inlineFragment(typeName, builder.objectBuilder));
45
+ }
46
+ applyFragment(fragmentName) {
47
+ return this.instantiate(this.objectBuilder.applyFragment(fragmentName));
48
+ }
49
+ reductionRelation(name, builder, alias) {
50
+ return this.relation(name, builder, alias);
51
+ }
52
+ hasOneRelation(name, builder, alias) {
53
+ return this.relation(name, builder, alias);
54
+ }
55
+ hasManyRelation(name, builder, alias) {
56
+ return this.relation(name, builder, alias);
57
+ }
58
+ anyRelation(name, builder, alias) {
59
+ return this.relation(name, builder, alias);
60
+ }
61
+ relation(name, builder, alias) {
62
+ builder = ReadBuilder.instantiateFromFactory(builder);
63
+ const [objectName, objectBuilder] = typeof alias === "string" ? [alias, builder.objectBuilder.name(name)] : [name, builder.objectBuilder];
64
+ return this.instantiate(this.objectBuilder.object(objectName, objectBuilder));
65
+ }
66
+ }
67
+ export {
68
+ ReadBuilder
69
+ };
70
+ //# sourceMappingURL=ReadBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadBuilder.js","sources":["../../../src/crudQueryBuilder/ReadBuilder.ts"],"sourcesContent":["import type { Input } from '@contember/schema'\nimport { GraphQlLiteral, ObjectBuilder } from '../graphQlBuilder'\nimport type { HasManyArguments, HasOneArguments, OrderDirection, ReadArguments, ReductionArguments } from './types'\n\nclass ReadBuilder<AllowedArgs extends ReadArguments = ReadArguments> {\n\tprotected constructor(public readonly objectBuilder: ObjectBuilder = new ObjectBuilder()) {}\n\n\tpublic static instantiate<AllowedArgs extends ReadArguments = ReadArguments>(\n\t\tobjectBuilder: ObjectBuilder = new ObjectBuilder(),\n\t): ReadBuilder.Builder<AllowedArgs> {\n\t\treturn new ReadBuilder<AllowedArgs>(objectBuilder)\n\t}\n\n\tpublic static instantiateFromFactory<AllowedArgs extends ReadArguments>(\n\t\tbuilder: ReadBuilder.BuilderFactory<AllowedArgs>,\n\t): ReadBuilder.Builder<never> {\n\t\tif (typeof builder === 'function') {\n\t\t\treturn builder(ReadBuilder.instantiate())\n\t\t}\n\t\treturn builder\n\t}\n\n\tprotected instantiate<AA extends ReadArguments = ReadArguments>(\n\t\tobjectBuilder: ObjectBuilder = new ObjectBuilder(),\n\t): ReadBuilder.Builder<AA> {\n\t\treturn ReadBuilder.instantiate<AA>(objectBuilder)\n\t}\n\n\tpublic by(by: Input.UniqueWhere<GraphQlLiteral>) {\n\t\treturn this.instantiate<Exclude<AllowedArgs, 'by'>>(this.objectBuilder.argument('by', by))\n\t}\n\n\tpublic filter(where: Input.Where<Input.Condition<Input.ColumnValue<GraphQlLiteral>>>) {\n\t\treturn this.instantiate<Exclude<AllowedArgs, 'filter'>>(this.objectBuilder.argument('filter', where))\n\t}\n\n\tpublic orderBy(orderBy: Input.OrderBy<OrderDirection>[]) {\n\t\treturn this.instantiate<Exclude<AllowedArgs, 'orderBy'>>(this.objectBuilder.argument('orderBy', orderBy))\n\t}\n\n\tpublic offset(offset: number) {\n\t\treturn this.instantiate<Exclude<AllowedArgs, 'offset'>>(this.objectBuilder.argument('offset', offset))\n\t}\n\n\tpublic limit(limit: number) {\n\t\treturn this.instantiate<Exclude<AllowedArgs, 'limit'>>(this.objectBuilder.argument('limit', limit))\n\t}\n\n\tpublic skip(offset: number) {\n\t\treturn this.instantiate<Exclude<AllowedArgs, 'skip'>>(this.objectBuilder.argument('skip', offset))\n\t}\n\n\tpublic first(limit: number) {\n\t\treturn this.instantiate<Exclude<AllowedArgs, 'first'>>(this.objectBuilder.argument('first', limit))\n\t}\n\n\tpublic column(name: string) {\n\t\treturn this.instantiate<AllowedArgs>(this.objectBuilder.field(name))\n\t}\n\n\tpublic inlineFragment(typeName: string, builder: ReadBuilder.BuilderFactory<never>) {\n\t\tbuilder = ReadBuilder.instantiateFromFactory(builder)\n\t\treturn this.instantiate<AllowedArgs>(this.objectBuilder.inlineFragment(typeName, builder.objectBuilder))\n\t}\n\n\tpublic applyFragment(fragmentName: string) {\n\t\treturn this.instantiate<AllowedArgs>(this.objectBuilder.applyFragment(fragmentName))\n\t}\n\n\tpublic reductionRelation(name: string, builder: ReadBuilder.BuilderFactory<ReductionArguments>, alias?: string) {\n\t\treturn this.relation(name, builder, alias)\n\t}\n\n\tpublic hasOneRelation(name: string, builder: ReadBuilder.BuilderFactory<HasOneArguments>, alias?: string) {\n\t\treturn this.relation(name, builder, alias)\n\t}\n\n\tpublic hasManyRelation(name: string, builder: ReadBuilder.BuilderFactory<HasManyArguments>, alias?: string) {\n\t\treturn this.relation(name, builder, alias)\n\t}\n\n\tpublic anyRelation(name: string, builder: ReadBuilder.BuilderFactory<never>, alias?: string) {\n\t\treturn this.relation(name, builder, alias)\n\t}\n\n\tprotected relation<A extends ReadArguments>(name: string, builder: ReadBuilder.BuilderFactory<A>, alias?: string) {\n\t\tbuilder = ReadBuilder.instantiateFromFactory(builder)\n\n\t\tconst [objectName, objectBuilder] =\n\t\t\ttypeof alias === 'string' ? [alias, builder.objectBuilder.name(name)] : [name, builder.objectBuilder]\n\n\t\treturn this.instantiate<AllowedArgs>(this.objectBuilder.object(objectName, objectBuilder))\n\t}\n}\n\nnamespace ReadBuilder {\n\texport type Builder<AllowedArgs extends ReadArguments> = Omit<\n\t\tReadBuilder<AllowedArgs>,\n\t\tExclude<ReadArguments, AllowedArgs>\n\t>\n\texport type BuilderFactory<AllowedArgs extends ReadArguments> =\n\t\t| Builder<never>\n\t\t| ((builder: Builder<AllowedArgs>) => Builder<never>)\n}\n\nexport { ReadBuilder }\n"],"names":[],"mappings":";AAIA,MAAM,YAA+D;AAAA,EAC1D,YAA4B,gBAA+B,IAAI,iBAAiB;AAApD,SAAA,gBAAA;AAAA,EAAqD;AAAA,EAE3F,OAAc,YACb,gBAA+B,IAAI,iBACA;AAC5B,WAAA,IAAI,YAAyB,aAAa;AAAA,EAClD;AAAA,EAEA,OAAc,uBACb,SAC6B;AACzB,QAAA,OAAO,YAAY,YAAY;AAC3B,aAAA,QAAQ,YAAY,YAAA,CAAa;AAAA,IACzC;AACO,WAAA;AAAA,EACR;AAAA,EAEU,YACT,gBAA+B,IAAI,iBACT;AACnB,WAAA,YAAY,YAAgB,aAAa;AAAA,EACjD;AAAA,EAEO,GAAG,IAAuC;AAChD,WAAO,KAAK,YAAwC,KAAK,cAAc,SAAS,MAAM,EAAE,CAAC;AAAA,EAC1F;AAAA,EAEO,OAAO,OAAwE;AACrF,WAAO,KAAK,YAA4C,KAAK,cAAc,SAAS,UAAU,KAAK,CAAC;AAAA,EACrG;AAAA,EAEO,QAAQ,SAA0C;AACxD,WAAO,KAAK,YAA6C,KAAK,cAAc,SAAS,WAAW,OAAO,CAAC;AAAA,EACzG;AAAA,EAEO,OAAO,QAAgB;AAC7B,WAAO,KAAK,YAA4C,KAAK,cAAc,SAAS,UAAU,MAAM,CAAC;AAAA,EACtG;AAAA,EAEO,MAAM,OAAe;AAC3B,WAAO,KAAK,YAA2C,KAAK,cAAc,SAAS,SAAS,KAAK,CAAC;AAAA,EACnG;AAAA,EAEO,KAAK,QAAgB;AAC3B,WAAO,KAAK,YAA0C,KAAK,cAAc,SAAS,QAAQ,MAAM,CAAC;AAAA,EAClG;AAAA,EAEO,MAAM,OAAe;AAC3B,WAAO,KAAK,YAA2C,KAAK,cAAc,SAAS,SAAS,KAAK,CAAC;AAAA,EACnG;AAAA,EAEO,OAAO,MAAc;AAC3B,WAAO,KAAK,YAAyB,KAAK,cAAc,MAAM,IAAI,CAAC;AAAA,EACpE;AAAA,EAEO,eAAe,UAAkB,SAA4C;AACzE,cAAA,YAAY,uBAAuB,OAAO;AAC7C,WAAA,KAAK,YAAyB,KAAK,cAAc,eAAe,UAAU,QAAQ,aAAa,CAAC;AAAA,EACxG;AAAA,EAEO,cAAc,cAAsB;AAC1C,WAAO,KAAK,YAAyB,KAAK,cAAc,cAAc,YAAY,CAAC;AAAA,EACpF;AAAA,EAEO,kBAAkB,MAAc,SAAyD,OAAgB;AAC/G,WAAO,KAAK,SAAS,MAAM,SAAS,KAAK;AAAA,EAC1C;AAAA,EAEO,eAAe,MAAc,SAAsD,OAAgB;AACzG,WAAO,KAAK,SAAS,MAAM,SAAS,KAAK;AAAA,EAC1C;AAAA,EAEO,gBAAgB,MAAc,SAAuD,OAAgB;AAC3G,WAAO,KAAK,SAAS,MAAM,SAAS,KAAK;AAAA,EAC1C;AAAA,EAEO,YAAY,MAAc,SAA4C,OAAgB;AAC5F,WAAO,KAAK,SAAS,MAAM,SAAS,KAAK;AAAA,EAC1C;AAAA,EAEU,SAAkC,MAAc,SAAwC,OAAgB;AACvG,cAAA,YAAY,uBAAuB,OAAO;AAEpD,UAAM,CAAC,YAAY,aAAa,IAC/B,OAAO,UAAU,WAAW,CAAC,OAAO,QAAQ,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,QAAQ,aAAa;AAErG,WAAO,KAAK,YAAyB,KAAK,cAAc,OAAO,YAAY,aAAa,CAAC;AAAA,EAC1F;AACD;"}
@@ -0,0 +1,18 @@
1
+ class ValidationRelationBuilder {
2
+ static validationRelation(objectBuilder) {
3
+ return objectBuilder.object(
4
+ "validation",
5
+ (builder) => builder.field("valid").object(
6
+ "errors",
7
+ (builder2) => builder2.object(
8
+ "path",
9
+ (builder3) => builder3.inlineFragment("_FieldPathFragment", (builder4) => builder4.field("field")).inlineFragment("_IndexPathFragment", (builder4) => builder4.field("index").field("alias"))
10
+ ).object("message", (builder3) => builder3.field("text"))
11
+ )
12
+ );
13
+ }
14
+ }
15
+ export {
16
+ ValidationRelationBuilder
17
+ };
18
+ //# sourceMappingURL=ValidationRelationBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationRelationBuilder.js","sources":["../../../src/crudQueryBuilder/ValidationRelationBuilder.ts"],"sourcesContent":["import type { ObjectBuilder } from '../graphQlBuilder'\n\nexport class ValidationRelationBuilder {\n\tpublic static validationRelation(objectBuilder: ObjectBuilder): ObjectBuilder {\n\t\treturn objectBuilder.object('validation', builder =>\n\t\t\tbuilder.field('valid').object('errors', builder =>\n\t\t\t\tbuilder\n\t\t\t\t\t.object('path', builder =>\n\t\t\t\t\t\tbuilder\n\t\t\t\t\t\t\t.inlineFragment('_FieldPathFragment', builder => builder.field('field'))\n\t\t\t\t\t\t\t.inlineFragment('_IndexPathFragment', builder => builder.field('index').field('alias')),\n\t\t\t\t\t)\n\t\t\t\t\t.object('message', builder => builder.field('text')),\n\t\t\t),\n\t\t)\n\t}\n}\n"],"names":["builder"],"mappings":"AAEO,MAAM,0BAA0B;AAAA,EACtC,OAAc,mBAAmB,eAA6C;AAC7E,WAAO,cAAc;AAAA,MAAO;AAAA,MAAc,CACzC,YAAA,QAAQ,MAAM,OAAO,EAAE;AAAA,QAAO;AAAA,QAAU,CAAAA,aACvCA,SACE;AAAA,UAAO;AAAA,UAAQ,CAAAA,aACfA,SACE,eAAe,sBAAsB,CAAAA,aAAWA,SAAQ,MAAM,OAAO,CAAC,EACtE,eAAe,sBAAsB,CAAAA,aAAWA,SAAQ,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC;AAAA,QAAA,EAEvF,OAAO,WAAW,CAAAA,aAAWA,SAAQ,MAAM,MAAM,CAAC;AAAA,MACrD;AAAA,IAAA;AAAA,EAEF;AACD;"}
@@ -0,0 +1,54 @@
1
+ import { ErrorsRelationBuilder } from "./ErrorsRelationBuilder.js";
2
+ import { ReadBuilder } from "./ReadBuilder.js";
3
+ import { ValidationRelationBuilder } from "./ValidationRelationBuilder.js";
4
+ import { WriteDataBuilder } from "./WriteDataBuilder.js";
5
+ import { ObjectBuilder } from "../graphQlBuilder/ObjectBuilder.js";
6
+ class WriteBuilder {
7
+ constructor(objectBuilder = new ObjectBuilder()) {
8
+ this.objectBuilder = objectBuilder;
9
+ }
10
+ static instantiate(objectBuilder = new ObjectBuilder()) {
11
+ return new WriteBuilder(objectBuilder);
12
+ }
13
+ static instantiateFromFactory(builder) {
14
+ if (typeof builder === "function") {
15
+ return builder(WriteBuilder.instantiate());
16
+ }
17
+ return builder;
18
+ }
19
+ data(data) {
20
+ const resolvedData = WriteDataBuilder.resolveData(data);
21
+ return WriteBuilder.instantiate(
22
+ resolvedData === void 0 ? this.objectBuilder : this.objectBuilder.argument("data", resolvedData)
23
+ );
24
+ }
25
+ by(by) {
26
+ return WriteBuilder.instantiate(this.objectBuilder.argument("by", by));
27
+ }
28
+ ok() {
29
+ return WriteBuilder.instantiate(this.objectBuilder.field("ok"));
30
+ }
31
+ errorMessage() {
32
+ return WriteBuilder.instantiate(this.objectBuilder.field("errorMessage"));
33
+ }
34
+ validation() {
35
+ return WriteBuilder.instantiate(
36
+ ValidationRelationBuilder.validationRelation(this.objectBuilder)
37
+ );
38
+ }
39
+ errors() {
40
+ return WriteBuilder.instantiate(
41
+ ErrorsRelationBuilder.errorsRelation(this.objectBuilder)
42
+ );
43
+ }
44
+ node(builder) {
45
+ const readBuilder = ReadBuilder.instantiateFromFactory(builder);
46
+ return WriteBuilder.instantiate(
47
+ this.objectBuilder.object("node", readBuilder.objectBuilder)
48
+ );
49
+ }
50
+ }
51
+ export {
52
+ WriteBuilder
53
+ };
54
+ //# sourceMappingURL=WriteBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteBuilder.js","sources":["../../../src/crudQueryBuilder/WriteBuilder.ts"],"sourcesContent":["import type { Input } from '@contember/schema'\nimport { GraphQlLiteral, ObjectBuilder } from '../graphQlBuilder'\nimport { ErrorsRelationBuilder } from './ErrorsRelationBuilder'\nimport { ReadBuilder } from './ReadBuilder'\nimport type { WriteArguments, WriteFields, WriteOperation } from './types'\nimport { ValidationRelationBuilder } from './ValidationRelationBuilder'\nimport { WriteDataBuilder } from './WriteDataBuilder'\n\nclass WriteBuilder<AA extends WriteArguments, AF extends WriteFields, Op extends WriteOperation.Operation> {\n\tprotected constructor(public readonly objectBuilder: ObjectBuilder = new ObjectBuilder()) {}\n\n\tpublic static instantiate<AA extends WriteArguments, AF extends WriteFields, Op extends WriteOperation.Operation>(\n\t\tobjectBuilder: ObjectBuilder = new ObjectBuilder(),\n\t): WriteBuilder.Builder<AA, AF, Op> {\n\t\treturn new WriteBuilder<AA, AF, Op>(objectBuilder)\n\t}\n\n\tpublic static instantiateFromFactory<\n\t\tAA extends WriteArguments,\n\t\tAF extends WriteFields,\n\t\tOp extends WriteOperation.Operation,\n\t>(builder: WriteBuilder.BuilderFactory<AA, AF, Op>): WriteBuilder.Builder<never, never, Op> {\n\t\tif (typeof builder === 'function') {\n\t\t\treturn builder(WriteBuilder.instantiate())\n\t\t}\n\t\treturn builder\n\t}\n\n\tpublic data<SubOp extends Op & WriteOperation.ContentfulOperation>(data: WriteDataBuilder.DataLike<SubOp>) {\n\t\tconst resolvedData = WriteDataBuilder.resolveData(data)\n\t\treturn WriteBuilder.instantiate<Exclude<AA, 'data'>, AF, Op>(\n\t\t\tresolvedData === undefined ? this.objectBuilder : this.objectBuilder.argument('data', resolvedData),\n\t\t)\n\t}\n\n\tpublic by(by: Input.UniqueWhere<GraphQlLiteral>) {\n\t\treturn WriteBuilder.instantiate<Exclude<AA, 'by'>, AF, Op>(this.objectBuilder.argument('by', by))\n\t}\n\n\tpublic ok() {\n\t\treturn WriteBuilder.instantiate<AA, Exclude<AF, 'ok'>, Op>(this.objectBuilder.field('ok'))\n\t}\n\n\tpublic errorMessage() {\n\t\treturn WriteBuilder.instantiate<AA, Exclude<AF, 'errorMessage'>, Op>(this.objectBuilder.field('errorMessage'))\n\t}\n\n\tpublic validation() {\n\t\treturn WriteBuilder.instantiate<AA, Exclude<AF, 'validation'>, Op>(\n\t\t\tValidationRelationBuilder.validationRelation(this.objectBuilder),\n\t\t)\n\t}\n\n\tpublic errors() {\n\t\treturn WriteBuilder.instantiate<AA, Exclude<AF, 'errors'>, Op>(\n\t\t\tErrorsRelationBuilder.errorsRelation(this.objectBuilder),\n\t\t)\n\t}\n\n\tpublic node(builder: ReadBuilder.BuilderFactory<never>) {\n\t\tconst readBuilder = ReadBuilder.instantiateFromFactory(builder)\n\t\treturn WriteBuilder.instantiate<AA, Exclude<AF, 'node'>, Op>(\n\t\t\tthis.objectBuilder.object('node', readBuilder.objectBuilder),\n\t\t)\n\t}\n}\n\nnamespace WriteBuilder {\n\texport type Builder<AA extends WriteArguments, AF extends WriteFields, Op extends WriteOperation.Operation> = Omit<\n\t\tOmit<WriteBuilder<AA, AF, Op>, Exclude<WriteArguments, AA>>,\n\t\tExclude<WriteFields, AF>\n\t>\n\n\texport type BuilderFactory<AA extends WriteArguments, AF extends WriteFields, Op extends WriteOperation.Operation> =\n\t\t| Builder<never, never, Op>\n\t\t| ((builder: Builder<AA, AF, Op>) => Builder<never, never, Op>)\n}\n\nexport { WriteBuilder }\n"],"names":[],"mappings":";;;;;AAQA,MAAM,aAAqG;AAAA,EAChG,YAA4B,gBAA+B,IAAI,iBAAiB;AAApD,SAAA,gBAAA;AAAA,EAAqD;AAAA,EAE3F,OAAc,YACb,gBAA+B,IAAI,iBACA;AAC5B,WAAA,IAAI,aAAyB,aAAa;AAAA,EAClD;AAAA,EAEA,OAAc,uBAIZ,SAA0F;AACvF,QAAA,OAAO,YAAY,YAAY;AAC3B,aAAA,QAAQ,aAAa,YAAA,CAAa;AAAA,IAC1C;AACO,WAAA;AAAA,EACR;AAAA,EAEO,KAA4D,MAAwC;AACpG,UAAA,eAAe,iBAAiB,YAAY,IAAI;AACtD,WAAO,aAAa;AAAA,MACnB,iBAAiB,SAAY,KAAK,gBAAgB,KAAK,cAAc,SAAS,QAAQ,YAAY;AAAA,IAAA;AAAA,EAEpG;AAAA,EAEO,GAAG,IAAuC;AAChD,WAAO,aAAa,YAAuC,KAAK,cAAc,SAAS,MAAM,EAAE,CAAC;AAAA,EACjG;AAAA,EAEO,KAAK;AACX,WAAO,aAAa,YAAuC,KAAK,cAAc,MAAM,IAAI,CAAC;AAAA,EAC1F;AAAA,EAEO,eAAe;AACrB,WAAO,aAAa,YAAiD,KAAK,cAAc,MAAM,cAAc,CAAC;AAAA,EAC9G;AAAA,EAEO,aAAa;AACnB,WAAO,aAAa;AAAA,MACnB,0BAA0B,mBAAmB,KAAK,aAAa;AAAA,IAAA;AAAA,EAEjE;AAAA,EAEO,SAAS;AACf,WAAO,aAAa;AAAA,MACnB,sBAAsB,eAAe,KAAK,aAAa;AAAA,IAAA;AAAA,EAEzD;AAAA,EAEO,KAAK,SAA4C;AACjD,UAAA,cAAc,YAAY,uBAAuB,OAAO;AAC9D,WAAO,aAAa;AAAA,MACnB,KAAK,cAAc,OAAO,QAAQ,YAAY,aAAa;AAAA,IAAA;AAAA,EAE7D;AACD;"}