@progress/sitefinity-webservices-sdk 1.1.15 → 2.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 (231) hide show
  1. package/README.md +84 -51
  2. package/esm/chunks/chunk-2ID24RPE.mjs +179 -0
  3. package/esm/chunks/chunk-2ID24RPE.mjs.map +7 -0
  4. package/esm/chunks/chunk-AHDZ2CWQ.mjs +93 -0
  5. package/esm/chunks/chunk-AHDZ2CWQ.mjs.map +7 -0
  6. package/esm/chunks/chunk-BFLQBM7R.mjs +136 -0
  7. package/esm/chunks/chunk-BFLQBM7R.mjs.map +7 -0
  8. package/esm/chunks/chunk-CMGV26CS.mjs +66 -0
  9. package/esm/chunks/chunk-CMGV26CS.mjs.map +7 -0
  10. package/esm/chunks/chunk-DHWDJAGV.mjs +180 -0
  11. package/esm/chunks/chunk-DHWDJAGV.mjs.map +7 -0
  12. package/esm/chunks/chunk-EH4CERVO.mjs +82 -0
  13. package/esm/chunks/chunk-EH4CERVO.mjs.map +7 -0
  14. package/esm/chunks/chunk-F4CWOE7M.mjs +57 -0
  15. package/esm/chunks/chunk-F4CWOE7M.mjs.map +7 -0
  16. package/esm/chunks/chunk-FUFBYOIF.mjs +98 -0
  17. package/esm/chunks/chunk-FUFBYOIF.mjs.map +7 -0
  18. package/esm/chunks/chunk-J2B7UDVZ.mjs +132 -0
  19. package/esm/chunks/chunk-J2B7UDVZ.mjs.map +7 -0
  20. package/esm/chunks/chunk-L3IMDFA5.mjs +1 -0
  21. package/esm/chunks/chunk-L3IMDFA5.mjs.map +7 -0
  22. package/esm/chunks/chunk-NNYY2VBC.mjs +383 -0
  23. package/esm/chunks/chunk-NNYY2VBC.mjs.map +7 -0
  24. package/esm/chunks/chunk-PI55MBSL.mjs +256 -0
  25. package/esm/chunks/chunk-PI55MBSL.mjs.map +7 -0
  26. package/esm/chunks/chunk-PXPK2IV6.mjs +568 -0
  27. package/esm/chunks/chunk-PXPK2IV6.mjs.map +7 -0
  28. package/esm/chunks/chunk-QPSEKUOI.mjs +35 -0
  29. package/esm/chunks/chunk-QPSEKUOI.mjs.map +7 -0
  30. package/esm/chunks/chunk-RQAAYOY6.mjs +72 -0
  31. package/esm/chunks/chunk-RQAAYOY6.mjs.map +7 -0
  32. package/esm/chunks/chunk-TTVNTTW5.mjs +145 -0
  33. package/esm/chunks/chunk-TTVNTTW5.mjs.map +7 -0
  34. package/esm/chunks/chunk-VLDX2FH2.mjs +235 -0
  35. package/esm/chunks/chunk-VLDX2FH2.mjs.map +7 -0
  36. package/esm/chunks/chunk-VWT2RJET.mjs +102 -0
  37. package/esm/chunks/chunk-VWT2RJET.mjs.map +7 -0
  38. package/esm/chunks/chunk-W2OWM3L7.mjs +19 -0
  39. package/esm/chunks/chunk-W2OWM3L7.mjs.map +7 -0
  40. package/esm/chunks/chunk-WX5J7F5D.mjs +43 -0
  41. package/esm/chunks/chunk-WX5J7F5D.mjs.map +7 -0
  42. package/esm/chunks/chunk-YB2LMPUX.mjs +54 -0
  43. package/esm/chunks/chunk-YB2LMPUX.mjs.map +7 -0
  44. package/package.json +67 -36
  45. package/sitefinity-webservices-sdk.cjs +2761 -0
  46. package/sitefinity-webservices-sdk.cjs.map +7 -0
  47. package/sitefinity-webservices-sdk.d.mts +1 -0
  48. package/{dist/sitefinity-webservices-sdk.d.ts → sitefinity-webservices-sdk.d.ts} +6 -0
  49. package/sitefinity-webservices-sdk.global.d.ts +5 -0
  50. package/sitefinity-webservices-sdk.js +2764 -0
  51. package/sitefinity-webservices-sdk.js.map +7 -0
  52. package/sitefinity-webservices-sdk.min.js +3 -0
  53. package/sitefinity-webservices-sdk.mjs +124 -0
  54. package/sitefinity-webservices-sdk.mjs.map +7 -0
  55. package/src/BlobBuilder.d.ts +12 -0
  56. package/src/Data.d.ts +259 -0
  57. package/src/Expression.d.ts +37 -0
  58. package/src/OrderProperty.d.ts +24 -0
  59. package/src/Query.d.ts +104 -0
  60. package/src/QueryBase.d.ts +40 -0
  61. package/src/QueryBuilder.d.ts +29 -0
  62. package/src/Requests/BatchRequest.d.ts +174 -0
  63. package/src/Requests/ExecutableRequest.d.ts +43 -0
  64. package/src/Requests/Request.d.ts +225 -0
  65. package/src/Requests/RequestBase.d.ts +58 -0
  66. package/{dist/src → src}/Requests/RequestFactory.d.ts +24 -2
  67. package/src/Sitefinity.d.ts +141 -0
  68. package/src/Transport/FetchTransport.d.ts +17 -0
  69. package/src/Transport/HttpTransport.d.ts +69 -0
  70. package/src/Transport/XhrTransport.d.ts +8 -0
  71. package/src/WhereQuery.d.ts +88 -0
  72. package/src/chunk-upload/chunk-upload.sdk.d.ts +305 -0
  73. package/src/chunk-upload/chunked-file-upload.utilities.d.ts +58 -0
  74. package/{dist/src → src}/constants.d.ts +21 -0
  75. package/src/utils.d.ts +103 -0
  76. package/.editorconfig +0 -29
  77. package/.eslintignore +0 -4
  78. package/.eslintrc.js +0 -40
  79. package/config/helpers.ts +0 -8
  80. package/config/webpack.common.ts +0 -39
  81. package/config/webpack.dev.ts +0 -37
  82. package/config/webpack.prod.ts +0 -17
  83. package/dist/docs/.nojekyll +0 -1
  84. package/dist/docs/assets/highlight.css +0 -71
  85. package/dist/docs/assets/main.js +0 -58
  86. package/dist/docs/assets/search.js +0 -1
  87. package/dist/docs/assets/style.css +0 -1280
  88. package/dist/docs/classes/BlobBuilder.BlobBuilder.html +0 -137
  89. package/dist/docs/classes/Data.Data.html +0 -387
  90. package/dist/docs/classes/Expression.BinaryExpression.html +0 -184
  91. package/dist/docs/classes/Expression.ComplexExpression.html +0 -146
  92. package/dist/docs/classes/Expression.ExpressionBase.html +0 -125
  93. package/dist/docs/classes/OrderProperty.OrderProperty.html +0 -151
  94. package/dist/docs/classes/Query.Query.html +0 -353
  95. package/dist/docs/classes/QueryBase.QueryBase.html +0 -185
  96. package/dist/docs/classes/QueryBuilder.QueryBuilder.html +0 -206
  97. package/dist/docs/classes/Requests_BatchRequest.BatchRequest.html +0 -731
  98. package/dist/docs/classes/Requests_BatchRequest.Transaction.html +0 -332
  99. package/dist/docs/classes/Requests_ExecutableRequest.ExecutableRequest.html +0 -340
  100. package/dist/docs/classes/Requests_Request.CommitChunksRequest.html +0 -303
  101. package/dist/docs/classes/Requests_Request.CreateRelatedRequest.html +0 -310
  102. package/dist/docs/classes/Requests_Request.CreateRequest.html +0 -307
  103. package/dist/docs/classes/Requests_Request.DeleteRelatedByIdRequest.html +0 -309
  104. package/dist/docs/classes/Requests_Request.DeleteRelatedRequest.html +0 -302
  105. package/dist/docs/classes/Requests_Request.DeleteRequest.html +0 -298
  106. package/dist/docs/classes/Requests_Request.GetByIdRequest.html +0 -298
  107. package/dist/docs/classes/Requests_Request.GetRelatedByIdRequest.html +0 -309
  108. package/dist/docs/classes/Requests_Request.GetRelatedRequest.html +0 -302
  109. package/dist/docs/classes/Requests_Request.GetRequest.html +0 -295
  110. package/dist/docs/classes/Requests_Request.UpdateRequest.html +0 -309
  111. package/dist/docs/classes/Requests_Request.UploadChunkRequest.html +0 -359
  112. package/dist/docs/classes/Requests_Request.UploadRequest.html +0 -329
  113. package/dist/docs/classes/Requests_RequestBase.RequestBase.html +0 -275
  114. package/dist/docs/classes/Requests_RequestFactory.RequestFactory.html +0 -344
  115. package/dist/docs/classes/Sitefinity.Sitefinity.html +0 -188
  116. package/dist/docs/classes/WhereQuery.WhereQuery.html +0 -436
  117. package/dist/docs/classes/chunk_upload_chunk_upload_sdk.ChunkUploadSdk.html +0 -231
  118. package/dist/docs/classes/chunk_upload_chunked_file_upload_utilities.ChunkedFileUploadUtilities.html +0 -131
  119. package/dist/docs/classes/utils.utils.html +0 -303
  120. package/dist/docs/index.html +0 -129
  121. package/dist/docs/interfaces/Data.CreateRelatedRequestOptions.html +0 -155
  122. package/dist/docs/interfaces/Data.CreateRequestOptions.html +0 -153
  123. package/dist/docs/interfaces/Data.OperationsRequestOptions.html +0 -145
  124. package/dist/docs/interfaces/Data.PropertyRequestOptions.html +0 -149
  125. package/dist/docs/interfaces/Data.RequestOptionsBase.html +0 -136
  126. package/dist/docs/interfaces/Data.SingleRelatedItemRequestOptions.html +0 -155
  127. package/dist/docs/interfaces/Data.UpdateRequestOptions.html +0 -155
  128. package/dist/docs/interfaces/Data.UploadRequestOptions.html +0 -169
  129. package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRelatedRequestOptions.html +0 -161
  130. package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRequestOptions.html +0 -153
  131. package/dist/docs/interfaces/Requests_BatchRequest.BatchPropertyRequestOptions.html +0 -153
  132. package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsBase.html +0 -145
  133. package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsExtended.html +0 -153
  134. package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleItemRequestOptions.html +0 -145
  135. package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleRelatedItemRequestOptions.html +0 -161
  136. package/dist/docs/interfaces/Requests_BatchRequest.BatchUpdateRequestOptions.html +0 -161
  137. package/dist/docs/interfaces/Requests_ExecutableRequest.ResponseHandlers.html +0 -98
  138. package/dist/docs/interfaces/Requests_Request.CommitChunksRequestOptionsExtended.html +0 -215
  139. package/dist/docs/interfaces/Requests_Request.PostRequestOptionsExtended.html +0 -159
  140. package/dist/docs/interfaces/Requests_Request.PutRequestOptionsExtended.html +0 -161
  141. package/dist/docs/interfaces/Requests_Request.RelatedByIdRequestOptionsExtended.html +0 -169
  142. package/dist/docs/interfaces/Requests_Request.RelatedRequestOptionsExtended.html +0 -163
  143. package/dist/docs/interfaces/Requests_Request.UploadChunkRequestOptionsExtended.html +0 -217
  144. package/dist/docs/interfaces/Requests_Request.UploadRequestOptionsExtended.html +0 -180
  145. package/dist/docs/interfaces/Requests_RequestBase.RequestOptionsBaseExtended.html +0 -148
  146. package/dist/docs/interfaces/Sitefinity.SDKOptions.html +0 -128
  147. package/dist/docs/interfaces/Sitefinity.Token.html +0 -94
  148. package/dist/docs/interfaces/Sitefinity.TypeOptions.html +0 -160
  149. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.ChunkUploadInfoDTO.html +0 -159
  150. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.ChunkUploadResult.html +0 -111
  151. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.CleanUpChunksRequestOptions.html +0 -171
  152. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.CommitChunksRequestOptions.html +0 -204
  153. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.GetChunkUploadInfoRequestOptions.html +0 -166
  154. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.UploadChunkRequestOptions.html +0 -206
  155. package/dist/docs/interfaces/chunk_upload_chunked_file_upload_utilities.ChunkFileResult.html +0 -101
  156. package/dist/docs/interfaces/chunk_upload_chunked_file_upload_utilities.FileUploadChunk.html +0 -94
  157. package/dist/docs/modules/BlobBuilder.html +0 -73
  158. package/dist/docs/modules/Data.html +0 -92
  159. package/dist/docs/modules/Expression.html +0 -77
  160. package/dist/docs/modules/OrderProperty.html +0 -73
  161. package/dist/docs/modules/Query.html +0 -73
  162. package/dist/docs/modules/QueryBase.html +0 -73
  163. package/dist/docs/modules/QueryBuilder.html +0 -73
  164. package/dist/docs/modules/Requests_BatchRequest.html +0 -94
  165. package/dist/docs/modules/Requests_ExecutableRequest.html +0 -78
  166. package/dist/docs/modules/Requests_Request.html +0 -114
  167. package/dist/docs/modules/Requests_RequestBase.html +0 -78
  168. package/dist/docs/modules/Requests_RequestFactory.html +0 -73
  169. package/dist/docs/modules/Sitefinity.html +0 -82
  170. package/dist/docs/modules/WhereQuery.html +0 -73
  171. package/dist/docs/modules/chunk_upload_chunk_upload_sdk.html +0 -88
  172. package/dist/docs/modules/chunk_upload_chunked_file_upload_utilities.html +0 -80
  173. package/dist/docs/modules/constants.html +0 -83
  174. package/dist/docs/modules/utils.html +0 -73
  175. package/dist/docs/modules.html +0 -80
  176. package/dist/docs/variables/constants.CONTENT_TYPES.html +0 -76
  177. package/dist/docs/variables/constants.EXPRESSION_TYPE.html +0 -106
  178. package/dist/docs/variables/constants.HEADER_NAMES.html +0 -102
  179. package/dist/docs/variables/constants.HTTP_METHODS.html +0 -84
  180. package/dist/docs/variables/constants.ODATA_PARAMS.html +0 -90
  181. package/dist/docs/variables/constants.SF_PARAMS.html +0 -84
  182. package/dist/samples.html +0 -625
  183. package/dist/sitefinity-webservices-sdk.js +0 -3125
  184. package/dist/sitefinity-webservices-sdk.js.map +0 -1
  185. package/dist/sitefinity-webservices-sdk.min.js +0 -1
  186. package/dist/src/BlobBuilder.d.ts +0 -14
  187. package/dist/src/Data.d.ts +0 -154
  188. package/dist/src/Data.spec.d.ts +0 -1
  189. package/dist/src/Expression.d.ts +0 -19
  190. package/dist/src/OrderProperty.d.ts +0 -8
  191. package/dist/src/Query.d.ts +0 -59
  192. package/dist/src/QueryBase.d.ts +0 -18
  193. package/dist/src/QueryBuilder.d.ts +0 -13
  194. package/dist/src/Requests/BatchRequest.d.ts +0 -146
  195. package/dist/src/Requests/ExecutableRequest.d.ts +0 -22
  196. package/dist/src/Requests/Request.d.ts +0 -132
  197. package/dist/src/Requests/RequestBase.d.ts +0 -27
  198. package/dist/src/Requests/request.spec.d.ts +0 -1
  199. package/dist/src/Sitefinity.d.ts +0 -75
  200. package/dist/src/Sitefinity.spec.d.ts +0 -1
  201. package/dist/src/WhereQuery.d.ts +0 -72
  202. package/dist/src/chunk-upload/chunk-upload.sdk.d.ts +0 -295
  203. package/dist/src/chunk-upload/chunk-upload.sdk.spec.d.ts +0 -1
  204. package/dist/src/chunk-upload/chunked-file-upload.utilities.d.ts +0 -13
  205. package/dist/src/utils.d.ts +0 -16
  206. package/karma.conf.js +0 -29
  207. package/sitefinity-webservices-sdk.ts +0 -15
  208. package/src/BlobBuilder.ts +0 -20
  209. package/src/Data.spec.ts +0 -160
  210. package/src/Data.ts +0 -418
  211. package/src/Expression.ts +0 -36
  212. package/src/OrderProperty.ts +0 -39
  213. package/src/Query.ts +0 -106
  214. package/src/QueryBase.ts +0 -57
  215. package/src/QueryBuilder.ts +0 -180
  216. package/src/Requests/BatchRequest.ts +0 -807
  217. package/src/Requests/ExecutableRequest.ts +0 -117
  218. package/src/Requests/Request.ts +0 -327
  219. package/src/Requests/RequestBase.ts +0 -163
  220. package/src/Requests/RequestFactory.ts +0 -75
  221. package/src/Requests/request.spec.ts +0 -132
  222. package/src/Sitefinity.spec.ts +0 -483
  223. package/src/Sitefinity.ts +0 -125
  224. package/src/WhereQuery.ts +0 -145
  225. package/src/chunk-upload/chunk-upload.sdk.spec.ts +0 -342
  226. package/src/chunk-upload/chunk-upload.sdk.ts +0 -439
  227. package/src/chunk-upload/chunked-file-upload.utilities.ts +0 -64
  228. package/src/constants.ts +0 -66
  229. package/src/utils.ts +0 -125
  230. package/template.html +0 -625
  231. package/tsconfig.json +0 -38
