@lossless.org/client 1.23.2 → 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/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts/objectstorage/classes.bucket.d.ts +11 -21
- package/dist_ts/objectstorage/classes.bucket.js +58 -29
- package/dist_ts/objectstorage/classes.connection.d.ts +2 -1
- package/dist_ts/objectstorage/classes.connection.js +3 -2
- package/dist_ts/objectstorage/classes.directory.js +9 -1
- package/dist_ts/objectstorage/classes.requestdeadlineerror.d.ts +11 -0
- package/dist_ts/objectstorage/classes.requestdeadlineerror.js +16 -0
- package/dist_ts/objectstorage/classes.smartbucket.d.ts +11 -2
- package/dist_ts/objectstorage/classes.smartbucket.js +20 -1
- package/dist_ts/objectstorage/helpers.d.ts +4 -0
- package/dist_ts/objectstorage/helpers.js +13 -1
- package/dist_ts/objectstorage/index.d.ts +1 -0
- package/dist_ts/objectstorage/index.js +2 -1
- package/dist_ts/objectstorage/interfaces.d.ts +49 -0
- package/dist_ts/objectstorage/internal.exactupload.capability.js +4 -2
- package/dist_ts/objectstorage/internal.requestbounds.d.ts +37 -0
- package/dist_ts/objectstorage/internal.requestbounds.js +154 -0
- package/dist_ts/objectstorage/plugins.d.ts +2 -1
- package/dist_ts/objectstorage/plugins.js +3 -2
- package/package.json +2 -2
- package/readme.md +6 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/objectstorage/classes.bucket.ts +80 -56
- package/ts/objectstorage/classes.connection.ts +4 -2
- package/ts/objectstorage/classes.directory.ts +8 -0
- package/ts/objectstorage/classes.requestdeadlineerror.ts +16 -0
- package/ts/objectstorage/classes.smartbucket.ts +30 -1
- package/ts/objectstorage/helpers.ts +16 -0
- package/ts/objectstorage/index.ts +1 -0
- package/ts/objectstorage/interfaces.ts +58 -0
- package/ts/objectstorage/internal.exactupload.capability.ts +3 -1
- package/ts/objectstorage/internal.requestbounds.ts +192 -0
- package/ts/objectstorage/plugins.ts +2 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
2
|
import { Bucket } from './classes.bucket.js';
|
|
3
|
-
import type { IBucketRequestOptions, ISmartBucketReadinessOptions, TSmartBucketReadinessResult } from './interfaces.js';
|
|
3
|
+
import type { IBucketRequestOptions, IObjectStorageRequestBounds, IObjectStorageRequestOptions, ISmartBucketReadinessOptions, TSmartBucketReadinessResult } from './interfaces.js';
|
|
4
4
|
export declare class SmartBucket {
|
|
5
5
|
config: plugins.tsclass.storage.IStorageDescriptor;
|
|
6
6
|
private currentStorageClient;
|
|
7
7
|
private ownedStorageClient;
|
|
8
|
+
private readonly boundedStorageClient;
|
|
9
|
+
private readonly boundedStorageClientBounds;
|
|
8
10
|
private lifecycleState;
|
|
9
11
|
private lifecycleEpoch;
|
|
10
12
|
private activeReadinessControllers;
|
|
@@ -21,6 +23,13 @@ export declare class SmartBucket {
|
|
|
21
23
|
* Changes the current S3 client without transferring lifecycle ownership.
|
|
22
24
|
*/
|
|
23
25
|
set storageClient(storageClientArg: plugins.s3.S3Client);
|
|
26
|
+
/**
|
|
27
|
+
* The bounds every request of the storage client this SmartBucket built
|
|
28
|
+
* runs within, or `undefined` while a client assigned through
|
|
29
|
+
* `storageClient` or `replaceStorageClient()` is in use: its requests are
|
|
30
|
+
* bounded only by its own configuration.
|
|
31
|
+
*/
|
|
32
|
+
get requestBounds(): IObjectStorageRequestBounds | undefined;
|
|
24
33
|
/** @deprecated Use storageClient instead */
|
|
25
34
|
get s3Client(): plugins.s3.S3Client;
|
|
26
35
|
/**
|
|
@@ -28,7 +37,7 @@ export declare class SmartBucket {
|
|
|
28
37
|
*/
|
|
29
38
|
constructor(configArg: plugins.tsclass.storage.IStorageDescriptor, clientOptions?: {
|
|
30
39
|
forcePathStyle?: boolean;
|
|
31
|
-
});
|
|
40
|
+
} & IObjectStorageRequestOptions);
|
|
32
41
|
createBucket(bucketNameArg: string, optionsArg?: IBucketRequestOptions): Promise<Bucket>;
|
|
33
42
|
removeBucket(bucketName: string, optionsArg?: IBucketRequestOptions): Promise<void>;
|
|
34
43
|
/**
|
|
@@ -3,6 +3,7 @@ import * as plugins from './plugins.js';
|
|
|
3
3
|
import { Bucket } from './classes.bucket.js';
|
|
4
4
|
import { normalizeStorageDescriptor } from './helpers.js';
|
|
5
5
|
import { headBucketExists } from './internal.bucketrequests.js';
|
|
6
|
+
import { bindRequestDeadline, createBoundedClientConfig, resolveRequestBounds, } from './internal.requestbounds.js';
|
|
6
7
|
import { beginOperationLifecycleClose, commitOperationLifecycleClient, completeOperationLifecycleClose, registerOperationLifecycle, reserveOperationLifecycleClientMutation, rollbackOperationLifecycleClientMutation, } from './internal.exactupload.capability.js';
|
|
7
8
|
const readinessDefaultTimeoutMs = 2_000;
|
|
8
9
|
const readinessMaximumTimeoutMs = 30_000;
|
|
@@ -10,6 +11,8 @@ export class SmartBucket {
|
|
|
10
11
|
config;
|
|
11
12
|
currentStorageClient;
|
|
12
13
|
ownedStorageClient;
|
|
14
|
+
boundedStorageClient;
|
|
15
|
+
boundedStorageClientBounds;
|
|
13
16
|
lifecycleState = 'open';
|
|
14
17
|
lifecycleEpoch = 0;
|
|
15
18
|
activeReadinessControllers = new Set();
|
|
@@ -61,6 +64,17 @@ export class SmartBucket {
|
|
|
61
64
|
this.storageClientMutationInProgress = false;
|
|
62
65
|
}
|
|
63
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* The bounds every request of the storage client this SmartBucket built
|
|
69
|
+
* runs within, or `undefined` while a client assigned through
|
|
70
|
+
* `storageClient` or `replaceStorageClient()` is in use: its requests are
|
|
71
|
+
* bounded only by its own configuration.
|
|
72
|
+
*/
|
|
73
|
+
get requestBounds() {
|
|
74
|
+
return this.currentStorageClient === this.boundedStorageClient
|
|
75
|
+
? this.boundedStorageClientBounds
|
|
76
|
+
: undefined;
|
|
77
|
+
}
|
|
64
78
|
/** @deprecated Use storageClient instead */
|
|
65
79
|
get s3Client() {
|
|
66
80
|
return this.currentStorageClient;
|
|
@@ -72,12 +86,17 @@ export class SmartBucket {
|
|
|
72
86
|
this.config = configArg;
|
|
73
87
|
// Use the normalizer to handle various endpoint formats
|
|
74
88
|
const { normalized } = normalizeStorageDescriptor(configArg);
|
|
89
|
+
const requestBounds = resolveRequestBounds(clientOptions);
|
|
75
90
|
this.currentStorageClient = new plugins.s3.S3Client({
|
|
76
91
|
endpoint: normalized.endpointUrl,
|
|
77
92
|
region: normalized.region,
|
|
78
93
|
credentials: normalized.credentials,
|
|
79
94
|
forcePathStyle: clientOptions.forcePathStyle ?? normalized.forcePathStyle,
|
|
95
|
+
...createBoundedClientConfig(requestBounds),
|
|
80
96
|
});
|
|
97
|
+
bindRequestDeadline(this.currentStorageClient, requestBounds);
|
|
98
|
+
this.boundedStorageClient = this.currentStorageClient;
|
|
99
|
+
this.boundedStorageClientBounds = requestBounds;
|
|
81
100
|
this.ownedStorageClient = this.currentStorageClient;
|
|
82
101
|
registerOperationLifecycle(this, this.currentStorageClient);
|
|
83
102
|
}
|
|
@@ -360,4 +379,4 @@ export class SmartBucket {
|
|
|
360
379
|
};
|
|
361
380
|
}
|
|
362
381
|
}
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zbWFydGJ1Y2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvY2xhc3Nlcy5zbWFydGJ1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5QkFBeUI7QUFFekIsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDhCQUE4QixFQUM5QiwrQkFBK0IsRUFDL0IsMEJBQTBCLEVBQzFCLHVDQUF1QyxFQUN2Qyx3Q0FBd0MsR0FDekMsTUFBTSxzQ0FBc0MsQ0FBQztBQVk5QyxNQUFNLHlCQUF5QixHQUFHLEtBQUssQ0FBQztBQUN4QyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQztBQUV6QyxNQUFNLE9BQU8sV0FBVztJQUNmLE1BQU0sQ0FBNkM7SUFFbEQsb0JBQW9CLENBQXNCO0lBQzFDLGtCQUFrQixDQUFzQjtJQUN4QyxjQUFjLEdBQStCLE1BQU0sQ0FBQztJQUNwRCxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLDBCQUEwQixHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0lBQ3hELHFCQUFxQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0lBQzNELCtCQUErQixHQUFHLEtBQUssQ0FBQztJQUN4QyxZQUFZLENBQTRCO0lBQ3hDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUM5Qix3QkFBd0IsQ0FBNEI7SUFFNUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxhQUFhLENBQUMs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
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zbWFydGJ1Y2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvY2xhc3Nlcy5zbWFydGJ1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5QkFBeUI7QUFFekIsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixvQkFBb0IsR0FDckIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDhCQUE4QixFQUM5QiwrQkFBK0IsRUFDL0IsMEJBQTBCLEVBQzFCLHVDQUF1QyxFQUN2Qyx3Q0FBd0MsR0FDekMsTUFBTSxzQ0FBc0MsQ0FBQztBQWM5QyxNQUFNLHlCQUF5QixHQUFHLEtBQUssQ0FBQztBQUN4QyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQztBQUV6QyxNQUFNLE9BQU8sV0FBVztJQUNmLE1BQU0sQ0FBNkM7SUFFbEQsb0JBQW9CLENBQXNCO0lBQzFDLGtCQUFrQixDQUFzQjtJQUMvQixvQkFBb0IsQ0FBc0I7SUFDMUMsMEJBQTBCLENBQThCO0lBQ2pFLGNBQWMsR0FBK0IsTUFBTSxDQUFDO0lBQ3BELGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsMEJBQTBCLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFDeEQscUJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7SUFDM0QsK0JBQStCLEdBQUcsS0FBSyxDQUFDO0lBQ3hDLFlBQVksQ0FBNEI7SUFDeEMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQzlCLHdCQUF3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
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
2
|
import * as interfaces from './interfaces.js';
|
|
3
3
|
export declare const reducePathDescriptorToPath: (pathDescriptorArg: interfaces.IPathDecriptor) => Promise<string>;
|
|
4
|
+
/**
|
|
5
|
+
* Validates a caller's cancellation signal: a genuine `AbortSignal`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const requireOptionalAbortSignal: (valueArg: unknown, labelArg: string) => AbortSignal | undefined;
|
|
4
8
|
export interface IStorageWarning {
|
|
5
9
|
code: string;
|
|
6
10
|
message: string;
|
|
@@ -22,6 +22,18 @@ export const reducePathDescriptorToPath = async (pathDescriptorArg) => {
|
|
|
22
22
|
}
|
|
23
23
|
return returnPath;
|
|
24
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Validates a caller's cancellation signal: a genuine `AbortSignal`.
|
|
27
|
+
*/
|
|
28
|
+
export const requireOptionalAbortSignal = (valueArg, labelArg) => {
|
|
29
|
+
if (valueArg === undefined) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
if (plugins.nodeUtil.types.isProxy(valueArg) || !(valueArg instanceof AbortSignal)) {
|
|
33
|
+
throw new TypeError(`${labelArg} must be an AbortSignal.`);
|
|
34
|
+
}
|
|
35
|
+
return valueArg;
|
|
36
|
+
};
|
|
25
37
|
function coerceBooleanMaybe(value) {
|
|
26
38
|
if (typeof value === 'boolean')
|
|
27
39
|
return { value };
|
|
@@ -212,4 +224,4 @@ export function normalizeStorageDescriptor(input, logger) {
|
|
|
212
224
|
warnings,
|
|
213
225
|
};
|
|
214
226
|
}
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssVUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEtBQUssRUFBRSxpQkFBNEMsRUFBbUIsRUFBRTtJQUNoSCxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUE7SUFDbkIsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxJQUFJLGlCQUFpQixDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbURBQW1ELENBQUMsQ0FBQztZQUNsRSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ3RDLENBQUM7YUFBTSxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEcsQ0FBQztJQUNILENBQUM7U0FBTSxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDdEMsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9CLFVBQVUsR0FBRyxVQUFVLENB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
|
|
@@ -3,6 +3,7 @@ export * from './classes.bucket.js';
|
|
|
3
3
|
export * from './classes.exactuploaderror.js';
|
|
4
4
|
export * from './classes.exactpathpurgeerror.js';
|
|
5
5
|
export * from './classes.objectrangeerror.js';
|
|
6
|
+
export * from './classes.requestdeadlineerror.js';
|
|
6
7
|
export * from './classes.directory.js';
|
|
7
8
|
export * from './classes.file.js';
|
|
8
9
|
export * from './classes.listcursor.js';
|
|
@@ -3,6 +3,7 @@ export * from './classes.bucket.js';
|
|
|
3
3
|
export * from './classes.exactuploaderror.js';
|
|
4
4
|
export * from './classes.exactpathpurgeerror.js';
|
|
5
5
|
export * from './classes.objectrangeerror.js';
|
|
6
|
+
export * from './classes.requestdeadlineerror.js';
|
|
6
7
|
export * from './classes.directory.js';
|
|
7
8
|
export * from './classes.file.js';
|
|
8
9
|
export * from './classes.listcursor.js';
|
|
@@ -11,4 +12,4 @@ export * from './classes.trash.js';
|
|
|
11
12
|
export * from './classes.watcher.js';
|
|
12
13
|
export * from './interfaces.js';
|
|
13
14
|
export { ObjectStorageConnection } from './classes.connection.js';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9vYmplY3RzdG9yYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUMifQ==
|
|
@@ -73,6 +73,22 @@ export interface IFastGetIfPresentOptions {
|
|
|
73
73
|
export interface IFastStatOptions extends IPathDecriptor {
|
|
74
74
|
signal?: AbortSignal;
|
|
75
75
|
}
|
|
76
|
+
export interface IFastPutOptions extends IPathDecriptor {
|
|
77
|
+
contents: string | Buffer;
|
|
78
|
+
overwrite?: boolean;
|
|
79
|
+
signal?: AbortSignal;
|
|
80
|
+
}
|
|
81
|
+
export interface IFastMoveOptions {
|
|
82
|
+
sourcePath: string;
|
|
83
|
+
destinationPath: string;
|
|
84
|
+
targetBucket?: Bucket;
|
|
85
|
+
overwrite?: boolean;
|
|
86
|
+
signal?: AbortSignal;
|
|
87
|
+
}
|
|
88
|
+
export interface IListAllObjectsOptions {
|
|
89
|
+
/** Optional caller-owned cancellation signal */
|
|
90
|
+
signal?: AbortSignal;
|
|
91
|
+
}
|
|
76
92
|
export interface IDirectoryFastPutStreamOptions {
|
|
77
93
|
path: string;
|
|
78
94
|
stream: Readable;
|
|
@@ -87,6 +103,39 @@ export interface IBucketRequestOptions {
|
|
|
87
103
|
/** Optional caller-owned cancellation signal */
|
|
88
104
|
signal?: AbortSignal;
|
|
89
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Bounds of every request sent by the storage client a SmartBucket builds.
|
|
108
|
+
* Each is a positive safe integer; an omitted one takes its default.
|
|
109
|
+
*/
|
|
110
|
+
export interface IObjectStorageRequestOptions {
|
|
111
|
+
/** Time one attempt may take to connect its socket in milliseconds (default: 10000, maximum: 60000) */
|
|
112
|
+
connectionTimeoutMs?: number;
|
|
113
|
+
/**
|
|
114
|
+
* Time from the start of one attempt to its response headers in
|
|
115
|
+
* milliseconds, connecting and uploading the request body included
|
|
116
|
+
* (default: 60000, maximum: 3600000)
|
|
117
|
+
*/
|
|
118
|
+
requestTimeoutMs?: number;
|
|
119
|
+
/** Attempts of one request, the first one included (default: 3, maximum: 10) */
|
|
120
|
+
maxAttempts?: number;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* The effective bounds of the storage client a SmartBucket built.
|
|
124
|
+
*/
|
|
125
|
+
export interface IObjectStorageRequestBounds {
|
|
126
|
+
readonly connectionTimeoutMs: number;
|
|
127
|
+
readonly requestTimeoutMs: number;
|
|
128
|
+
readonly maxAttempts: number;
|
|
129
|
+
/** The longest wait of the SDK before a retry */
|
|
130
|
+
readonly maxRetryDelayMs: number;
|
|
131
|
+
/**
|
|
132
|
+
* `maxAttempts * requestTimeoutMs + (maxAttempts - 1) * maxRetryDelayMs`
|
|
133
|
+
* plus 1000 ms for the client's own work around the attempts: the client
|
|
134
|
+
* destroys a request still unsettled after this time, retries included,
|
|
135
|
+
* and starts no further attempt of it
|
|
136
|
+
*/
|
|
137
|
+
readonly requestDeadlineMs: number;
|
|
138
|
+
}
|
|
90
139
|
/**
|
|
91
140
|
* Options for a bounded, read-only bucket readiness check.
|
|
92
141
|
*/
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
|
+
import { requireOptionalAbortSignal } from './helpers.js';
|
|
2
3
|
const lifecycleRecords = new WeakMap();
|
|
3
4
|
const capabilityBindings = new WeakMap();
|
|
4
5
|
const purgeCapabilityBindings = new WeakMap();
|
|
@@ -319,6 +320,7 @@ export const beginAccountOperation = (smartbucketRefArg, callerSignalArg) => {
|
|
|
319
320
|
}, accountIdentity, callerSignalArg);
|
|
320
321
|
};
|
|
321
322
|
export const beginBasicBucketOperation = (bucketRefArg, callerSignalArg) => {
|
|
323
|
+
const callerSignal = requireOptionalAbortSignal(callerSignalArg, 'Object storage request signal');
|
|
322
324
|
const smartbucketRef = bucketRefArg.smartbucketRef;
|
|
323
325
|
const lifecycleRecord = getLifecycleRecord(smartbucketRef);
|
|
324
326
|
const binding = {
|
|
@@ -328,7 +330,7 @@ export const beginBasicBucketOperation = (bucketRefArg, callerSignalArg) => {
|
|
|
328
330
|
storageClient: lifecycleRecord.storageClient,
|
|
329
331
|
lifecycleGeneration: lifecycleRecord.generation,
|
|
330
332
|
};
|
|
331
|
-
return beginOperation(binding,
|
|
333
|
+
return beginOperation(binding, callerSignal);
|
|
332
334
|
};
|
|
333
335
|
export const beginExactUploadProbeOperation = (bucketRefArg, callerSignalArg) => {
|
|
334
336
|
const smartbucketRef = bucketRefArg.smartbucketRef;
|
|
@@ -408,4 +410,4 @@ export const beginExactPathPurgeCapabilityOperation = (bucketRefArg, capabilityA
|
|
|
408
410
|
versioningMode: binding.versioningMode,
|
|
409
411
|
};
|
|
410
412
|
};
|
|
411
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuZXhhY3R1cGxvYWQuY2FwYWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvaW50ZXJuYWwuZXhhY3R1cGxvYWQuY2FwYWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQXFHeEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFHakMsQ0FBQztBQUNKLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxPQUFPLEVBR25DLENBQUM7QUFDSixNQUFNLHVCQUF1QixHQUFHLElBQUksT0FBTyxFQUd4QyxDQUFDO0FBQ0osTUFBTSxpQ0FBaUMsR0FBRyxNQUFNLENBQUM7QUFDakQsTUFBTSxtQ0FBbUMsR0FBRyxLQUFLLENBQUM7QUFFbEQsTUFBTSw4QkFBOEIsR0FBRyxDQUNyQyxrQkFBOEMsRUFDOUMsUUFBaUIsRUFDWCxFQUFFO0lBQ1IsS0FBSyxNQUFNLFVBQVUsSUFBSSxrQkFBa0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ25FLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDcEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxnRUFBZ0UsQ0FBQztBQUUvRixNQUFNLGtCQUFrQixHQUFHLENBQ3pCLGlCQUE0QyxFQUM1QyxrQkFBa0IsR0FBRyxxQkFBcUIsRUFDZCxFQUFFO0lBQzlCLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENB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
|
|
413
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuZXhhY3R1cGxvYWQuY2FwYWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvaW50ZXJuYWwuZXhhY3R1cGxvYWQuY2FwYWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFxRzFELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBR2pDLENBQUM7QUFDSixNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUduQyxDQUFDO0FBQ0osTUFBTSx1QkFBdUIsR0FBRyxJQUFJLE9BQU8sRUFHeEMsQ0FBQztBQUNKLE1BQU0saUNBQWlDLEdBQUcsTUFBTSxDQUFDO0FBQ2pELE1BQU0sbUNBQW1DLEdBQUcsS0FBSyxDQUFDO0FBRWxELE1BQU0sOEJBQThCLEdBQUcsQ0FDckMsa0JBQThDLEVBQzlDLFFBQWlCLEVBQ1gsRUFBRTtJQUNSLEtBQUssTUFBTSxVQUFVLElBQUksa0JBQWtCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuRSxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsZ0VBQWdFLENBQUM7QUFFL0YsTUFBTSxrQkFBa0IsR0FBRyxDQUN6QixpQkFBNEMsRUFDNUMsa0JBQWtCLEdBQUcscUJBQXFCLEVBQ2QsRUFBRTtJQUM5QixNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsZUFBZSxFQUFFLENB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
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import type { IObjectStorageRequestBounds, IObjectStorageRequestOptions } from './interfaces.js';
|
|
3
|
+
/**
|
|
4
|
+
* Validates the request options of a storage client and derives its bounds.
|
|
5
|
+
*/
|
|
6
|
+
export declare const resolveRequestBounds: (optionsArg: IObjectStorageRequestOptions) => IObjectStorageRequestBounds;
|
|
7
|
+
/**
|
|
8
|
+
* The S3 client configuration that applies the bounds to every attempt:
|
|
9
|
+
* `@smithy/node-http-handler` destroys an attempt whose socket does not
|
|
10
|
+
* connect within `connectionTimeout` and, with `throwOnRequestTimeout`, one
|
|
11
|
+
* whose response headers did not arrive within `requestTimeout` of its start.
|
|
12
|
+
* `maxAttempts` and the standard retry mode are set explicitly, so
|
|
13
|
+
* `AWS_MAX_ATTEMPTS`, `AWS_RETRY_MODE` and shared config files cannot change
|
|
14
|
+
* them.
|
|
15
|
+
*/
|
|
16
|
+
export declare const createBoundedClientConfig: (boundsArg: IObjectStorageRequestBounds) => {
|
|
17
|
+
maxAttempts: number;
|
|
18
|
+
retryMode: string;
|
|
19
|
+
requestHandler: {
|
|
20
|
+
connectionTimeout: number;
|
|
21
|
+
requestTimeout: number;
|
|
22
|
+
throwOnRequestTimeout: true;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Bounds every `send()` of a storage client by `requestDeadlineMs`.
|
|
27
|
+
*
|
|
28
|
+
* Each request gets its own abort signal, which the caller's `abortSignal`
|
|
29
|
+
* and the deadline abort. The HTTP handler destroys the attempt in flight
|
|
30
|
+
* when it aborts, and refuses every later attempt of the request, so no
|
|
31
|
+
* attempt starts or sends after the deadline. The request rejects at the
|
|
32
|
+
* deadline with `ObjectStorageRequestDeadlineError`; the handler fails the
|
|
33
|
+
* aborted attempt with an `AbortError`, which the retry strategy never
|
|
34
|
+
* retries. A caller's abort still reaches a response body the request
|
|
35
|
+
* resolved with until that body closes.
|
|
36
|
+
*/
|
|
37
|
+
export declare const bindRequestDeadline: (clientArg: plugins.s3.S3Client, boundsArg: IObjectStorageRequestBounds) => void;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import { ObjectStorageRequestDeadlineError } from './classes.requestdeadlineerror.js';
|
|
3
|
+
const requestOptionLimits = {
|
|
4
|
+
connectionTimeoutMs: { defaultValue: 10_000, maximum: 60_000 },
|
|
5
|
+
requestTimeoutMs: { defaultValue: 60_000, maximum: 3_600_000 },
|
|
6
|
+
maxAttempts: { defaultValue: 3, maximum: 10 },
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* The longest wait of the SDK's standard retry strategy before a retry
|
|
10
|
+
* (`MAXIMUM_RETRY_DELAY` of `@smithy/core`, which caps a retry-after hint
|
|
11
|
+
* as well).
|
|
12
|
+
*/
|
|
13
|
+
const maxRetryDelayMs = 20_000;
|
|
14
|
+
/**
|
|
15
|
+
* Time the deadline grants beyond the attempts and retry waits for the
|
|
16
|
+
* client's own work around them (serializing, signing, checksums), so an
|
|
17
|
+
* attempt's own timeout decides its failure and the deadline only ends a
|
|
18
|
+
* request the attempt bounds do not.
|
|
19
|
+
*/
|
|
20
|
+
const requestDeadlineAllowanceMs = 1_000;
|
|
21
|
+
const requireRequestOption = (optionsArg, nameArg) => {
|
|
22
|
+
const value = optionsArg[nameArg];
|
|
23
|
+
const { defaultValue, maximum } = requestOptionLimits[nameArg];
|
|
24
|
+
if (value === undefined) {
|
|
25
|
+
return defaultValue;
|
|
26
|
+
}
|
|
27
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 1 || value > maximum) {
|
|
28
|
+
throw new TypeError(`Object storage ${nameArg} must be a positive safe integer no greater than ${maximum}.`);
|
|
29
|
+
}
|
|
30
|
+
return value;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Validates the request options of a storage client and derives its bounds.
|
|
34
|
+
*/
|
|
35
|
+
export const resolveRequestBounds = (optionsArg) => {
|
|
36
|
+
const connectionTimeoutMs = requireRequestOption(optionsArg, 'connectionTimeoutMs');
|
|
37
|
+
const requestTimeoutMs = requireRequestOption(optionsArg, 'requestTimeoutMs');
|
|
38
|
+
const maxAttempts = requireRequestOption(optionsArg, 'maxAttempts');
|
|
39
|
+
return Object.freeze({
|
|
40
|
+
connectionTimeoutMs,
|
|
41
|
+
requestTimeoutMs,
|
|
42
|
+
maxAttempts,
|
|
43
|
+
maxRetryDelayMs,
|
|
44
|
+
requestDeadlineMs: maxAttempts * requestTimeoutMs
|
|
45
|
+
+ (maxAttempts - 1) * maxRetryDelayMs
|
|
46
|
+
+ requestDeadlineAllowanceMs,
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* The S3 client configuration that applies the bounds to every attempt:
|
|
51
|
+
* `@smithy/node-http-handler` destroys an attempt whose socket does not
|
|
52
|
+
* connect within `connectionTimeout` and, with `throwOnRequestTimeout`, one
|
|
53
|
+
* whose response headers did not arrive within `requestTimeout` of its start.
|
|
54
|
+
* `maxAttempts` and the standard retry mode are set explicitly, so
|
|
55
|
+
* `AWS_MAX_ATTEMPTS`, `AWS_RETRY_MODE` and shared config files cannot change
|
|
56
|
+
* them.
|
|
57
|
+
*/
|
|
58
|
+
export const createBoundedClientConfig = (boundsArg) => ({
|
|
59
|
+
maxAttempts: boundsArg.maxAttempts,
|
|
60
|
+
retryMode: 'standard',
|
|
61
|
+
requestHandler: {
|
|
62
|
+
connectionTimeout: boundsArg.connectionTimeoutMs,
|
|
63
|
+
requestTimeout: boundsArg.requestTimeoutMs,
|
|
64
|
+
throwOnRequestTimeout: true,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
const readStreamingBody = (outputArg) => {
|
|
68
|
+
if (typeof outputArg !== 'object' || outputArg === null) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const body = outputArg.Body;
|
|
72
|
+
return body instanceof plugins.stream.Readable ? body : undefined;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Bounds every `send()` of a storage client by `requestDeadlineMs`.
|
|
76
|
+
*
|
|
77
|
+
* Each request gets its own abort signal, which the caller's `abortSignal`
|
|
78
|
+
* and the deadline abort. The HTTP handler destroys the attempt in flight
|
|
79
|
+
* when it aborts, and refuses every later attempt of the request, so no
|
|
80
|
+
* attempt starts or sends after the deadline. The request rejects at the
|
|
81
|
+
* deadline with `ObjectStorageRequestDeadlineError`; the handler fails the
|
|
82
|
+
* aborted attempt with an `AbortError`, which the retry strategy never
|
|
83
|
+
* retries. A caller's abort still reaches a response body the request
|
|
84
|
+
* resolved with until that body closes.
|
|
85
|
+
*/
|
|
86
|
+
export const bindRequestDeadline = (clientArg, boundsArg) => {
|
|
87
|
+
const sendWithoutDeadline = clientArg.send.bind(clientArg);
|
|
88
|
+
const sendWithinDeadline = (commandArg, optionsArg) => new Promise((resolve, reject) => {
|
|
89
|
+
const callerSignal = optionsArg?.abortSignal;
|
|
90
|
+
const requestAbortController = new AbortController();
|
|
91
|
+
const forwardCallerAbort = () => {
|
|
92
|
+
requestAbortController.abort(callerSignal?.reason);
|
|
93
|
+
};
|
|
94
|
+
const releaseCallerSignal = () => {
|
|
95
|
+
callerSignal?.removeEventListener('abort', forwardCallerAbort);
|
|
96
|
+
};
|
|
97
|
+
if (callerSignal?.aborted) {
|
|
98
|
+
forwardCallerAbort();
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
callerSignal?.addEventListener('abort', forwardCallerAbort, { once: true });
|
|
102
|
+
}
|
|
103
|
+
let settled = false;
|
|
104
|
+
const deadlineTimer = setTimeout(() => {
|
|
105
|
+
settled = true;
|
|
106
|
+
const deadlineError = new ObjectStorageRequestDeadlineError(boundsArg.requestDeadlineMs);
|
|
107
|
+
requestAbortController.abort(deadlineError);
|
|
108
|
+
reject(deadlineError);
|
|
109
|
+
}, boundsArg.requestDeadlineMs);
|
|
110
|
+
sendWithoutDeadline(commandArg, {
|
|
111
|
+
...optionsArg,
|
|
112
|
+
abortSignal: requestAbortController.signal,
|
|
113
|
+
}).then((outputArg) => {
|
|
114
|
+
clearTimeout(deadlineTimer);
|
|
115
|
+
const body = readStreamingBody(outputArg);
|
|
116
|
+
if (settled) {
|
|
117
|
+
releaseCallerSignal();
|
|
118
|
+
body?.destroy();
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
settled = true;
|
|
122
|
+
if (body && !body.destroyed) {
|
|
123
|
+
body.once('close', releaseCallerSignal);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
releaseCallerSignal();
|
|
127
|
+
}
|
|
128
|
+
resolve(outputArg);
|
|
129
|
+
}, (errorArg) => {
|
|
130
|
+
clearTimeout(deadlineTimer);
|
|
131
|
+
releaseCallerSignal();
|
|
132
|
+
if (settled) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
settled = true;
|
|
136
|
+
reject(errorArg);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
const boundedSend = (commandArg, optionsOrCallbackArg, callbackArg) => {
|
|
140
|
+
const callback = typeof optionsOrCallbackArg === 'function' ? optionsOrCallbackArg : callbackArg;
|
|
141
|
+
const options = typeof optionsOrCallbackArg === 'function' ? undefined : optionsOrCallbackArg;
|
|
142
|
+
const result = sendWithinDeadline(commandArg, options);
|
|
143
|
+
if (typeof callback !== 'function') {
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
// As the SDK's own callback form: a callback that throws must not become
|
|
147
|
+
// an unhandled rejection.
|
|
148
|
+
result.then((outputArg) => callback(null, outputArg), (errorArg) => callback(errorArg)).catch(() => { });
|
|
149
|
+
};
|
|
150
|
+
// S3Client.send() is generic over the SDK's Command type, which the
|
|
151
|
+
// optional peer does not export; the bounded send keeps its signature.
|
|
152
|
+
clientArg.send = boundedSend;
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwucmVxdWVzdGJvdW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvaW50ZXJuYWwucmVxdWVzdGJvdW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU10RixNQUFNLG1CQUFtQixHQUFHO0lBQzFCLG1CQUFtQixFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFO0lBQzlELGdCQUFnQixFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFO0lBQzlELFdBQVcsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtDQUNyQyxDQUFDO0FBRVg7Ozs7R0FJRztBQUNILE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQztBQUUvQjs7Ozs7R0FLRztBQUNILE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0FBSXpDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsVUFBd0MsRUFDeEMsT0FBMkIsRUFDbkIsRUFBRTtJQUNWLE1BQU0sS0FBSyxHQUFZLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsT0FBTyxFQUFFLENBQUM7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
|