@lossless.org/client 2.0.0 → 2.2.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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/nosqldb/classes.persistence.d.ts +21 -1
- package/dist_ts/nosqldb/classes.persistence.js +23 -1
- package/dist_ts/nosqldb/classes.session.d.ts +8 -0
- package/dist_ts/nosqldb/classes.session.js +27 -2
- package/dist_ts/nosqldb/index.d.ts +1 -1
- package/dist_ts/nosqldb/index.js +2 -2
- package/dist_ts/objectstorage/interfaces.d.ts +16 -2
- package/dist_ts/objectstorage/internal.exactupload.operations.js +148 -77
- package/dist_ts/objectstorage/internal.multipart.planner.d.ts +8 -2
- package/dist_ts/objectstorage/internal.multipart.planner.js +30 -1
- package/dist_ts/objectstorage/internal.multipart.stream.js +68 -19
- package/dist_ts/objectstorage/internal.multipart.types.d.ts +32 -3
- package/package.json +1 -1
- package/readme.md +2 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/nosqldb/classes.persistence.ts +30 -1
- package/ts/nosqldb/classes.session.ts +26 -0
- package/ts/nosqldb/index.ts +1 -1
- package/ts/objectstorage/interfaces.ts +16 -2
- package/ts/objectstorage/internal.exactupload.operations.ts +190 -97
- package/ts/objectstorage/internal.multipart.planner.ts +46 -2
- package/ts/objectstorage/internal.multipart.stream.ts +79 -21
- package/ts/objectstorage/internal.multipart.types.ts +35 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
2
|
import { ExactUploadError } from './classes.exactuploaderror.js';
|
|
3
3
|
import { beginExactUploadCapabilityOperation, beginExactUploadProbeOperation, mintExactUploadCapability, } from './internal.exactupload.capability.js';
|
|
4
|
-
import { planMultipartUpload } from './internal.multipart.planner.js';
|
|
4
|
+
import { planBoundedMultipartUpload, planMultipartUpload, } from './internal.multipart.planner.js';
|
|
5
5
|
import { consumeExactMultipartStream, MultipartStreamConsumptionError, } from './internal.multipart.stream.js';
|
|
6
6
|
class ExactUploadProbeSemanticError extends Error {
|
|
7
7
|
reason;
|
|
@@ -780,16 +780,60 @@ const abortMultipartUpload = async (operationArg, keyArg, uploadIdArg) => {
|
|
|
780
780
|
settlement: cleanupResult.settlement,
|
|
781
781
|
};
|
|
782
782
|
};
|
|
783
|
+
/**
|
|
784
|
+
* Plans the upload from its declared length, or from the maximum of a source
|
|
785
|
+
* of undeclared length, and names that length for failure states.
|
|
786
|
+
*/
|
|
787
|
+
const planExactUpload = (optionsArg) => {
|
|
788
|
+
const declaresLength = optionsArg.contentLength !== undefined;
|
|
789
|
+
if (declaresLength === (optionsArg.maxContentLength !== undefined)) {
|
|
790
|
+
throw new TypeError('Exactly one of contentLength and maxContentLength must be given.');
|
|
791
|
+
}
|
|
792
|
+
if (declaresLength) {
|
|
793
|
+
return {
|
|
794
|
+
plan: planMultipartUpload({
|
|
795
|
+
objectSize: optionsArg.contentLength,
|
|
796
|
+
requestedPartSize: optionsArg.requestedPartSize,
|
|
797
|
+
requestedConcurrency: optionsArg.requestedConcurrency,
|
|
798
|
+
}),
|
|
799
|
+
lengthState: {
|
|
800
|
+
expectedContentLength: optionsArg.contentLength,
|
|
801
|
+
},
|
|
802
|
+
};
|
|
803
|
+
}
|
|
804
|
+
return {
|
|
805
|
+
plan: planBoundedMultipartUpload({
|
|
806
|
+
maxObjectSize: optionsArg.maxContentLength,
|
|
807
|
+
requestedPartSize: optionsArg.requestedPartSize,
|
|
808
|
+
requestedConcurrency: optionsArg.requestedConcurrency,
|
|
809
|
+
}),
|
|
810
|
+
lengthState: {
|
|
811
|
+
maxContentLength: optionsArg.maxContentLength,
|
|
812
|
+
},
|
|
813
|
+
};
|
|
814
|
+
};
|
|
815
|
+
const sendConditionalZeroPut = (operationArg, optionsArg, contentTypeArg, onAttemptArg) => {
|
|
816
|
+
return sendOperationCommand(operationArg, (signalArg) => {
|
|
817
|
+
onAttemptArg();
|
|
818
|
+
return operationArg.client.send(new plugins.s3.PutObjectCommand({
|
|
819
|
+
Bucket: operationArg.bucketName,
|
|
820
|
+
Key: optionsArg.path,
|
|
821
|
+
Body: new Uint8Array(0),
|
|
822
|
+
ContentLength: 0,
|
|
823
|
+
Metadata: optionsArg.nativeMetadata,
|
|
824
|
+
ContentType: contentTypeArg,
|
|
825
|
+
IfNoneMatch: '*',
|
|
826
|
+
}), {
|
|
827
|
+
abortSignal: signalArg,
|
|
828
|
+
});
|
|
829
|
+
});
|
|
830
|
+
};
|
|
783
831
|
export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
784
832
|
if (typeof optionsArg.path !== 'string' || optionsArg.path.length === 0) {
|
|
785
833
|
throw new TypeError('path must be a non-empty string.');
|
|
786
834
|
}
|
|
787
835
|
const nativeObjectProperties = snapshotNativeObjectProperties(optionsArg.nativeObjectProperties);
|
|
788
|
-
const plan =
|
|
789
|
-
objectSize: optionsArg.contentLength,
|
|
790
|
-
requestedPartSize: optionsArg.requestedPartSize,
|
|
791
|
-
requestedConcurrency: optionsArg.requestedConcurrency,
|
|
792
|
-
});
|
|
836
|
+
const { plan, lengthState } = planExactUpload(optionsArg);
|
|
793
837
|
let operation;
|
|
794
838
|
try {
|
|
795
839
|
operation = beginExactUploadCapabilityOperation(bucketRefArg, optionsArg.capability, optionsArg.signal);
|
|
@@ -798,7 +842,7 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
798
842
|
throw new ExactUploadError({
|
|
799
843
|
phase: 'capability',
|
|
800
844
|
destinationPath: optionsArg.path,
|
|
801
|
-
|
|
845
|
+
...lengthState,
|
|
802
846
|
destinationPublication: 'not-published',
|
|
803
847
|
multipartCleanup: {
|
|
804
848
|
status: 'not-required',
|
|
@@ -814,7 +858,7 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
814
858
|
throw new ExactUploadError({
|
|
815
859
|
phase: 'source',
|
|
816
860
|
destinationPath: optionsArg.path,
|
|
817
|
-
|
|
861
|
+
...lengthState,
|
|
818
862
|
destinationPublication: 'not-published',
|
|
819
863
|
multipartCleanup: {
|
|
820
864
|
status: 'not-required',
|
|
@@ -846,7 +890,7 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
846
890
|
throw new ExactUploadError({
|
|
847
891
|
phase: 'source',
|
|
848
892
|
destinationPath: optionsArg.path,
|
|
849
|
-
|
|
893
|
+
...lengthState,
|
|
850
894
|
destinationPublication: 'not-published',
|
|
851
895
|
multipartCleanup: {
|
|
852
896
|
status: 'not-required',
|
|
@@ -854,19 +898,8 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
854
898
|
}, error);
|
|
855
899
|
}
|
|
856
900
|
try {
|
|
857
|
-
const putOutput = await
|
|
901
|
+
const putOutput = await sendConditionalZeroPut(operation, optionsArg, nativeObjectProperties?.contentType, () => {
|
|
858
902
|
putRequestAttempted = true;
|
|
859
|
-
return operation.client.send(new plugins.s3.PutObjectCommand({
|
|
860
|
-
Bucket: operation.bucketName,
|
|
861
|
-
Key: optionsArg.path,
|
|
862
|
-
Body: new Uint8Array(0),
|
|
863
|
-
ContentLength: 0,
|
|
864
|
-
Metadata: optionsArg.nativeMetadata,
|
|
865
|
-
ContentType: nativeObjectProperties?.contentType,
|
|
866
|
-
IfNoneMatch: '*',
|
|
867
|
-
}), {
|
|
868
|
-
abortSignal: signalArg,
|
|
869
|
-
});
|
|
870
903
|
});
|
|
871
904
|
return {
|
|
872
905
|
destinationPath: optionsArg.path,
|
|
@@ -885,7 +918,7 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
885
918
|
throw new ExactUploadError({
|
|
886
919
|
phase: 'put-zero',
|
|
887
920
|
destinationPath: optionsArg.path,
|
|
888
|
-
|
|
921
|
+
...lengthState,
|
|
889
922
|
destinationPublication: putRequestAttempted &&
|
|
890
923
|
!isDefinitiveConditionalWriteRejection(error)
|
|
891
924
|
? 'ambiguous'
|
|
@@ -907,26 +940,52 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
907
940
|
}
|
|
908
941
|
}
|
|
909
942
|
}
|
|
910
|
-
|
|
943
|
+
const bounded = plan.classification === 'bounded';
|
|
944
|
+
let phase = bounded ? 'source' : 'create-multipart';
|
|
911
945
|
let uploadId;
|
|
912
946
|
let createRequestAttempted = false;
|
|
947
|
+
let createFailed = false;
|
|
948
|
+
let createSettled = false;
|
|
949
|
+
let zeroPutAttempted = false;
|
|
913
950
|
let completeRequestAttempted = false;
|
|
914
951
|
let operationFinishSettlement;
|
|
915
952
|
let detachedStreamError;
|
|
916
|
-
|
|
917
|
-
|
|
953
|
+
let multipartUploadCreation;
|
|
954
|
+
// A source of undeclared length creates the multipart upload with its first
|
|
955
|
+
// part, so an empty source never leaves one behind.
|
|
956
|
+
const ensureMultipartUpload = () => {
|
|
957
|
+
multipartUploadCreation ??= sendOperationCommand(operation, (signalArg) => {
|
|
918
958
|
createRequestAttempted = true;
|
|
919
|
-
return operation.client
|
|
959
|
+
return operation.client
|
|
960
|
+
.send(new plugins.s3.CreateMultipartUploadCommand({
|
|
920
961
|
Bucket: operation.bucketName,
|
|
921
962
|
Key: optionsArg.path,
|
|
922
963
|
Metadata: optionsArg.nativeMetadata,
|
|
923
964
|
ContentType: nativeObjectProperties?.contentType,
|
|
924
965
|
}), {
|
|
925
966
|
abortSignal: signalArg,
|
|
967
|
+
})
|
|
968
|
+
.then((createOutputArg) => {
|
|
969
|
+
// A create that ignored cancellation still owns its upload, so
|
|
970
|
+
// deferred cleanup aborts it by this id.
|
|
971
|
+
uploadId = getOptionalNonEmptyString(createOutputArg.UploadId);
|
|
972
|
+
return createOutputArg;
|
|
926
973
|
});
|
|
974
|
+
}).then((createOutputArg) => {
|
|
975
|
+
createSettled = true;
|
|
976
|
+
return requireNonEmptyString(createOutputArg.UploadId, 'CreateMultipartUpload UploadId');
|
|
977
|
+
}, (error) => {
|
|
978
|
+
createSettled = true;
|
|
979
|
+
createFailed = true;
|
|
980
|
+
throw error;
|
|
927
981
|
});
|
|
928
|
-
|
|
929
|
-
|
|
982
|
+
return multipartUploadCreation;
|
|
983
|
+
};
|
|
984
|
+
try {
|
|
985
|
+
if (!bounded) {
|
|
986
|
+
await ensureMultipartUpload();
|
|
987
|
+
phase = 'source';
|
|
988
|
+
}
|
|
930
989
|
const completedParts = [];
|
|
931
990
|
let consumptionResult;
|
|
932
991
|
try {
|
|
@@ -936,11 +995,13 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
936
995
|
signal: operation.signal,
|
|
937
996
|
failureSettlementTimeoutMs: optionsArg.failureSettlementTimeoutMs,
|
|
938
997
|
async onPart(partArg) {
|
|
998
|
+
operation.assertCurrent();
|
|
999
|
+
const partUploadId = await ensureMultipartUpload();
|
|
939
1000
|
operation.assertCurrent();
|
|
940
1001
|
const uploadPartOutput = await operation.client.send(new plugins.s3.UploadPartCommand({
|
|
941
1002
|
Bucket: operation.bucketName,
|
|
942
1003
|
Key: optionsArg.path,
|
|
943
|
-
UploadId:
|
|
1004
|
+
UploadId: partUploadId,
|
|
944
1005
|
PartNumber: partArg.partNumber,
|
|
945
1006
|
Body: partArg.data,
|
|
946
1007
|
ContentLength: partArg.data.byteLength,
|
|
@@ -957,8 +1018,15 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
957
1018
|
}
|
|
958
1019
|
catch (error) {
|
|
959
1020
|
if (error instanceof MultipartStreamConsumptionError &&
|
|
960
|
-
error.state.kind === 'part-callback') {
|
|
961
|
-
|
|
1021
|
+
(error.state.kind === 'part-callback' || error.state.kind === 'aborted')) {
|
|
1022
|
+
// A source of undeclared length creates its upload with the first
|
|
1023
|
+
// part, so a failed or still outstanding create owns the failure.
|
|
1024
|
+
if (createFailed || (multipartUploadCreation && !createSettled)) {
|
|
1025
|
+
phase = 'create-multipart';
|
|
1026
|
+
}
|
|
1027
|
+
else if (error.state.kind === 'part-callback') {
|
|
1028
|
+
phase = 'upload-part';
|
|
1029
|
+
}
|
|
962
1030
|
}
|
|
963
1031
|
if (error instanceof MultipartStreamConsumptionError &&
|
|
964
1032
|
(error.state.cleanup.callbacks === 'detached' ||
|
|
@@ -967,25 +1035,42 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
967
1035
|
}
|
|
968
1036
|
throw error;
|
|
969
1037
|
}
|
|
1038
|
+
if (!multipartUploadCreation) {
|
|
1039
|
+
// Only an empty source of undeclared length reaches this point.
|
|
1040
|
+
phase = 'put-zero';
|
|
1041
|
+
const putOutput = await sendConditionalZeroPut(operation, optionsArg, nativeObjectProperties?.contentType, () => {
|
|
1042
|
+
zeroPutAttempted = true;
|
|
1043
|
+
});
|
|
1044
|
+
return {
|
|
1045
|
+
destinationPath: optionsArg.path,
|
|
1046
|
+
contentLength: 0,
|
|
1047
|
+
etag: requireNonEmptyString(putOutput.ETag, 'PutObject ETag'),
|
|
1048
|
+
versionId: getOptionalNonEmptyString(putOutput.VersionId),
|
|
1049
|
+
partCount: 0,
|
|
1050
|
+
peakBufferedBytes: consumptionResult.peakBufferedBytes,
|
|
1051
|
+
maximumBufferedBytes: consumptionResult.maximumBufferedBytes,
|
|
1052
|
+
};
|
|
1053
|
+
}
|
|
1054
|
+
const completeUploadId = await multipartUploadCreation;
|
|
970
1055
|
phase = 'complete-multipart';
|
|
971
1056
|
const completeOutput = await sendOperationCommand(operation, (signalArg) => {
|
|
972
1057
|
completeRequestAttempted = true;
|
|
973
1058
|
return operation.client.send(new plugins.s3.CompleteMultipartUploadCommand({
|
|
974
1059
|
Bucket: operation.bucketName,
|
|
975
1060
|
Key: optionsArg.path,
|
|
976
|
-
UploadId:
|
|
1061
|
+
UploadId: completeUploadId,
|
|
977
1062
|
MultipartUpload: {
|
|
978
1063
|
Parts: completedParts,
|
|
979
1064
|
},
|
|
980
1065
|
IfNoneMatch: '*',
|
|
981
|
-
MpuObjectSize:
|
|
1066
|
+
MpuObjectSize: consumptionResult.bytesConsumed,
|
|
982
1067
|
}), {
|
|
983
1068
|
abortSignal: signalArg,
|
|
984
1069
|
});
|
|
985
1070
|
});
|
|
986
1071
|
return {
|
|
987
1072
|
destinationPath: optionsArg.path,
|
|
988
|
-
contentLength:
|
|
1073
|
+
contentLength: consumptionResult.bytesConsumed,
|
|
989
1074
|
etag: requireNonEmptyString(completeOutput.ETag, 'CompleteMultipartUpload ETag'),
|
|
990
1075
|
versionId: getOptionalNonEmptyString(completeOutput.VersionId),
|
|
991
1076
|
partCount: completedParts.length,
|
|
@@ -996,47 +1081,42 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
996
1081
|
catch (error) {
|
|
997
1082
|
let multipartCleanup;
|
|
998
1083
|
const primaryProviderSettlement = getDetachedOperationSendSettlement(operation.signal);
|
|
999
|
-
|
|
1084
|
+
// Aborts the multipart upload once the given work settles. A create that
|
|
1085
|
+
// was still in flight may only report its UploadId by then.
|
|
1086
|
+
const abortAfterSettlement = (settlementArg) => settlementArg
|
|
1087
|
+
.then(async () => {
|
|
1088
|
+
await getDetachedOperationSendSettlement(operation.signal);
|
|
1089
|
+
if (!uploadId) {
|
|
1090
|
+
return;
|
|
1091
|
+
}
|
|
1092
|
+
try {
|
|
1093
|
+
operation.assertLifecycleCurrent();
|
|
1094
|
+
const abortResult = await abortMultipartUpload(operation, optionsArg.path, uploadId);
|
|
1095
|
+
await abortResult.settlement;
|
|
1096
|
+
}
|
|
1097
|
+
catch {
|
|
1098
|
+
// Lifecycle close makes deferred cleanup indeterminate.
|
|
1099
|
+
}
|
|
1100
|
+
})
|
|
1101
|
+
.then(() => undefined, () => undefined);
|
|
1102
|
+
if ((uploadId || createRequestAttempted) &&
|
|
1000
1103
|
detachedStreamError?.state.cleanup.callbacks === 'detached') {
|
|
1001
1104
|
multipartCleanup = {
|
|
1002
1105
|
status: 'deferred',
|
|
1003
1106
|
};
|
|
1004
|
-
const callbackGatedCleanup = detachedStreamError.callbackSettlement
|
|
1005
|
-
.then(async () => {
|
|
1006
|
-
try {
|
|
1007
|
-
operation.assertLifecycleCurrent();
|
|
1008
|
-
const abortResult = await abortMultipartUpload(operation, optionsArg.path, uploadId);
|
|
1009
|
-
await abortResult.settlement;
|
|
1010
|
-
}
|
|
1011
|
-
catch {
|
|
1012
|
-
// Lifecycle close makes deferred cleanup indeterminate.
|
|
1013
|
-
}
|
|
1014
|
-
})
|
|
1015
|
-
.then(() => undefined, () => undefined);
|
|
1016
1107
|
operationFinishSettlement = Promise.allSettled([
|
|
1017
|
-
|
|
1108
|
+
abortAfterSettlement(detachedStreamError.callbackSettlement),
|
|
1018
1109
|
detachedStreamError.ownedSettlement,
|
|
1019
1110
|
]).then(() => undefined);
|
|
1020
1111
|
}
|
|
1021
|
-
else if (uploadId
|
|
1112
|
+
else if ((uploadId || createRequestAttempted) &&
|
|
1113
|
+
primaryProviderSettlement) {
|
|
1022
1114
|
multipartCleanup = {
|
|
1023
1115
|
status: 'deferred',
|
|
1024
1116
|
};
|
|
1025
|
-
const providerGatedCleanup = primaryProviderSettlement
|
|
1026
|
-
.then(async () => {
|
|
1027
|
-
try {
|
|
1028
|
-
operation.assertLifecycleCurrent();
|
|
1029
|
-
const abortResult = await abortMultipartUpload(operation, optionsArg.path, uploadId);
|
|
1030
|
-
await abortResult.settlement;
|
|
1031
|
-
}
|
|
1032
|
-
catch {
|
|
1033
|
-
// Lifecycle close makes deferred cleanup indeterminate.
|
|
1034
|
-
}
|
|
1035
|
-
})
|
|
1036
|
-
.then(() => undefined, () => undefined);
|
|
1037
1117
|
operationFinishSettlement = Promise.allSettled([
|
|
1038
1118
|
primaryProviderSettlement,
|
|
1039
|
-
|
|
1119
|
+
abortAfterSettlement(primaryProviderSettlement),
|
|
1040
1120
|
]).then(() => undefined);
|
|
1041
1121
|
}
|
|
1042
1122
|
else if (uploadId) {
|
|
@@ -1048,18 +1128,9 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
1048
1128
|
}
|
|
1049
1129
|
else if (createRequestAttempted) {
|
|
1050
1130
|
multipartCleanup = {
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
status: 'deferred',
|
|
1054
|
-
}
|
|
1055
|
-
: {
|
|
1056
|
-
status: 'abort-failed',
|
|
1057
|
-
cause: new Error('The multipart upload could not be aborted because no UploadId was returned.'),
|
|
1058
|
-
}),
|
|
1131
|
+
status: 'abort-failed',
|
|
1132
|
+
cause: new Error('The multipart upload could not be aborted because no UploadId was returned.'),
|
|
1059
1133
|
};
|
|
1060
|
-
if (primaryProviderSettlement) {
|
|
1061
|
-
operationFinishSettlement = primaryProviderSettlement;
|
|
1062
|
-
}
|
|
1063
1134
|
}
|
|
1064
1135
|
else {
|
|
1065
1136
|
multipartCleanup = {
|
|
@@ -1080,9 +1151,9 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
1080
1151
|
throw new ExactUploadError({
|
|
1081
1152
|
phase,
|
|
1082
1153
|
destinationPath: optionsArg.path,
|
|
1083
|
-
|
|
1084
|
-
destinationPublication: phase === 'complete-multipart' &&
|
|
1085
|
-
|
|
1154
|
+
...lengthState,
|
|
1155
|
+
destinationPublication: ((phase === 'complete-multipart' && completeRequestAttempted) ||
|
|
1156
|
+
(phase === 'put-zero' && zeroPutAttempted)) &&
|
|
1086
1157
|
!isDefinitiveConditionalWriteRejection(error)
|
|
1087
1158
|
? 'ambiguous'
|
|
1088
1159
|
: 'not-published',
|
|
@@ -1101,4 +1172,4 @@ export const fastPutStreamExact = async (bucketRefArg, optionsArg) => {
|
|
|
1101
1172
|
}
|
|
1102
1173
|
}
|
|
1103
1174
|
};
|
|
1104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuZXhhY3R1cGxvYWQub3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvaW50ZXJuYWwuZXhhY3R1cGxvYWQub3BlcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVVqRSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix5QkFBeUIsR0FFMUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLCtCQUErQixHQUNoQyxNQUFNLGdDQUFnQyxDQUFDO0FBK0J4QyxNQUFNLDZCQUE4QixTQUFRLEtBQUs7SUFFN0IsTUFBTTtJQUR4QixZQUNrQixNQUdmO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3NCQUxFLE1BQU07UUFNdEIsSUFBSSxDQUFDLElBQUksR0FBRywrQkFBK0IsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztBQUNoQyxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQztBQUM1QyxNQUFNLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUN6QyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQztBQUN2QyxNQUFNLGFBQWEsR0FBRztJQUNwQixtQkFBbUIsRUFBRSxpQkFBaUI7Q0FDdkMsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQUcsQ0FDckMsUUFBOEQsRUFDUixFQUFFO0lBQ3hELElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUNFLFFBQVEsS0FBSyxJQUFJ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
|
|
1175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuZXhhY3R1cGxvYWQub3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvaW50ZXJuYWwuZXhhY3R1cGxvYWQub3BlcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVVqRSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix5QkFBeUIsR0FFMUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLG1CQUFtQixHQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsK0JBQStCLEdBQ2hDLE1BQU0sZ0NBQWdDLENBQUM7QUErQnhDLE1BQU0sNkJBQThCLFNBQVEsS0FBSztJQUU3QixNQUFNO0lBRHhCLFlBQ2tCLE1BR2Y7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7c0JBTEUsTUFBTTtRQU10QixJQUFJLENBQUMsSUFBSSxHQUFHLCtCQUErQixDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO0FBQ2hDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxDQUFDO0FBQzVDLE1BQU0sNkJBQTZCLEdBQUcsRUFBRSxDQUFDO0FBQ3pDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDO0FBQ3ZDLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLG1CQUFtQixFQUFFLGlCQUFpQjtDQUN2QyxDQUFDO0FBRUYsTUFBTSw4QkFBOEIsR0FBRyxDQUNyQyxRQUE4RCxFQUNSLEVBQUU7SUFDeEQsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDM0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQ0Us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
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import type { IMultipartPlanningOptions,
|
|
1
|
+
import type { IMultipartBoundedPlanningOptions, IMultipartBoundedUploadPlan, IMultipartPlanningOptions, TMultipartDeclaredUploadPlan } from './internal.multipart.types.js';
|
|
2
2
|
export declare const MULTIPART_MIN_PART_SIZE: number;
|
|
3
3
|
export declare const MULTIPART_MAX_PART_SIZE: number;
|
|
4
4
|
export declare const MULTIPART_MAX_PART_COUNT = 10000;
|
|
5
5
|
export declare const MULTIPART_MAX_OBJECT_SIZE: number;
|
|
6
6
|
export declare const MULTIPART_DEFAULT_CONCURRENCY = 1;
|
|
7
7
|
export declare const MULTIPART_MAX_CONCURRENCY = 32;
|
|
8
|
-
export declare const planMultipartUpload: (optionsArg: IMultipartPlanningOptions) =>
|
|
8
|
+
export declare const planMultipartUpload: (optionsArg: IMultipartPlanningOptions) => TMultipartDeclaredUploadPlan;
|
|
9
|
+
/**
|
|
10
|
+
* Plans an upload of undeclared length that must not exceed
|
|
11
|
+
* `maxObjectSize`. The part size grows with the maximum so that the largest
|
|
12
|
+
* allowed source still fits into the multipart part limit.
|
|
13
|
+
*/
|
|
14
|
+
export declare const planBoundedMultipartUpload: (optionsArg: IMultipartBoundedPlanningOptions) => IMultipartBoundedUploadPlan;
|