@@ -1,439 +0,0 @@
1
- import { CreateRequestOptions } from "../Data";
2
- import { CommitChunksRequestOptionsExtended } from "../Requests/Request";
3
- import { RequestOptionsBaseExtended } from "../Requests/RequestBase";
4
- import { RequestFactory } from "../Requests/RequestFactory";
5
- import { TypeOptions } from "../Sitefinity";
6
- import { ChunkedFileUploadUtilities, ChunkFileResult } from "./chunked-file-upload.utilities";
7
-
8
- /**
9
- * @description Entry point for all chunk upload related tasks
10
- * @export
11
- * @class ChunkUploadSdk
12
- */
13
- export class ChunkUploadSdk {
14
- private urlOptions: TypeOptions;
15
- private factory: RequestFactory;
16
-
17
- constructor(urlOptions: TypeOptions, factory: RequestFactory) {
18
- this.urlOptions = urlOptions;
19
- this.factory = factory;
20
- }
21
-
22
- /**
23
- * @description Gets the needed information to start uploading chunks to the server
24
- * @param {GetChunkUploadInfoRequestOptions} parameters
25
- * @memberof ChunkUploadSdk
26
- */
27
- getChunkUploadInfo(parameters: GetChunkUploadInfoRequestOptions) {
28
- Guard.isNotNull(parameters, "parameters");
29
- Guard.isNotNull(parameters.data, "parameters.data");
30
- Guard.isNotNull(parameters.data.libraryId, "parameters.data.libraryId");
31
-
32
- const options: RequestOptionsBaseExtended = {
33
- urlOptions: this.urlOptions,
34
- action: `Default.GetChunkUploadInfo(libraryId=${parameters.data.libraryId})`,
35
- successCb: parameters.successCb,
36
- failureCb: parameters.failureCb,
37
- progressCb: parameters.progressCb,
38
- fallbackProperties: parameters.fallbackProperties,
39
- query: parameters.query
40
- };
41
-
42
- const request = this.factory.get(options);
43
-
44
- request.execute();
45
- }
46
-
47
- /**
48
- * @description Sends a single chunk request to the server
49
- * @param {UploadChunkRequestOptions} parameters
50
- * @memberof ChunkUploadSdk
51
- */
52
- uploadChunk(parameters: UploadChunkRequestOptions) {
53
- Guard.isNotNull(parameters, "parameters");
54
- Guard.isNotNull(parameters.data, "parameters.data");
55
- Guard.isNotNull(parameters.data.chunkSize, "parameters.data.chunkSize");
56
- Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, "parameters.data.chunkedFileUploadSessionId");
57
- Guard.isNotNull(parameters.data.chunkOrdinal, "parameters.data.chunkOrdinal");
58
- Guard.isNotNull(parameters.data.numberOfChunks, "parameters.data.numberOfChunks");
59
- Guard.isNotNull(parameters.data.chunkBlob, "parameters.data.chunkBlob");
60
- Guard.isNotNull(parameters.data.blobStorageProviderName, "parameters.data.blobStorageProviderName");
61
-
62
- const request = this.factory.uploadChunk({
63
- urlOptions: this.urlOptions,
64
- fileMimeType: parameters.data.fileMimeType,
65
- chunkSize: parameters.data.chunkSize,
66
- chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,
67
- chunkOrdinal: parameters.data.chunkOrdinal,
68
- numberOfChunks: parameters.data.numberOfChunks,
69
- chunkBlob: parameters.data.chunkBlob,
70
- blobStorageProviderName: parameters.data.blobStorageProviderName,
71
- fileName: parameters.data.fileName,
72
- // optional
73
- positionOfChunkInQueue: parameters.data.positionOfChunkInQueue,
74
- successCb: parameters.successCb,
75
- failureCb: parameters.failureCb,
76
- progressCb: parameters.progressCb,
77
- fallbackProperties: parameters.fallbackProperties,
78
- query: parameters.query
79
- });
80
-
81
- request.execute();
82
- }
83
-
84
-
85
- /**
86
- * @description Sends the commit chunks request to the server
87
- * @param {CommitChunksRequestOptions} parameters
88
- * @memberof ChunkUploadSdk
89
- */
90
- commitChunks(parameters: CommitChunksRequestOptions) {
91
- Guard.isNotNull(parameters, "parameters");
92
- Guard.isNotNull(parameters.data, "parameters.data");
93
- Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, "parameters.data.chunkedFileUploadSessionId");
94
- Guard.isNotNull(parameters.data.name, "parameters.data.name");
95
- Guard.isNotNull(parameters.data.uploadProperties, "parameters.data.uploadProperties");
96
- Guard.isNotNull(parameters.data.numberOfChunks, "parameters.data.numberOfChunks");
97
- Guard.isNotNull(parameters.data.fileTotalSize, "parameters.data.fileTotalSize");
98
- Guard.isNotNull(parameters.data.blobStorageProviderName, "parameters.data.blobStorageProviderName");
99
-
100
- const options: CommitChunksRequestOptionsExtended = {
101
- urlOptions: this.urlOptions,
102
- chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,
103
- contentType: parameters.data.contentType,
104
- fileName: parameters.data.name,
105
- uploadProperties: parameters.data.uploadProperties,
106
- numberOfChunks: parameters.data.numberOfChunks,
107
- fileTotalSize: parameters.data.fileTotalSize,
108
- blobStorageProviderName: parameters.data.blobStorageProviderName,
109
- // Optional: used for update, can be null for create
110
- itemId: parameters.data.itemId,
111
- successCb: parameters.successCb,
112
- failureCb: parameters.failureCb,
113
- progressCb: parameters.progressCb,
114
- fallbackProperties: parameters.fallbackProperties,
115
- query: parameters.query
116
- };
117
-
118
- const request = this.factory.commitChunks(options);
119
- request.execute();
120
- }
121
-
122
- /**
123
- * @description This request is intended to be used when something in the chunk upload process fails to delete the sent chunks
124
- * @param {CleanUpChunksRequestOptions} parameters
125
- * @memberof ChunkUploadSdk
126
- */
127
- cleanUpChunks(parameters: CleanUpChunksRequestOptions) {
128
- Guard.isNotNull(parameters, "parameters");
129
- Guard.isNotNull(parameters.data, "parameters.data");
130
- Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, "parameters.data.chunkedFileUploadSessionId");
131
- Guard.isNotNull(parameters.data.blobStorageProviderName, "parameters.data.blobStorageProviderName");
132
-
133
- const request = this.factory.create({
134
- urlOptions: this.urlOptions,
135
- action: "Default.CleanUpChunks",
136
- data: {
137
- chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,
138
- blobStorageProviderName: parameters.data.blobStorageProviderName
139
- },
140
- successCb: parameters.successCb,
141
- failureCb: parameters.failureCb,
142
- progressCb: parameters.progressCb,
143
- fallbackProperties: parameters.fallbackProperties,
144
- query: parameters.query
145
- });
146
-
147
- request.execute();
148
- }
149
-
150
- /**
151
- * Chunks the provided file. If the file is a base64 string this method will convert it to a blob and then chunk it.
152
- *
153
- * @param {(Blob | string)} file
154
- * @param {number} chunkSize
155
- * @param {string} contentTypeMime
156
- * @return {*} {ChunkFileResult}
157
- * @memberof ChunkUploadService
158
- */
159
- chunkFile(file: Blob | string, chunkSize: number, contentTypeMime: string): ChunkFileResult {
160
- Guard.isNotNull(file, "file");
161
- Guard.isNotNull(chunkSize, "chunkSize");
162
-
163
- const utils = new ChunkedFileUploadUtilities();
164
- return utils.chunkFile(file, chunkSize, contentTypeMime);
165
- }
166
- }
167
-
168
- class Guard {
169
- static isNotNull<T>(value: T, parameterName: string) {
170
- if (typeof(value) === "number") {
171
- if (value === null || value === undefined) {
172
- Guard.throwException(parameterName);
173
- }
174
- return;
175
- }
176
-
177
- if (!value) {
178
- Guard.throwException(parameterName);
179
- }
180
- }
181
-
182
- private static throwException(parameterName) {
183
- throw `parameter ${parameterName} is required.`;
184
- }
185
- }
186
-
187
- //#region interfaces
188
-
189
- /**
190
- * @description This interface shows the minimum data needed to create a single chunk upload request
191
- * @export
192
- * @interface UploadChunkRequestOptions
193
- * @extends {CreateRequestOptions}
194
- */
195
- export interface UploadChunkRequestOptions extends CreateRequestOptions {
196
- /**
197
- * @description the data needed to construct the request
198
- * @type {{
199
- * fileMimeType: string;
200
- * chunkedFileUploadSessionId: string;
201
- * chunkSize: number;
202
- * chunkOrdinal: number;
203
- * numberOfChunks: number;
204
- * positionOfChunkInQueue?: number;
205
- * chunkBlob: Blob;
206
- * blobStorageProviderName: string;
207
- * }}
208
- * @memberof UploadChunkRequestOptions
209
- */
210
- data: {
211
- /**
212
- * @description the file's mime type
213
- * @type {string}
214
- */
215
- fileMimeType: string;
216
- /**
217
- * @description the file's name
218
- * @type {string}
219
- */
220
- fileName: string;
221
- /**
222
- * @description the current chunk upload session Id
223
- * @type {string}
224
- */
225
- chunkedFileUploadSessionId: string;
226
- /**
227
- * @description the chunk size in bytes
228
- * @type {number}
229
- */
230
- chunkSize: number;
231
- /**
232
- * @description the chunk's ordinal
233
- * @type {number}
234
- */
235
- chunkOrdinal: number;
236
- /**
237
- * @description the total number of chunks
238
- * @type {number}
239
- */
240
- numberOfChunks: number;
241
- /**
242
- * @description Optional. The position of the chunk in the request queue, this property is used to calculate the progress of the upload
243
- * @type {number}
244
- */
245
- positionOfChunkInQueue?: number;
246
- /**
247
- * @description The chunk data
248
- * @type {Blob}
249
- */
250
- chunkBlob: Blob;
251
- /**
252
- * @description the target blob storage provider's name
253
- * @type {string}
254
- */
255
- blobStorageProviderName: string;
256
- }
257
- }
258
-
259
- /**
260
- * @description This interface shows the minimum data needed to create a commit chunks request
261
- * @export
262
- * @interface CommitChunksRequestOptions
263
- * @extends {CreateRequestOptions}
264
- */
265
- export interface CommitChunksRequestOptions extends CreateRequestOptions {
266
- /**
267
- * @description the data needed to construct the request
268
- * @type {{
269
- * chunkedFileUploadSessionId: string;
270
- * contentType: string;
271
- * fileTotalSize: number;
272
- * numberOfChunks: number;
273
- * name: string;
274
- * blobStorageProviderName: string;
275
- * uploadProperties: { [key: string]: string };
276
- * itemId?: string;
277
- * }}
278
- * @memberof CommitChunksRequestOptions
279
- */
280
- data: {
281
- /**
282
- * @description the current chunk upload session Id
283
- * @type {string}
284
- */
285
- chunkedFileUploadSessionId: string;
286
- /**
287
- * @description the file's mime type
288
- * @type {string}
289
- */
290
- contentType: string;
291
- /**
292
- * @description the total size of the file
293
- * @type {number}
294
- */
295
- fileTotalSize: number;
296
- /**
297
- * @description the total number of chunks
298
- * @type {number}
299
- */
300
- numberOfChunks: number;
301
- /**
302
- * @description the file's name
303
- * @type {string}
304
- */
305
- name: string;
306
- /**
307
- * @description the target blob storage provider's name
308
- * @type {string}
309
- */
310
- blobStorageProviderName: string;
311
- /**
312
- * @description the properties of the uploaded file like the Title, UrlName, etc
313
- * @type {{ [key: string]: string }}
314
- */
315
- uploadProperties: { [key: string]: string };
316
- /**
317
- * @description Optional. Used when updating a media item, can be null when used to create a new media file.
318
- * @type {string}
319
- */
320
- itemId?: string;
321
- }
322
- }
323
-
324
- /**
325
- * @description This interface shows the minimum data needed to create request to get the chunk upload information for the current library from the server
326
- * @export
327
- * @interface GetChunkUploadInfoRequestOptions
328
- * @extends {CreateRequestOptions}
329
- */
330
- export interface GetChunkUploadInfoRequestOptions extends CreateRequestOptions {
331
- /**
332
- * @description the data needed to construct the request
333
- * @type {{
334
- * libraryId: string;
335
- * }}
336
- * @memberof GetChunkUploadInfoRequestOptions
337
- */
338
- data: {
339
- /**
340
- * @description the parent library (not folder) in which the file will be uploaded to
341
- * @type {string}
342
- */
343
- libraryId: string;
344
- }
345
- }
346
-
347
- /**
348
- * @description This interface show the minimum data needed to create a request to delete all chunk from a chunk upload session
349
- * @export
350
- * @interface CleanUpChunksRequestOptions
351
- * @extends {CreateRequestOptions}
352
- */
353
- export interface CleanUpChunksRequestOptions extends CreateRequestOptions {
354
- /**
355
- * @description the data needed to construct the request
356
- * @type {{
357
- * chunkedFileUploadSessionId: string;
358
- * blobStorageProviderName: string;
359
- * }}
360
- * @memberof CleanUpChunksRequestOptions
361
- */
362
- data: {
363
- /**
364
- * @description the current chunk upload session Id
365
- * @type {string}
366
- */
367
- chunkedFileUploadSessionId: string;
368
- /**
369
- * @description the target blob storage provider's name
370
- * @type {string}
371
- */
372
- blobStorageProviderName: string;
373
- }
374
- }
375
-
376
- /**
377
- * @description This is a data transfer object that shows the information provided by the getChunkUploadInfo request
378
- * @export
379
- * @interface ChunkUploadInfoDTO
380
- */
381
- export interface ChunkUploadInfoDTO {
382
- /**
383
- * @description shows wether the current blob storage provider supports uploading in chunks
384
- * @type {boolean}
385
- * @memberof ChunkUploadInfoDTO
386
- */
387
- ProviderSupportsChunkUpload: boolean;
388
- /**
389
- * @description the target blob storage provider's name
390
- * @type {string}
391
- * @memberof ChunkUploadInfoDTO
392
- */
393
- BlobStorageProviderName: string;
394
- /**
395
- * @description the current chunk upload session Id
396
- * @type {string}
397
- * @memberof ChunkUploadInfoDTO
398
- */
399
- ChunkedFileUploadSessionId: string,
400
- /**
401
- * @description the chunk size in bytes
402
- * @type {number}
403
- * @memberof ChunkUploadInfoDTO
404
- */
405
- ChunkSize: number,
406
- /**
407
- * @description the maximum amount of time a chunk should be retired
408
- * @type {number}
409
- * @memberof ChunkUploadInfoDTO
410
- */
411
- MaxRetryCountForChunk: number,
412
- /**
413
- * @description the maximum simultaneous requests that should be sent to the server
414
- * @type {number}
415
- * @memberof ChunkUploadInfoDTO
416
- */
417
- MaxSimultaneousChunkUploadRequestsPerSession: number
418
- }
419
-
420
- /**
421
- * @description A DTO containing the data that the server responds with when a chunk is uploaded
422
- * @export
423
- * @interface ChunkUploadResult
424
- */
425
- export interface ChunkUploadResult {
426
- /**
427
- * @description indicates whether the chunk has been successfully uploaded
428
- * @type {boolean}
429
- * @memberof ChunkUploadResult
430
- */
431
- SuccessfullyUploaded: boolean,
432
- /**
433
- * @description the current chunk upload session Id
434
- * @type {string}
435
- * @memberof ChunkUploadResult
436
- */
437
- ChunkedFileUploadSessionId: string
438
- }
439
- //#endregion
@@ -1,64 +0,0 @@
1
- export class ChunkedFileUploadUtilities {
2
- chunkFile(file: Blob | string, chunkSize: number, contentTypeMime: string): ChunkFileResult {
3
- let fileInternal: Blob;
4
-
5
- if (typeof file === "string")
6
- fileInternal = this.base64ToBlob(file, chunkSize, contentTypeMime);
7
- else {
8
- fileInternal = file as Blob;
9
- }
10
-
11
- const fileSize = fileInternal.size;
12
- const result: Array<FileUploadChunk> = [];
13
- let chunkOrdinal = 0;
14
- let offset = 0;
15
- let currentOffset = chunkSize;
16
-
17
- while (offset <= fileSize) {
18
- const chunk = fileInternal.slice(offset, currentOffset, contentTypeMime);
19
- offset = currentOffset;
20
- currentOffset = currentOffset + chunkSize;
21
-
22
- result.push({
23
- ordinal: chunkOrdinal,
24
- content: chunk
25
- });
26
-
27
- chunkOrdinal++;
28
- }
29
-
30
- return {
31
- chunks: result,
32
- totalChunksCount: result.length,
33
- fileTotalSize: fileSize
34
- };
35
- }
36
-
37
- private base64ToBlob(base64String, chunkSize, contentType = ""): Blob {
38
- const byteCharacters = atob(base64String);
39
- const byteArrays = [];
40
- for (let offset = 0; offset < byteCharacters.length; offset += chunkSize) {
41
- const slice = byteCharacters.slice(offset, offset + chunkSize);
42
- const byteNumbers = new Array(slice.length);
43
- for (let i = 0; i < slice.length; i++) {
44
- byteNumbers[i] = slice.charCodeAt(i);
45
- }
46
- const byteArray = new Uint8Array(byteNumbers);
47
- byteArrays.push(byteArray);
48
- }
49
-
50
- const blob = new Blob(byteArrays, { type: contentType });
51
- return blob;
52
- }
53
- }
54
-
55
- export interface FileUploadChunk {
56
- ordinal: number,
57
- content: Blob
58
- }
59
-
60
- export interface ChunkFileResult {
61
- chunks: Array<FileUploadChunk>,
62
- totalChunksCount: number,
63
- fileTotalSize: number
64
- }
package/src/constants.ts DELETED
@@ -1,66 +0,0 @@
1
- export const EXPRESSION_TYPE = {
2
- query: 1,
3
- where: 100,
4
- and: "and",
5
- or: "or",
6
- not: "not",
7
- eq: "eq",
8
- ne: "ne",
9
- lt: "lt",
10
- le: "le",
11
- gt: "gt",
12
- ge: "ge",
13
- any: "any",
14
- in: "in",
15
- contains: "contains",
16
- startsWith: "startsWith",
17
- endsWith: "endsWith"
18
- };
19
-
20
- export const ODATA_PARAMS = {
21
- $filter: "$filter",
22
- $select: "$select",
23
- $expand: "$expand",
24
- $orderby: "$orderby",
25
- $skip: "$skip",
26
- $top: "$top",
27
- $count: "$count",
28
- $search: "$search"
29
- };
30
-
31
- export const SF_PARAMS = {
32
- provider: "sf_provider",
33
- culture: "sf_culture",
34
- siteId: "sf_site",
35
- fallbackParams: "sf_fallback_prop_names",
36
- parentId: "parentId"
37
- };
38
-
39
- export const HEADER_NAMES = {
40
- contentType: "Content-Type",
41
- authorization: "Authorization",
42
- contentEncoding: "Content-Encoding",
43
- operation: "X-Operation",
44
- properties: "X-Sf-Properties",
45
- fileName: "X-File-Name",
46
- serviceRequest: "X-SF-Service-Request",
47
- choicesBinaryRepresentation: "X-SF-Binary-Choice-Representation",
48
- integrationMode: "X-SF-Integration-Mode",
49
- chunkOrdinal: "X-SF-Chunk-Ordinal",
50
- chunkSize: "X-SF-Chunk-Size",
51
- fileSize: "X-SF-File-Size",
52
- chunkedFileUploadSessionId: "X-SF-Chunked-File-Upload-Session-Id",
53
- blobStorageProviderName: "X-SF-Blob-Storage-Provider-Name"
54
- };
55
-
56
- export const HTTP_METHODS = {
57
- get: "GET",
58
- put: "PUT",
59
- post: "POST",
60
- patch: "PATCH",
61
- delete: "DELETE"
62
- };
63
-
64
- export const CONTENT_TYPES = {
65
- json: "application/json"
66
- };
package/src/utils.ts DELETED
@@ -1,125 +0,0 @@
1
- export class utils {
2
- static isString(obj: any): boolean {
3
- return typeof (obj) === "string" || obj instanceof String;
4
- }
5
-
6
- static isBoolean(obj: any): boolean {
7
- return typeof (obj) === "boolean";
8
- }
9
-
10
- static isBlob(obj: any): boolean {
11
- return obj instanceof Blob;
12
- }
13
-
14
- static isNumber(value: any): boolean {
15
- return typeof value === "number" && isFinite(value);
16
- }
17
-
18
- static isFunction(func: any): boolean {
19
- return typeof func === "function";
20
- }
21
-
22
- static serializeToJSON(data): string {
23
- if (!utils.isString(data) && !this.isBlob(data)) {
24
- return JSON.stringify(data);
25
- }
26
-
27
- return data;
28
- }
29
-
30
- static parseStringToJson(data) {
31
- if (!data) {
32
- return null;
33
- }
34
-
35
- const number = Number(data);
36
- if (!isNaN(number)) {
37
- return number;
38
- }
39
-
40
- let result = null;
41
-
42
- try {
43
- result = JSON.parse(data);
44
- result = utils._parseDateProperties(result);
45
- } catch (e) {
46
- console.log("An unexpected error occurred while parsing the response from server: " + e.message + ". Response body was: '" + data + "'");
47
- }
48
-
49
- return result;
50
- }
51
-
52
- static convertDateFieldToISOString(data: object): object {
53
- /*
54
- TODOSDK: when write tests for this try to use
55
- "Object.keys(obj).forEach(function(){})",
56
- Phantomjs does not recognize "for..in" operator.
57
- */
58
- for (const obj in data) {
59
- if (data[obj] instanceof Date) {
60
- data[obj] = data[obj].toISOString();
61
- }
62
- }
63
-
64
- return data;
65
- }
66
-
67
- static hex16() {
68
- return Math.floor((1 + Math.random()) * 0x10000).toString(16).substr(1);
69
- }
70
-
71
- static addTrailingSlash(url: string): string {
72
- url = utils.removeSlashes(url);
73
- url += "/";
74
- return url;
75
- }
76
-
77
- static removeSlashes(url: string) {
78
- let ret = url;
79
-
80
- const lastChar = ret.substr(-1);
81
- if (lastChar == "/")
82
- ret = ret.substr(0, ret.length - 1);
83
-
84
- return ret;
85
- }
86
-
87
- static clone(from: any, to = {}, action: Function = null): any {
88
- if (!to)
89
- to = {};
90
-
91
- for (const property in from) {
92
- if (from[property] && from[property].constructor && from[property].constructor === Object && typeof from[property] == "function") {
93
- to[property] = to[property] || {};
94
- arguments.callee(to[property], from[property]);
95
- } else {
96
- to[property] = from[property];
97
- }
98
-
99
- if (typeof action === "function")
100
- action(to);
101
- }
102
-
103
- return to;
104
- }
105
-
106
- private static _parseDateProperties(data) {
107
- for (const obj in data) {
108
- // TODO
109
- if (data[obj] instanceof Array || (data[obj] instanceof Object && <any>!data[obj] instanceof Function))
110
- this._parseDateProperties(data[obj]);
111
- else
112
- data[obj] = utils._tryFormatFieldToDate(data[obj]);
113
- }
114
-
115
- return data;
116
- }
117
-
118
- private static _tryFormatFieldToDate(date) {
119
- if ((/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/).test(date)) {
120
- date = new Date(date);
121
- }
122
-
123
- return date;
124
- }
125
- }