@progress/sitefinity-webservices-sdk 1.1.16 → 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 (233) 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/.github/copilot-instructions.md +0 -72
  80. package/.github/instructions/sitefinity-webservices-sdk.instructions.md +0 -53
  81. package/config/helpers.ts +0 -8
  82. package/config/webpack.common.ts +0 -39
  83. package/config/webpack.dev.ts +0 -37
  84. package/config/webpack.prod.ts +0 -17
  85. package/dist/docs/.nojekyll +0 -1
  86. package/dist/docs/assets/highlight.css +0 -71
  87. package/dist/docs/assets/main.js +0 -58
  88. package/dist/docs/assets/search.js +0 -1
  89. package/dist/docs/assets/style.css +0 -1280
  90. package/dist/docs/classes/BlobBuilder.BlobBuilder.html +0 -137
  91. package/dist/docs/classes/Data.Data.html +0 -387
  92. package/dist/docs/classes/Expression.BinaryExpression.html +0 -184
  93. package/dist/docs/classes/Expression.ComplexExpression.html +0 -146
  94. package/dist/docs/classes/Expression.ExpressionBase.html +0 -125
  95. package/dist/docs/classes/OrderProperty.OrderProperty.html +0 -151
  96. package/dist/docs/classes/Query.Query.html +0 -353
  97. package/dist/docs/classes/QueryBase.QueryBase.html +0 -185
  98. package/dist/docs/classes/QueryBuilder.QueryBuilder.html +0 -206
  99. package/dist/docs/classes/Requests_BatchRequest.BatchRequest.html +0 -731
  100. package/dist/docs/classes/Requests_BatchRequest.Transaction.html +0 -332
  101. package/dist/docs/classes/Requests_ExecutableRequest.ExecutableRequest.html +0 -340
  102. package/dist/docs/classes/Requests_Request.CommitChunksRequest.html +0 -303
  103. package/dist/docs/classes/Requests_Request.CreateRelatedRequest.html +0 -310
  104. package/dist/docs/classes/Requests_Request.CreateRequest.html +0 -307
  105. package/dist/docs/classes/Requests_Request.DeleteRelatedByIdRequest.html +0 -309
  106. package/dist/docs/classes/Requests_Request.DeleteRelatedRequest.html +0 -302
  107. package/dist/docs/classes/Requests_Request.DeleteRequest.html +0 -298
  108. package/dist/docs/classes/Requests_Request.GetByIdRequest.html +0 -298
  109. package/dist/docs/classes/Requests_Request.GetRelatedByIdRequest.html +0 -309
  110. package/dist/docs/classes/Requests_Request.GetRelatedRequest.html +0 -302
  111. package/dist/docs/classes/Requests_Request.GetRequest.html +0 -295
  112. package/dist/docs/classes/Requests_Request.UpdateRequest.html +0 -309
  113. package/dist/docs/classes/Requests_Request.UploadChunkRequest.html +0 -359
  114. package/dist/docs/classes/Requests_Request.UploadRequest.html +0 -329
  115. package/dist/docs/classes/Requests_RequestBase.RequestBase.html +0 -275
  116. package/dist/docs/classes/Requests_RequestFactory.RequestFactory.html +0 -344
  117. package/dist/docs/classes/Sitefinity.Sitefinity.html +0 -188
  118. package/dist/docs/classes/WhereQuery.WhereQuery.html +0 -436
  119. package/dist/docs/classes/chunk_upload_chunk_upload_sdk.ChunkUploadSdk.html +0 -231
  120. package/dist/docs/classes/chunk_upload_chunked_file_upload_utilities.ChunkedFileUploadUtilities.html +0 -131
  121. package/dist/docs/classes/utils.utils.html +0 -303
  122. package/dist/docs/index.html +0 -129
  123. package/dist/docs/interfaces/Data.CreateRelatedRequestOptions.html +0 -155
  124. package/dist/docs/interfaces/Data.CreateRequestOptions.html +0 -153
  125. package/dist/docs/interfaces/Data.OperationsRequestOptions.html +0 -145
  126. package/dist/docs/interfaces/Data.PropertyRequestOptions.html +0 -149
  127. package/dist/docs/interfaces/Data.RequestOptionsBase.html +0 -136
  128. package/dist/docs/interfaces/Data.SingleRelatedItemRequestOptions.html +0 -155
  129. package/dist/docs/interfaces/Data.UpdateRequestOptions.html +0 -155
  130. package/dist/docs/interfaces/Data.UploadRequestOptions.html +0 -169
  131. package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRelatedRequestOptions.html +0 -161
  132. package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRequestOptions.html +0 -153
  133. package/dist/docs/interfaces/Requests_BatchRequest.BatchPropertyRequestOptions.html +0 -153
  134. package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsBase.html +0 -145
  135. package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsExtended.html +0 -153
  136. package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleItemRequestOptions.html +0 -145
  137. package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleRelatedItemRequestOptions.html +0 -161
  138. package/dist/docs/interfaces/Requests_BatchRequest.BatchUpdateRequestOptions.html +0 -161
  139. package/dist/docs/interfaces/Requests_ExecutableRequest.ResponseHandlers.html +0 -98
  140. package/dist/docs/interfaces/Requests_Request.CommitChunksRequestOptionsExtended.html +0 -215
  141. package/dist/docs/interfaces/Requests_Request.PostRequestOptionsExtended.html +0 -159
  142. package/dist/docs/interfaces/Requests_Request.PutRequestOptionsExtended.html +0 -161
  143. package/dist/docs/interfaces/Requests_Request.RelatedByIdRequestOptionsExtended.html +0 -169
  144. package/dist/docs/interfaces/Requests_Request.RelatedRequestOptionsExtended.html +0 -163
  145. package/dist/docs/interfaces/Requests_Request.UploadChunkRequestOptionsExtended.html +0 -217
  146. package/dist/docs/interfaces/Requests_Request.UploadRequestOptionsExtended.html +0 -180
  147. package/dist/docs/interfaces/Requests_RequestBase.RequestOptionsBaseExtended.html +0 -148
  148. package/dist/docs/interfaces/Sitefinity.SDKOptions.html +0 -128
  149. package/dist/docs/interfaces/Sitefinity.Token.html +0 -94
  150. package/dist/docs/interfaces/Sitefinity.TypeOptions.html +0 -160
  151. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.ChunkUploadInfoDTO.html +0 -159
  152. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.ChunkUploadResult.html +0 -111
  153. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.CleanUpChunksRequestOptions.html +0 -171
  154. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.CommitChunksRequestOptions.html +0 -204
  155. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.GetChunkUploadInfoRequestOptions.html +0 -166
  156. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.UploadChunkRequestOptions.html +0 -206
  157. package/dist/docs/interfaces/chunk_upload_chunked_file_upload_utilities.ChunkFileResult.html +0 -101
  158. package/dist/docs/interfaces/chunk_upload_chunked_file_upload_utilities.FileUploadChunk.html +0 -94
  159. package/dist/docs/modules/BlobBuilder.html +0 -73
  160. package/dist/docs/modules/Data.html +0 -92
  161. package/dist/docs/modules/Expression.html +0 -77
  162. package/dist/docs/modules/OrderProperty.html +0 -73
  163. package/dist/docs/modules/Query.html +0 -73
  164. package/dist/docs/modules/QueryBase.html +0 -73
  165. package/dist/docs/modules/QueryBuilder.html +0 -73
  166. package/dist/docs/modules/Requests_BatchRequest.html +0 -94
  167. package/dist/docs/modules/Requests_ExecutableRequest.html +0 -78
  168. package/dist/docs/modules/Requests_Request.html +0 -114
  169. package/dist/docs/modules/Requests_RequestBase.html +0 -78
  170. package/dist/docs/modules/Requests_RequestFactory.html +0 -73
  171. package/dist/docs/modules/Sitefinity.html +0 -82
  172. package/dist/docs/modules/WhereQuery.html +0 -73
  173. package/dist/docs/modules/chunk_upload_chunk_upload_sdk.html +0 -88
  174. package/dist/docs/modules/chunk_upload_chunked_file_upload_utilities.html +0 -80
  175. package/dist/docs/modules/constants.html +0 -83
  176. package/dist/docs/modules/utils.html +0 -73
  177. package/dist/docs/modules.html +0 -80
  178. package/dist/docs/variables/constants.CONTENT_TYPES.html +0 -76
  179. package/dist/docs/variables/constants.EXPRESSION_TYPE.html +0 -106
  180. package/dist/docs/variables/constants.HEADER_NAMES.html +0 -102
  181. package/dist/docs/variables/constants.HTTP_METHODS.html +0 -84
  182. package/dist/docs/variables/constants.ODATA_PARAMS.html +0 -90
  183. package/dist/docs/variables/constants.SF_PARAMS.html +0 -84
  184. package/dist/samples.html +0 -625
  185. package/dist/sitefinity-webservices-sdk.js +0 -3243
  186. package/dist/sitefinity-webservices-sdk.js.map +0 -1
  187. package/dist/sitefinity-webservices-sdk.min.js +0 -1
  188. package/dist/src/BlobBuilder.d.ts +0 -14
  189. package/dist/src/Data.d.ts +0 -154
  190. package/dist/src/Data.spec.d.ts +0 -1
  191. package/dist/src/Expression.d.ts +0 -19
  192. package/dist/src/OrderProperty.d.ts +0 -8
  193. package/dist/src/Query.d.ts +0 -59
  194. package/dist/src/QueryBase.d.ts +0 -18
  195. package/dist/src/QueryBuilder.d.ts +0 -13
  196. package/dist/src/Requests/BatchRequest.d.ts +0 -146
  197. package/dist/src/Requests/ExecutableRequest.d.ts +0 -22
  198. package/dist/src/Requests/Request.d.ts +0 -132
  199. package/dist/src/Requests/RequestBase.d.ts +0 -27
  200. package/dist/src/Requests/request.spec.d.ts +0 -1
  201. package/dist/src/Sitefinity.d.ts +0 -75
  202. package/dist/src/Sitefinity.spec.d.ts +0 -1
  203. package/dist/src/WhereQuery.d.ts +0 -72
  204. package/dist/src/chunk-upload/chunk-upload.sdk.d.ts +0 -295
  205. package/dist/src/chunk-upload/chunk-upload.sdk.spec.d.ts +0 -1
  206. package/dist/src/chunk-upload/chunked-file-upload.utilities.d.ts +0 -13
  207. package/dist/src/utils.d.ts +0 -16
  208. package/karma.conf.js +0 -29
  209. package/sitefinity-webservices-sdk.ts +0 -15
  210. package/src/BlobBuilder.ts +0 -20
  211. package/src/Data.spec.ts +0 -160
  212. package/src/Data.ts +0 -418
  213. package/src/Expression.ts +0 -36
  214. package/src/OrderProperty.ts +0 -39
  215. package/src/Query.ts +0 -106
  216. package/src/QueryBase.ts +0 -57
  217. package/src/QueryBuilder.ts +0 -180
  218. package/src/Requests/BatchRequest.ts +0 -807
  219. package/src/Requests/ExecutableRequest.ts +0 -117
  220. package/src/Requests/Request.ts +0 -327
  221. package/src/Requests/RequestBase.ts +0 -163
  222. package/src/Requests/RequestFactory.ts +0 -75
  223. package/src/Requests/request.spec.ts +0 -154
  224. package/src/Sitefinity.spec.ts +0 -483
  225. package/src/Sitefinity.ts +0 -125
  226. package/src/WhereQuery.ts +0 -145
  227. package/src/chunk-upload/chunk-upload.sdk.spec.ts +0 -347
  228. package/src/chunk-upload/chunk-upload.sdk.ts +0 -439
  229. package/src/chunk-upload/chunked-file-upload.utilities.ts +0 -64
  230. package/src/constants.ts +0 -66
  231. package/src/utils.ts +0 -125
  232. package/template.html +0 -625
  233. 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
- // Intentionally not logging it in the browser console because there are cases when the response is not a JSON string.
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
- }