@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.
- package/README.md +84 -51
- package/esm/chunks/chunk-2ID24RPE.mjs +179 -0
- package/esm/chunks/chunk-2ID24RPE.mjs.map +7 -0
- package/esm/chunks/chunk-AHDZ2CWQ.mjs +93 -0
- package/esm/chunks/chunk-AHDZ2CWQ.mjs.map +7 -0
- package/esm/chunks/chunk-BFLQBM7R.mjs +136 -0
- package/esm/chunks/chunk-BFLQBM7R.mjs.map +7 -0
- package/esm/chunks/chunk-CMGV26CS.mjs +66 -0
- package/esm/chunks/chunk-CMGV26CS.mjs.map +7 -0
- package/esm/chunks/chunk-DHWDJAGV.mjs +180 -0
- package/esm/chunks/chunk-DHWDJAGV.mjs.map +7 -0
- package/esm/chunks/chunk-EH4CERVO.mjs +82 -0
- package/esm/chunks/chunk-EH4CERVO.mjs.map +7 -0
- package/esm/chunks/chunk-F4CWOE7M.mjs +57 -0
- package/esm/chunks/chunk-F4CWOE7M.mjs.map +7 -0
- package/esm/chunks/chunk-FUFBYOIF.mjs +98 -0
- package/esm/chunks/chunk-FUFBYOIF.mjs.map +7 -0
- package/esm/chunks/chunk-J2B7UDVZ.mjs +132 -0
- package/esm/chunks/chunk-J2B7UDVZ.mjs.map +7 -0
- package/esm/chunks/chunk-L3IMDFA5.mjs +1 -0
- package/esm/chunks/chunk-L3IMDFA5.mjs.map +7 -0
- package/esm/chunks/chunk-NNYY2VBC.mjs +383 -0
- package/esm/chunks/chunk-NNYY2VBC.mjs.map +7 -0
- package/esm/chunks/chunk-PI55MBSL.mjs +256 -0
- package/esm/chunks/chunk-PI55MBSL.mjs.map +7 -0
- package/esm/chunks/chunk-PXPK2IV6.mjs +568 -0
- package/esm/chunks/chunk-PXPK2IV6.mjs.map +7 -0
- package/esm/chunks/chunk-QPSEKUOI.mjs +35 -0
- package/esm/chunks/chunk-QPSEKUOI.mjs.map +7 -0
- package/esm/chunks/chunk-RQAAYOY6.mjs +72 -0
- package/esm/chunks/chunk-RQAAYOY6.mjs.map +7 -0
- package/esm/chunks/chunk-TTVNTTW5.mjs +145 -0
- package/esm/chunks/chunk-TTVNTTW5.mjs.map +7 -0
- package/esm/chunks/chunk-VLDX2FH2.mjs +235 -0
- package/esm/chunks/chunk-VLDX2FH2.mjs.map +7 -0
- package/esm/chunks/chunk-VWT2RJET.mjs +102 -0
- package/esm/chunks/chunk-VWT2RJET.mjs.map +7 -0
- package/esm/chunks/chunk-W2OWM3L7.mjs +19 -0
- package/esm/chunks/chunk-W2OWM3L7.mjs.map +7 -0
- package/esm/chunks/chunk-WX5J7F5D.mjs +43 -0
- package/esm/chunks/chunk-WX5J7F5D.mjs.map +7 -0
- package/esm/chunks/chunk-YB2LMPUX.mjs +54 -0
- package/esm/chunks/chunk-YB2LMPUX.mjs.map +7 -0
- package/package.json +67 -36
- package/sitefinity-webservices-sdk.cjs +2761 -0
- package/sitefinity-webservices-sdk.cjs.map +7 -0
- package/sitefinity-webservices-sdk.d.mts +1 -0
- package/{dist/sitefinity-webservices-sdk.d.ts → sitefinity-webservices-sdk.d.ts} +6 -0
- package/sitefinity-webservices-sdk.global.d.ts +5 -0
- package/sitefinity-webservices-sdk.js +2764 -0
- package/sitefinity-webservices-sdk.js.map +7 -0
- package/sitefinity-webservices-sdk.min.js +3 -0
- package/sitefinity-webservices-sdk.mjs +124 -0
- package/sitefinity-webservices-sdk.mjs.map +7 -0
- package/src/BlobBuilder.d.ts +12 -0
- package/src/Data.d.ts +259 -0
- package/src/Expression.d.ts +37 -0
- package/src/OrderProperty.d.ts +24 -0
- package/src/Query.d.ts +104 -0
- package/src/QueryBase.d.ts +40 -0
- package/src/QueryBuilder.d.ts +29 -0
- package/src/Requests/BatchRequest.d.ts +174 -0
- package/src/Requests/ExecutableRequest.d.ts +43 -0
- package/src/Requests/Request.d.ts +225 -0
- package/src/Requests/RequestBase.d.ts +58 -0
- package/{dist/src → src}/Requests/RequestFactory.d.ts +24 -2
- package/src/Sitefinity.d.ts +141 -0
- package/src/Transport/FetchTransport.d.ts +17 -0
- package/src/Transport/HttpTransport.d.ts +69 -0
- package/src/Transport/XhrTransport.d.ts +8 -0
- package/src/WhereQuery.d.ts +88 -0
- package/src/chunk-upload/chunk-upload.sdk.d.ts +305 -0
- package/src/chunk-upload/chunked-file-upload.utilities.d.ts +58 -0
- package/{dist/src → src}/constants.d.ts +21 -0
- package/src/utils.d.ts +103 -0
- package/.editorconfig +0 -29
- package/.eslintignore +0 -4
- package/.eslintrc.js +0 -40
- package/.github/copilot-instructions.md +0 -72
- package/.github/instructions/sitefinity-webservices-sdk.instructions.md +0 -53
- package/config/helpers.ts +0 -8
- package/config/webpack.common.ts +0 -39
- package/config/webpack.dev.ts +0 -37
- package/config/webpack.prod.ts +0 -17
- package/dist/docs/.nojekyll +0 -1
- package/dist/docs/assets/highlight.css +0 -71
- package/dist/docs/assets/main.js +0 -58
- package/dist/docs/assets/search.js +0 -1
- package/dist/docs/assets/style.css +0 -1280
- package/dist/docs/classes/BlobBuilder.BlobBuilder.html +0 -137
- package/dist/docs/classes/Data.Data.html +0 -387
- package/dist/docs/classes/Expression.BinaryExpression.html +0 -184
- package/dist/docs/classes/Expression.ComplexExpression.html +0 -146
- package/dist/docs/classes/Expression.ExpressionBase.html +0 -125
- package/dist/docs/classes/OrderProperty.OrderProperty.html +0 -151
- package/dist/docs/classes/Query.Query.html +0 -353
- package/dist/docs/classes/QueryBase.QueryBase.html +0 -185
- package/dist/docs/classes/QueryBuilder.QueryBuilder.html +0 -206
- package/dist/docs/classes/Requests_BatchRequest.BatchRequest.html +0 -731
- package/dist/docs/classes/Requests_BatchRequest.Transaction.html +0 -332
- package/dist/docs/classes/Requests_ExecutableRequest.ExecutableRequest.html +0 -340
- package/dist/docs/classes/Requests_Request.CommitChunksRequest.html +0 -303
- package/dist/docs/classes/Requests_Request.CreateRelatedRequest.html +0 -310
- package/dist/docs/classes/Requests_Request.CreateRequest.html +0 -307
- package/dist/docs/classes/Requests_Request.DeleteRelatedByIdRequest.html +0 -309
- package/dist/docs/classes/Requests_Request.DeleteRelatedRequest.html +0 -302
- package/dist/docs/classes/Requests_Request.DeleteRequest.html +0 -298
- package/dist/docs/classes/Requests_Request.GetByIdRequest.html +0 -298
- package/dist/docs/classes/Requests_Request.GetRelatedByIdRequest.html +0 -309
- package/dist/docs/classes/Requests_Request.GetRelatedRequest.html +0 -302
- package/dist/docs/classes/Requests_Request.GetRequest.html +0 -295
- package/dist/docs/classes/Requests_Request.UpdateRequest.html +0 -309
- package/dist/docs/classes/Requests_Request.UploadChunkRequest.html +0 -359
- package/dist/docs/classes/Requests_Request.UploadRequest.html +0 -329
- package/dist/docs/classes/Requests_RequestBase.RequestBase.html +0 -275
- package/dist/docs/classes/Requests_RequestFactory.RequestFactory.html +0 -344
- package/dist/docs/classes/Sitefinity.Sitefinity.html +0 -188
- package/dist/docs/classes/WhereQuery.WhereQuery.html +0 -436
- package/dist/docs/classes/chunk_upload_chunk_upload_sdk.ChunkUploadSdk.html +0 -231
- package/dist/docs/classes/chunk_upload_chunked_file_upload_utilities.ChunkedFileUploadUtilities.html +0 -131
- package/dist/docs/classes/utils.utils.html +0 -303
- package/dist/docs/index.html +0 -129
- package/dist/docs/interfaces/Data.CreateRelatedRequestOptions.html +0 -155
- package/dist/docs/interfaces/Data.CreateRequestOptions.html +0 -153
- package/dist/docs/interfaces/Data.OperationsRequestOptions.html +0 -145
- package/dist/docs/interfaces/Data.PropertyRequestOptions.html +0 -149
- package/dist/docs/interfaces/Data.RequestOptionsBase.html +0 -136
- package/dist/docs/interfaces/Data.SingleRelatedItemRequestOptions.html +0 -155
- package/dist/docs/interfaces/Data.UpdateRequestOptions.html +0 -155
- package/dist/docs/interfaces/Data.UploadRequestOptions.html +0 -169
- package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRelatedRequestOptions.html +0 -161
- package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRequestOptions.html +0 -153
- package/dist/docs/interfaces/Requests_BatchRequest.BatchPropertyRequestOptions.html +0 -153
- package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsBase.html +0 -145
- package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsExtended.html +0 -153
- package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleItemRequestOptions.html +0 -145
- package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleRelatedItemRequestOptions.html +0 -161
- package/dist/docs/interfaces/Requests_BatchRequest.BatchUpdateRequestOptions.html +0 -161
- package/dist/docs/interfaces/Requests_ExecutableRequest.ResponseHandlers.html +0 -98
- package/dist/docs/interfaces/Requests_Request.CommitChunksRequestOptionsExtended.html +0 -215
- package/dist/docs/interfaces/Requests_Request.PostRequestOptionsExtended.html +0 -159
- package/dist/docs/interfaces/Requests_Request.PutRequestOptionsExtended.html +0 -161
- package/dist/docs/interfaces/Requests_Request.RelatedByIdRequestOptionsExtended.html +0 -169
- package/dist/docs/interfaces/Requests_Request.RelatedRequestOptionsExtended.html +0 -163
- package/dist/docs/interfaces/Requests_Request.UploadChunkRequestOptionsExtended.html +0 -217
- package/dist/docs/interfaces/Requests_Request.UploadRequestOptionsExtended.html +0 -180
- package/dist/docs/interfaces/Requests_RequestBase.RequestOptionsBaseExtended.html +0 -148
- package/dist/docs/interfaces/Sitefinity.SDKOptions.html +0 -128
- package/dist/docs/interfaces/Sitefinity.Token.html +0 -94
- package/dist/docs/interfaces/Sitefinity.TypeOptions.html +0 -160
- package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.ChunkUploadInfoDTO.html +0 -159
- package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.ChunkUploadResult.html +0 -111
- package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.CleanUpChunksRequestOptions.html +0 -171
- package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.CommitChunksRequestOptions.html +0 -204
- package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.GetChunkUploadInfoRequestOptions.html +0 -166
- package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.UploadChunkRequestOptions.html +0 -206
- package/dist/docs/interfaces/chunk_upload_chunked_file_upload_utilities.ChunkFileResult.html +0 -101
- package/dist/docs/interfaces/chunk_upload_chunked_file_upload_utilities.FileUploadChunk.html +0 -94
- package/dist/docs/modules/BlobBuilder.html +0 -73
- package/dist/docs/modules/Data.html +0 -92
- package/dist/docs/modules/Expression.html +0 -77
- package/dist/docs/modules/OrderProperty.html +0 -73
- package/dist/docs/modules/Query.html +0 -73
- package/dist/docs/modules/QueryBase.html +0 -73
- package/dist/docs/modules/QueryBuilder.html +0 -73
- package/dist/docs/modules/Requests_BatchRequest.html +0 -94
- package/dist/docs/modules/Requests_ExecutableRequest.html +0 -78
- package/dist/docs/modules/Requests_Request.html +0 -114
- package/dist/docs/modules/Requests_RequestBase.html +0 -78
- package/dist/docs/modules/Requests_RequestFactory.html +0 -73
- package/dist/docs/modules/Sitefinity.html +0 -82
- package/dist/docs/modules/WhereQuery.html +0 -73
- package/dist/docs/modules/chunk_upload_chunk_upload_sdk.html +0 -88
- package/dist/docs/modules/chunk_upload_chunked_file_upload_utilities.html +0 -80
- package/dist/docs/modules/constants.html +0 -83
- package/dist/docs/modules/utils.html +0 -73
- package/dist/docs/modules.html +0 -80
- package/dist/docs/variables/constants.CONTENT_TYPES.html +0 -76
- package/dist/docs/variables/constants.EXPRESSION_TYPE.html +0 -106
- package/dist/docs/variables/constants.HEADER_NAMES.html +0 -102
- package/dist/docs/variables/constants.HTTP_METHODS.html +0 -84
- package/dist/docs/variables/constants.ODATA_PARAMS.html +0 -90
- package/dist/docs/variables/constants.SF_PARAMS.html +0 -84
- package/dist/samples.html +0 -625
- package/dist/sitefinity-webservices-sdk.js +0 -3243
- package/dist/sitefinity-webservices-sdk.js.map +0 -1
- package/dist/sitefinity-webservices-sdk.min.js +0 -1
- package/dist/src/BlobBuilder.d.ts +0 -14
- package/dist/src/Data.d.ts +0 -154
- package/dist/src/Data.spec.d.ts +0 -1
- package/dist/src/Expression.d.ts +0 -19
- package/dist/src/OrderProperty.d.ts +0 -8
- package/dist/src/Query.d.ts +0 -59
- package/dist/src/QueryBase.d.ts +0 -18
- package/dist/src/QueryBuilder.d.ts +0 -13
- package/dist/src/Requests/BatchRequest.d.ts +0 -146
- package/dist/src/Requests/ExecutableRequest.d.ts +0 -22
- package/dist/src/Requests/Request.d.ts +0 -132
- package/dist/src/Requests/RequestBase.d.ts +0 -27
- package/dist/src/Requests/request.spec.d.ts +0 -1
- package/dist/src/Sitefinity.d.ts +0 -75
- package/dist/src/Sitefinity.spec.d.ts +0 -1
- package/dist/src/WhereQuery.d.ts +0 -72
- package/dist/src/chunk-upload/chunk-upload.sdk.d.ts +0 -295
- package/dist/src/chunk-upload/chunk-upload.sdk.spec.d.ts +0 -1
- package/dist/src/chunk-upload/chunked-file-upload.utilities.d.ts +0 -13
- package/dist/src/utils.d.ts +0 -16
- package/karma.conf.js +0 -29
- package/sitefinity-webservices-sdk.ts +0 -15
- package/src/BlobBuilder.ts +0 -20
- package/src/Data.spec.ts +0 -160
- package/src/Data.ts +0 -418
- package/src/Expression.ts +0 -36
- package/src/OrderProperty.ts +0 -39
- package/src/Query.ts +0 -106
- package/src/QueryBase.ts +0 -57
- package/src/QueryBuilder.ts +0 -180
- package/src/Requests/BatchRequest.ts +0 -807
- package/src/Requests/ExecutableRequest.ts +0 -117
- package/src/Requests/Request.ts +0 -327
- package/src/Requests/RequestBase.ts +0 -163
- package/src/Requests/RequestFactory.ts +0 -75
- package/src/Requests/request.spec.ts +0 -154
- package/src/Sitefinity.spec.ts +0 -483
- package/src/Sitefinity.ts +0 -125
- package/src/WhereQuery.ts +0 -145
- package/src/chunk-upload/chunk-upload.sdk.spec.ts +0 -347
- package/src/chunk-upload/chunk-upload.sdk.ts +0 -439
- package/src/chunk-upload/chunked-file-upload.utilities.ts +0 -64
- package/src/constants.ts +0 -66
- package/src/utils.ts +0 -125
- package/template.html +0 -625
- package/tsconfig.json +0 -38
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// src/Transport/FetchTransport.ts
|
|
2
|
+
var FetchTransport = class {
|
|
3
|
+
/**
|
|
4
|
+
* Creates a fetch-based transport.
|
|
5
|
+
*
|
|
6
|
+
* @param fetchImplementation Fetch function to use. Defaults to the global `fetch`, resolved when sending.
|
|
7
|
+
*/
|
|
8
|
+
constructor(fetchImplementation) {
|
|
9
|
+
this.fetchImplementation = fetchImplementation;
|
|
10
|
+
}
|
|
11
|
+
/** Sends the request with `fetch`. A failure to get any response is reported with status `0`. */
|
|
12
|
+
send(request, onComplete) {
|
|
13
|
+
const send = this.fetchImplementation ?? globalThis.fetch.bind(globalThis);
|
|
14
|
+
send(request.url, { method: request.method, headers: request.headers, body: request.body }).then((response) => response.text().then((body) => ({ response, body }))).then(
|
|
15
|
+
({ response, body }) => onComplete({
|
|
16
|
+
status: response.status,
|
|
17
|
+
body,
|
|
18
|
+
headers: readHeaders(response.headers)
|
|
19
|
+
}),
|
|
20
|
+
() => onComplete({ status: 0, body: "", headers: {} })
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
function readHeaders(source) {
|
|
25
|
+
const headers = {};
|
|
26
|
+
source.forEach((value, name) => {
|
|
27
|
+
headers[name.toLowerCase()] = value;
|
|
28
|
+
});
|
|
29
|
+
return headers;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
FetchTransport
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=chunk-QPSEKUOI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Transport/FetchTransport.ts"],
|
|
4
|
+
"sourcesContent": ["import { HttpTransport, HttpTransportRequest, HttpTransportResponse } from \"./HttpTransport\";\n\n/**\n * Transport that sends requests with the Fetch API.\n *\n * Fetch cannot report upload progress, so `onUploadProgress` is never called.\n */\nexport class FetchTransport implements HttpTransport {\n private readonly fetchImplementation: typeof fetch;\n\n /**\n * Creates a fetch-based transport.\n *\n * @param fetchImplementation Fetch function to use. Defaults to the global `fetch`, resolved when sending.\n */\n constructor(fetchImplementation?: typeof fetch) {\n this.fetchImplementation = fetchImplementation;\n }\n\n /** Sends the request with `fetch`. A failure to get any response is reported with status `0`. */\n send(request: HttpTransportRequest, onComplete: (response: HttpTransportResponse) => void): void {\n const send = this.fetchImplementation ?? globalThis.fetch.bind(globalThis);\n\n send(request.url, { method: request.method, headers: request.headers, body: request.body })\n .then(response => response.text().then(body => ({ response, body })))\n .then(\n ({ response, body }) => onComplete({\n status: response.status,\n body,\n headers: readHeaders(response.headers)\n }),\n () => onComplete({ status: 0, body: \"\", headers: {} })\n );\n }\n}\n\nfunction readHeaders(source: Headers): { [name: string]: string } {\n const headers: { [name: string]: string } = {};\n source.forEach((value, name) => {\n headers[name.toLowerCase()] = value;\n });\n\n return headers;\n}\n"],
|
|
5
|
+
"mappings": ";AAOO,IAAM,iBAAN,MAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQjD,YAAY,qBAAoC;AAC5C,SAAK,sBAAsB;AAAA,EAC/B;AAAA;AAAA,EAGA,KAAK,SAA+B,YAA6D;AAC7F,UAAM,OAAO,KAAK,uBAAuB,WAAW,MAAM,KAAK,UAAU;AAEzE,SAAK,QAAQ,KAAK,EAAE,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,SAAS,MAAM,QAAQ,KAAK,CAAC,EACrF,KAAK,cAAY,SAAS,KAAK,EAAE,KAAK,WAAS,EAAE,UAAU,KAAK,EAAE,CAAC,EACnE;AAAA,MACG,CAAC,EAAE,UAAU,KAAK,MAAM,WAAW;AAAA,QAC/B,QAAQ,SAAS;AAAA,QACjB;AAAA,QACA,SAAS,YAAY,SAAS,OAAO;AAAA,MACzC,CAAC;AAAA,MACD,MAAM,WAAW,EAAE,QAAQ,GAAG,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC;AAAA,IACzD;AAAA,EACR;AACJ;AAEA,SAAS,YAAY,QAA6C;AAC9D,QAAM,UAAsC,CAAC;AAC7C,SAAO,QAAQ,CAAC,OAAO,SAAS;AAC5B,YAAQ,KAAK,YAAY,CAAC,IAAI;AAAA,EAClC,CAAC;AAED,SAAO;AACX;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// src/constants.ts
|
|
2
|
+
var EXPRESSION_TYPE = {
|
|
3
|
+
query: 1,
|
|
4
|
+
where: 100,
|
|
5
|
+
and: "and",
|
|
6
|
+
or: "or",
|
|
7
|
+
not: "not",
|
|
8
|
+
eq: "eq",
|
|
9
|
+
ne: "ne",
|
|
10
|
+
lt: "lt",
|
|
11
|
+
le: "le",
|
|
12
|
+
gt: "gt",
|
|
13
|
+
ge: "ge",
|
|
14
|
+
any: "any",
|
|
15
|
+
in: "in",
|
|
16
|
+
contains: "contains",
|
|
17
|
+
startsWith: "startsWith",
|
|
18
|
+
endsWith: "endsWith"
|
|
19
|
+
};
|
|
20
|
+
var 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
|
+
var SF_PARAMS = {
|
|
31
|
+
provider: "sf_provider",
|
|
32
|
+
culture: "sf_culture",
|
|
33
|
+
siteId: "sf_site",
|
|
34
|
+
fallbackParams: "sf_fallback_prop_names",
|
|
35
|
+
parentId: "parentId"
|
|
36
|
+
};
|
|
37
|
+
var HEADER_NAMES = {
|
|
38
|
+
contentType: "Content-Type",
|
|
39
|
+
authorization: "Authorization",
|
|
40
|
+
contentEncoding: "Content-Encoding",
|
|
41
|
+
operation: "X-Operation",
|
|
42
|
+
properties: "X-Sf-Properties",
|
|
43
|
+
fileName: "X-File-Name",
|
|
44
|
+
serviceRequest: "X-SF-Service-Request",
|
|
45
|
+
choicesBinaryRepresentation: "X-SF-Binary-Choice-Representation",
|
|
46
|
+
integrationMode: "X-SF-Integration-Mode",
|
|
47
|
+
chunkOrdinal: "X-SF-Chunk-Ordinal",
|
|
48
|
+
chunkSize: "X-SF-Chunk-Size",
|
|
49
|
+
fileSize: "X-SF-File-Size",
|
|
50
|
+
chunkedFileUploadSessionId: "X-SF-Chunked-File-Upload-Session-Id",
|
|
51
|
+
blobStorageProviderName: "X-SF-Blob-Storage-Provider-Name"
|
|
52
|
+
};
|
|
53
|
+
var HTTP_METHODS = {
|
|
54
|
+
get: "GET",
|
|
55
|
+
put: "PUT",
|
|
56
|
+
post: "POST",
|
|
57
|
+
patch: "PATCH",
|
|
58
|
+
delete: "DELETE"
|
|
59
|
+
};
|
|
60
|
+
var CONTENT_TYPES = {
|
|
61
|
+
json: "application/json"
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export {
|
|
65
|
+
EXPRESSION_TYPE,
|
|
66
|
+
ODATA_PARAMS,
|
|
67
|
+
SF_PARAMS,
|
|
68
|
+
HEADER_NAMES,
|
|
69
|
+
HTTP_METHODS,
|
|
70
|
+
CONTENT_TYPES
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=chunk-RQAAYOY6.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/constants.ts"],
|
|
4
|
+
"sourcesContent": ["\uFEFF/**\n * Operator names used by the fluent query-expression API.\n *\n * Most consumers should use {@link Query} and {@link WhereQuery} instead of constructing\n * expressions from these values directly.\n */\nexport const EXPRESSION_TYPE = {\n query: 1,\n where: 100,\n and: \"and\",\n or: \"or\",\n not: \"not\",\n eq: \"eq\",\n ne: \"ne\",\n lt: \"lt\",\n le: \"le\",\n gt: \"gt\",\n ge: \"ge\",\n any: \"any\",\n in: \"in\",\n contains: \"contains\",\n startsWith: \"startsWith\",\n endsWith: \"endsWith\"\n};\n\n/**\n * OData query parameter names emitted by {@link QueryBuilder}.\n */\nexport const ODATA_PARAMS = {\n $filter: \"$filter\",\n $select: \"$select\",\n $expand: \"$expand\",\n $orderby: \"$orderby\",\n $skip: \"$skip\",\n $top: \"$top\",\n $count: \"$count\",\n $search: \"$search\"\n};\n\n/**\n * Sitefinity-specific query parameter names supported by SDK requests.\n */\nexport const SF_PARAMS = {\n provider: \"sf_provider\",\n culture: \"sf_culture\",\n siteId: \"sf_site\",\n fallbackParams: \"sf_fallback_prop_names\",\n parentId: \"parentId\"\n};\n\n/**\n * Standard and Sitefinity-specific HTTP header names used by SDK requests.\n */\nexport const HEADER_NAMES = {\n contentType: \"Content-Type\",\n authorization: \"Authorization\",\n contentEncoding: \"Content-Encoding\",\n operation: \"X-Operation\",\n properties: \"X-Sf-Properties\",\n fileName: \"X-File-Name\",\n serviceRequest: \"X-SF-Service-Request\",\n choicesBinaryRepresentation: \"X-SF-Binary-Choice-Representation\",\n integrationMode: \"X-SF-Integration-Mode\",\n chunkOrdinal: \"X-SF-Chunk-Ordinal\",\n chunkSize: \"X-SF-Chunk-Size\",\n fileSize: \"X-SF-File-Size\",\n chunkedFileUploadSessionId: \"X-SF-Chunked-File-Upload-Session-Id\",\n blobStorageProviderName: \"X-SF-Blob-Storage-Provider-Name\"\n};\n\n/**\n * HTTP method names used by the request classes.\n */\nexport const HTTP_METHODS = {\n get: \"GET\",\n put: \"PUT\",\n post: \"POST\",\n patch: \"PATCH\",\n delete: \"DELETE\"\n};\n\n/**\n * Content types emitted by SDK requests.\n */\nexport const CONTENT_TYPES = {\n json: \"application/json\"\n};\n"],
|
|
5
|
+
"mappings": ";AAMO,IAAM,kBAAkB;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AACd;AAKO,IAAM,eAAe;AAAA,EACxB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACb;AAKO,IAAM,YAAY;AAAA,EACrB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,UAAU;AACd;AAKO,IAAM,eAAe;AAAA,EACxB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,6BAA6B;AAAA,EAC7B,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,UAAU;AAAA,EACV,4BAA4B;AAAA,EAC5B,yBAAyB;AAC7B;AAKO,IAAM,eAAe;AAAA,EACxB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACZ;AAKO,IAAM,gBAAgB;AAAA,EACzB,MAAM;AACV;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CONTENT_TYPES,
|
|
3
|
+
HEADER_NAMES,
|
|
4
|
+
ODATA_PARAMS,
|
|
5
|
+
SF_PARAMS
|
|
6
|
+
} from "./chunk-RQAAYOY6.mjs";
|
|
7
|
+
import {
|
|
8
|
+
utils
|
|
9
|
+
} from "./chunk-2ID24RPE.mjs";
|
|
10
|
+
|
|
11
|
+
// src/Requests/RequestBase.ts
|
|
12
|
+
var RequestBase = class {
|
|
13
|
+
/**
|
|
14
|
+
* Creates a low-level request from its URL, query, callback, and entity options.
|
|
15
|
+
*
|
|
16
|
+
* @param options Request options used to build and execute the request.
|
|
17
|
+
*/
|
|
18
|
+
constructor(options) {
|
|
19
|
+
this.successCb = options.successCb;
|
|
20
|
+
this.failureCb = options.failureCb;
|
|
21
|
+
this.progressCb = options.progressCb;
|
|
22
|
+
this.urlOptions = options.urlOptions;
|
|
23
|
+
this.key = options.key;
|
|
24
|
+
this.action = options.action;
|
|
25
|
+
this.fallbackProperties = options.fallbackProperties;
|
|
26
|
+
this.query = options.query;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Builds the encoded OData and Sitefinity query string for the request.
|
|
30
|
+
*
|
|
31
|
+
* @param urlOptions URL options whose provider, culture, site, and extra parameters are included.
|
|
32
|
+
* @param query OData query options to include.
|
|
33
|
+
* @returns A query string beginning with `?`, or `null` when no parameters apply.
|
|
34
|
+
*/
|
|
35
|
+
getQueryString(urlOptions, query) {
|
|
36
|
+
const paramDictionary = {};
|
|
37
|
+
this.getQueryParameters(paramDictionary, urlOptions, query);
|
|
38
|
+
const keys = Object.keys(paramDictionary);
|
|
39
|
+
if (keys.length == 0)
|
|
40
|
+
return null;
|
|
41
|
+
let queryString = "?";
|
|
42
|
+
for (const prop in paramDictionary) {
|
|
43
|
+
queryString += prop + "=" + paramDictionary[prop] + "&";
|
|
44
|
+
}
|
|
45
|
+
queryString = queryString.substring(0, queryString.length - 1);
|
|
46
|
+
return queryString;
|
|
47
|
+
}
|
|
48
|
+
/** Returns the request body. Subclasses override this for requests with content. */
|
|
49
|
+
getBody() {
|
|
50
|
+
return void 0;
|
|
51
|
+
}
|
|
52
|
+
/** Returns the HTTP method used by the request. */
|
|
53
|
+
getMethod() {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
/** Returns the headers used by the request, including a JSON content type by default. */
|
|
57
|
+
getHeaders() {
|
|
58
|
+
const headers = this.urlOptions.additionalHeaders ?? {};
|
|
59
|
+
if (headers[HEADER_NAMES.contentType] == void 0) {
|
|
60
|
+
headers[HEADER_NAMES.contentType] = CONTENT_TYPES.json;
|
|
61
|
+
}
|
|
62
|
+
return headers;
|
|
63
|
+
}
|
|
64
|
+
/** Builds the request URL, including the entity key, action, count path, and query string. */
|
|
65
|
+
buildUrl() {
|
|
66
|
+
let url = this.urlOptions.baseUrl + (this.urlOptions.entitySet || "");
|
|
67
|
+
url += this.key !== void 0 && this.key !== null ? "(" + this.key + ")" : "";
|
|
68
|
+
if (this.action) {
|
|
69
|
+
url += url.endsWith("/") ? "" : "/";
|
|
70
|
+
url += this.action;
|
|
71
|
+
}
|
|
72
|
+
if (this.query) {
|
|
73
|
+
const getCount = this.query.build().$count;
|
|
74
|
+
if (utils.isBoolean(getCount) && !getCount) {
|
|
75
|
+
url += "/$count";
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return this.addQueryParameters(url);
|
|
79
|
+
}
|
|
80
|
+
parseResponse(response) {
|
|
81
|
+
const data = utils.parseStringToJson(response.body);
|
|
82
|
+
if (data) {
|
|
83
|
+
if (response.status >= 400 && data.error) {
|
|
84
|
+
return data.error;
|
|
85
|
+
}
|
|
86
|
+
return data;
|
|
87
|
+
}
|
|
88
|
+
return response.body;
|
|
89
|
+
}
|
|
90
|
+
addQueryParameters(url) {
|
|
91
|
+
let queryString = this.getQueryString(this.urlOptions, this.query);
|
|
92
|
+
if (queryString) {
|
|
93
|
+
if (url.indexOf("?") > -1 && queryString[0] == "?") {
|
|
94
|
+
queryString = "&" + queryString.substring(1);
|
|
95
|
+
}
|
|
96
|
+
url += queryString;
|
|
97
|
+
}
|
|
98
|
+
return url;
|
|
99
|
+
}
|
|
100
|
+
getQueryParameters(paramDictionary, urlOptions, query) {
|
|
101
|
+
if (query) {
|
|
102
|
+
const builtQuery = query.build();
|
|
103
|
+
if (utils.isString(builtQuery.$filter))
|
|
104
|
+
paramDictionary[ODATA_PARAMS.$filter] = builtQuery.$filter;
|
|
105
|
+
if (utils.isString(builtQuery.$select))
|
|
106
|
+
paramDictionary[ODATA_PARAMS.$select] = builtQuery.$select;
|
|
107
|
+
if (utils.isString(builtQuery.$expand))
|
|
108
|
+
paramDictionary[ODATA_PARAMS.$expand] = builtQuery.$expand;
|
|
109
|
+
if (utils.isString(builtQuery.$orderby))
|
|
110
|
+
paramDictionary[ODATA_PARAMS.$orderby] = builtQuery.$orderby;
|
|
111
|
+
if (utils.isNumber(builtQuery.$skip))
|
|
112
|
+
paramDictionary[ODATA_PARAMS.$skip] = builtQuery.$skip;
|
|
113
|
+
if (utils.isNumber(builtQuery.$top))
|
|
114
|
+
paramDictionary[ODATA_PARAMS.$top] = builtQuery.$top;
|
|
115
|
+
if (utils.isString(builtQuery.$search))
|
|
116
|
+
paramDictionary[ODATA_PARAMS.$search] = builtQuery.$search;
|
|
117
|
+
if (utils.isBoolean(builtQuery.$count) && builtQuery.$count)
|
|
118
|
+
paramDictionary[ODATA_PARAMS.$count] = builtQuery.$count;
|
|
119
|
+
}
|
|
120
|
+
if (urlOptions.provider) {
|
|
121
|
+
paramDictionary[SF_PARAMS.provider] = urlOptions.provider;
|
|
122
|
+
}
|
|
123
|
+
if (urlOptions.culture) {
|
|
124
|
+
paramDictionary[SF_PARAMS.culture] = urlOptions.culture;
|
|
125
|
+
}
|
|
126
|
+
if (urlOptions.siteId) {
|
|
127
|
+
paramDictionary[SF_PARAMS.siteId] = urlOptions.siteId;
|
|
128
|
+
}
|
|
129
|
+
if (this.fallbackProperties) {
|
|
130
|
+
paramDictionary[SF_PARAMS.fallbackParams] = this.fallbackProperties.join();
|
|
131
|
+
}
|
|
132
|
+
if (urlOptions.additionalQueryParams) {
|
|
133
|
+
for (const key in urlOptions.additionalQueryParams) {
|
|
134
|
+
if (urlOptions.additionalQueryParams.hasOwnProperty(key)) {
|
|
135
|
+
paramDictionary[key] = urlOptions.additionalQueryParams[key];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export {
|
|
143
|
+
RequestBase
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=chunk-TTVNTTW5.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Requests/RequestBase.ts"],
|
|
4
|
+
"sourcesContent": ["import { CONTENT_TYPES, HEADER_NAMES, ODATA_PARAMS, SF_PARAMS } from \"../constants\";\nimport { RequestOptionsBase } from \"../Data\";\nimport { Query } from \"../Query\";\nimport { TypeOptions } from \"../Sitefinity\";\nimport { HttpTransportResponse } from \"../Transport/HttpTransport\";\nimport { utils } from \"../utils\";\n\n/**\n * Base class for low-level Sitefinity requests.\n *\n * This is an advanced API. Most consumers should use the fluent methods on the SDK data services.\n */\nexport class RequestBase {\n /** Callback invoked with the parsed response after a successful request. */\n public successCb: Function;\n /** Callback invoked with the parsed error response when the request fails. */\n public failureCb: Function;\n /** Callback invoked with upload progress events, when supported by the request. */\n public progressCb: Function;\n /** Entity key used to address a single item, when applicable. */\n public key: string | number;\n /** URL, provider, culture, site, and header options used to build the request. */\n public urlOptions: TypeOptions;\n protected query: Query;\n protected action: string;\n private fallbackProperties: string[];\n\n /**\n * Creates a low-level request from its URL, query, callback, and entity options.\n *\n * @param options Request options used to build and execute the request.\n */\n constructor(options: RequestOptionsBaseExtended) {\n this.successCb = options.successCb;\n this.failureCb = options.failureCb;\n this.progressCb = options.progressCb;\n this.urlOptions = options.urlOptions;\n this.key = options.key;\n this.action = options.action;\n this.fallbackProperties = options.fallbackProperties;\n this.query = options.query;\n }\n\n /**\n * Builds the encoded OData and Sitefinity query string for the request.\n *\n * @param urlOptions URL options whose provider, culture, site, and extra parameters are included.\n * @param query OData query options to include.\n * @returns A query string beginning with `?`, or `null` when no parameters apply.\n */\n getQueryString(urlOptions: TypeOptions, query: Query): string {\n const paramDictionary: { [key: string]: string } = {};\n\n this.getQueryParameters(paramDictionary, urlOptions, query);\n const keys = Object.keys(paramDictionary);\n if (keys.length == 0)\n return null;\n\n let queryString = \"?\";\n for (const prop in paramDictionary) {\n queryString += prop + \"=\" + paramDictionary[prop] + \"&\";\n }\n\n queryString = queryString.substring(0, queryString.length - 1);\n\n return queryString;\n }\n\n /** Returns the request body. Subclasses override this for requests with content. */\n getBody(): object {\n return undefined;\n }\n\n /** Returns the HTTP method used by the request. */\n getMethod(): string {\n return null;\n }\n\n /** Returns the headers used by the request, including a JSON content type by default. */\n getHeaders(): { [key: string]: string } {\n const headers = this.urlOptions.additionalHeaders ?? {};\n if (headers[HEADER_NAMES.contentType] == undefined) {\n headers[HEADER_NAMES.contentType] = CONTENT_TYPES.json;\n }\n\n return headers;\n }\n\n /** Builds the request URL, including the entity key, action, count path, and query string. */\n buildUrl(): string {\n let url = this.urlOptions.baseUrl + (this.urlOptions.entitySet || \"\");\n url += this.key !== undefined && this.key !== null ? (\"(\" + this.key + \")\") : \"\";\n if (this.action) {\n url += url.endsWith(\"/\") ? \"\" : \"/\";\n url += this.action;\n }\n\n // including count here\n // not the best solution as build() is called once more in getQueryString\n // but not that big of an issue right now\n if (this.query) {\n const getCount = this.query.build().$count;\n\n if (utils.isBoolean(getCount) && !getCount) {\n url += \"/$count\";\n }\n }\n\n return this.addQueryParameters(url);\n }\n\n protected parseResponse(response: HttpTransportResponse): string | any {\n const data = utils.parseStringToJson(response.body);\n if (data) {\n if (response.status >= 400 && data.error) {\n return data.error;\n }\n\n return data;\n }\n\n return response.body;\n }\n\n protected addQueryParameters(url: string): string {\n let queryString = this.getQueryString(this.urlOptions, this.query);\n\n if (queryString) {\n if (url.indexOf(\"?\") > -1 && queryString[0] == \"?\") {\n queryString = \"&\" + queryString.substring(1);\n }\n\n url += queryString;\n }\n\n return url;\n }\n\n private getQueryParameters(paramDictionary: { [key: string]: string }, urlOptions: TypeOptions, query: Query) {\n if (query) {\n const builtQuery = query.build();\n if (utils.isString(builtQuery.$filter))\n paramDictionary[ODATA_PARAMS.$filter] = builtQuery.$filter;\n if (utils.isString(builtQuery.$select))\n paramDictionary[ODATA_PARAMS.$select] = builtQuery.$select;\n if (utils.isString(builtQuery.$expand))\n paramDictionary[ODATA_PARAMS.$expand] = builtQuery.$expand;\n if (utils.isString(builtQuery.$orderby))\n paramDictionary[ODATA_PARAMS.$orderby] = builtQuery.$orderby;\n if (utils.isNumber(builtQuery.$skip))\n paramDictionary[ODATA_PARAMS.$skip] = builtQuery.$skip;\n if (utils.isNumber(builtQuery.$top))\n paramDictionary[ODATA_PARAMS.$top] = builtQuery.$top;\n if (utils.isString(builtQuery.$search))\n paramDictionary[ODATA_PARAMS.$search] = builtQuery.$search;\n\n // inline count\n if (utils.isBoolean(builtQuery.$count) && builtQuery.$count)\n paramDictionary[ODATA_PARAMS.$count] = builtQuery.$count;\n }\n\n if (urlOptions.provider) {\n paramDictionary[SF_PARAMS.provider] = urlOptions.provider;\n }\n\n if (urlOptions.culture) {\n paramDictionary[SF_PARAMS.culture] = urlOptions.culture;\n }\n\n if (urlOptions.siteId) {\n paramDictionary[SF_PARAMS.siteId] = urlOptions.siteId;\n }\n\n if (this.fallbackProperties) {\n paramDictionary[SF_PARAMS.fallbackParams] = this.fallbackProperties.join();\n }\n\n if (urlOptions.additionalQueryParams) {\n for (const key in urlOptions.additionalQueryParams) {\n if (urlOptions.additionalQueryParams.hasOwnProperty(key)) {\n paramDictionary[key] = urlOptions.additionalQueryParams[key];\n }\n }\n }\n }\n}\n\n/**\n * Request-construction options shared by concrete low-level request classes.\n */\nexport interface RequestOptionsBaseExtended extends RequestOptionsBase {\n /** URL and entity-set options used to build the request. */\n urlOptions: TypeOptions;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ChunkedFileUploadUtilities
|
|
3
|
+
} from "./chunk-EH4CERVO.mjs";
|
|
4
|
+
|
|
5
|
+
// src/chunk-upload/chunk-upload.sdk.ts
|
|
6
|
+
var ChunkUploadSdk = class {
|
|
7
|
+
constructor(urlOptions, factory) {
|
|
8
|
+
this.urlOptions = urlOptions;
|
|
9
|
+
this.factory = factory;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Gets the session, provider, and chunk settings required to start an upload.
|
|
13
|
+
*
|
|
14
|
+
* The `data.libraryId` field must identify the parent library, not a library
|
|
15
|
+
* folder. The inherited callbacks and query options are optional.
|
|
16
|
+
*
|
|
17
|
+
* @param parameters Request data and optional callbacks.
|
|
18
|
+
* @param parameters.data.libraryId Parent library identifier.
|
|
19
|
+
* @param parameters.successCb Receives a {@link ChunkUploadInfoDTO} on success.
|
|
20
|
+
* @param parameters.failureCb Receives the server error response on failure.
|
|
21
|
+
* @param parameters.progressCb Receives upload progress events when supported.
|
|
22
|
+
*/
|
|
23
|
+
getChunkUploadInfo(parameters) {
|
|
24
|
+
Guard.isNotNull(parameters, "parameters");
|
|
25
|
+
Guard.isNotNull(parameters.data, "parameters.data");
|
|
26
|
+
Guard.isNotNull(parameters.data.libraryId, "parameters.data.libraryId");
|
|
27
|
+
const options = {
|
|
28
|
+
urlOptions: this.urlOptions,
|
|
29
|
+
action: `Default.GetChunkUploadInfo(libraryId=${parameters.data.libraryId})`,
|
|
30
|
+
successCb: parameters.successCb,
|
|
31
|
+
failureCb: parameters.failureCb,
|
|
32
|
+
progressCb: parameters.progressCb,
|
|
33
|
+
fallbackProperties: parameters.fallbackProperties,
|
|
34
|
+
query: parameters.query
|
|
35
|
+
};
|
|
36
|
+
const request = this.factory.get(options);
|
|
37
|
+
request.execute();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Sends one chunk to the server.
|
|
41
|
+
*
|
|
42
|
+
* Upload chunks in ordinal order from `0` through `numberOfChunks - 1`.
|
|
43
|
+
* `chunkSize` is the chunk size in bytes, while `chunkBlob` contains the
|
|
44
|
+
* current chunk and may be smaller for the final chunk. The session,
|
|
45
|
+
* provider, ordinal, count, size, and blob fields are required.
|
|
46
|
+
*
|
|
47
|
+
* @param parameters Chunk data and optional callbacks.
|
|
48
|
+
* @param parameters.data.fileMimeType MIME type of the complete file.
|
|
49
|
+
* @param parameters.data.fileName File name sent with the chunk.
|
|
50
|
+
* @param parameters.data.chunkedFileUploadSessionId Session from
|
|
51
|
+
* `getChunkUploadInfo`.
|
|
52
|
+
* @param parameters.data.chunkSize Size of this chunk in bytes.
|
|
53
|
+
* @param parameters.data.chunkOrdinal Zero-based ordinal of this chunk.
|
|
54
|
+
* @param parameters.data.numberOfChunks Total chunks in the upload.
|
|
55
|
+
* @param parameters.data.positionOfChunkInQueue Optional queue position used
|
|
56
|
+
* to calculate progress for concurrent uploads.
|
|
57
|
+
* @param parameters.data.chunkBlob Bytes for this chunk.
|
|
58
|
+
* @param parameters.data.blobStorageProviderName Provider from the upload info.
|
|
59
|
+
* @param parameters.successCb Receives a {@link ChunkUploadResult} on success.
|
|
60
|
+
* @param parameters.failureCb Receives the server error response on failure.
|
|
61
|
+
* @param parameters.progressCb Receives upload progress events when supported.
|
|
62
|
+
*/
|
|
63
|
+
uploadChunk(parameters) {
|
|
64
|
+
Guard.isNotNull(parameters, "parameters");
|
|
65
|
+
Guard.isNotNull(parameters.data, "parameters.data");
|
|
66
|
+
Guard.isNotNull(parameters.data.chunkSize, "parameters.data.chunkSize");
|
|
67
|
+
Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, "parameters.data.chunkedFileUploadSessionId");
|
|
68
|
+
Guard.isNotNull(parameters.data.chunkOrdinal, "parameters.data.chunkOrdinal");
|
|
69
|
+
Guard.isNotNull(parameters.data.numberOfChunks, "parameters.data.numberOfChunks");
|
|
70
|
+
Guard.isNotNull(parameters.data.chunkBlob, "parameters.data.chunkBlob");
|
|
71
|
+
Guard.isNotNull(parameters.data.blobStorageProviderName, "parameters.data.blobStorageProviderName");
|
|
72
|
+
const request = this.factory.uploadChunk({
|
|
73
|
+
urlOptions: this.urlOptions,
|
|
74
|
+
fileMimeType: parameters.data.fileMimeType,
|
|
75
|
+
chunkSize: parameters.data.chunkSize,
|
|
76
|
+
chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,
|
|
77
|
+
chunkOrdinal: parameters.data.chunkOrdinal,
|
|
78
|
+
numberOfChunks: parameters.data.numberOfChunks,
|
|
79
|
+
chunkBlob: parameters.data.chunkBlob,
|
|
80
|
+
blobStorageProviderName: parameters.data.blobStorageProviderName,
|
|
81
|
+
fileName: parameters.data.fileName,
|
|
82
|
+
// optional
|
|
83
|
+
positionOfChunkInQueue: parameters.data.positionOfChunkInQueue,
|
|
84
|
+
successCb: parameters.successCb,
|
|
85
|
+
failureCb: parameters.failureCb,
|
|
86
|
+
progressCb: parameters.progressCb,
|
|
87
|
+
fallbackProperties: parameters.fallbackProperties,
|
|
88
|
+
query: parameters.query
|
|
89
|
+
});
|
|
90
|
+
request.execute();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Commits all uploaded chunks as one media file.
|
|
94
|
+
*
|
|
95
|
+
* Call this only after every ordinal has uploaded successfully. The server
|
|
96
|
+
* validates `numberOfChunks` and `fileTotalSize` before assembling the file.
|
|
97
|
+
* Set `data.itemId` when replacing an existing media item; omit it when
|
|
98
|
+
* creating a new item. A successful commit completes the upload session.
|
|
99
|
+
*
|
|
100
|
+
* @param parameters Commit data and optional callbacks.
|
|
101
|
+
* @param parameters.data.chunkedFileUploadSessionId Session used by the chunks.
|
|
102
|
+
* @param parameters.data.contentType MIME type of the complete file.
|
|
103
|
+
* @param parameters.data.fileTotalSize Complete file size in bytes.
|
|
104
|
+
* @param parameters.data.numberOfChunks Number of uploaded chunks.
|
|
105
|
+
* @param parameters.data.name File name.
|
|
106
|
+
* @param parameters.data.blobStorageProviderName Provider used for the chunks.
|
|
107
|
+
* @param parameters.data.uploadProperties Media item properties such as
|
|
108
|
+
* `Title` and `UrlName`.
|
|
109
|
+
* @param parameters.data.itemId Optional existing item identifier for updates.
|
|
110
|
+
* @param parameters.successCb Receives the commit response on success.
|
|
111
|
+
* @param parameters.failureCb Receives the server error response on failure.
|
|
112
|
+
* @param parameters.progressCb Receives upload progress events when supported.
|
|
113
|
+
*/
|
|
114
|
+
commitChunks(parameters) {
|
|
115
|
+
Guard.isNotNull(parameters, "parameters");
|
|
116
|
+
Guard.isNotNull(parameters.data, "parameters.data");
|
|
117
|
+
Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, "parameters.data.chunkedFileUploadSessionId");
|
|
118
|
+
Guard.isNotNull(parameters.data.name, "parameters.data.name");
|
|
119
|
+
Guard.isNotNull(parameters.data.uploadProperties, "parameters.data.uploadProperties");
|
|
120
|
+
Guard.isNotNull(parameters.data.numberOfChunks, "parameters.data.numberOfChunks");
|
|
121
|
+
Guard.isNotNull(parameters.data.fileTotalSize, "parameters.data.fileTotalSize");
|
|
122
|
+
Guard.isNotNull(parameters.data.blobStorageProviderName, "parameters.data.blobStorageProviderName");
|
|
123
|
+
const options = {
|
|
124
|
+
urlOptions: this.urlOptions,
|
|
125
|
+
chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,
|
|
126
|
+
contentType: parameters.data.contentType,
|
|
127
|
+
fileName: parameters.data.name,
|
|
128
|
+
uploadProperties: parameters.data.uploadProperties,
|
|
129
|
+
numberOfChunks: parameters.data.numberOfChunks,
|
|
130
|
+
fileTotalSize: parameters.data.fileTotalSize,
|
|
131
|
+
blobStorageProviderName: parameters.data.blobStorageProviderName,
|
|
132
|
+
// Optional: used for update, can be null for create
|
|
133
|
+
itemId: parameters.data.itemId,
|
|
134
|
+
successCb: parameters.successCb,
|
|
135
|
+
failureCb: parameters.failureCb,
|
|
136
|
+
progressCb: parameters.progressCb,
|
|
137
|
+
fallbackProperties: parameters.fallbackProperties,
|
|
138
|
+
query: parameters.query
|
|
139
|
+
};
|
|
140
|
+
const request = this.factory.commitChunks(options);
|
|
141
|
+
request.execute();
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Deletes all chunks associated with an incomplete upload session.
|
|
145
|
+
*
|
|
146
|
+
* Call this after a failed chunk upload or failed commit when the session
|
|
147
|
+
* should not be resumed. Cleanup does not commit a file and requires the
|
|
148
|
+
* session and provider used by the upload.
|
|
149
|
+
*
|
|
150
|
+
* @param parameters Session data and optional callbacks.
|
|
151
|
+
* @param parameters.data.chunkedFileUploadSessionId Session to clean up.
|
|
152
|
+
* @param parameters.data.blobStorageProviderName Provider holding the chunks.
|
|
153
|
+
* @param parameters.successCb Called after cleanup succeeds.
|
|
154
|
+
* @param parameters.failureCb Receives the server error response on failure.
|
|
155
|
+
* @param parameters.progressCb Receives request progress events when supported.
|
|
156
|
+
*/
|
|
157
|
+
cleanUpChunks(parameters) {
|
|
158
|
+
Guard.isNotNull(parameters, "parameters");
|
|
159
|
+
Guard.isNotNull(parameters.data, "parameters.data");
|
|
160
|
+
Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, "parameters.data.chunkedFileUploadSessionId");
|
|
161
|
+
Guard.isNotNull(parameters.data.blobStorageProviderName, "parameters.data.blobStorageProviderName");
|
|
162
|
+
const request = this.factory.create({
|
|
163
|
+
urlOptions: this.urlOptions,
|
|
164
|
+
action: "Default.CleanUpChunks",
|
|
165
|
+
data: {
|
|
166
|
+
chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,
|
|
167
|
+
blobStorageProviderName: parameters.data.blobStorageProviderName
|
|
168
|
+
},
|
|
169
|
+
successCb: parameters.successCb,
|
|
170
|
+
failureCb: parameters.failureCb,
|
|
171
|
+
progressCb: parameters.progressCb,
|
|
172
|
+
fallbackProperties: parameters.fallbackProperties,
|
|
173
|
+
query: parameters.query
|
|
174
|
+
});
|
|
175
|
+
request.execute();
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Splits a file into uploadable chunks.
|
|
179
|
+
*
|
|
180
|
+
* A `Blob` is sliced directly. A base64 string is decoded with `atob` into
|
|
181
|
+
* a `Blob` using `contentTypeMime`, then sliced. Each returned chunk has a
|
|
182
|
+
* zero-based ordinal, and the last chunk can be smaller than `chunkSize`.
|
|
183
|
+
*
|
|
184
|
+
* @param file Source `Blob` or base64-encoded binary string.
|
|
185
|
+
* @param chunkSize Maximum chunk size in bytes.
|
|
186
|
+
* @param contentTypeMime MIME type assigned to the chunks and decoded Blob.
|
|
187
|
+
* @returns Chunk blobs, their zero-based ordinals, total count, and file size.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```ts
|
|
191
|
+
* const upload = sitefinity.data(typeOptions).chunkUpload;
|
|
192
|
+
* const result = upload.chunkFile(file, 5 * 1024 * 1024, "image/jpeg");
|
|
193
|
+
*
|
|
194
|
+
* for (const chunk of result.chunks) {
|
|
195
|
+
* upload.uploadChunk({
|
|
196
|
+
* data: {
|
|
197
|
+
* fileMimeType: "image/jpeg",
|
|
198
|
+
* chunkedFileUploadSessionId: sessionId,
|
|
199
|
+
* chunkSize: chunk.content.size,
|
|
200
|
+
* chunkOrdinal: chunk.ordinal,
|
|
201
|
+
* numberOfChunks: result.totalChunksCount,
|
|
202
|
+
* chunkBlob: chunk.content,
|
|
203
|
+
* blobStorageProviderName: providerName
|
|
204
|
+
* },
|
|
205
|
+
* successCb: onChunkUploaded,
|
|
206
|
+
* failureCb: onUploadFailed
|
|
207
|
+
* });
|
|
208
|
+
* }
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
chunkFile(file, chunkSize, contentTypeMime) {
|
|
212
|
+
Guard.isNotNull(file, "file");
|
|
213
|
+
Guard.isNotNull(chunkSize, "chunkSize");
|
|
214
|
+
const utils = new ChunkedFileUploadUtilities();
|
|
215
|
+
return utils.chunkFile(file, chunkSize, contentTypeMime);
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
var Guard = class _Guard {
|
|
219
|
+
static isNotNull(value, parameterName) {
|
|
220
|
+
if (typeof value === "number") {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
if (!value) {
|
|
224
|
+
_Guard.throwException(parameterName);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
static throwException(parameterName) {
|
|
228
|
+
throw `parameter ${parameterName} is required.`;
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
export {
|
|
233
|
+
ChunkUploadSdk
|
|
234
|
+
};
|
|
235
|
+
//# sourceMappingURL=chunk-VLDX2FH2.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/chunk-upload/chunk-upload.sdk.ts"],
|
|
4
|
+
"sourcesContent": ["import { CreateRequestOptions } from \"../Data\";\nimport { CommitChunksRequestOptionsExtended } from \"../Requests/Request\";\nimport { RequestOptionsBaseExtended } from \"../Requests/RequestBase\";\nimport { RequestFactory } from \"../Requests/RequestFactory\";\nimport { TypeOptions } from \"../Sitefinity\";\nimport { ChunkedFileUploadUtilities, ChunkFileResult } from \"./chunked-file-upload.utilities\";\n\n/**\n * Provides the client-side workflow for uploading a file in chunks.\n *\n * A typical upload calls `getChunkUploadInfo`, uses the returned session and\n * chunk settings with `uploadChunk`, and then calls `commitChunks`. If an\n * upload cannot be completed, call `cleanUpChunks` to remove the server-side\n * chunks. Use `chunkFile` to split a `Blob` or base64 string before uploading.\n */\nexport class ChunkUploadSdk {\n private urlOptions: TypeOptions;\n private factory: RequestFactory;\n\n constructor(urlOptions: TypeOptions, factory: RequestFactory) {\n this.urlOptions = urlOptions;\n this.factory = factory;\n }\n\n /**\n * Gets the session, provider, and chunk settings required to start an upload.\n *\n * The `data.libraryId` field must identify the parent library, not a library\n * folder. The inherited callbacks and query options are optional.\n *\n * @param parameters Request data and optional callbacks.\n * @param parameters.data.libraryId Parent library identifier.\n * @param parameters.successCb Receives a {@link ChunkUploadInfoDTO} on success.\n * @param parameters.failureCb Receives the server error response on failure.\n * @param parameters.progressCb Receives upload progress events when supported.\n */\n getChunkUploadInfo(parameters: GetChunkUploadInfoRequestOptions) {\n Guard.isNotNull(parameters, \"parameters\");\n Guard.isNotNull(parameters.data, \"parameters.data\");\n Guard.isNotNull(parameters.data.libraryId, \"parameters.data.libraryId\");\n\n const options: RequestOptionsBaseExtended = {\n urlOptions: this.urlOptions,\n action: `Default.GetChunkUploadInfo(libraryId=${parameters.data.libraryId})`,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb,\n progressCb: parameters.progressCb,\n fallbackProperties: parameters.fallbackProperties,\n query: parameters.query\n };\n\n const request = this.factory.get(options);\n\n request.execute();\n }\n\n /**\n * Sends one chunk to the server.\n *\n * Upload chunks in ordinal order from `0` through `numberOfChunks - 1`.\n * `chunkSize` is the chunk size in bytes, while `chunkBlob` contains the\n * current chunk and may be smaller for the final chunk. The session,\n * provider, ordinal, count, size, and blob fields are required.\n *\n * @param parameters Chunk data and optional callbacks.\n * @param parameters.data.fileMimeType MIME type of the complete file.\n * @param parameters.data.fileName File name sent with the chunk.\n * @param parameters.data.chunkedFileUploadSessionId Session from\n * `getChunkUploadInfo`.\n * @param parameters.data.chunkSize Size of this chunk in bytes.\n * @param parameters.data.chunkOrdinal Zero-based ordinal of this chunk.\n * @param parameters.data.numberOfChunks Total chunks in the upload.\n * @param parameters.data.positionOfChunkInQueue Optional queue position used\n * to calculate progress for concurrent uploads.\n * @param parameters.data.chunkBlob Bytes for this chunk.\n * @param parameters.data.blobStorageProviderName Provider from the upload info.\n * @param parameters.successCb Receives a {@link ChunkUploadResult} on success.\n * @param parameters.failureCb Receives the server error response on failure.\n * @param parameters.progressCb Receives upload progress events when supported.\n */\n uploadChunk(parameters: UploadChunkRequestOptions) {\n Guard.isNotNull(parameters, \"parameters\");\n Guard.isNotNull(parameters.data, \"parameters.data\");\n Guard.isNotNull(parameters.data.chunkSize, \"parameters.data.chunkSize\");\n Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, \"parameters.data.chunkedFileUploadSessionId\");\n Guard.isNotNull(parameters.data.chunkOrdinal, \"parameters.data.chunkOrdinal\");\n Guard.isNotNull(parameters.data.numberOfChunks, \"parameters.data.numberOfChunks\");\n Guard.isNotNull(parameters.data.chunkBlob, \"parameters.data.chunkBlob\");\n Guard.isNotNull(parameters.data.blobStorageProviderName, \"parameters.data.blobStorageProviderName\");\n\n const request = this.factory.uploadChunk({\n urlOptions: this.urlOptions,\n fileMimeType: parameters.data.fileMimeType,\n chunkSize: parameters.data.chunkSize,\n chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,\n chunkOrdinal: parameters.data.chunkOrdinal,\n numberOfChunks: parameters.data.numberOfChunks,\n chunkBlob: parameters.data.chunkBlob,\n blobStorageProviderName: parameters.data.blobStorageProviderName,\n fileName: parameters.data.fileName,\n // optional\n positionOfChunkInQueue: parameters.data.positionOfChunkInQueue,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb,\n progressCb: parameters.progressCb,\n fallbackProperties: parameters.fallbackProperties,\n query: parameters.query\n });\n\n request.execute();\n }\n\n\n /**\n * Commits all uploaded chunks as one media file.\n *\n * Call this only after every ordinal has uploaded successfully. The server\n * validates `numberOfChunks` and `fileTotalSize` before assembling the file.\n * Set `data.itemId` when replacing an existing media item; omit it when\n * creating a new item. A successful commit completes the upload session.\n *\n * @param parameters Commit data and optional callbacks.\n * @param parameters.data.chunkedFileUploadSessionId Session used by the chunks.\n * @param parameters.data.contentType MIME type of the complete file.\n * @param parameters.data.fileTotalSize Complete file size in bytes.\n * @param parameters.data.numberOfChunks Number of uploaded chunks.\n * @param parameters.data.name File name.\n * @param parameters.data.blobStorageProviderName Provider used for the chunks.\n * @param parameters.data.uploadProperties Media item properties such as\n * `Title` and `UrlName`.\n * @param parameters.data.itemId Optional existing item identifier for updates.\n * @param parameters.successCb Receives the commit response on success.\n * @param parameters.failureCb Receives the server error response on failure.\n * @param parameters.progressCb Receives upload progress events when supported.\n */\n commitChunks(parameters: CommitChunksRequestOptions) {\n Guard.isNotNull(parameters, \"parameters\");\n Guard.isNotNull(parameters.data, \"parameters.data\");\n Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, \"parameters.data.chunkedFileUploadSessionId\");\n Guard.isNotNull(parameters.data.name, \"parameters.data.name\");\n Guard.isNotNull(parameters.data.uploadProperties, \"parameters.data.uploadProperties\");\n Guard.isNotNull(parameters.data.numberOfChunks, \"parameters.data.numberOfChunks\");\n Guard.isNotNull(parameters.data.fileTotalSize, \"parameters.data.fileTotalSize\");\n Guard.isNotNull(parameters.data.blobStorageProviderName, \"parameters.data.blobStorageProviderName\");\n\n const options: CommitChunksRequestOptionsExtended = {\n urlOptions: this.urlOptions,\n chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,\n contentType: parameters.data.contentType,\n fileName: parameters.data.name,\n uploadProperties: parameters.data.uploadProperties,\n numberOfChunks: parameters.data.numberOfChunks,\n fileTotalSize: parameters.data.fileTotalSize,\n blobStorageProviderName: parameters.data.blobStorageProviderName,\n // Optional: used for update, can be null for create\n itemId: parameters.data.itemId,\n successCb: parameters.successCb,\n failureCb: parameters.failureCb,\n progressCb: parameters.progressCb,\n fallbackProperties: parameters.fallbackProperties,\n query: parameters.query\n };\n\n const request = this.factory.commitChunks(options);\n request.execute();\n }\n\n /**\n * Deletes all chunks associated with an incomplete upload session.\n *\n * Call this after a failed chunk upload or failed commit when the session\n * should not be resumed. Cleanup does not commit a file and requires the\n * session and provider used by the upload.\n *\n * @param parameters Session data and optional callbacks.\n * @param parameters.data.chunkedFileUploadSessionId Session to clean up.\n * @param parameters.data.blobStorageProviderName Provider holding the chunks.\n * @param parameters.successCb Called after cleanup succeeds.\n * @param parameters.failureCb Receives the server error response on failure.\n * @param parameters.progressCb Receives request progress events when supported.\n */\n cleanUpChunks(parameters: CleanUpChunksRequestOptions) {\n Guard.isNotNull(parameters, \"parameters\");\n Guard.isNotNull(parameters.data, \"parameters.data\");\n Guard.isNotNull(parameters.data.chunkedFileUploadSessionId, \"parameters.data.chunkedFileUploadSessionId\");\n Guard.isNotNull(parameters.data.blobStorageProviderName, \"parameters.data.blobStorageProviderName\");\n\n const request = this.factory.create({\n urlOptions: this.urlOptions,\n action: \"Default.CleanUpChunks\",\n data: {\n chunkedFileUploadSessionId: parameters.data.chunkedFileUploadSessionId,\n blobStorageProviderName: parameters.data.blobStorageProviderName\n },\n successCb: parameters.successCb,\n failureCb: parameters.failureCb,\n progressCb: parameters.progressCb,\n fallbackProperties: parameters.fallbackProperties,\n query: parameters.query\n });\n\n request.execute();\n }\n\n /**\n * Splits a file into uploadable chunks.\n *\n * A `Blob` is sliced directly. A base64 string is decoded with `atob` into\n * a `Blob` using `contentTypeMime`, then sliced. Each returned chunk has a\n * zero-based ordinal, and the last chunk can be smaller than `chunkSize`.\n *\n * @param file Source `Blob` or base64-encoded binary string.\n * @param chunkSize Maximum chunk size in bytes.\n * @param contentTypeMime MIME type assigned to the chunks and decoded Blob.\n * @returns Chunk blobs, their zero-based ordinals, total count, and file size.\n *\n * @example\n * ```ts\n * const upload = sitefinity.data(typeOptions).chunkUpload;\n * const result = upload.chunkFile(file, 5 * 1024 * 1024, \"image/jpeg\");\n *\n * for (const chunk of result.chunks) {\n * upload.uploadChunk({\n * data: {\n * fileMimeType: \"image/jpeg\",\n * chunkedFileUploadSessionId: sessionId,\n * chunkSize: chunk.content.size,\n * chunkOrdinal: chunk.ordinal,\n * numberOfChunks: result.totalChunksCount,\n * chunkBlob: chunk.content,\n * blobStorageProviderName: providerName\n * },\n * successCb: onChunkUploaded,\n * failureCb: onUploadFailed\n * });\n * }\n * ```\n */\n chunkFile(file: Blob | string, chunkSize: number, contentTypeMime: string): ChunkFileResult {\n Guard.isNotNull(file, \"file\");\n Guard.isNotNull(chunkSize, \"chunkSize\");\n\n const utils = new ChunkedFileUploadUtilities();\n return utils.chunkFile(file, chunkSize, contentTypeMime);\n }\n}\n\nclass Guard {\n static isNotNull<T>(value: T, parameterName: string) {\n if (typeof(value) === \"number\") {\n return;\n }\n\n if (!value) {\n Guard.throwException(parameterName);\n }\n }\n\n private static throwException(parameterName) {\n throw `parameter ${parameterName} is required.`;\n }\n}\n\n//#region interfaces\n\n/**\n * Options for uploading one file chunk.\n *\n * The inherited `successCb`, `failureCb`, `progressCb`, `query`, and\n * `fallbackProperties` fields are optional. All fields in `data` are required\n * except `positionOfChunkInQueue`.\n */\nexport interface UploadChunkRequestOptions extends CreateRequestOptions {\n /**\n * Values used to construct the chunk request.\n */\n data: {\n /**\n * MIME type of the complete file.\n */\n fileMimeType: string;\n /**\n * File name sent with the chunk.\n */\n fileName: string;\n /**\n * Session identifier returned by `getChunkUploadInfo`.\n */\n chunkedFileUploadSessionId: string;\n /**\n * Size of this chunk in bytes.\n */\n chunkSize: number;\n /**\n * Zero-based ordinal of this chunk.\n */\n chunkOrdinal: number;\n /**\n * Total number of chunks in the file.\n */\n numberOfChunks: number;\n /**\n * Optional queue position used to calculate progress for concurrent uploads.\n */\n positionOfChunkInQueue?: number;\n /**\n * Binary data for this chunk.\n */\n chunkBlob: Blob;\n /**\n * Name of the blob storage provider holding the upload session.\n */\n blobStorageProviderName: string;\n }\n}\n\n/**\n * Options for committing uploaded chunks into a media file.\n *\n * The inherited callbacks and request query fields are optional. All fields in\n * `data` are required except `itemId`, which is used only for updates.\n */\nexport interface CommitChunksRequestOptions extends CreateRequestOptions {\n /**\n * Values used to construct the commit request.\n */\n data: {\n /**\n * Session identifier used for all chunks.\n */\n chunkedFileUploadSessionId: string;\n /**\n * MIME type of the complete file.\n */\n contentType: string;\n /**\n * Complete file size in bytes.\n */\n fileTotalSize: number;\n /**\n * Number of chunks uploaded for this session.\n */\n numberOfChunks: number;\n /**\n * File name.\n */\n name: string;\n /**\n * Name of the blob storage provider holding the chunks.\n */\n blobStorageProviderName: string;\n /**\n * Media properties such as `Title` and `UrlName`.\n */\n uploadProperties: { [key: string]: string };\n /**\n * Existing media item identifier when replacing a file.\n */\n itemId?: string;\n }\n}\n\n/**\n * Options for retrieving chunk-upload settings for a media library.\n *\n * The inherited callbacks and request query fields are optional. `libraryId`\n * must identify the parent library, not a folder.\n */\nexport interface GetChunkUploadInfoRequestOptions extends CreateRequestOptions {\n /**\n * Values used to construct the information request.\n */\n data: {\n /**\n * Parent media library in which the file will be uploaded.\n */\n libraryId: string;\n }\n}\n\n/**\n * Options for deleting all chunks from an upload session.\n *\n * The inherited callbacks and request query fields are optional. Both fields\n * in `data` are required.\n */\nexport interface CleanUpChunksRequestOptions extends CreateRequestOptions {\n /**\n * Values used to construct the cleanup request.\n */\n data: {\n /**\n * Session identifier whose chunks should be deleted.\n */\n chunkedFileUploadSessionId: string;\n /**\n * Name of the blob storage provider holding the chunks.\n */\n blobStorageProviderName: string;\n }\n}\n\n/**\n * Server-provided settings and identifiers for a chunk upload session.\n */\nexport interface ChunkUploadInfoDTO {\n /**\n * Whether the provider supports chunked uploads.\n */\n ProviderSupportsChunkUpload: boolean;\n /**\n * Name of the blob storage provider to use for this session.\n */\n BlobStorageProviderName: string;\n /**\n * Identifier of the current chunk upload session.\n */\n ChunkedFileUploadSessionId: string,\n /**\n * Recommended chunk size in bytes.\n */\n ChunkSize: number,\n /**\n * Maximum number of retries for an individual chunk.\n */\n MaxRetryCountForChunk: number,\n /**\n * Maximum simultaneous chunk requests for the session.\n */\n MaxSimultaneousChunkUploadRequestsPerSession: number\n}\n\n/**\n * Server response returned after a chunk upload request.\n */\nexport interface ChunkUploadResult {\n /**\n * Whether the chunk was uploaded successfully.\n */\n SuccessfullyUploaded: boolean,\n /**\n * Identifier of the chunk upload session.\n */\n ChunkedFileUploadSessionId: string\n}\n//#endregion\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|