@contember/client 2.0.0-alpha.4 → 2.0.0-alpha.40

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 (228) hide show
  1. package/api-extractor.json +3 -0
  2. package/dist/development/index.cjs +11 -38
  3. package/dist/development/index.cjs.map +1 -1
  4. package/dist/development/index.js +3 -33
  5. package/dist/development/index.js.map +1 -1
  6. package/dist/development/{content/upload → src}/GenerateUploadUrlMutationBuilder.cjs +9 -14
  7. package/dist/development/src/GenerateUploadUrlMutationBuilder.cjs.map +1 -0
  8. package/dist/development/{content/upload → src}/GenerateUploadUrlMutationBuilder.js +8 -13
  9. package/dist/development/src/GenerateUploadUrlMutationBuilder.js.map +1 -0
  10. package/dist/production/index.cjs +11 -38
  11. package/dist/production/index.cjs.map +1 -1
  12. package/dist/production/index.js +3 -33
  13. package/dist/production/index.js.map +1 -1
  14. package/dist/production/{content/upload → src}/GenerateUploadUrlMutationBuilder.cjs +9 -14
  15. package/dist/production/src/GenerateUploadUrlMutationBuilder.cjs.map +1 -0
  16. package/dist/production/{content/upload → src}/GenerateUploadUrlMutationBuilder.js +8 -13
  17. package/dist/production/src/GenerateUploadUrlMutationBuilder.js.map +1 -0
  18. package/dist/types/{content/upload/GenerateUploadUrlMutationBuilder.d.ts → GenerateUploadUrlMutationBuilder.d.ts} +1 -2
  19. package/dist/types/GenerateUploadUrlMutationBuilder.d.ts.map +1 -0
  20. package/dist/types/index.d.ts +2 -14
  21. package/dist/types/index.d.ts.map +1 -1
  22. package/dist/types/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +10 -18
  24. package/src/{content/upload/GenerateUploadUrlMutationBuilder.ts → GenerateUploadUrlMutationBuilder.ts} +3 -7
  25. package/src/index.ts +2 -19
  26. package/src/tsconfig.json +7 -1
  27. package/tests/cases/unit/generateUploadUrlMutationBuilder.spec.ts +77 -0
  28. package/tests/tsconfig.json +10 -0
  29. package/tsconfig.json +8 -0
  30. package/tsdoc.json +6 -0
  31. package/vitest.config.ts +3 -0
  32. package/dist/development/content/formatContentApiRelativeUrl.cjs +0 -5
  33. package/dist/development/content/formatContentApiRelativeUrl.cjs.map +0 -1
  34. package/dist/development/content/formatContentApiRelativeUrl.js +0 -5
  35. package/dist/development/content/formatContentApiRelativeUrl.js.map +0 -1
  36. package/dist/development/content/params/whereToFilter.cjs +0 -17
  37. package/dist/development/content/params/whereToFilter.cjs.map +0 -1
  38. package/dist/development/content/params/whereToFilter.js +0 -17
  39. package/dist/development/content/params/whereToFilter.js.map +0 -1
  40. package/dist/development/content/replaceGraphQlLiteral.cjs +0 -15
  41. package/dist/development/content/replaceGraphQlLiteral.cjs.map +0 -1
  42. package/dist/development/content/replaceGraphQlLiteral.js +0 -15
  43. package/dist/development/content/replaceGraphQlLiteral.js.map +0 -1
  44. package/dist/development/content/upload/FileUploadError.cjs +0 -10
  45. package/dist/development/content/upload/FileUploadError.cjs.map +0 -1
  46. package/dist/development/content/upload/FileUploadError.js +0 -10
  47. package/dist/development/content/upload/FileUploadError.js.map +0 -1
  48. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.cjs.map +0 -1
  49. package/dist/development/content/upload/GenerateUploadUrlMutationBuilder.js.map +0 -1
  50. package/dist/development/content/upload/S3FileUploader.cjs +0 -107
  51. package/dist/development/content/upload/S3FileUploader.cjs.map +0 -1
  52. package/dist/development/content/upload/S3FileUploader.js +0 -107
  53. package/dist/development/content/upload/S3FileUploader.js.map +0 -1
  54. package/dist/development/graphQlBuilder/GraphQlLiteral.cjs +0 -15
  55. package/dist/development/graphQlBuilder/GraphQlLiteral.cjs.map +0 -1
  56. package/dist/development/graphQlBuilder/GraphQlLiteral.js +0 -15
  57. package/dist/development/graphQlBuilder/GraphQlLiteral.js.map +0 -1
  58. package/dist/development/graphQlClient/GraphQlClient.cjs +0 -26
  59. package/dist/development/graphQlClient/GraphQlClient.cjs.map +0 -1
  60. package/dist/development/graphQlClient/GraphQlClient.js +0 -26
  61. package/dist/development/graphQlClient/GraphQlClient.js.map +0 -1
  62. package/dist/development/system/formatSystemApiRelativeUrl.cjs +0 -5
  63. package/dist/development/system/formatSystemApiRelativeUrl.cjs.map +0 -1
  64. package/dist/development/system/formatSystemApiRelativeUrl.js +0 -5
  65. package/dist/development/system/formatSystemApiRelativeUrl.js.map +0 -1
  66. package/dist/development/tenant/loginMutation.cjs +0 -34
  67. package/dist/development/tenant/loginMutation.cjs.map +0 -1
  68. package/dist/development/tenant/loginMutation.js +0 -34
  69. package/dist/development/tenant/loginMutation.js.map +0 -1
  70. package/dist/development/tenant/tenantApiRelativeUrl.cjs +0 -5
  71. package/dist/development/tenant/tenantApiRelativeUrl.cjs.map +0 -1
  72. package/dist/development/tenant/tenantApiRelativeUrl.js +0 -5
  73. package/dist/development/tenant/tenantApiRelativeUrl.js.map +0 -1
  74. package/dist/development/tenant/tenantErrorMessages.cjs +0 -18
  75. package/dist/development/tenant/tenantErrorMessages.cjs.map +0 -1
  76. package/dist/development/tenant/tenantErrorMessages.js +0 -18
  77. package/dist/development/tenant/tenantErrorMessages.js.map +0 -1
  78. package/dist/development/utils/readFileAsArrayBuffer.cjs +0 -15
  79. package/dist/development/utils/readFileAsArrayBuffer.cjs.map +0 -1
  80. package/dist/development/utils/readFileAsArrayBuffer.js +0 -15
  81. package/dist/development/utils/readFileAsArrayBuffer.js.map +0 -1
  82. package/dist/production/content/formatContentApiRelativeUrl.cjs +0 -5
  83. package/dist/production/content/formatContentApiRelativeUrl.cjs.map +0 -1
  84. package/dist/production/content/formatContentApiRelativeUrl.js +0 -5
  85. package/dist/production/content/formatContentApiRelativeUrl.js.map +0 -1
  86. package/dist/production/content/params/whereToFilter.cjs +0 -17
  87. package/dist/production/content/params/whereToFilter.cjs.map +0 -1
  88. package/dist/production/content/params/whereToFilter.js +0 -17
  89. package/dist/production/content/params/whereToFilter.js.map +0 -1
  90. package/dist/production/content/replaceGraphQlLiteral.cjs +0 -15
  91. package/dist/production/content/replaceGraphQlLiteral.cjs.map +0 -1
  92. package/dist/production/content/replaceGraphQlLiteral.js +0 -15
  93. package/dist/production/content/replaceGraphQlLiteral.js.map +0 -1
  94. package/dist/production/content/upload/FileUploadError.cjs +0 -10
  95. package/dist/production/content/upload/FileUploadError.cjs.map +0 -1
  96. package/dist/production/content/upload/FileUploadError.js +0 -10
  97. package/dist/production/content/upload/FileUploadError.js.map +0 -1
  98. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.cjs.map +0 -1
  99. package/dist/production/content/upload/GenerateUploadUrlMutationBuilder.js.map +0 -1
  100. package/dist/production/content/upload/S3FileUploader.cjs +0 -107
  101. package/dist/production/content/upload/S3FileUploader.cjs.map +0 -1
  102. package/dist/production/content/upload/S3FileUploader.js +0 -107
  103. package/dist/production/content/upload/S3FileUploader.js.map +0 -1
  104. package/dist/production/graphQlBuilder/GraphQlLiteral.cjs +0 -12
  105. package/dist/production/graphQlBuilder/GraphQlLiteral.cjs.map +0 -1
  106. package/dist/production/graphQlBuilder/GraphQlLiteral.js +0 -12
  107. package/dist/production/graphQlBuilder/GraphQlLiteral.js.map +0 -1
  108. package/dist/production/graphQlClient/GraphQlClient.cjs +0 -26
  109. package/dist/production/graphQlClient/GraphQlClient.cjs.map +0 -1
  110. package/dist/production/graphQlClient/GraphQlClient.js +0 -26
  111. package/dist/production/graphQlClient/GraphQlClient.js.map +0 -1
  112. package/dist/production/system/formatSystemApiRelativeUrl.cjs +0 -5
  113. package/dist/production/system/formatSystemApiRelativeUrl.cjs.map +0 -1
  114. package/dist/production/system/formatSystemApiRelativeUrl.js +0 -5
  115. package/dist/production/system/formatSystemApiRelativeUrl.js.map +0 -1
  116. package/dist/production/tenant/loginMutation.cjs +0 -34
  117. package/dist/production/tenant/loginMutation.cjs.map +0 -1
  118. package/dist/production/tenant/loginMutation.js +0 -34
  119. package/dist/production/tenant/loginMutation.js.map +0 -1
  120. package/dist/production/tenant/tenantApiRelativeUrl.cjs +0 -5
  121. package/dist/production/tenant/tenantApiRelativeUrl.cjs.map +0 -1
  122. package/dist/production/tenant/tenantApiRelativeUrl.js +0 -5
  123. package/dist/production/tenant/tenantApiRelativeUrl.js.map +0 -1
  124. package/dist/production/tenant/tenantErrorMessages.cjs +0 -18
  125. package/dist/production/tenant/tenantErrorMessages.cjs.map +0 -1
  126. package/dist/production/tenant/tenantErrorMessages.js +0 -18
  127. package/dist/production/tenant/tenantErrorMessages.js.map +0 -1
  128. package/dist/production/utils/readFileAsArrayBuffer.cjs +0 -15
  129. package/dist/production/utils/readFileAsArrayBuffer.cjs.map +0 -1
  130. package/dist/production/utils/readFileAsArrayBuffer.js +0 -15
  131. package/dist/production/utils/readFileAsArrayBuffer.js.map +0 -1
  132. package/dist/types/content/formatContentApiRelativeUrl.d.ts +0 -2
  133. package/dist/types/content/formatContentApiRelativeUrl.d.ts.map +0 -1
  134. package/dist/types/content/index.d.ts +0 -5
  135. package/dist/types/content/index.d.ts.map +0 -1
  136. package/dist/types/content/params/index.d.ts +0 -2
  137. package/dist/types/content/params/index.d.ts.map +0 -1
  138. package/dist/types/content/params/whereToFilter.d.ts +0 -4
  139. package/dist/types/content/params/whereToFilter.d.ts.map +0 -1
  140. package/dist/types/content/replaceGraphQlLiteral.d.ts +0 -6
  141. package/dist/types/content/replaceGraphQlLiteral.d.ts.map +0 -1
  142. package/dist/types/content/upload/FileUploadError.d.ts +0 -9
  143. package/dist/types/content/upload/FileUploadError.d.ts.map +0 -1
  144. package/dist/types/content/upload/FileUploadProgress.d.ts +0 -4
  145. package/dist/types/content/upload/FileUploadProgress.d.ts.map +0 -1
  146. package/dist/types/content/upload/FileUploader.d.ts +0 -15
  147. package/dist/types/content/upload/FileUploader.d.ts.map +0 -1
  148. package/dist/types/content/upload/GenerateUploadUrlMutationBuilder.d.ts.map +0 -1
  149. package/dist/types/content/upload/S3FileUploader.d.ts +0 -33
  150. package/dist/types/content/upload/S3FileUploader.d.ts.map +0 -1
  151. package/dist/types/content/upload/SwitchFileUploader.d.ts +0 -13
  152. package/dist/types/content/upload/SwitchFileUploader.d.ts.map +0 -1
  153. package/dist/types/content/upload/UploadedFileMetadata.d.ts +0 -4
  154. package/dist/types/content/upload/UploadedFileMetadata.d.ts.map +0 -1
  155. package/dist/types/content/upload/index.d.ts +0 -8
  156. package/dist/types/content/upload/index.d.ts.map +0 -1
  157. package/dist/types/crudQueryBuilder/index.d.ts +0 -2
  158. package/dist/types/crudQueryBuilder/index.d.ts.map +0 -1
  159. package/dist/types/crudQueryBuilder/types.d.ts +0 -4
  160. package/dist/types/crudQueryBuilder/types.d.ts.map +0 -1
  161. package/dist/types/graphQlBuilder/GraphQlLiteral.d.ts +0 -9
  162. package/dist/types/graphQlBuilder/GraphQlLiteral.d.ts.map +0 -1
  163. package/dist/types/graphQlBuilder/QueryBuilder.d.ts +0 -11
  164. package/dist/types/graphQlBuilder/QueryBuilder.d.ts.map +0 -1
  165. package/dist/types/graphQlBuilder/index.d.ts +0 -3
  166. package/dist/types/graphQlBuilder/index.d.ts.map +0 -1
  167. package/dist/types/graphQlClient/GraphQlClient.d.ts +0 -17
  168. package/dist/types/graphQlClient/GraphQlClient.d.ts.map +0 -1
  169. package/dist/types/graphQlClient/index.d.ts +0 -4
  170. package/dist/types/graphQlClient/index.d.ts.map +0 -1
  171. package/dist/types/system/events/RelationFilter.d.ts +0 -5
  172. package/dist/types/system/events/RelationFilter.d.ts.map +0 -1
  173. package/dist/types/system/events/SystemEvent.d.ts +0 -10
  174. package/dist/types/system/events/SystemEvent.d.ts.map +0 -1
  175. package/dist/types/system/events/TreeFilter.d.ts +0 -7
  176. package/dist/types/system/events/TreeFilter.d.ts.map +0 -1
  177. package/dist/types/system/events/index.d.ts +0 -4
  178. package/dist/types/system/events/index.d.ts.map +0 -1
  179. package/dist/types/system/formatSystemApiRelativeUrl.d.ts +0 -2
  180. package/dist/types/system/formatSystemApiRelativeUrl.d.ts.map +0 -1
  181. package/dist/types/system/index.d.ts +0 -3
  182. package/dist/types/system/index.d.ts.map +0 -1
  183. package/dist/types/tenant/index.d.ts +0 -4
  184. package/dist/types/tenant/index.d.ts.map +0 -1
  185. package/dist/types/tenant/loginMutation.d.ts +0 -32
  186. package/dist/types/tenant/loginMutation.d.ts.map +0 -1
  187. package/dist/types/tenant/tenantApiRelativeUrl.d.ts +0 -2
  188. package/dist/types/tenant/tenantApiRelativeUrl.d.ts.map +0 -1
  189. package/dist/types/tenant/tenantErrorMessages.d.ts +0 -5
  190. package/dist/types/tenant/tenantErrorMessages.d.ts.map +0 -1
  191. package/dist/types/utils/index.d.ts +0 -3
  192. package/dist/types/utils/index.d.ts.map +0 -1
  193. package/dist/types/utils/isEmptyObject.d.ts +0 -2
  194. package/dist/types/utils/isEmptyObject.d.ts.map +0 -1
  195. package/dist/types/utils/readFileAsArrayBuffer.d.ts +0 -2
  196. package/dist/types/utils/readFileAsArrayBuffer.d.ts.map +0 -1
  197. package/src/content/formatContentApiRelativeUrl.ts +0 -2
  198. package/src/content/index.ts +0 -4
  199. package/src/content/params/index.ts +0 -1
  200. package/src/content/params/whereToFilter.ts +0 -19
  201. package/src/content/replaceGraphQlLiteral.ts +0 -22
  202. package/src/content/upload/FileUploadError.ts +0 -10
  203. package/src/content/upload/FileUploadProgress.ts +0 -3
  204. package/src/content/upload/FileUploader.ts +0 -19
  205. package/src/content/upload/S3FileUploader.ts +0 -150
  206. package/src/content/upload/SwitchFileUploader.ts +0 -40
  207. package/src/content/upload/UploadedFileMetadata.ts +0 -3
  208. package/src/content/upload/index.ts +0 -7
  209. package/src/crudQueryBuilder/index.ts +0 -1
  210. package/src/crudQueryBuilder/types.ts +0 -8
  211. package/src/graphQlBuilder/GraphQlLiteral.ts +0 -14
  212. package/src/graphQlBuilder/QueryBuilder.ts +0 -13
  213. package/src/graphQlBuilder/index.ts +0 -2
  214. package/src/graphQlClient/GraphQlClient.ts +0 -39
  215. package/src/graphQlClient/index.ts +0 -8
  216. package/src/system/events/RelationFilter.ts +0 -4
  217. package/src/system/events/SystemEvent.ts +0 -9
  218. package/src/system/events/TreeFilter.ts +0 -7
  219. package/src/system/events/index.ts +0 -3
  220. package/src/system/formatSystemApiRelativeUrl.ts +0 -1
  221. package/src/system/index.ts +0 -2
  222. package/src/tenant/index.ts +0 -3
  223. package/src/tenant/loginMutation.ts +0 -61
  224. package/src/tenant/tenantApiRelativeUrl.ts +0 -1
  225. package/src/tenant/tenantErrorMessages.ts +0 -14
  226. package/src/utils/index.ts +0 -2
  227. package/src/utils/isEmptyObject.ts +0 -9
  228. package/src/utils/readFileAsArrayBuffer.ts +0 -12
@@ -1,150 +0,0 @@
1
- import pLimit from 'p-limit'
2
- import { readFileAsArrayBuffer } from '../../utils'
3
- import { FileUploadError } from './FileUploadError'
4
- import type { FileUploader, FileUploaderInitializeOptions } from './FileUploader'
5
- import { GenerateUploadUrlMutationBuilder } from './GenerateUploadUrlMutationBuilder'
6
- import type { UploadedFileMetadata } from './UploadedFileMetadata'
7
-
8
- interface S3UploadState {
9
- request?: XMLHttpRequest
10
- alias: number
11
- }
12
-
13
- class S3FileUploader implements FileUploader<S3FileUploader.SuccessMetadata> {
14
- private readonly uploadState: WeakMap<File, S3UploadState>
15
-
16
- public constructor(public readonly options: S3FileUploader.Options = {}) {
17
- this.uploadState = new WeakMap()
18
- }
19
-
20
- private generateNewAlias = (() => {
21
- let alias = 1
22
- return () => alias++
23
- })()
24
-
25
- private static formatFullAlias(alias: number) {
26
- return `file${alias}`
27
- }
28
-
29
- public async upload(
30
- files: Map<File, UploadedFileMetadata>,
31
- options: FileUploaderInitializeOptions,
32
- ) {
33
- const parameters: GenerateUploadUrlMutationBuilder.MutationParameters = {}
34
-
35
- for (const [file, metadata] of files) {
36
- if (this.uploadState.has(file)) {
37
- const uploadState = this.uploadState.get(file)!
38
- uploadState.request?.abort()
39
- }
40
-
41
- const alias = this.generateNewAlias()
42
- this.uploadState.set(file, {
43
- alias,
44
- })
45
-
46
- const uploadOptions = this.options.getUploadOptions?.(file)
47
-
48
- parameters[S3FileUploader.formatFullAlias(alias)] = {
49
- contentType: uploadOptions?.fileType ?? file.type,
50
- prefix: uploadOptions?.filePrefix,
51
- suffix: uploadOptions?.fileSuffix,
52
- size: uploadOptions?.fileSize,
53
- extension: uploadOptions?.fileExtension,
54
- fileName: uploadOptions?.fileName,
55
- expiration: uploadOptions?.fileExpiration,
56
- acl: uploadOptions?.fileAcl,
57
- }
58
-
59
- metadata.abortSignal.addEventListener('abort', () => {
60
- this.uploadState.get(file)?.request?.abort()
61
- })
62
- }
63
-
64
- const mutation = GenerateUploadUrlMutationBuilder.buildQuery(parameters)
65
- try {
66
- const responseData = await options.contentApiClient.execute<GenerateUploadUrlMutationBuilder.MutationResponse>(mutation.query, { variables: mutation.variables })
67
- const limit = pLimit(this.options.concurrency ?? 5)
68
- const promises: Promise<void>[] = []
69
- for (const [file] of files) {
70
- promises.push(limit(() => this.uploadSingleFile(file, responseData, options)))
71
- }
72
- await Promise.all(promises)
73
- } catch (error) {
74
- if (error instanceof FileUploadError) {
75
- const fileUploadError = error
76
- options.onError(Array.from(files).map(([file]) => [file, fileUploadError]))
77
-
78
- } else {
79
- throw error
80
- }
81
- }
82
- }
83
-
84
- private uploadSingleFile(
85
- file: File,
86
- responseData: GenerateUploadUrlMutationBuilder.MutationResponse,
87
- { onProgress, onError, onSuccess }: FileUploaderInitializeOptions,
88
- ) {
89
- return new Promise<void>(async (resolve, reject) => {
90
- const fileState = this.uploadState.get(file)!
91
- const datumBody = responseData[S3FileUploader.formatFullAlias(fileState.alias)]
92
- const uploadRequestBody = await readFileAsArrayBuffer(file)
93
- const xhr = new XMLHttpRequest()
94
-
95
- fileState.request = xhr
96
-
97
- xhr.open(datumBody.method, datumBody.url)
98
-
99
- for (const header of datumBody.headers) {
100
- xhr.setRequestHeader(header.key, header.value)
101
- }
102
- xhr.addEventListener('load', () => {
103
- const successMetadata: S3FileUploader.SuccessMetadata = {
104
- fileUrl: datumBody.publicUrl,
105
- }
106
- onSuccess([[file, successMetadata]])
107
- resolve()
108
- })
109
- xhr.addEventListener('error', e => {
110
- onError([file])
111
- reject(e)
112
- })
113
- xhr.upload?.addEventListener('progress', e => {
114
- onProgress([
115
- [
116
- file,
117
- {
118
- progress: e.loaded / e.total,
119
- },
120
- ],
121
- ])
122
- })
123
- xhr.send(uploadRequestBody)
124
- })
125
- }
126
- }
127
-
128
- namespace S3FileUploader {
129
- export interface SuccessMetadata {
130
- fileUrl: string
131
- }
132
-
133
- export interface Options {
134
- getUploadOptions?: (file: File) => S3UploadOptions
135
- concurrency?: number
136
- }
137
-
138
- export interface S3UploadOptions {
139
- fileType?: GenerateUploadUrlMutationBuilder.FileParameters['contentType']
140
- fileExpiration?: number
141
- fileSize?: number
142
- filePrefix?: string
143
- fileSuffix?: string
144
- fileName?: string
145
- fileExtension?: string
146
- fileAcl?: GenerateUploadUrlMutationBuilder.Acl
147
- }
148
- }
149
-
150
- export { S3FileUploader }
@@ -1,40 +0,0 @@
1
- import type { FileUploader, FileUploaderInitializeOptions } from './FileUploader'
2
- import type { UploadedFileMetadata } from './UploadedFileMetadata'
3
-
4
- class SwitchFileUploader implements FileUploader {
5
- public constructor(private readonly subUploaders: SwitchFileUploader.SubUploaders) {}
6
-
7
- public async upload(files: Map<File, UploadedFileMetadata>, options: FileUploaderInitializeOptions) {
8
- const fileKinds: Map<FileUploader, Map<File, UploadedFileMetadata>> = new Map()
9
- const unhandledFiles: Array<[File, any]> = []
10
-
11
- fileLoop: for (const [file, metadata] of files) {
12
- for (const [predicate, uploader] of this.subUploaders) {
13
- if (predicate(file)) {
14
- let nestedMap = fileKinds.get(uploader)
15
- if (nestedMap === undefined) {
16
- fileKinds.set(uploader, (nestedMap = new Map()))
17
- }
18
- nestedMap.set(file, metadata)
19
- continue fileLoop
20
- }
21
- }
22
- unhandledFiles.push([file, undefined])
23
- }
24
-
25
- if (unhandledFiles.length && options.onError) {
26
- options.onError(unhandledFiles)
27
- }
28
-
29
- for (const [uploader, files] of fileKinds) {
30
- uploader.upload(files, options) // Deliberately no await
31
- }
32
- }
33
- }
34
-
35
- namespace SwitchFileUploader {
36
- export type FilePredicate = (file: File) => boolean
37
- export type SubUploaders = Iterable<[FilePredicate, FileUploader]>
38
- }
39
-
40
- export { SwitchFileUploader }
@@ -1,3 +0,0 @@
1
- export interface UploadedFileMetadata {
2
- abortSignal: AbortSignal
3
- }
@@ -1,7 +0,0 @@
1
- export * from './FileUploader'
2
- export * from './FileUploadError'
3
- export * from './FileUploadProgress'
4
- export * from './GenerateUploadUrlMutationBuilder'
5
- export * from './UploadedFileMetadata'
6
- export * from './S3FileUploader'
7
- export * from './UploadedFileMetadata'
@@ -1 +0,0 @@
1
- export * from './types'
@@ -1,8 +0,0 @@
1
- import { Input } from '@contember/schema'
2
- import { GraphQlLiteral } from '../graphQlBuilder'
3
-
4
- export type OrderDirection =
5
- | GraphQlLiteral<'asc'>
6
- | GraphQlLiteral<'desc'>
7
- | `${Input.OrderDirection}`
8
-
@@ -1,14 +0,0 @@
1
- /**
2
- * @deprecated Directly use the value instead.
3
- */
4
- export class GraphQlLiteral<Value extends string = string> {
5
- constructor(public readonly value: Value) {
6
- if (import.meta.env.DEV) {
7
- console.warn('GraphQlLiteral is deprecated, use the value directly instead.')
8
- }
9
- }
10
-
11
- public toString() {
12
- return `Literal(${this.value})`
13
- }
14
- }
@@ -1,13 +0,0 @@
1
- import type { GraphQlLiteral } from './GraphQlLiteral'
2
-
3
-
4
- export namespace QueryBuilder {
5
- export interface Object {
6
- [key: string]: Value
7
- }
8
-
9
- export interface List extends Array<Value> {}
10
-
11
- export type AtomicValue = string | null | number | boolean | GraphQlLiteral
12
- export type Value = AtomicValue | Object | List
13
- }
@@ -1,2 +0,0 @@
1
- export * from './GraphQlLiteral'
2
- export * from './QueryBuilder'
@@ -1,39 +0,0 @@
1
- import { GraphQlClient as BaseGraphQLClient, GraphQlClientRequestOptions as BaseGraphQlClientRequestOptions } from '@contember/graphql-client'
2
-
3
- export interface GraphQlClientRequestOptions extends BaseGraphQlClientRequestOptions {
4
- /**
5
- * @deprecated use apiToken
6
- */
7
- apiTokenOverride?: string
8
- }
9
-
10
- export type GraphQlClientFailedRequestMetadata = Pick<Response, 'status' | 'statusText'> & {
11
- responseText: string
12
- }
13
-
14
- export class GraphQlClient extends BaseGraphQLClient {
15
- /**
16
- * @deprecated use execute
17
- */
18
- async sendRequest<T = unknown>(query: string, options: GraphQlClientRequestOptions = {}): Promise<T> {
19
- console.debug(query)
20
- const response = await this.doExecute(query, {
21
- ...options,
22
- apiToken: options.apiTokenOverride ?? options.apiToken,
23
- })
24
-
25
- if (response.ok) {
26
- // It may still have errors (e.g. unfilled fields) but as far as the request goes, it is ok.
27
- return await response.json()
28
- }
29
-
30
- const failedRequest: GraphQlClientFailedRequestMetadata = {
31
- status: response.status,
32
- statusText: response.statusText,
33
- responseText: await response.text(),
34
- }
35
-
36
- return Promise.reject(failedRequest)
37
- }
38
-
39
- }
@@ -1,8 +0,0 @@
1
- export * from './GraphQlClient'
2
- export type {
3
- GraphQlClientVariables,
4
- GraphQlErrorType,
5
- GraphQlErrorRequest,
6
- } from '@contember/graphql-client'
7
-
8
- export { GraphQlClientError } from '@contember/graphql-client'
@@ -1,4 +0,0 @@
1
- export interface RelationFilter {
2
- name: string
3
- relations: RelationFilter[]
4
- }
@@ -1,9 +0,0 @@
1
- export interface SystemEvent {
2
- id: string
3
- createdAt: string
4
- type: 'CREATE' | 'UPDATE' | 'DELETE'
5
- dependencies: string[]
6
- description: string
7
- identityDescription: string
8
- transactionId: string
9
- }
@@ -1,7 +0,0 @@
1
- import type { RelationFilter } from './RelationFilter'
2
-
3
- export interface TreeFilter {
4
- entity: string
5
- id: string | number
6
- relations: RelationFilter[]
7
- }
@@ -1,3 +0,0 @@
1
- export * from './RelationFilter'
2
- export * from './SystemEvent'
3
- export * from './TreeFilter'
@@ -1 +0,0 @@
1
- export const formatSystemApiRelativeUrl = (projectSlug: string) => `/system/${projectSlug}`
@@ -1,2 +0,0 @@
1
- export * from './events'
2
- export * from './formatSystemApiRelativeUrl'
@@ -1,3 +0,0 @@
1
- export * from './loginMutation'
2
- export * from './tenantApiRelativeUrl'
3
- export * from './tenantErrorMessages'
@@ -1,61 +0,0 @@
1
- export interface LoginMutationResponse {
2
- data: {
3
- signIn: {
4
- ok: boolean
5
- errors: Array<{
6
- endUserMessage: string | null
7
- code: string
8
- }>
9
- result: {
10
- token: string
11
- person: {
12
- id: string
13
- email: string
14
- identity: {
15
- id: string
16
- projects: Array<{
17
- project: {
18
- id: string
19
- slug: string
20
- }
21
- memberships: Array<{
22
- role: string
23
- }>
24
- }>
25
- }
26
- }
27
- } | null
28
- }
29
- }
30
- }
31
-
32
- export const loginMutation = `
33
- mutation($email: String!, $password: String!, $expiration: Int) {
34
- signIn(email: $email, password: $password, expiration: $expiration) {
35
- ok
36
- errors {
37
- endUserMessage
38
- code
39
- }
40
- result {
41
- token
42
- person {
43
- id
44
- email
45
- identity {
46
- id
47
- projects {
48
- project {
49
- id
50
- slug
51
- }
52
- memberships {
53
- role
54
- }
55
- }
56
- }
57
- }
58
- }
59
- }
60
- }
61
- `
@@ -1 +0,0 @@
1
- export const tenantApiRelativeUrl = '/tenant'
@@ -1,14 +0,0 @@
1
- export const tenantErrorMessages: { [key: string]: string } = {
2
- TOO_WEAK: 'Password is too weak.',
3
- EMAIL_ALREADY_EXISTS: 'Email already exists.',
4
- UNKNOWN_EMAIL: 'Unknown email.',
5
- INVALID_PASSWORD: 'Password is invalid.',
6
- ALREADY_MEMBER: 'User is already a member of this project.',
7
- }
8
-
9
- export const getTenantErrorMessage = (errorCode: string): string => {
10
- if (errorCode in tenantErrorMessages) {
11
- return tenantErrorMessages[errorCode]
12
- }
13
- return `Unknown error occurred. [${errorCode}]`
14
- }
@@ -1,2 +0,0 @@
1
- export * from './isEmptyObject'
2
- export * from './readFileAsArrayBuffer'
@@ -1,9 +0,0 @@
1
- export const isEmptyObject = (arg: object): boolean => {
2
- // This is faster than Object.keys(arg).length === 0 && arg.constructor === Object
3
- for (const key in arg) {
4
- if (arg.hasOwnProperty(key)) {
5
- return false
6
- }
7
- }
8
- return true
9
- }
@@ -1,12 +0,0 @@
1
- export const readFileAsArrayBuffer = (file: File): Promise<string | ArrayBuffer> =>
2
- new Promise((resolve, reject) => {
3
- const reader = new FileReader()
4
- reader.onload = () => {
5
- if (reader.result === null) {
6
- reject()
7
- return
8
- }
9
- resolve(reader.result)
10
- }
11
- reader.readAsArrayBuffer(file)
12
- })