s3mini 0.1.0 → 0.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/README.md +53 -14
- package/dist/s3mini.d.ts +8 -7
- package/dist/s3mini.js +50 -25
- package/dist/s3mini.js.map +1 -1
- package/dist/s3mini.min.js +1 -1
- package/dist/s3mini.min.js.map +1 -1
- package/package.json +18 -8
- package/src/S3.ts +56 -23
- package/src/types.ts +11 -4
- package/src/utils.ts +18 -15
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
# s3mini | Tiny & fast S3 client
|
|
1
|
+
# s3mini | Tiny & fast S3 client for node and edge platforms.
|
|
2
2
|
|
|
3
|
-
`s3mini` is an ultra-lightweight
|
|
3
|
+
`s3mini` is an ultra-lightweight Typescript client (~14 KB minified, ≈15 % more ops/s) for S3-compatible object storage. It runs on Node, Bun, Cloudflare Workers, and other edge platforms. It has been tested on Cloudflare R2, Backblaze B2, DigitalOcean Spaces, Ceph, Oracle, Garage and MinIO. (No Browser support!)
|
|
4
|
+
|
|
5
|
+
[[github](https://github.com/good-lly/s3mini)]
|
|
6
|
+
[[issues](https://github.com/good-lly/s3mini/issues)]
|
|
7
|
+
[[npm](https://www.npmjs.com/package/s3mini)]
|
|
4
8
|
|
|
5
9
|
## Features
|
|
6
10
|
|
|
@@ -8,17 +12,28 @@
|
|
|
8
12
|
- 🔧 Zero dependencies; supports AWS SigV4 (no pre-signed requests).
|
|
9
13
|
- 🟠 Works on Cloudflare Workers; ideal for edge computing, Node, and Bun (no browser support).
|
|
10
14
|
- 🔑 Only the essential S3 APIs—improved list, put, get, delete, and a few more.
|
|
11
|
-
- 📦 **BYOS3** — _Bring your own S3-compatible bucket_ (tested on Cloudflare R2, Backblaze B2, DigitalOcean Spaces, MinIO
|
|
15
|
+
- 📦 **BYOS3** — _Bring your own S3-compatible bucket_ (tested on Cloudflare R2, Backblaze B2, DigitalOcean Spaces, MinIO, Garage, Micro/Ceph and Oracle Object Storage).
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
#### Tested On
|
|
18
|
+
|
|
19
|
+

|
|
15
20
|
|
|
16
21
|
Dev:
|
|
17
|
-
|
|
18
|
-

|
|
22
|
+
|
|
23
|
+

|
|
24
|
+

|
|
19
25
|
[](https://github.com/good-lly/s3mini/actions/workflows/codeql.yml)
|
|
20
26
|
[](https://github.com/good-lly/s3mini/actions/workflows/test-e2e.yml)
|
|
21
27
|
|
|
28
|
+

|
|
29
|
+

|
|
30
|
+

|
|
31
|
+

|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
<a href="https://github.com/good-lly/s3mini/issues/"> <img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg" alt="Contributions welcome" /></a>
|
|
35
|
+
|
|
36
|
+
Performance tests was done on local Minio instance. Your results may vary depending on environment and network conditions, so take it with a grain of salt.
|
|
22
37
|

|
|
23
38
|
|
|
24
39
|
## Table of Contents
|
|
@@ -42,7 +57,7 @@ The library supports a subset of S3 operations, focusing on essential features,
|
|
|
42
57
|
#### Objects ops
|
|
43
58
|
|
|
44
59
|
- ✅ ListObjectsV2 (listObjects)
|
|
45
|
-
- ✅ GetObject (getObject, getObjectWithETag, getObjectRaw, getObjectArrayBuffer)
|
|
60
|
+
- ✅ GetObject (getObject, getObjectResponse, getObjectWithETag, getObjectRaw, getObjectArrayBuffer, getObjectJSON)
|
|
46
61
|
- ✅ PutObject (putObject)
|
|
47
62
|
- ✅ DeleteObject (deleteObject)
|
|
48
63
|
- ✅ HeadObject (objectExists, getEtag, getContentLength)
|
|
@@ -67,6 +82,21 @@ yarn add s3mini
|
|
|
67
82
|
pnpm add s3mini
|
|
68
83
|
```
|
|
69
84
|
|
|
85
|
+
### Environment Variables
|
|
86
|
+
|
|
87
|
+
To use `s3mini`, you need to set up your environment variables for provider credentials and S3 endpoint. Create a `.env` file in your project root directory. Checkout the [example.env](example.env) file for reference.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# On Windows, Mac, or Linux
|
|
91
|
+
mv example.env .env
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
> **⚠️ Environment Support Notice**
|
|
95
|
+
>
|
|
96
|
+
> This library is designed to run in environments like **Node.js**, **Bun**, and **Cloudflare Workers**. It does **not support browser environments** due to the use of Node.js APIs and polyfills.
|
|
97
|
+
>
|
|
98
|
+
> **Cloudflare Workers:** To enable built-in Node.js Crypto API, add the `nodejs_compat` compatibility flag to your Wrangler configuration file. This also enables `nodejs_compat_v2` as long as your compatibility date is `2024-09-23` or later. [Learn more about the Node.js compatibility flag and v2](https://developers.cloudflare.com/workers/configuration/compatibility-dates/#nodejs-compatibility-flag).
|
|
99
|
+
|
|
70
100
|
## Usage
|
|
71
101
|
|
|
72
102
|
```typescript
|
|
@@ -105,7 +135,10 @@ let etag: string | null = null;
|
|
|
105
135
|
if (!objectExists) {
|
|
106
136
|
// put/upload the object, content can be a string or Buffer
|
|
107
137
|
// to add object into "folder", use "folder/filename.txt" as key
|
|
138
|
+
// Third argument is optional, it can be used to set content type ... default is 'application/octet-stream'
|
|
108
139
|
const resp: Response = await s3client.putObject(smallObjectKey, smallObjectContent);
|
|
140
|
+
// example with content type:
|
|
141
|
+
// const resp: Response = await s3client.putObject(smallObjectKey, smallObjectContent, 'image/png');
|
|
109
142
|
// you can also get etag via getEtag method
|
|
110
143
|
// const etag: string = await s3client.getEtag(smallObjectKey);
|
|
111
144
|
etag = sanitizeETag(resp.headers.get('etag'));
|
|
@@ -195,20 +228,26 @@ For more check [USAGE.md](USAGE.md) file, examples and tests.
|
|
|
195
228
|
- Authors are not responsible for any data loss or security breaches resulting from improper usage of the library.
|
|
196
229
|
- If you find a security vulnerability, please report it to us directly via email. For more details, please refer to the [SECURITY.md](SECURITY.md) file.
|
|
197
230
|
|
|
198
|
-
## Contributions welcomed!
|
|
231
|
+
## Contributions welcomed! (in specific order)
|
|
199
232
|
|
|
200
|
-
Contributions are greatly appreciated! If you have an idea for a new feature or have found a bug, we encourage you to get involved:
|
|
233
|
+
Contributions are greatly appreciated! If you have an idea for a new feature or have found a bug, we encourage you to get involved in this order:
|
|
201
234
|
|
|
202
|
-
|
|
235
|
+
1. _Open/Report Issues or Ideas_: If you encounter a problem, have an idea or a feature request, please open an issue on GitHub (FIRST!) . Be concise but include as much detail as necessary (environment, error messages, logs, steps to reproduce, etc.) so we can understand and address the issue and have a dialog.
|
|
203
236
|
|
|
204
|
-
|
|
237
|
+
2. _Create Pull Requests_: We welcome PRs! If you want to implement a new feature or fix a bug, feel free to submit a pull request to the latest `dev branch`. For major changes, it's a necessary to discuss your plans in an issue first!
|
|
205
238
|
|
|
206
|
-
|
|
239
|
+
3. _Lightweight Philosophy_: When contributing, keep in mind that s3mini aims to remain lightweight and dependency-free. Please avoid adding heavy dependencies. New features should provide significant value to justify any increase in size.
|
|
207
240
|
|
|
208
|
-
|
|
241
|
+
4. _Community Conduct_: Be respectful and constructive in communications. We want a welcoming environment for all contributors. For more details, please refer to our [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). No one reads it, but it's there for a reason.
|
|
209
242
|
|
|
210
243
|
If you figure out a solution to your question or problem on your own, please consider posting the answer or closing the issue with an explanation. It could help the next person who runs into the same thing!
|
|
211
244
|
|
|
212
245
|
## License
|
|
213
246
|
|
|
214
247
|
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
|
|
248
|
+
|
|
249
|
+
## Sponsor This Project
|
|
250
|
+
|
|
251
|
+
Developing and maintaining s3mini (and other open-source projects) requires time and effort. If you find this library useful, please consider sponsoring its development. Your support helps ensure I can continue improving s3mini and other projects. Thank you!
|
|
252
|
+
|
|
253
|
+
[](https://github.com/sponsors/good-lly)
|
package/dist/s3mini.d.ts
CHANGED
|
@@ -114,10 +114,8 @@ declare class s3mini {
|
|
|
114
114
|
private requestSizeInBytes;
|
|
115
115
|
private requestAbortTimeout?;
|
|
116
116
|
private logger?;
|
|
117
|
-
private
|
|
118
|
-
private
|
|
119
|
-
private signingKey;
|
|
120
|
-
private credentialScope;
|
|
117
|
+
private signingKeyDate?;
|
|
118
|
+
private signingKey?;
|
|
121
119
|
constructor({ accessKeyId, secretAccessKey, endpoint, region, requestSizeInBytes, requestAbortTimeout, logger, }: S3Config);
|
|
122
120
|
private _sanitize;
|
|
123
121
|
private _log;
|
|
@@ -133,6 +131,7 @@ declare class s3mini {
|
|
|
133
131
|
private _sign;
|
|
134
132
|
private _buildCanonicalHeaders;
|
|
135
133
|
private _buildCanonicalRequest;
|
|
134
|
+
private _buildCredentialScope;
|
|
136
135
|
private _buildStringToSign;
|
|
137
136
|
private _calculateSignature;
|
|
138
137
|
private _buildAuthorizationHeader;
|
|
@@ -145,7 +144,9 @@ declare class s3mini {
|
|
|
145
144
|
listObjects(delimiter?: string, prefix?: string, maxKeys?: number, opts?: Record<string, unknown>): Promise<object[] | null>;
|
|
146
145
|
listMultipartUploads(delimiter?: string, prefix?: string, method?: HttpMethod, opts?: Record<string, string | number | boolean | undefined>): Promise<ListMultipartUploadSuccess | MultipartUploadError>;
|
|
147
146
|
getObject(key: string, opts?: Record<string, unknown>): Promise<string | null>;
|
|
147
|
+
getObjectResponse(key: string, opts?: Record<string, unknown>): Promise<Response | null>;
|
|
148
148
|
getObjectArrayBuffer(key: string, opts?: Record<string, unknown>): Promise<ArrayBuffer | null>;
|
|
149
|
+
getObjectJSON<T = unknown>(key: string, opts?: Record<string, unknown>): Promise<T | null>;
|
|
149
150
|
getObjectWithETag(key: string, opts?: Record<string, unknown>): Promise<{
|
|
150
151
|
etag: string | null;
|
|
151
152
|
data: ArrayBuffer | null;
|
|
@@ -154,7 +155,7 @@ declare class s3mini {
|
|
|
154
155
|
getContentLength(key: string): Promise<number>;
|
|
155
156
|
objectExists(key: string, opts?: Record<string, unknown>): Promise<ExistResponseCode>;
|
|
156
157
|
getEtag(key: string, opts?: Record<string, unknown>): Promise<string | null>;
|
|
157
|
-
putObject(key: string, data: string | Buffer): Promise<Response>;
|
|
158
|
+
putObject(key: string, data: string | Buffer, fileType?: string): Promise<Response>;
|
|
158
159
|
getMultipartUploadId(key: string, fileType?: string): Promise<string>;
|
|
159
160
|
uploadPart(key: string, uploadId: string, data: Buffer | string, partNumber: number, opts?: Record<string, unknown>): Promise<UploadPart>;
|
|
160
161
|
completeMultipartUpload(key: string, uploadId: string, parts: Array<UploadPart>): Promise<CompleteMultipartUploadResult>;
|
|
@@ -180,8 +181,8 @@ declare const sanitizeETag: (etag: string) => string;
|
|
|
180
181
|
* @param {Iterable<() => Promise<unknonw>>} tasks – functions returning Promises
|
|
181
182
|
* @param {number} [batchSize=30] – max concurrent requests
|
|
182
183
|
* @param {number} [minIntervalMs=0] – ≥0; 0 means “no pacing”
|
|
183
|
-
* @returns {Promise<Array<PromiseSettledResult<
|
|
184
|
+
* @returns {Promise<Array<PromiseSettledResult<T>>>}
|
|
184
185
|
*/
|
|
185
|
-
declare const runInBatches: (tasks: Iterable<() => Promise<
|
|
186
|
+
declare const runInBatches: <T = unknown>(tasks: Iterable<() => Promise<T>>, batchSize?: number, minIntervalMs?: number) => Promise<Array<PromiseSettledResult<T>>>;
|
|
186
187
|
|
|
187
188
|
export { type CompleteMultipartUploadResult, type ErrorWithCode, type ExistResponseCode, type ListBucketResponse, type ListMultipartUploadResponse, type Logger, type S3Config, type UploadPart, s3mini as default, runInBatches, s3mini, sanitizeETag };
|
package/dist/s3mini.js
CHANGED
|
@@ -30,7 +30,8 @@ const ERROR_DATA_BUFFER_REQUIRED = `${ERROR_PREFIX}data must be a Buffer or stri
|
|
|
30
30
|
const ERROR_PREFIX_TYPE = `${ERROR_PREFIX}prefix must be a string`;
|
|
31
31
|
const ERROR_DELIMITER_REQUIRED = `${ERROR_PREFIX}delimiter must be a string`;
|
|
32
32
|
|
|
33
|
-
// Initialize crypto functions
|
|
33
|
+
// Initialize crypto functions - this is needed for environments where `crypto` is not available globally
|
|
34
|
+
// e.g., in Cloudflare Workers or other non-Node.js environments with nodejs_flags enabled.
|
|
34
35
|
const _createHmac = crypto.createHmac || (await import('node:crypto')).createHmac;
|
|
35
36
|
const _createHash = crypto.createHash || (await import('node:crypto')).createHash;
|
|
36
37
|
/**
|
|
@@ -167,7 +168,7 @@ class S3ServiceError extends S3Error {
|
|
|
167
168
|
* @param {Iterable<() => Promise<unknonw>>} tasks – functions returning Promises
|
|
168
169
|
* @param {number} [batchSize=30] – max concurrent requests
|
|
169
170
|
* @param {number} [minIntervalMs=0] – ≥0; 0 means “no pacing”
|
|
170
|
-
* @returns {Promise<Array<PromiseSettledResult<
|
|
171
|
+
* @returns {Promise<Array<PromiseSettledResult<T>>>}
|
|
171
172
|
*/
|
|
172
173
|
const runInBatches = async (tasks, batchSize = 30, minIntervalMs = 0) => {
|
|
173
174
|
const allResults = [];
|
|
@@ -186,12 +187,12 @@ const runInBatches = async (tasks, batchSize = 30, minIntervalMs = 0) => {
|
|
|
186
187
|
// ───────── helpers ──────────
|
|
187
188
|
async function executeBatch(batchFns) {
|
|
188
189
|
const start = Date.now();
|
|
189
|
-
const settled = await Promise.allSettled(batchFns.map(fn => fn()));
|
|
190
|
+
const settled = await Promise.allSettled(batchFns.map((fn) => fn()));
|
|
190
191
|
allResults.push(...settled);
|
|
191
192
|
if (minIntervalMs > 0) {
|
|
192
193
|
const wait = minIntervalMs - (Date.now() - start);
|
|
193
194
|
if (wait > 0) {
|
|
194
|
-
await new Promise(
|
|
195
|
+
await new Promise((resolve) => setTimeout(resolve, wait));
|
|
195
196
|
}
|
|
196
197
|
}
|
|
197
198
|
}
|
|
@@ -242,10 +243,8 @@ class s3mini {
|
|
|
242
243
|
requestSizeInBytes;
|
|
243
244
|
requestAbortTimeout;
|
|
244
245
|
logger;
|
|
245
|
-
|
|
246
|
-
shortDatetime;
|
|
246
|
+
signingKeyDate;
|
|
247
247
|
signingKey;
|
|
248
|
-
credentialScope;
|
|
249
248
|
constructor({ accessKeyId, secretAccessKey, endpoint, region = 'auto', requestSizeInBytes = DEFAULT_REQUEST_SIZE_IN_BYTES, requestAbortTimeout = undefined, logger = undefined, }) {
|
|
250
249
|
this._validateConstructorParams(accessKeyId, secretAccessKey, endpoint);
|
|
251
250
|
this.accessKeyId = accessKeyId;
|
|
@@ -255,10 +254,6 @@ class s3mini {
|
|
|
255
254
|
this.requestSizeInBytes = requestSizeInBytes;
|
|
256
255
|
this.requestAbortTimeout = requestAbortTimeout;
|
|
257
256
|
this.logger = logger;
|
|
258
|
-
this.fullDatetime = new Date().toISOString().replace(/[:-]|\.\d{3}/g, '');
|
|
259
|
-
this.shortDatetime = this.fullDatetime.slice(0, 8);
|
|
260
|
-
this.signingKey = this._getSignatureKey(this.shortDatetime);
|
|
261
|
-
this.credentialScope = [this.shortDatetime, this.region, S3_SERVICE, AWS_REQUEST_TYPE].join('/');
|
|
262
257
|
}
|
|
263
258
|
_sanitize(obj) {
|
|
264
259
|
if (typeof obj !== 'object' || obj === null) {
|
|
@@ -313,11 +308,15 @@ class s3mini {
|
|
|
313
308
|
}
|
|
314
309
|
}
|
|
315
310
|
_ensureValidUrl(raw) {
|
|
316
|
-
// prepend https:// if user forgot a scheme
|
|
317
311
|
const candidate = /^(https?:)?\/\//i.test(raw) ? raw : `https://${raw}`;
|
|
318
312
|
try {
|
|
319
313
|
new URL(candidate);
|
|
320
|
-
|
|
314
|
+
// Find the last non-slash character
|
|
315
|
+
let endIndex = candidate.length;
|
|
316
|
+
while (endIndex > 0 && candidate[endIndex - 1] === '/') {
|
|
317
|
+
endIndex--;
|
|
318
|
+
}
|
|
319
|
+
return endIndex === candidate.length ? candidate : candidate.substring(0, endIndex);
|
|
321
320
|
}
|
|
322
321
|
catch {
|
|
323
322
|
const msg = `${ERROR_ENDPOINT_FORMAT} But provided: "${raw}"`;
|
|
@@ -400,8 +399,11 @@ class s3mini {
|
|
|
400
399
|
url.pathname =
|
|
401
400
|
url.pathname === '/' ? `/${keyPath.replace(/^\/+/, '')}` : `${url.pathname}/${keyPath.replace(/^\/+/, '')}`;
|
|
402
401
|
}
|
|
402
|
+
const fullDatetime = new Date().toISOString().replace(/[:-]|\.\d{3}/g, '');
|
|
403
|
+
const shortDatetime = fullDatetime.slice(0, 8);
|
|
404
|
+
const credentialScope = this._buildCredentialScope(shortDatetime);
|
|
403
405
|
headers[HEADER_AMZ_CONTENT_SHA256] = UNSIGNED_PAYLOAD; // body ? U.hash(body) : C.UNSIGNED_PAYLOAD;
|
|
404
|
-
headers[HEADER_AMZ_DATE] =
|
|
406
|
+
headers[HEADER_AMZ_DATE] = fullDatetime;
|
|
405
407
|
headers[HEADER_HOST] = url.host;
|
|
406
408
|
const canonicalHeaders = this._buildCanonicalHeaders(headers);
|
|
407
409
|
const signedHeaders = Object.keys(headers)
|
|
@@ -409,9 +411,9 @@ class s3mini {
|
|
|
409
411
|
.sort()
|
|
410
412
|
.join(';');
|
|
411
413
|
const canonicalRequest = this._buildCanonicalRequest(method, url, query, canonicalHeaders, signedHeaders);
|
|
412
|
-
const stringToSign = this._buildStringToSign(canonicalRequest);
|
|
413
|
-
const signature = this._calculateSignature(stringToSign);
|
|
414
|
-
const authorizationHeader = this._buildAuthorizationHeader(signedHeaders, signature);
|
|
414
|
+
const stringToSign = this._buildStringToSign(fullDatetime, credentialScope, canonicalRequest);
|
|
415
|
+
const signature = this._calculateSignature(shortDatetime, stringToSign);
|
|
416
|
+
const authorizationHeader = this._buildAuthorizationHeader(credentialScope, signedHeaders, signature);
|
|
415
417
|
headers[HEADER_AUTHORIZATION] = authorizationHeader;
|
|
416
418
|
return { url: url.toString(), headers };
|
|
417
419
|
}
|
|
@@ -431,15 +433,22 @@ class s3mini {
|
|
|
431
433
|
UNSIGNED_PAYLOAD,
|
|
432
434
|
].join('\n');
|
|
433
435
|
}
|
|
434
|
-
|
|
435
|
-
return [
|
|
436
|
+
_buildCredentialScope(shortDatetime) {
|
|
437
|
+
return [shortDatetime, this.region, S3_SERVICE, AWS_REQUEST_TYPE].join('/');
|
|
438
|
+
}
|
|
439
|
+
_buildStringToSign(fullDatetime, credentialScope, canonicalRequest) {
|
|
440
|
+
return [AWS_ALGORITHM, fullDatetime, credentialScope, hash(canonicalRequest)].join('\n');
|
|
436
441
|
}
|
|
437
|
-
_calculateSignature(stringToSign) {
|
|
442
|
+
_calculateSignature(shortDatetime, stringToSign) {
|
|
443
|
+
if (shortDatetime !== this.signingKeyDate) {
|
|
444
|
+
this.signingKeyDate = shortDatetime;
|
|
445
|
+
this.signingKey = this._getSignatureKey(shortDatetime);
|
|
446
|
+
}
|
|
438
447
|
return hmac(this.signingKey, stringToSign, 'hex');
|
|
439
448
|
}
|
|
440
|
-
_buildAuthorizationHeader(signedHeaders, signature) {
|
|
449
|
+
_buildAuthorizationHeader(credentialScope, signedHeaders, signature) {
|
|
441
450
|
return [
|
|
442
|
-
`${AWS_ALGORITHM} Credential=${this.accessKeyId}/${
|
|
451
|
+
`${AWS_ALGORITHM} Credential=${this.accessKeyId}/${credentialScope}`,
|
|
443
452
|
`SignedHeaders=${signedHeaders}`,
|
|
444
453
|
`Signature=${signature}`,
|
|
445
454
|
].join(', ');
|
|
@@ -616,6 +625,13 @@ class s3mini {
|
|
|
616
625
|
}
|
|
617
626
|
return res.text();
|
|
618
627
|
}
|
|
628
|
+
async getObjectResponse(key, opts = {}) {
|
|
629
|
+
const res = await this._signedRequest('GET', key, { query: opts, tolerated: [200, 404, 412, 304] });
|
|
630
|
+
if ([404, 412, 304].includes(res.status)) {
|
|
631
|
+
return null;
|
|
632
|
+
}
|
|
633
|
+
return res;
|
|
634
|
+
}
|
|
619
635
|
async getObjectArrayBuffer(key, opts = {}) {
|
|
620
636
|
const res = await this._signedRequest('GET', key, { query: opts, tolerated: [200, 404, 412, 304] });
|
|
621
637
|
if ([404, 412, 304].includes(res.status)) {
|
|
@@ -623,6 +639,13 @@ class s3mini {
|
|
|
623
639
|
}
|
|
624
640
|
return res.arrayBuffer();
|
|
625
641
|
}
|
|
642
|
+
async getObjectJSON(key, opts = {}) {
|
|
643
|
+
const res = await this._signedRequest('GET', key, { query: opts, tolerated: [200, 404, 412, 304] });
|
|
644
|
+
if ([404, 412, 304].includes(res.status)) {
|
|
645
|
+
return null;
|
|
646
|
+
}
|
|
647
|
+
return res.json();
|
|
648
|
+
}
|
|
626
649
|
async getObjectWithETag(key, opts = {}) {
|
|
627
650
|
try {
|
|
628
651
|
const res = await this._signedRequest('GET', key, { query: opts, tolerated: [200, 404, 412, 304] });
|
|
@@ -680,13 +703,16 @@ class s3mini {
|
|
|
680
703
|
}
|
|
681
704
|
return sanitizeETag(etag);
|
|
682
705
|
}
|
|
683
|
-
async putObject(key, data) {
|
|
706
|
+
async putObject(key, data, fileType = DEFAULT_STREAM_CONTENT_TYPE) {
|
|
684
707
|
if (!(data instanceof Buffer || typeof data === 'string')) {
|
|
685
708
|
throw new TypeError(ERROR_DATA_BUFFER_REQUIRED);
|
|
686
709
|
}
|
|
687
710
|
return this._signedRequest('PUT', key, {
|
|
688
711
|
body: data,
|
|
689
|
-
headers: {
|
|
712
|
+
headers: {
|
|
713
|
+
[HEADER_CONTENT_LENGTH]: typeof data === 'string' ? Buffer.byteLength(data) : data.length,
|
|
714
|
+
[HEADER_CONTENT_TYPE]: fileType,
|
|
715
|
+
},
|
|
690
716
|
tolerated: [200],
|
|
691
717
|
});
|
|
692
718
|
}
|
|
@@ -795,7 +821,6 @@ class s3mini {
|
|
|
795
821
|
const res = await fetch(url, {
|
|
796
822
|
method,
|
|
797
823
|
headers,
|
|
798
|
-
keepalive: true,
|
|
799
824
|
body: ['GET', 'HEAD'].includes(method) ? undefined : body,
|
|
800
825
|
signal: this.requestAbortTimeout !== undefined ? AbortSignal.timeout(this.requestAbortTimeout) : undefined,
|
|
801
826
|
});
|
package/dist/s3mini.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3mini.js","sources":["../src/consts.ts","../src/utils.ts","../src/S3.ts"],"sourcesContent":[null,null,null],"names":["C.DEFAULT_REQUEST_SIZE_IN_BYTES","C.S3_SERVICE","C.AWS_REQUEST_TYPE","C.SENSITIVE_KEYS_REDACTED","C.ERROR_ACCESS_KEY_REQUIRED","C.ERROR_SECRET_KEY_REQUIRED","C.ERROR_ENDPOINT_REQUIRED","C.ERROR_ENDPOINT_FORMAT","C.ERROR_PREFIX","C.ERROR_KEY_REQUIRED","C.ERROR_DELIMITER_REQUIRED","C.ERROR_PREFIX_TYPE","C.ERROR_DATA_BUFFER_REQUIRED","C.ERROR_UPLOAD_ID_REQUIRED","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","C.HEADER_AMZ_DATE","C.HEADER_HOST","C.HEADER_AUTHORIZATION","C.AWS_ALGORITHM","U.hash","U.hmac","U.uriResourceEscape","U.sanitizeETag","C.HEADER_CONTENT_TYPE","C.XML_CONTENT_TYPE","C.HEADER_CONTENT_LENGTH","U.uriEscape","C.LIST_TYPE","U.parseXml","C.HEADER_ETAG","C.DEFAULT_STREAM_CONTENT_TYPE","U.extractErrCode","U.S3NetworkError","U.S3ServiceError"],"mappings":"AAAA;AACO,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,gBAAgB,GAAG,cAAc;AACvC,MAAM,UAAU,GAAG,IAAI;AACvB,MAAM,SAAS,GAAG,GAAG;AACrB,MAAM,gBAAgB,GAAG,kBAAkB;AAC3C,MAAM,2BAA2B,GAAG,0BAA0B;AAC9D,MAAM,gBAAgB,GAAG,iBAAiB;AAEjD;AACO,MAAM,uBAAuB,GAAG,CAAC,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC;AACvG,MAAM,6BAA6B,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;AAE5D;AACO,MAAM,yBAAyB,GAAG,sBAAsB;AACxD,MAAM,eAAe,GAAG,YAAY;AACpC,MAAM,WAAW,GAAG,MAAM;AAC1B,MAAM,oBAAoB,GAAG,eAAe;AAC5C,MAAM,mBAAmB,GAAG,cAAc;AAC1C,MAAM,qBAAqB,GAAG,gBAAgB;AAC9C,MAAM,WAAW,GAAG,MAAM;AAGjC;AACO,MAAM,YAAY,GAAG,WAAW;AAChC,MAAM,yBAAyB,GAAG,CAAG,EAAA,YAAY,wCAAwC;AACzF,MAAM,yBAAyB,GAAG,CAAG,EAAA,YAAY,4CAA4C;AAC7F,MAAM,uBAAuB,GAAG,CAAG,EAAA,YAAY,qCAAqC;AACpF,MAAM,qBAAqB,GAAG,CAAG,EAAA,YAAY,kFAAkF;AAC/H,MAAM,kBAAkB,GAAG,CAAG,EAAA,YAAY,gCAAgC;AAC1E,MAAM,wBAAwB,GAAG,CAAG,EAAA,YAAY,qCAAqC;AAGrF,MAAM,0BAA0B,GAAG,CAAG,EAAA,YAAY,iCAAiC;AAC1F;AACO,MAAM,iBAAiB,GAAG,CAAG,EAAA,YAAY,yBAAyB;AAElE,MAAM,wBAAwB,GAAG,CAAG,EAAA,YAAY,4BAA4B;;AChCnF;AACA,MAAM,WAAW,GAAyB,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,OAAO,aAAa,CAAC,EAAE,UAAU;AACvG,MAAM,WAAW,GAAyB,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,OAAO,aAAa,CAAC,EAAE,UAAU;AAEvG;;;;AAIG;AACI,MAAM,IAAI,GAAG,CAAC,OAAwB,KAAY;AACvD,IAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5D,CAAC;AAED;;;;;;AAMG;AACI,MAAM,IAAI,GAAG,CAAC,GAAoB,EAAE,OAAwB,EAAE,QAA2B,KAAqB;AACnH,IAAA,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACtD,IAAA,OAAO,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;AACvD,CAAC;AAED;;;;AAIG;AACU,MAAA,YAAY,GAAG,CAAC,IAAY,KAAY;AACnD,IAAA,MAAM,YAAY,GAA2B;AAC3C,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,EAAE;KACf;AACD,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAW,CAAC;AAC7F;AAEA,MAAM,SAAS,GAAG;AAChB,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,OAAO,EAAE,GAAG;CACJ;AAEV,MAAM,WAAW,GAAG,CAAC,KAAa,KAChC,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,IAAI,SAAS,CAAC,CAA2B,CAAC,IAAI,CAAC,CAAC;AAE7F;;;;;AAKG;AACI,MAAM,QAAQ,GAAG,CAAC,KAAa,KAAc;IAClD,MAAM,MAAM,GAAG,0DAA0D;AACzE,IAAA,MAAM,MAAM,GAAW,EAAE,CAAC;AAC1B,IAAA,IAAI,KAA6B;AAEjC,IAAA,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;AAC5C,QAAA,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK;QACzC,MAAM,OAAO,GAAG,CAAA,EAAG,MAAM,CAAC,WAAW,EAAE,CAAA,EAAG,GAAG,CAAA,CAAE;AAC/C,QAAA,MAAM,IAAI,GAAa,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE;AAEnD,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;;AAEzB,YAAA,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI;;AACjB,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;;AAEjC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;aACb;;YAEL,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;;;;IAKrC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;AACrE,CAAC;AAED;;;;AAIG;AACH,MAAM,WAAW,GAAG,CAAC,CAAS,KAAa,CAAI,CAAA,EAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA,CAAE;AAE3F;;;;AAIG;AACI,MAAM,SAAS,GAAG,CAAC,MAAc,KAAY;IAClD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC;AACpE,CAAC;AAED;;;;AAIG;AACI,MAAM,iBAAiB,GAAG,CAAC,MAAc,KAAY;IAC1D,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/C,CAAC;AAMM,MAAM,cAAc,GAAG,CAAC,CAAU,KAAwB;IAC/D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE;AACvC,QAAA,OAAO,SAAS;;IAElB,MAAM,GAAG,GAAG,CAAkB;AAC9B,IAAA,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;QAChC,OAAO,GAAG,CAAC,IAAI;;IAEjB,OAAO,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS;AACzE,CAAC;AAEK,MAAO,OAAQ,SAAQ,KAAK,CAAA;AACvB,IAAA,IAAI;AACb,IAAA,WAAA,CAAY,GAAW,EAAE,IAAa,EAAE,KAAe,EAAA;QACrD,KAAK,CAAC,GAAG,CAAC;QACV,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAErB;AAEK,MAAO,cAAe,SAAQ,OAAO,CAAA;AAAG;AACxC,MAAO,cAAe,SAAQ,OAAO,CAAA;AAChC,IAAA,MAAM;AACN,IAAA,WAAW;AACpB,IAAA,IAAI;AACJ,IAAA,WAAA,CAAY,GAAW,EAAE,MAAc,EAAE,WAAoB,EAAE,IAAa,EAAA;AAC1E,QAAA,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAEnB;AAED;;;;;;;;AAQG;AACU,MAAA,YAAY,GAAG,OAC1B,KAAuC,EACvC,SAAS,GAAG,EAAE,EACd,aAAa,GAAG,CAAC,KACgC;IACjD,MAAM,UAAU,GAAoC,EAAE;IACtD,IAAI,KAAK,GAAkC,EAAE;AAE7C,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAChB,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AAC9B,YAAA,MAAM,YAAY,CAAC,KAAK,CAAC;YACzB,KAAK,GAAG,EAAE;;;AAGd,IAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,QAAA,MAAM,YAAY,CAAC,KAAK,CAAC;;AAE3B,IAAA,OAAO,UAAU;;IAGjB,eAAe,YAAY,CAAC,QAAuC,EAAA;AACjE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AAExB,QAAA,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAClE,QAAA,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAE3B,QAAA,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,YAAA,MAAM,IAAI,GAAG,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AACjD,YAAA,IAAI,IAAI,GAAG,CAAC,EAAE;AACZ,gBAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;;;;AAInD;;AC9LA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH,MAAM,MAAM,CAAA;AACV;;;;;;;;;;;;;AAaG;AACK,IAAA,WAAW;AACX,IAAA,eAAe;AACf,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,kBAAkB;AAClB,IAAA,mBAAmB;AACnB,IAAA,MAAM;AACN,IAAA,YAAY;AACZ,IAAA,aAAa;AACb,IAAA,UAAU;AACV,IAAA,eAAe;IAEvB,WAAY,CAAA,EACV,WAAW,EACX,eAAe,EACf,QAAQ,EACR,MAAM,GAAG,MAAM,EACf,kBAAkB,GAAGA,6BAA+B,EACpD,mBAAmB,GAAG,SAAS,EAC/B,MAAM,GAAG,SAAS,GACN,EAAA;QACZ,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,eAAe,EAAE,QAAQ,CAAC;AACvE,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AAC9C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AAC5C,QAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;AAC9C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AACzE,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAEC,UAAY,EAAEC,gBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG9F,IAAA,SAAS,CAAC,GAAY,EAAA;QAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AAC3C,YAAA,OAAO,GAAG;;AAEZ,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC5B,CAAC,GAA4B,EAAE,GAAG,KAAI;AACpC,YAAA,IAAIC,uBAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE;AACzD,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY;;AAClB,iBAAA,IACL,OAAQ,GAA+B,CAAC,GAAG,CAAC,KAAK,QAAQ;AACxD,gBAAA,GAA+B,CAAC,GAAG,CAAC,KAAK,IAAI,EAC9C;AACA,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC;;iBAC3D;gBACL,GAAG,CAAC,GAAG,CAAC,GAAI,GAA+B,CAAC,GAAG,CAAC;;AAElD,YAAA,OAAO,GAAG;AACZ,SAAC,EACD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAC7B;;AAGK,IAAA,IAAI,CACV,KAAgC,EAChC,OAAe,EACf,iBAAmD,EAAE,EAAA;AAErD,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE;;;YAI3D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;;AAEpD,YAAA,MAAM,QAAQ,GAAG;AACf,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK;gBACL,OAAO;AACP,gBAAA,OAAO,EAAE,aAAa;;AAEtB,gBAAA,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;;oBAEvB,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAK,GAAA,CAAA,GAAG,SAAS;iBACrF,CAAC;aACH;;AAGD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;;;AAIxC,IAAA,0BAA0B,CAAC,WAAmB,EAAE,eAAuB,EAAE,QAAgB,EAAA;AAC/F,QAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACtE,YAAA,MAAM,IAAI,SAAS,CAACC,yBAA2B,CAAC;;AAElD,QAAA,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9E,YAAA,MAAM,IAAI,SAAS,CAACC,yBAA2B,CAAC;;AAElD,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAChE,YAAA,MAAM,IAAI,SAAS,CAACC,uBAAyB,CAAC;;;AAI1C,IAAA,eAAe,CAAC,GAAW,EAAA;;AAEjC,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAW,QAAA,EAAA,GAAG,EAAE;AACvE,QAAA,IAAI;AACF,YAAA,IAAI,GAAG,CAAC,SAAS,CAAC;YAClB,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;;AACrC,QAAA,MAAM;YACN,MAAM,GAAG,GAAG,CAAG,EAAAC,qBAAuB,CAAA,gBAAA,EAAmB,GAAG,CAAA,CAAA,CAAG;AAC/D,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;AACvB,YAAA,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC;;;AAIpB,IAAA,0BAA0B,CAAC,MAAc,EAAA;QAC/C,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAG,EAAAC,YAAc,CAAmC,iCAAA,CAAA,CAAC;AACxE,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;;;AAIhD,IAAA,SAAS,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAEC,kBAAoB,CAAC;AACxC,YAAA,MAAM,IAAI,SAAS,CAACA,kBAAoB,CAAC;;;AAIrC,IAAA,eAAe,CAAC,SAAiB,EAAA;AACvC,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAEC,wBAA0B,CAAC;AAC9C,YAAA,MAAM,IAAI,SAAS,CAACA,wBAA0B,CAAC;;;AAI3C,IAAA,YAAY,CAAC,MAAc,EAAA;AACjC,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAEC,iBAAmB,CAAC;AACvC,YAAA,MAAM,IAAI,SAAS,CAACA,iBAAmB,CAAC;;;;;;;;;AAWpC,IAAA,UAAU,CAAC,IAAY,EAAA;AAC7B,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAG,EAAAH,YAAc,CAAwB,sBAAA,CAAA,CAAC;YAC7D,MAAM,IAAI,SAAS,CAAC,CAAA,EAAGA,YAAc,CAAwB,sBAAA,CAAA,CAAC;;;AAI1D,IAAA,gBAAgB,CAAC,IAA6B,EAAA;QAIpD,MAAM,YAAY,GAA2B,EAAE;QAC/C,MAAM,kBAAkB,GAA4B,EAAE;QACtD,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,CAAC;AAE3F,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE;;AAEzC,gBAAA,kBAAkB,CAAC,GAAG,CAAC,GAAG,KAAK;;iBAC1B;AACL,gBAAA,YAAY,CAAC,GAAG,CAAC,GAAG,KAAe;;;AAIvC,QAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE;;IAGrC,yBAAyB,CAC/B,GAAW,EACX,QAAgB,EAChB,IAAqB,EACrB,UAAkB,EAClB,IAAY,EAAA;AAEZ,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACnB,QAAA,IAAI,EAAE,IAAI,YAAY,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAEI,0BAA4B,CAAC;AAChD,YAAA,MAAM,IAAI,SAAS,CAACA,0BAA4B,CAAC;;AAEnD,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAChE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAEC,wBAA0B,CAAC;AAC9C,YAAA,MAAM,IAAI,SAAS,CAACA,wBAA0B,CAAC;;AAEjD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAG,EAAAL,YAAc,CAAuC,qCAAA,CAAA,CAAC;YAC5E,MAAM,IAAI,SAAS,CAAC,CAAA,EAAGA,YAAc,CAAuC,qCAAA,CAAA,CAAC;;AAE/E,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;IAGf,KAAK,CACX,MAAqB,EACrB,OAAe,EACf,KAAiC,GAAA,EAAE,EACnC,OAAA,GAA2C,EAAE,EAAA;;QAG7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;;QAGlC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,GAAG,CAAC,QAAQ;AACV,gBAAA,GAAG,CAAC,QAAQ,KAAK,GAAG,GAAG,CAAI,CAAA,EAAA,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,GAAG,CAAC,QAAQ,CAAI,CAAA,EAAA,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;;QAG/G,OAAO,CAACM,yBAA2B,CAAC,GAAGC,gBAAkB,CAAC;QAC1D,OAAO,CAACC,eAAiB,CAAC,GAAG,IAAI,CAAC,YAAY;QAC9C,OAAO,CAACC,WAAa,CAAC,GAAG,GAAG,CAAC,IAAI;QACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;AAC7D,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO;aACtC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;AAC5B,aAAA,IAAI;aACJ,IAAI,CAAC,GAAG,CAAC;AAEZ,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC;QACzG,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;QACxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,SAAS,CAAC;AACpF,QAAA,OAAO,CAACC,oBAAsB,CAAC,GAAG,mBAAmB;QACrD,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE;;AAGjC,IAAA,sBAAsB,CAAC,OAAwC,EAAA;AACrE,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO;aAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAG,EAAA,GAAG,CAAC,WAAW,EAAE,CAAI,CAAA,EAAA,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA,CAAE;AACpE,aAAA,IAAI;aACJ,IAAI,CAAC,IAAI,CAAC;;IAGP,sBAAsB,CAC5B,MAAqB,EACrB,GAAQ,EACR,KAA8B,EAC9B,gBAAwB,EACxB,aAAqB,EAAA;QAErB,OAAO;YACL,MAAM;AACN,YAAA,GAAG,CAAC,QAAQ;AACZ,YAAA,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;AACtC,YAAA,CAAA,EAAG,gBAAgB,CAAI,EAAA,CAAA;YACvB,aAAa;AACb,YAAAH,gBAAkB;AACnB,SAAA,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGN,IAAA,kBAAkB,CAAC,gBAAwB,EAAA;QACjD,OAAO,CAACI,aAAe,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAEC,IAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGhG,IAAA,mBAAmB,CAAC,YAAoB,EAAA;AAC9C,QAAA,OAAOC,IAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAW;;IAGvD,yBAAyB,CAAC,aAAqB,EAAE,SAAiB,EAAA;QACxE,OAAO;YACL,CAAG,EAAAF,aAAe,CAAe,YAAA,EAAA,IAAI,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,eAAe,CAAE,CAAA;AAC3E,YAAA,CAAA,cAAA,EAAiB,aAAa,CAAE,CAAA;AAChC,YAAA,CAAA,UAAA,EAAa,SAAS,CAAE,CAAA;AACzB,SAAA,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGN,IAAA,MAAM,cAAc,CAC1B,MAAqB;AACrB,IAAA,GAAW;AACX,IAAA,EACE,KAAK,GAAG,EAAE;IACV,IAAI,GAAG,EAAE;IACT,OAAO,GAAG,EAAE;IACZ,SAAS,GAAG,EAAE;IACd,SAAS,GAAG,KAAK;SAOf,EAAE,EAAA;;AAGN,QAAA,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC9D,MAAM,IAAI,KAAK,CAAC,CAAG,EAAAX,YAAc,CAA2B,wBAAA,EAAA,MAAgB,CAAE,CAAA,CAAC;;QAEjF,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;;AAGtB,QAAA,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM;AAC1E,cAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK;cAC3B,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE;AAEnD,QAAA,MAAM,WAAW,GAAoC;AACnD,YAAA,CAACM,yBAA2B,GAAGC,gBAAkB;;AAEjD,YAAA,GAAG,OAAO;AACV,YAAA,GAAG,kBAAkB;SACtB;AAED,QAAA,MAAM,UAAU,GAAG,GAAG,GAAGO,iBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE;QACtD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC;QACjG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,SAAS,GAAG,IAAI,CAAC;;AAEnB,QAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAC5C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC;AAC3B,QAAA,MAAM,QAAQ,GACZ,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAA,CAAE,GAAG,GAAG;AAC5G,QAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAC5C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CACpC;AAC3B,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,CAAC;;IAG3E,QAAQ,GAAA;QACb,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;;AAEI,IAAA,QAAQ,CAAC,KAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC;AACzF,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe;QAC5C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;QAC9B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAItB,6BAA+B;AACrF,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB;AACpD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;;AAGrB,IAAA,YAAY,CAAC,IAAY,EAAA;AAC9B,QAAA,OAAOuB,YAAc,CAAC,IAAI,CAAC;;;AAItB,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,MAAM,OAAO,GAAG;;AAEU,4BAAA,EAAA,IAAI,CAAC,MAAM,CAAA;;KAEpC;AACD,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,CAACC,mBAAqB,GAAGC,gBAAkB;AAC3C,YAAA,CAACC,qBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;SACjE;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE;AAC/C,YAAA,IAAI,EAAE,OAAO;YACb,OAAO;YACP,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,SAAA,CAAC;AACF,QAAA,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG;;AAGpB,IAAA,MAAM,YAAY,GAAA;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AACjF,QAAA,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG;;IAGpB,MAAM,WAAW,CACtB,SAAA,GAAoB,GAAG,EACvB,MAAA,GAAiB,EAAE,EACnB,OAAgB;;AAEhB,IAAA,IAAA,GAAgC,EAAE,EAAA;AAElC,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAErB,QAAA,MAAM,OAAO,GAAG,SAAS,KAAK,GAAG,GAAG,SAAS,GAAGC,SAAW,CAAC,SAAS,CAAC;QAEtE,MAAM,SAAS,GAAG,EAAE,OAAO,IAAI,OAAO,GAAG,CAAC,CAAC;QAC3C,IAAI,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO;AAC9C,QAAA,IAAI,KAAyB;QAC7B,MAAM,GAAG,GAAa,EAAE;AAExB,QAAA,GAAG;AACD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC5C,YAAA,MAAM,KAAK,GAA4B;AACrC,gBAAA,WAAW,EAAEC,SAAW;AACxB,gBAAA,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,gBAAA,IAAI,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC7B,gBAAA,IAAI,KAAK,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACjD,gBAAA,GAAG,IAAI;aACR;YAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;gBACpD,KAAK;AACL,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACtB,aAAA,CAAC;AAEF,YAAA,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AACtB,gBAAA,OAAO,IAAI;;AAEb,YAAA,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AACtB,gBAAA,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAClC,gBAAA,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS;AAClE,gBAAA,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,UAAU;gBAC7E,IAAI,CAAC,IAAI,CACP,OAAO,EACP,CAAG,EAAApB,YAAc,CAAA,2BAAA,EAA8B,GAAG,CAAC,MAAM,KAAK,SAAS,CAAA,GAAA,EAAM,YAAY,CAAe,YAAA,EAAA,SAAS,CAAE,CAAA,CACpH;AACD,gBAAA,MAAM,IAAI,KAAK,CACb,GAAGA,YAAc,CAA8B,2BAAA,EAAA,GAAG,CAAC,MAAM,CAAA,EAAA,EAAK,SAAS,CAAM,GAAA,EAAA,YAAY,eAAe,SAAS,CAAA,CAAE,CACpH;;AAGH,YAAA,MAAM,GAAG,GAAGqB,QAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B;AACnE,YAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,GAAG,EAAE;AACrD,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA,EAAGrB,YAAc,CAA0C,uCAAA,EAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;gBACpG,MAAM,IAAI,KAAK,CAAC,CAAA,EAAGA,YAAc,CAAuC,qCAAA,CAAA,CAAC;;AAE3E,YAAA,MAAM,GAAG,IAAI,kBAAkB,IAAI,GAAG,GAAG,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAA4B;;AAG/F,YAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;YAC7B,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAC7D,gBAAA,GAAG,CAAC,IAAI,CAAC,GAAI,KAAkB,CAAC;gBAChC,IAAI,CAAC,SAAS,EAAE;AACd,oBAAA,SAAS,IAAI,KAAK,CAAC,MAAM;;;AAG7B,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM;AAC1E,YAAA,KAAK,GAAG;AACN,mBAAI,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU;kBAG5F,SAAS;AACf,SAAC,QAAQ,KAAK,IAAI,SAAS,GAAG,CAAC;AAE/B,QAAA,OAAO,GAAG;;AAGL,IAAA,MAAM,oBAAoB,CAC/B,SAAA,GAAoB,GAAG,EACvB,MAAiB,GAAA,EAAE,EACnB,MAAA,GAAwB,KAAK,EAC7B,OAA8D,EAAE,EAAA;AAEhE,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACzB,QAAA,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAErB,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,SAAS,KAAK,GAAG,GAAG,SAAS,GAAGmB,SAAW,CAAC,SAAS,CAAC;QAEtE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE;YACrD,KAAK;AACL,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;;;;;;;;;AAUF,QAAA,MAAM,GAAG,GAAGE,QAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY;QACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,CAAA,EAAGrB,YAAc,CAAgD,8CAAA,CAAA,CAAC;;AAEpF,QAAA,IAAI,4BAA4B,IAAI,GAAG,EAAE;YACvC,OAAO,GAAG,CAAC,0BAA2D;;AAExE,QAAA,OAAO,GAA8B;;AAGhC,IAAA,MAAM,SAAS,CAAC,GAAW,EAAE,OAAgC,EAAE,EAAA;AACpE,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AACnG,QAAA,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACxC,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,GAAG,CAAC,IAAI,EAAE;;AAGZ,IAAA,MAAM,oBAAoB,CAAC,GAAW,EAAE,OAAgC,EAAE,EAAA;AAC/E,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AACnG,QAAA,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACxC,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,GAAG,CAAC,WAAW,EAAE;;AAGnB,IAAA,MAAM,iBAAiB,CAC5B,GAAW,EACX,OAAgC,EAAE,EAAA;AAElC,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAEnG,YAAA,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;;AAGnC,YAAA,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAACsB,WAAa,CAAC;YAC3C,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;;AAEvD,YAAA,OAAO,EAAE,IAAI,EAAEP,YAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,EAAE;;QACpE,OAAO,GAAG,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAwB,qBAAA,EAAA,GAAG,CAAe,YAAA,EAAA,MAAM,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AAC3E,YAAA,MAAM,GAAG;;;IAIN,MAAM,YAAY,CACvB,GAAW,EACX,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,CAAC,EACb,OAAO,GAAG,IAAI,CAAC,kBAAkB,EACjC,OAAgC,EAAE,EAAA;QAElC,MAAM,QAAQ,GAAoC,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,SAAS,CAAA,CAAA,EAAI,OAAO,GAAG,CAAC,CAAE,CAAA,EAAE;AAEjH,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;AACrC,YAAA,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE;AAClB,YAAA,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;;IAGG,MAAM,gBAAgB,CAAC,GAAW,EAAA;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC;AAClD,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAACG,qBAAuB,CAAC;QACpD,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;;AAGhB,IAAA,MAAM,YAAY,CAAC,GAAW,EAAE,OAAgC,EAAE,EAAA;QACvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AACjD,YAAA,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,SAAA,CAAC;AAEF,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;YACtB,OAAO,KAAK,CAAC;;AAEf,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;YAC5C,OAAO,IAAI,CAAC;;QAEd,OAAO,IAAI,CAAC;;AAGP,IAAA,MAAM,OAAO,CAAC,GAAW,EAAE,OAAgC,EAAE,EAAA;QAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AACjD,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACtB,SAAA,CAAC;AAEF,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AACtB,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAACI,WAAa,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;;AAGvD,QAAA,OAAOP,YAAc,CAAC,IAAI,CAAC;;AAGtB,IAAA,MAAM,SAAS,CAAC,GAAW,EAAE,IAAqB,EAAA;AACvD,QAAA,IAAI,EAAE,IAAI,YAAY,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE;AACzD,YAAA,MAAM,IAAI,SAAS,CAACX,0BAA4B,CAAC;;AAEnD,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;AACrC,YAAA,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,EAAE,CAACc,qBAAuB,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;YACxG,SAAS,EAAE,CAAC,GAAG,CAAC;AACjB,SAAA,CAAC;;IAGG,MAAM,oBAAoB,CAAC,GAAW,EAAE,QAAmB,GAAAK,2BAA6B,EAAA;AAC7F,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACnB,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,MAAM,IAAI,SAAS,CAAC,CAAA,EAAGvB,YAAc,CAA2B,yBAAA,CAAA,CAAC;;AAEnE,QAAA,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,EAAE,CAACgB,mBAAqB,GAAG,QAAQ,EAAE;QAErD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;YACjD,KAAK;YACL,OAAO;AACP,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;AAEF,QAAA,MAAM,MAAM,GAAGK,QAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY;AAEtD,QAAA,IACE,MAAM;YACN,OAAO,MAAM,KAAK,QAAQ;AAC1B,YAAA,+BAA+B,IAAI,MAAM;AACzC,YAAA,MAAM,CAAC,6BAA6B;AACpC,YAAA,UAAU,IAAK,MAAM,CAAC,6BAAsD,EAC5E;AACA,YAAA,OAAQ,MAAM,CAAC,6BAAsD,CAAC,QAAQ;;AAGhF,QAAA,MAAM,IAAI,KAAK,CAAC,CAAG,EAAArB,YAAc,CAAA,mCAAA,EAAsC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;;AAG3F,IAAA,MAAM,UAAU,CACrB,GAAW,EACX,QAAgB,EAChB,IAAqB,EACrB,UAAkB,EAClB,IAAA,GAAgC,EAAE,EAAA;AAElC,QAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC;QAErE,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;YAChD,KAAK;AACL,YAAA,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,EAAE,CAACkB,qBAAuB,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACzG,SAAA,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAEH,YAAc,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE;;AAGrE,IAAA,MAAM,uBAAuB,CAClC,GAAW,EACX,QAAgB,EAChB,KAA2B,EAAA;;AAI3B,QAAA,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;AAC5D,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,CAACC,mBAAqB,GAAGC,gBAAkB;AAC3C,YAAA,CAACC,qBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;SACjE;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;YACjD,KAAK;AACL,YAAA,IAAI,EAAE,OAAO;YACb,OAAO;AACP,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;AAEF,QAAA,MAAM,MAAM,GAAGG,QAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY;QAEtD,MAAM,MAAM,GACV,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,+BAA+B,IAAI;cACtE,MAAqD,CAAC;cACvD,MAAM;QAEZ,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,CAAG,EAAArB,YAAc,CAAA,qCAAA,EAAwC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;;QAEpG,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE;AACvC,YAAA,MAA2C,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAClE,MAA2C,CAAC,IAAI,IAAK,MAA2C,CAAC,IAAI,CACvG;;AAEH,QAAA,OAAO,MAA0C;;AAG5C,IAAA,MAAM,oBAAoB,CAAC,GAAW,EAAE,QAAgB,EAAA;AAC7D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QACnB,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,SAAS,CAACK,wBAA0B,CAAC;;AAGjD,QAAA,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,EAAE,CAACW,mBAAqB,GAAGC,gBAAkB,EAAE;QAE/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnD,KAAK;YACL,OAAO;AACP,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;AAEF,QAAA,MAAM,MAAM,GAAGI,QAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAW;AACrD,QAAA,IACE,MAAM;AACN,YAAA,OAAO,IAAI,MAAM;AACjB,YAAA,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAChC,MAAM,CAAC,KAAK,KAAK,IAAI;AACrB,YAAA,SAAS,IAAI,MAAM,CAAC,KAAK,EACzB;YACA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAG,EAAArB,YAAc,CAAA,kCAAA,EAAqC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC;AACxG,YAAA,MAAM,IAAI,KAAK,CAAC,GAAGA,YAAc,CAAqC,kCAAA,EAAA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC;;AAEvG,QAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE;;AAGvD,IAAA,gCAAgC,CAAC,KAA2B,EAAA;QAClE,OAAO;;UAED;AACC,aAAA,GAAG,CACF,IAAI,IAAI;;AAEM,wBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;AACrB,kBAAA,EAAA,IAAI,CAAC,IAAI,CAAA;;SAEpB;aAEE,IAAI,CAAC,EAAE,CAAC;;KAEd;;IAGI,MAAM,YAAY,CAAC,GAAW,EAAA;QACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAC/E,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;;AAGzC,IAAA,MAAM,YAAY,CACxB,GAAW,EACX,MAAqB,EACrB,OAA+B,EAC/B,IAAsB,EACtB,oBAAA,GAAiC,EAAE,EAAA;QAEnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAW,QAAA,EAAA,MAAM,eAAe,GAAG,CAAA,CAAE,EAAE,CAAY,SAAA,EAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC;AAC/F,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM;gBACN,OAAO;AACP,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,GAAI,IAAe;gBACrE,MAAM,EAAE,IAAI,CAAC,mBAAmB,KAAK,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,SAAS;AAC3G,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,iBAAA,EAAoB,GAAG,CAAC,MAAM,CAAgB,aAAA,EAAA,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AACjG,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACzD,gBAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;;AAEtC,YAAA,OAAO,GAAG;;QACV,OAAO,GAAY,EAAE;YACrB,MAAM,IAAI,GAAGwB,cAAgB,CAAC,GAAG,CAAC;AAClC,YAAA,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClF,gBAAA,MAAM,IAAIC,cAAgB,CAAC,CAAA,kBAAA,EAAqB,IAAI,CAAA,CAAE,EAAE,IAAI,EAAE,GAAG,CAAC;;AAEpE,YAAA,MAAM,GAAG;;;IAIL,MAAM,oBAAoB,CAAC,GAAa,EAAA;AAC9C,QAAA,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAClC,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS;AAChE,QAAA,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,UAAU;QAC7E,IAAI,CAAC,IAAI,CACP,OAAO,EACP,CAAG,EAAAzB,YAAc,CAAA,2BAAA,EAA8B,GAAG,CAAC,MAAM,KAAK,OAAO,CAAA,GAAA,EAAM,YAAY,CAAc,WAAA,EAAA,SAAS,CAAE,CAAA,CACjH;QACD,MAAM,IAAI0B,cAAgB,CAAC,CAAe,YAAA,EAAA,GAAG,CAAC,MAAM,CAAA,GAAA,EAAM,OAAO,CAAE,CAAA,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;;AAG9F,IAAA,0BAA0B,CAAC,WAAoC,EAAA;AACrE,QAAA,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACzD,YAAA,OAAO,EAAE;;AAEX,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW;AAC3B,aAAA,GAAG,CAAC,GAAG,IAAI,CAAA,EAAG,kBAAkB,CAAC,GAAG,CAAC,CAAI,CAAA,EAAA,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAW,CAAC,EAAE;AACzF,aAAA,IAAI;aACJ,IAAI,CAAC,GAAG,CAAC;;AAEN,IAAA,gBAAgB,CAAC,SAAiB,EAAA;AACxC,QAAA,MAAM,KAAK,GAAGb,IAAM,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,eAAe,CAAA,CAAE,EAAE,SAAS,CAAW;AACxE,QAAA,MAAM,OAAO,GAAGA,IAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAW;AACpD,QAAA,MAAM,QAAQ,GAAGA,IAAM,CAAC,OAAO,EAAEpB,UAAY,CAAW;QACxD,OAAOoB,IAAM,CAAC,QAAQ,EAAEnB,gBAAkB,CAAW;;AAExD;;;;"}
|
|
1
|
+
{"version":3,"file":"s3mini.js","sources":["../src/consts.ts","../src/utils.ts","../src/S3.ts"],"sourcesContent":[null,null,null],"names":["C.DEFAULT_REQUEST_SIZE_IN_BYTES","C.SENSITIVE_KEYS_REDACTED","C.ERROR_ACCESS_KEY_REQUIRED","C.ERROR_SECRET_KEY_REQUIRED","C.ERROR_ENDPOINT_REQUIRED","C.ERROR_ENDPOINT_FORMAT","C.ERROR_PREFIX","C.ERROR_KEY_REQUIRED","C.ERROR_DELIMITER_REQUIRED","C.ERROR_PREFIX_TYPE","C.ERROR_DATA_BUFFER_REQUIRED","C.ERROR_UPLOAD_ID_REQUIRED","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","C.HEADER_AMZ_DATE","C.HEADER_HOST","C.HEADER_AUTHORIZATION","C.S3_SERVICE","C.AWS_REQUEST_TYPE","C.AWS_ALGORITHM","U.hash","U.hmac","U.uriResourceEscape","U.sanitizeETag","C.HEADER_CONTENT_TYPE","C.XML_CONTENT_TYPE","C.HEADER_CONTENT_LENGTH","U.uriEscape","C.LIST_TYPE","U.parseXml","C.HEADER_ETAG","C.DEFAULT_STREAM_CONTENT_TYPE","U.extractErrCode","U.S3NetworkError","U.S3ServiceError"],"mappings":"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"}
|
package/dist/s3mini.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const t="AWS4-HMAC-SHA256",e="aws4_request",r="s3",s="UNSIGNED-PAYLOAD",i="application/xml",o=["accessKeyId","secretAccessKey","sessionToken","password","token"],n="x-amz-content-sha256",a="Content-Type",h="Content-Length",c="etag",u="[s3mini] ",d=u+"accessKeyId must be a non-empty string",l=u+"secretAccessKey must be a non-empty string",p=u+"endpoint must be a non-empty string",y=u+"endpoint must be a valid URL. Expected format: https://<host>[:port][/base-path]",f=u+"key must be a non-empty string",w=u+"uploadId must be a non-empty string",g=u+"data must be a Buffer or string",m=u+"prefix must be a string",b=u+"delimiter must be a string",E=crypto.createHmac||(await import("node:crypto")).createHmac,T=crypto.createHash||(await import("node:crypto")).createHash,$=(t,e,r)=>{const s=E("sha256",t).update(e);return r?s.digest(r):s.digest()},O=t=>{const e={'"':"",""":"",""":"",""":"",""":""};return t.replace(/^("|"|")|("|"|")$/g,(t=>e[t]))},j={""":'"',"'":"'","<":"<",">":">","&":"&"},A=t=>{const e=/<(\w)([-\w]+)(?:\/|[^>]*>((?:(?!<\1)[\s\S])*)<\/\1\2)>/gm,r={};let s;for(;null!==(s=e.exec(t));){const[,t="",e,i]=s,o=`${t.toLowerCase()}${e}`,n=i?A(i):"",a=r[o];void 0===a?r[o]=n:Array.isArray(a)?a.push(n):r[o]=[a,n]}return Object.keys(r).length>0?r:t.replace(/&(quot|apos|lt|gt|amp);/g,(t=>j[t]??t))},U=t=>"%"+t.charCodeAt(0).toString(16).toUpperCase(),q=t=>encodeURIComponent(t).replace(/[!'()*]/g,U);class S extends Error{code;constructor(t,e,r){super(t),this.name=new.target.name,this.code=e,this.cause=r}}class D extends S{}class x extends S{status;serviceCode;body;constructor(t,e,r,s){super(t,r),this.status=e,this.serviceCode=r,this.body=s}}const I=async(t,e=30,r=0)=>{const s=[];let i=[];for(const r of t)i.push(r),i.length===e&&(await o(i),i=[]);return i.length&&await o(i),s;async function o(t){const e=Date.now(),i=await Promise.allSettled(t.map((t=>t())));if(s.push(...i),r>0){const t=r-(Date.now()-e);t>0&&await new Promise((e=>setTimeout(e,t)))}}};class _{accessKeyId;secretAccessKey;endpoint;region;requestSizeInBytes;requestAbortTimeout;logger;fullDatetime;shortDatetime;signingKey;credentialScope;constructor({accessKeyId:t,secretAccessKey:s,endpoint:i,region:o="auto",requestSizeInBytes:n=8388608,requestAbortTimeout:a,logger:h}){this.t(t,s,i),this.accessKeyId=t,this.secretAccessKey=s,this.endpoint=this.i(i),this.region=o,this.requestSizeInBytes=n,this.requestAbortTimeout=a,this.logger=h,this.fullDatetime=(new Date).toISOString().replace(/[:-]|\.\d{3}/g,""),this.shortDatetime=this.fullDatetime.slice(0,8),this.signingKey=this.o(this.shortDatetime),this.credentialScope=[this.shortDatetime,this.region,r,e].join("/")}h(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,r)=>(e[r]=o.includes(r.toLowerCase())?"[REDACTED]":"object"==typeof t[r]&&null!==t[r]?this.h(t[r]):t[r],e)),Array.isArray(t)?[]:{})}u(t,e,r={}){if(this.logger&&"function"==typeof this.logger[t]){const s=this.h(r),i={timestamp:(new Date).toISOString(),level:t,message:e,details:s,context:this.h({region:this.region,endpoint:this.endpoint,accessKeyId:this.accessKeyId?this.accessKeyId.substring(0,4)+"...":void 0})};this.logger[t](JSON.stringify(i))}}t(t,e,r){if("string"!=typeof t||0===t.trim().length)throw new TypeError(d);if("string"!=typeof e||0===e.trim().length)throw new TypeError(l);if("string"!=typeof r||0===r.trim().length)throw new TypeError(p)}i(t){const e=/^(https?:)?\/\//i.test(t)?t:"https://"+t;try{return new URL(e),e.replace(/\/+$/,"")}catch{const e=`${y} But provided: "${t}"`;throw this.u("error",e),new TypeError(e)}}l(t){if("GET"!==t&&"HEAD"!==t)throw this.u("error",u+"method must be either GET or HEAD"),Error("method must be either GET or HEAD")}p(t){if("string"!=typeof t||0===t.trim().length)throw this.u("error",f),new TypeError(f)}m(t){if("string"!=typeof t||0===t.trim().length)throw this.u("error",b),new TypeError(b)}T(t){if("string"!=typeof t)throw this.u("error",m),new TypeError(m)}$(t){if("object"!=typeof t)throw this.u("error",u+"opts must be an object"),new TypeError(u+"opts must be an object")}O(t){const e={},r={},s=["if-match","if-none-match","if-modified-since","if-unmodified-since"];for(const[i,o]of Object.entries(t))s.includes(i.toLowerCase())?r[i]=o:e[i]=o;return{filteredOpts:e,conditionalHeaders:r}}j(t,e,r,s,i){if(this.p(t),!(r instanceof Buffer||"string"==typeof r))throw this.u("error",g),new TypeError(g);if("string"!=typeof e||0===e.trim().length)throw this.u("error",w),new TypeError(w);if(!Number.isInteger(s)||s<=0)throw this.u("error",u+"partNumber must be a positive integer"),new TypeError(u+"partNumber must be a positive integer");this.$(i)}A(t,e,r={},i={}){const o=new URL(this.endpoint);e&&e.length>0&&(o.pathname="/"===o.pathname?"/"+e.replace(/^\/+/,""):`${o.pathname}/${e.replace(/^\/+/,"")}`),i[n]=s,i["x-amz-date"]=this.fullDatetime,i.host=o.host;const a=this.U(i),h=Object.keys(i).map((t=>t.toLowerCase())).sort().join(";"),c=this.q(t,o,r,a,h),u=this.S(c),d=this.D(u),l=this.I(h,d);return i.Authorization=l,{url:""+o,headers:i}}U(t){return Object.entries(t).map((([t,e])=>`${t.toLowerCase()}:${(e+"").trim()}`)).sort().join("\n")}q(t,e,r,i,o){return[t,e.pathname,this._(r),i+"\n",o,s].join("\n")}S(e){return[t,this.fullDatetime,this.credentialScope,(r=e,T("sha256").update(r).digest("hex"))].join("\n");var r}D(t){return $(this.signingKey,t,"hex")}I(e,r){return[`${t} Credential=${this.accessKeyId}/${this.credentialScope}`,"SignedHeaders="+e,"Signature="+r].join(", ")}async C(t,e,{query:r={},body:i="",headers:o={},tolerated:a=[],withQuery:h=!1}={}){if(!["GET","HEAD","PUT","POST","DELETE"].includes(t))throw Error(`${u}Unsupported HTTP method ${t}`);e&&this.p(e);const{filteredOpts:c,conditionalHeaders:d}=["GET","HEAD"].includes(t)?this.O(r):{filteredOpts:r,conditionalHeaders:{}},l={[n]:s,...o,...d},p=e?q(e).replace(/%2F/g,"/"):"",{url:y,headers:f}=this.A(t,p,c,l);Object.keys(r).length>0&&(h=!0);const w=Object.fromEntries(Object.entries(c).map((([t,e])=>[t,e+""]))),g=h&&Object.keys(c).length?`${y}?${new URLSearchParams(w)}`:y,m=Object.fromEntries(Object.entries(f).map((([t,e])=>[t,e+""])));return this.P(g,t,m,i,a)}getProps(){return{accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,endpoint:this.endpoint,region:this.region,requestSizeInBytes:this.requestSizeInBytes,requestAbortTimeout:this.requestAbortTimeout,logger:this.logger}}setProps(t){this.t(t.accessKeyId,t.secretAccessKey,t.endpoint),this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,this.region=t.region||"auto",this.endpoint=t.endpoint,this.requestSizeInBytes=t.requestSizeInBytes||8388608,this.requestAbortTimeout=t.requestAbortTimeout,this.logger=t.logger}sanitizeETag(t){return O(t)}async createBucket(){const t=`\n <CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">\n <LocationConstraint>${this.region}</LocationConstraint>\n </CreateBucketConfiguration>\n `,e={[a]:i,[h]:""+Buffer.byteLength(t)};return 200===(await this.C("PUT","",{body:t,headers:e,tolerated:[200,404,403,409]})).status}async bucketExists(){return 200===(await this.C("HEAD","",{tolerated:[200,404,403]})).status}async listObjects(t="/",e="",r,s={}){this.m(t),this.T(e),this.$(s);const i="/"===t?t:q(t),o=!(r&&r>0);let n,a=o?1/0:r;const h=[];do{const t={"list-type":"2","max-keys":Math.min(a,1e3)+"",...e?{prefix:e}:{},...n?{"continuation-token":n}:{},...s},r=await this.C("GET",i,{query:t,withQuery:!0,tolerated:[200,404]});if(404===r.status)return null;if(200!==r.status){const t=await r.text(),e=r.headers.get("x-amz-error-code")||"Unknown",s=r.headers.get("x-amz-error-message")||r.statusText;throw this.u("error",`${u}Request failed with status ${r.status}: ${e} - ${s}, err body: ${t}`),Error(`${u}Request failed with status ${r.status}: ${e} - ${s}, err body: ${t}`)}const c=A(await r.text());if("object"!=typeof c||!c||"error"in c)throw this.u("error",`${u}Unexpected listObjects response shape: ${JSON.stringify(c)}`),Error(u+"Unexpected listObjects response shape");const d="listBucketResult"in c?c.listBucketResult:c,l=d.contents;if(l){const t=Array.isArray(l)?l:[l];h.push(...t),o||(a-=t.length)}n="true"===d.isTruncated||"true"===d.IsTruncated?d.nextContinuationToken||d.NextContinuationToken||d.nextMarker||d.NextMarker:void 0}while(n&&a>0);return h}async listMultipartUploads(t="/",e="",r="GET",s={}){this.m(t),this.T(e),this.l(r),this.$(s);const i={uploads:"",...s},o="/"===t?t:q(t),n=await this.C(r,o,{query:i,withQuery:!0}),a=A(await n.text());if("object"!=typeof a||null===a)throw Error(u+"Unexpected listMultipartUploads response shape");return"listMultipartUploadsResult"in a?a.listMultipartUploadsResult:a}async getObject(t,e={}){const r=await this.C("GET",t,{query:e,tolerated:[200,404,412,304]});return[404,412,304].includes(r.status)?null:r.text()}async getObjectArrayBuffer(t,e={}){const r=await this.C("GET",t,{query:e,tolerated:[200,404,412,304]});return[404,412,304].includes(r.status)?null:r.arrayBuffer()}async getObjectWithETag(t,e={}){try{const r=await this.C("GET",t,{query:e,tolerated:[200,404,412,304]});if([404,412,304].includes(r.status))return{etag:null,data:null};const s=r.headers.get(c);if(!s)throw Error("ETag not found in response headers");return{etag:O(s),data:await r.arrayBuffer()}}catch(e){throw this.u("error",`Error getting object ${t} with ETag: ${e+""}`),e}}async getObjectRaw(t,e=!0,r=0,s=this.requestSizeInBytes,i={}){return this.C("GET",t,{query:{...i},headers:e?{}:{range:`bytes=${r}-${s-1}`},withQuery:!0})}async getContentLength(t){const e=(await this.C("HEAD",t)).headers.get(h);return e?+e:0}async objectExists(t,e={}){const r=await this.C("HEAD",t,{query:e,tolerated:[200,404,412,304]});return 404!==r.status&&(412!==r.status&&304!==r.status||null)}async getEtag(t,e={}){const r=await this.C("HEAD",t,{query:e,tolerated:[200,404]});if(404===r.status)return null;const s=r.headers.get(c);if(!s)throw Error("ETag not found in response headers");return O(s)}async putObject(t,e){if(!(e instanceof Buffer||"string"==typeof e))throw new TypeError(g);return this.C("PUT",t,{body:e,headers:{[h]:"string"==typeof e?Buffer.byteLength(e):e.length},tolerated:[200]})}async getMultipartUploadId(t,e="application/octet-stream"){if(this.p(t),"string"!=typeof e)throw new TypeError(u+"fileType must be a string");const r={[a]:e},s=await this.C("POST",t,{query:{uploads:""},headers:r,withQuery:!0}),i=A(await s.text());if(i&&"object"==typeof i&&"initiateMultipartUploadResult"in i&&i.initiateMultipartUploadResult&&"uploadId"in i.initiateMultipartUploadResult)return i.initiateMultipartUploadResult.uploadId;throw Error(`${u}Failed to create multipart upload: ${JSON.stringify(i)}`)}async uploadPart(t,e,r,s,i={}){this.j(t,e,r,s,i);const o={uploadId:e,partNumber:s,...i},n=await this.C("PUT",t,{query:o,body:r,headers:{[h]:"string"==typeof r?Buffer.byteLength(r):r.length}});return{partNumber:s,etag:O(n.headers.get("etag")||"")}}async completeMultipartUpload(t,e,r){const s={uploadId:e},o=this.R(r),n={[a]:i,[h]:""+Buffer.byteLength(o)},c=await this.C("POST",t,{query:s,body:o,headers:n,withQuery:!0}),d=A(await c.text()),l=d&&"object"==typeof d&&"completeMultipartUploadResult"in d?d.completeMultipartUploadResult:d;if(!l||"object"!=typeof l)throw Error(`${u}Failed to complete multipart upload: ${JSON.stringify(d)}`);return("ETag"in l||"eTag"in l)&&(l.etag=this.sanitizeETag(l.eTag??l.ETag)),l}async abortMultipartUpload(t,e){if(this.p(t),!e)throw new TypeError(w);const r={uploadId:e},s={[a]:i},o=await this.C("DELETE",t,{query:r,headers:s,withQuery:!0}),n=A(await o.text());if(n&&"error"in n&&"object"==typeof n.error&&null!==n.error&&"message"in n.error)throw this.u("error",`${u}Failed to abort multipart upload: ${n.error.message+""}`),Error(`${u}Failed to abort multipart upload: ${n.error.message+""}`);return{status:"Aborted",key:t,uploadId:e,response:n}}R(t){return`\n <CompleteMultipartUpload>\n ${t.map((t=>`\n <Part>\n <PartNumber>${t.partNumber}</PartNumber>\n <ETag>${t.etag}</ETag>\n </Part>\n `)).join("")}\n </CompleteMultipartUpload>\n `}async deleteObject(t){const e=await this.C("DELETE",t,{tolerated:[200,204]});return 200===e.status||204===e.status}async P(t,e,r,s,i=[]){this.u("info",`Sending ${e} request to ${t}`,"headers: "+JSON.stringify(r));try{const o=await fetch(t,{method:e,headers:r,keepalive:!0,body:["GET","HEAD"].includes(e)?void 0:s,signal:void 0!==this.requestAbortTimeout?AbortSignal.timeout(this.requestAbortTimeout):void 0});return this.u("info",`Response status: ${o.status}, tolerated: ${i.join(",")}`),o.ok||i.includes(o.status)||await this.H(o),o}catch(t){const e=(t=>{if("object"!=typeof t||null===t)return;const e=t;return"string"==typeof e.code?e.code:"string"==typeof e.cause?.code?e.cause.code:void 0})(t);if(e&&["ENOTFOUND","EAI_AGAIN","ETIMEDOUT","ECONNREFUSED"].includes(e))throw new D("S3 network error: "+e,e,t);throw t}}async H(t){const e=await t.text(),r=t.headers.get("x-amz-error-code")??"Unknown",s=t.headers.get("x-amz-error-message")||t.statusText;throw this.u("error",`${u}Request failed with status ${t.status}: ${r} - ${s},err body: ${e}`),new x(`S3 returned ${t.status} – ${r}`,t.status,r,e)}_(t){return t&&0!==Object.keys(t).length?Object.keys(t).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).sort().join("&"):""}o(t){const s=$("AWS4"+this.secretAccessKey,t),i=$(s,this.region),o=$(i,r);return $(o,e)}}export{_ as default,I as runInBatches,_ as s3mini,O as sanitizeETag};
|
|
1
|
+
const t="AWS4-HMAC-SHA256",e="aws4_request",r="s3",s="UNSIGNED-PAYLOAD",o="application/octet-stream",i="application/xml",n=["accessKeyId","secretAccessKey","sessionToken","password","token"],a="x-amz-content-sha256",u="Content-Type",c="Content-Length",h="etag",d="[s3mini] ",l=d+"accessKeyId must be a non-empty string",p=d+"secretAccessKey must be a non-empty string",y=d+"endpoint must be a non-empty string",f=d+"endpoint must be a valid URL. Expected format: https://<host>[:port][/base-path]",w=d+"key must be a non-empty string",g=d+"uploadId must be a non-empty string",b=d+"data must be a Buffer or string",m=d+"prefix must be a string",E=d+"delimiter must be a string",T=crypto.createHmac||(await import("node:crypto")).createHmac,$=crypto.createHash||(await import("node:crypto")).createHash,O=(t,e,r)=>{const s=T("sha256",t).update(e);return r?s.digest(r):s.digest()},j=t=>{const e={'"':"",""":"",""":"",""":"",""":""};return t.replace(/^("|"|")|("|"|")$/g,(t=>e[t]))},A={""":'"',"'":"'","<":"<",">":">","&":"&"},U=t=>{const e=/<(\w)([-\w]+)(?:\/|[^>]*>((?:(?!<\1)[\s\S])*)<\/\1\2)>/gm,r={};let s;for(;null!==(s=e.exec(t));){const[,t="",e,o]=s,i=`${t.toLowerCase()}${e}`,n=o?U(o):"",a=r[i];void 0===a?r[i]=n:Array.isArray(a)?a.push(n):r[i]=[a,n]}return Object.keys(r).length>0?r:t.replace(/&(quot|apos|lt|gt|amp);/g,(t=>A[t]??t))},q=t=>"%"+t.charCodeAt(0).toString(16).toUpperCase(),S=t=>encodeURIComponent(t).replace(/[!'()*]/g,q);class D extends Error{code;constructor(t,e,r){super(t),this.name=new.target.name,this.code=e,this.cause=r}}class _ extends D{}class x extends D{status;serviceCode;body;constructor(t,e,r,s){super(t,r),this.status=e,this.serviceCode=r,this.body=s}}const C=async(t,e=30,r=0)=>{const s=[];let o=[];for(const r of t)o.push(r),o.length===e&&(await i(o),o=[]);return o.length&&await i(o),s;async function i(t){const e=Date.now(),o=await Promise.allSettled(t.map((t=>t())));if(s.push(...o),r>0){const t=r-(Date.now()-e);t>0&&await new Promise((e=>setTimeout(e,t)))}}};class I{accessKeyId;secretAccessKey;endpoint;region;requestSizeInBytes;requestAbortTimeout;logger;signingKeyDate;signingKey;constructor({accessKeyId:t,secretAccessKey:e,endpoint:r,region:s="auto",requestSizeInBytes:o=8388608,requestAbortTimeout:i,logger:n}){this.t(t,e,r),this.accessKeyId=t,this.secretAccessKey=e,this.endpoint=this.o(r),this.region=s,this.requestSizeInBytes=o,this.requestAbortTimeout=i,this.logger=n}i(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce(((e,r)=>(e[r]=n.includes(r.toLowerCase())?"[REDACTED]":"object"==typeof t[r]&&null!==t[r]?this.i(t[r]):t[r],e)),Array.isArray(t)?[]:{})}u(t,e,r={}){if(this.logger&&"function"==typeof this.logger[t]){const s=this.i(r),o={timestamp:(new Date).toISOString(),level:t,message:e,details:s,context:this.i({region:this.region,endpoint:this.endpoint,accessKeyId:this.accessKeyId?this.accessKeyId.substring(0,4)+"...":void 0})};this.logger[t](JSON.stringify(o))}}t(t,e,r){if("string"!=typeof t||0===t.trim().length)throw new TypeError(l);if("string"!=typeof e||0===e.trim().length)throw new TypeError(p);if("string"!=typeof r||0===r.trim().length)throw new TypeError(y)}o(t){const e=/^(https?:)?\/\//i.test(t)?t:"https://"+t;try{new URL(e);let t=e.length;for(;t>0&&"/"===e[t-1];)t--;return t===e.length?e:e.substring(0,t)}catch{const e=`${f} But provided: "${t}"`;throw this.u("error",e),new TypeError(e)}}h(t){if("GET"!==t&&"HEAD"!==t)throw this.u("error",d+"method must be either GET or HEAD"),Error("method must be either GET or HEAD")}l(t){if("string"!=typeof t||0===t.trim().length)throw this.u("error",w),new TypeError(w)}p(t){if("string"!=typeof t||0===t.trim().length)throw this.u("error",E),new TypeError(E)}m(t){if("string"!=typeof t)throw this.u("error",m),new TypeError(m)}T(t){if("object"!=typeof t)throw this.u("error",d+"opts must be an object"),new TypeError(d+"opts must be an object")}$(t){const e={},r={},s=["if-match","if-none-match","if-modified-since","if-unmodified-since"];for(const[o,i]of Object.entries(t))s.includes(o.toLowerCase())?r[o]=i:e[o]=i;return{filteredOpts:e,conditionalHeaders:r}}O(t,e,r,s,o){if(this.l(t),!(r instanceof Buffer||"string"==typeof r))throw this.u("error",b),new TypeError(b);if("string"!=typeof e||0===e.trim().length)throw this.u("error",g),new TypeError(g);if(!Number.isInteger(s)||s<=0)throw this.u("error",d+"partNumber must be a positive integer"),new TypeError(d+"partNumber must be a positive integer");this.T(o)}j(t,e,r={},o={}){const i=new URL(this.endpoint);e&&e.length>0&&(i.pathname="/"===i.pathname?"/"+e.replace(/^\/+/,""):`${i.pathname}/${e.replace(/^\/+/,"")}`);const n=(new Date).toISOString().replace(/[:-]|\.\d{3}/g,""),u=n.slice(0,8),c=this.A(u);o[a]=s,o["x-amz-date"]=n,o.host=i.host;const h=this.U(o),d=Object.keys(o).map((t=>t.toLowerCase())).sort().join(";"),l=this.q(t,i,r,h,d),p=this.S(n,c,l),y=this.D(u,p),f=this._(c,d,y);return o.Authorization=f,{url:""+i,headers:o}}U(t){return Object.entries(t).map((([t,e])=>`${t.toLowerCase()}:${(e+"").trim()}`)).sort().join("\n")}q(t,e,r,o,i){return[t,e.pathname,this.C(r),o+"\n",i,s].join("\n")}A(t){return[t,this.region,r,e].join("/")}S(e,r,s){return[t,e,r,(o=s,$("sha256").update(o).digest("hex"))].join("\n");var o}D(t,e){return t!==this.signingKeyDate&&(this.signingKeyDate=t,this.signingKey=this.I(t)),O(this.signingKey,e,"hex")}_(e,r,s){return[`${t} Credential=${this.accessKeyId}/${e}`,"SignedHeaders="+r,"Signature="+s].join(", ")}async P(t,e,{query:r={},body:o="",headers:i={},tolerated:n=[],withQuery:u=!1}={}){if(!["GET","HEAD","PUT","POST","DELETE"].includes(t))throw Error(`${d}Unsupported HTTP method ${t}`);e&&this.l(e);const{filteredOpts:c,conditionalHeaders:h}=["GET","HEAD"].includes(t)?this.$(r):{filteredOpts:r,conditionalHeaders:{}},l={[a]:s,...i,...h},p=e?S(e).replace(/%2F/g,"/"):"",{url:y,headers:f}=this.j(t,p,c,l);Object.keys(r).length>0&&(u=!0);const w=Object.fromEntries(Object.entries(c).map((([t,e])=>[t,e+""]))),g=u&&Object.keys(c).length?`${y}?${new URLSearchParams(w)}`:y,b=Object.fromEntries(Object.entries(f).map((([t,e])=>[t,e+""])));return this.R(g,t,b,o,n)}getProps(){return{accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,endpoint:this.endpoint,region:this.region,requestSizeInBytes:this.requestSizeInBytes,requestAbortTimeout:this.requestAbortTimeout,logger:this.logger}}setProps(t){this.t(t.accessKeyId,t.secretAccessKey,t.endpoint),this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,this.region=t.region||"auto",this.endpoint=t.endpoint,this.requestSizeInBytes=t.requestSizeInBytes||8388608,this.requestAbortTimeout=t.requestAbortTimeout,this.logger=t.logger}sanitizeETag(t){return j(t)}async createBucket(){const t=`\n <CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">\n <LocationConstraint>${this.region}</LocationConstraint>\n </CreateBucketConfiguration>\n `,e={[u]:i,[c]:""+Buffer.byteLength(t)};return 200===(await this.P("PUT","",{body:t,headers:e,tolerated:[200,404,403,409]})).status}async bucketExists(){return 200===(await this.P("HEAD","",{tolerated:[200,404,403]})).status}async listObjects(t="/",e="",r,s={}){this.p(t),this.m(e),this.T(s);const o="/"===t?t:S(t),i=!(r&&r>0);let n,a=i?1/0:r;const u=[];do{const t={"list-type":"2","max-keys":Math.min(a,1e3)+"",...e?{prefix:e}:{},...n?{"continuation-token":n}:{},...s},r=await this.P("GET",o,{query:t,withQuery:!0,tolerated:[200,404]});if(404===r.status)return null;if(200!==r.status){const t=await r.text(),e=r.headers.get("x-amz-error-code")||"Unknown",s=r.headers.get("x-amz-error-message")||r.statusText;throw this.u("error",`${d}Request failed with status ${r.status}: ${e} - ${s}, err body: ${t}`),Error(`${d}Request failed with status ${r.status}: ${e} - ${s}, err body: ${t}`)}const c=U(await r.text());if("object"!=typeof c||!c||"error"in c)throw this.u("error",`${d}Unexpected listObjects response shape: ${JSON.stringify(c)}`),Error(d+"Unexpected listObjects response shape");const h="listBucketResult"in c?c.listBucketResult:c,l=h.contents;if(l){const t=Array.isArray(l)?l:[l];u.push(...t),i||(a-=t.length)}n="true"===h.isTruncated||"true"===h.IsTruncated?h.nextContinuationToken||h.NextContinuationToken||h.nextMarker||h.NextMarker:void 0}while(n&&a>0);return u}async listMultipartUploads(t="/",e="",r="GET",s={}){this.p(t),this.m(e),this.h(r),this.T(s);const o={uploads:"",...s},i="/"===t?t:S(t),n=await this.P(r,i,{query:o,withQuery:!0}),a=U(await n.text());if("object"!=typeof a||null===a)throw Error(d+"Unexpected listMultipartUploads response shape");return"listMultipartUploadsResult"in a?a.listMultipartUploadsResult:a}async getObject(t,e={}){const r=await this.P("GET",t,{query:e,tolerated:[200,404,412,304]});return[404,412,304].includes(r.status)?null:r.text()}async getObjectResponse(t,e={}){const r=await this.P("GET",t,{query:e,tolerated:[200,404,412,304]});return[404,412,304].includes(r.status)?null:r}async getObjectArrayBuffer(t,e={}){const r=await this.P("GET",t,{query:e,tolerated:[200,404,412,304]});return[404,412,304].includes(r.status)?null:r.arrayBuffer()}async getObjectJSON(t,e={}){const r=await this.P("GET",t,{query:e,tolerated:[200,404,412,304]});return[404,412,304].includes(r.status)?null:r.json()}async getObjectWithETag(t,e={}){try{const r=await this.P("GET",t,{query:e,tolerated:[200,404,412,304]});if([404,412,304].includes(r.status))return{etag:null,data:null};const s=r.headers.get(h);if(!s)throw Error("ETag not found in response headers");return{etag:j(s),data:await r.arrayBuffer()}}catch(e){throw this.u("error",`Error getting object ${t} with ETag: ${e+""}`),e}}async getObjectRaw(t,e=!0,r=0,s=this.requestSizeInBytes,o={}){return this.P("GET",t,{query:{...o},headers:e?{}:{range:`bytes=${r}-${s-1}`},withQuery:!0})}async getContentLength(t){const e=(await this.P("HEAD",t)).headers.get(c);return e?+e:0}async objectExists(t,e={}){const r=await this.P("HEAD",t,{query:e,tolerated:[200,404,412,304]});return 404!==r.status&&(412!==r.status&&304!==r.status||null)}async getEtag(t,e={}){const r=await this.P("HEAD",t,{query:e,tolerated:[200,404]});if(404===r.status)return null;const s=r.headers.get(h);if(!s)throw Error("ETag not found in response headers");return j(s)}async putObject(t,e,r=o){if(!(e instanceof Buffer||"string"==typeof e))throw new TypeError(b);return this.P("PUT",t,{body:e,headers:{[c]:"string"==typeof e?Buffer.byteLength(e):e.length,[u]:r},tolerated:[200]})}async getMultipartUploadId(t,e=o){if(this.l(t),"string"!=typeof e)throw new TypeError(d+"fileType must be a string");const r={[u]:e},s=await this.P("POST",t,{query:{uploads:""},headers:r,withQuery:!0}),i=U(await s.text());if(i&&"object"==typeof i&&"initiateMultipartUploadResult"in i&&i.initiateMultipartUploadResult&&"uploadId"in i.initiateMultipartUploadResult)return i.initiateMultipartUploadResult.uploadId;throw Error(`${d}Failed to create multipart upload: ${JSON.stringify(i)}`)}async uploadPart(t,e,r,s,o={}){this.O(t,e,r,s,o);const i={uploadId:e,partNumber:s,...o},n=await this.P("PUT",t,{query:i,body:r,headers:{[c]:"string"==typeof r?Buffer.byteLength(r):r.length}});return{partNumber:s,etag:j(n.headers.get("etag")||"")}}async completeMultipartUpload(t,e,r){const s={uploadId:e},o=this.H(r),n={[u]:i,[c]:""+Buffer.byteLength(o)},a=await this.P("POST",t,{query:s,body:o,headers:n,withQuery:!0}),h=U(await a.text()),l=h&&"object"==typeof h&&"completeMultipartUploadResult"in h?h.completeMultipartUploadResult:h;if(!l||"object"!=typeof l)throw Error(`${d}Failed to complete multipart upload: ${JSON.stringify(h)}`);return("ETag"in l||"eTag"in l)&&(l.etag=this.sanitizeETag(l.eTag??l.ETag)),l}async abortMultipartUpload(t,e){if(this.l(t),!e)throw new TypeError(g);const r={uploadId:e},s={[u]:i},o=await this.P("DELETE",t,{query:r,headers:s,withQuery:!0}),n=U(await o.text());if(n&&"error"in n&&"object"==typeof n.error&&null!==n.error&&"message"in n.error)throw this.u("error",`${d}Failed to abort multipart upload: ${n.error.message+""}`),Error(`${d}Failed to abort multipart upload: ${n.error.message+""}`);return{status:"Aborted",key:t,uploadId:e,response:n}}H(t){return`\n <CompleteMultipartUpload>\n ${t.map((t=>`\n <Part>\n <PartNumber>${t.partNumber}</PartNumber>\n <ETag>${t.etag}</ETag>\n </Part>\n `)).join("")}\n </CompleteMultipartUpload>\n `}async deleteObject(t){const e=await this.P("DELETE",t,{tolerated:[200,204]});return 200===e.status||204===e.status}async R(t,e,r,s,o=[]){this.u("info",`Sending ${e} request to ${t}`,"headers: "+JSON.stringify(r));try{const i=await fetch(t,{method:e,headers:r,body:["GET","HEAD"].includes(e)?void 0:s,signal:void 0!==this.requestAbortTimeout?AbortSignal.timeout(this.requestAbortTimeout):void 0});return this.u("info",`Response status: ${i.status}, tolerated: ${o.join(",")}`),i.ok||o.includes(i.status)||await this.N(i),i}catch(t){const e=(t=>{if("object"!=typeof t||null===t)return;const e=t;return"string"==typeof e.code?e.code:"string"==typeof e.cause?.code?e.cause.code:void 0})(t);if(e&&["ENOTFOUND","EAI_AGAIN","ETIMEDOUT","ECONNREFUSED"].includes(e))throw new _("S3 network error: "+e,e,t);throw t}}async N(t){const e=await t.text(),r=t.headers.get("x-amz-error-code")??"Unknown",s=t.headers.get("x-amz-error-message")||t.statusText;throw this.u("error",`${d}Request failed with status ${t.status}: ${r} - ${s},err body: ${e}`),new x(`S3 returned ${t.status} – ${r}`,t.status,r,e)}C(t){return t&&0!==Object.keys(t).length?Object.keys(t).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).sort().join("&"):""}I(t){const s=O("AWS4"+this.secretAccessKey,t),o=O(s,this.region),i=O(o,r);return O(i,e)}}export{I as default,C as runInBatches,I as s3mini,j as sanitizeETag};
|
|
2
2
|
//# sourceMappingURL=s3mini.min.js.map
|
package/dist/s3mini.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3mini.min.js","sources":["../src/consts.ts","../src/utils.ts","../src/S3.ts"],"sourcesContent":[null,null,null],"names":["AWS_ALGORITHM","AWS_REQUEST_TYPE","S3_SERVICE","UNSIGNED_PAYLOAD","XML_CONTENT_TYPE","SENSITIVE_KEYS_REDACTED","HEADER_AMZ_CONTENT_SHA256","HEADER_CONTENT_TYPE","HEADER_CONTENT_LENGTH","HEADER_ETAG","ERROR_PREFIX","ERROR_ACCESS_KEY_REQUIRED","ERROR_SECRET_KEY_REQUIRED","ERROR_ENDPOINT_REQUIRED","ERROR_ENDPOINT_FORMAT","ERROR_KEY_REQUIRED","ERROR_UPLOAD_ID_REQUIRED","ERROR_DATA_BUFFER_REQUIRED","ERROR_PREFIX_TYPE","ERROR_DELIMITER_REQUIRED","_createHmac","crypto","createHmac","import","_createHash","createHash","hmac","key","content","encoding","mac","update","digest","sanitizeETag","etag","replaceChars","replace","m","entityMap","parseXml","input","RE_TAG","result","match","exec","prefix","inner","fullKey","toLowerCase","node","current","undefined","Array","isArray","push","Object","keys","length","encodeAsHex","c","charCodeAt","toString","toUpperCase","uriEscape","uriStr","encodeURIComponent","S3Error","Error","code","constructor","msg","cause","super","this","name","S3NetworkError","S3ServiceError","status","serviceCode","body","runInBatches","async","tasks","batchSize","minIntervalMs","allResults","batch","task","executeBatch","batchFns","start","Date","now","settled","Promise","allSettled","map","fn","wait","r","setTimeout","s3mini","accessKeyId","secretAccessKey","endpoint","region","requestSizeInBytes","requestAbortTimeout","logger","fullDatetime","shortDatetime","signingKey","credentialScope","C.DEFAULT_REQUEST_SIZE_IN_BYTES","_validateConstructorParams","_ensureValidUrl","toISOString","slice","_getSignatureKey","C.S3_SERVICE","C.AWS_REQUEST_TYPE","join","_sanitize","obj","reduce","acc","C.SENSITIVE_KEYS_REDACTED","includes","_log","level","message","additionalData","sanitizedData","logEntry","timestamp","details","context","substring","JSON","stringify","trim","TypeError","C.ERROR_ACCESS_KEY_REQUIRED","C.ERROR_SECRET_KEY_REQUIRED","C.ERROR_ENDPOINT_REQUIRED","raw","candidate","test","URL","C.ERROR_ENDPOINT_FORMAT","_validateMethodIsGetOrHead","method","C.ERROR_PREFIX","_checkKey","C.ERROR_KEY_REQUIRED","_checkDelimiter","delimiter","C.ERROR_DELIMITER_REQUIRED","_checkPrefix","C.ERROR_PREFIX_TYPE","_checkOpts","opts","_filterIfHeaders","filteredOpts","conditionalHeaders","ifHeaders","value","entries","_validateUploadPartParams","uploadId","data","partNumber","Buffer","C.ERROR_DATA_BUFFER_REQUIRED","C.ERROR_UPLOAD_ID_REQUIRED","Number","isInteger","_sign","keyPath","query","headers","url","pathname","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","host","canonicalHeaders","_buildCanonicalHeaders","signedHeaders","sort","canonicalRequest","_buildCanonicalRequest","stringToSign","_buildStringToSign","signature","_calculateSignature","authorizationHeader","_buildAuthorizationHeader","String","_buildCanonicalQueryString","C.AWS_ALGORITHM","U.hmac","_signedRequest","tolerated","withQuery","baseHeaders","encodedKey","filteredOptsStrings","fromEntries","k","v","finalUrl","URLSearchParams","signedHeadersString","_sendRequest","getProps","setProps","props","U.sanitizeETag","createBucket","xmlBody","C.HEADER_CONTENT_TYPE","C.XML_CONTENT_TYPE","C.HEADER_CONTENT_LENGTH","byteLength","bucketExists","listObjects","maxKeys","U.uriEscape","unlimited","token","remaining","Infinity","all","Math","min","res","errorBody","text","errorCode","get","errorMessage","statusText","U.parseXml","out","listBucketResult","contents","isTruncated","IsTruncated","nextContinuationToken","NextContinuationToken","nextMarker","NextMarker","listMultipartUploads","uploads","listMultipartUploadsResult","getObject","getObjectArrayBuffer","arrayBuffer","getObjectWithETag","C.HEADER_ETAG","err","getObjectRaw","wholeFile","rangeFrom","rangeTo","range","getContentLength","len","objectExists","getEtag","putObject","getMultipartUploadId","fileType","parsed","initiateMultipartUploadResult","uploadPart","completeMultipartUpload","parts","_buildCompleteMultipartUploadXml","completeMultipartUploadResult","eTag","ETag","abortMultipartUpload","error","response","part","deleteObject","toleratedStatusCodes","fetch","keepalive","signal","AbortSignal","timeout","ok","_handleErrorResponse","e","U.extractErrCode","U.S3NetworkError","svcCode","U.S3ServiceError","queryParams","dateStamp","kDate","kRegion","kService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"s3mini.min.js","sources":["../src/consts.ts","../src/utils.ts","../src/S3.ts"],"sourcesContent":[null,null,null],"names":["AWS_ALGORITHM","AWS_REQUEST_TYPE","S3_SERVICE","UNSIGNED_PAYLOAD","DEFAULT_STREAM_CONTENT_TYPE","XML_CONTENT_TYPE","SENSITIVE_KEYS_REDACTED","HEADER_AMZ_CONTENT_SHA256","HEADER_CONTENT_TYPE","HEADER_CONTENT_LENGTH","HEADER_ETAG","ERROR_PREFIX","ERROR_ACCESS_KEY_REQUIRED","ERROR_SECRET_KEY_REQUIRED","ERROR_ENDPOINT_REQUIRED","ERROR_ENDPOINT_FORMAT","ERROR_KEY_REQUIRED","ERROR_UPLOAD_ID_REQUIRED","ERROR_DATA_BUFFER_REQUIRED","ERROR_PREFIX_TYPE","ERROR_DELIMITER_REQUIRED","_createHmac","crypto","createHmac","import","_createHash","createHash","hmac","key","content","encoding","mac","update","digest","sanitizeETag","etag","replaceChars","replace","m","entityMap","parseXml","input","RE_TAG","result","match","exec","prefix","inner","fullKey","toLowerCase","node","current","undefined","Array","isArray","push","Object","keys","length","encodeAsHex","c","charCodeAt","toString","toUpperCase","uriEscape","uriStr","encodeURIComponent","S3Error","Error","code","constructor","msg","cause","super","this","name","S3NetworkError","S3ServiceError","status","serviceCode","body","runInBatches","async","tasks","batchSize","minIntervalMs","allResults","batch","task","executeBatch","batchFns","start","Date","now","settled","Promise","allSettled","map","fn","wait","resolve","setTimeout","s3mini","accessKeyId","secretAccessKey","endpoint","region","requestSizeInBytes","requestAbortTimeout","logger","signingKeyDate","signingKey","C.DEFAULT_REQUEST_SIZE_IN_BYTES","_validateConstructorParams","_ensureValidUrl","_sanitize","obj","reduce","acc","C.SENSITIVE_KEYS_REDACTED","includes","_log","level","message","additionalData","sanitizedData","logEntry","timestamp","toISOString","details","context","substring","JSON","stringify","trim","TypeError","C.ERROR_ACCESS_KEY_REQUIRED","C.ERROR_SECRET_KEY_REQUIRED","C.ERROR_ENDPOINT_REQUIRED","raw","candidate","test","URL","endIndex","C.ERROR_ENDPOINT_FORMAT","_validateMethodIsGetOrHead","method","C.ERROR_PREFIX","_checkKey","C.ERROR_KEY_REQUIRED","_checkDelimiter","delimiter","C.ERROR_DELIMITER_REQUIRED","_checkPrefix","C.ERROR_PREFIX_TYPE","_checkOpts","opts","_filterIfHeaders","filteredOpts","conditionalHeaders","ifHeaders","value","entries","_validateUploadPartParams","uploadId","data","partNumber","Buffer","C.ERROR_DATA_BUFFER_REQUIRED","C.ERROR_UPLOAD_ID_REQUIRED","Number","isInteger","_sign","keyPath","query","headers","url","pathname","fullDatetime","shortDatetime","slice","credentialScope","_buildCredentialScope","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","host","canonicalHeaders","_buildCanonicalHeaders","signedHeaders","sort","join","canonicalRequest","_buildCanonicalRequest","stringToSign","_buildStringToSign","signature","_calculateSignature","authorizationHeader","_buildAuthorizationHeader","String","_buildCanonicalQueryString","C.S3_SERVICE","C.AWS_REQUEST_TYPE","C.AWS_ALGORITHM","_getSignatureKey","U.hmac","_signedRequest","tolerated","withQuery","baseHeaders","encodedKey","filteredOptsStrings","fromEntries","k","v","finalUrl","URLSearchParams","signedHeadersString","_sendRequest","getProps","setProps","props","U.sanitizeETag","createBucket","xmlBody","C.HEADER_CONTENT_TYPE","C.XML_CONTENT_TYPE","C.HEADER_CONTENT_LENGTH","byteLength","bucketExists","listObjects","maxKeys","U.uriEscape","unlimited","token","remaining","Infinity","all","Math","min","res","errorBody","text","errorCode","get","errorMessage","statusText","U.parseXml","out","listBucketResult","contents","isTruncated","IsTruncated","nextContinuationToken","NextContinuationToken","nextMarker","NextMarker","listMultipartUploads","uploads","listMultipartUploadsResult","getObject","getObjectResponse","getObjectArrayBuffer","arrayBuffer","getObjectJSON","json","getObjectWithETag","C.HEADER_ETAG","err","getObjectRaw","wholeFile","rangeFrom","rangeTo","range","getContentLength","len","objectExists","getEtag","putObject","fileType","C.DEFAULT_STREAM_CONTENT_TYPE","getMultipartUploadId","parsed","initiateMultipartUploadResult","uploadPart","completeMultipartUpload","parts","_buildCompleteMultipartUploadXml","completeMultipartUploadResult","eTag","ETag","abortMultipartUpload","error","response","part","deleteObject","toleratedStatusCodes","fetch","signal","AbortSignal","timeout","ok","_handleErrorResponse","e","U.extractErrCode","U.S3NetworkError","svcCode","U.S3ServiceError","queryParams","dateStamp","kDate","kRegion","kService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "s3mini",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "👶 Tiny & fast S3 client
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "👶 Tiny & fast S3 client for node and edge computing platforms",
|
|
5
5
|
"homepage": "https://github.com/good-lly/s3mini",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/good-lly/s3mini/issues"
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
"type": "git",
|
|
12
12
|
"url": "git+https://github.com/good-lly/s3mini.git"
|
|
13
13
|
},
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"registry": "https://registry.npmjs.org/"
|
|
16
|
+
},
|
|
14
17
|
"files": [
|
|
15
18
|
"./dist/",
|
|
16
19
|
"./src/",
|
|
@@ -36,12 +39,17 @@
|
|
|
36
39
|
"module": "dist/s3mini.js",
|
|
37
40
|
"types": "dist/s3mini.d.ts",
|
|
38
41
|
"exports": {
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
".": {
|
|
43
|
+
"import": {
|
|
44
|
+
"types": "./dist/s3mini.d.ts",
|
|
45
|
+
"development": "./dist/s3mini.js",
|
|
46
|
+
"default": "./dist/s3mini.min.js"
|
|
47
|
+
},
|
|
48
|
+
"require": {
|
|
49
|
+
"types": "./dist/s3mini.d.ts",
|
|
50
|
+
"default": "./dist/s3mini.min.js"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
45
53
|
},
|
|
46
54
|
"sideEffects": false,
|
|
47
55
|
"engines": {
|
|
@@ -55,6 +63,8 @@
|
|
|
55
63
|
"bun": true,
|
|
56
64
|
"browser": false
|
|
57
65
|
},
|
|
66
|
+
"license": "MIT",
|
|
67
|
+
"private": false,
|
|
58
68
|
"devDependencies": {
|
|
59
69
|
"@aws-sdk/client-s3": "^3.802.0",
|
|
60
70
|
"@eslint/eslintrc": "^3.3.1",
|
package/src/S3.ts
CHANGED
|
@@ -49,10 +49,8 @@ class s3mini {
|
|
|
49
49
|
private requestSizeInBytes: number;
|
|
50
50
|
private requestAbortTimeout?: number;
|
|
51
51
|
private logger?: IT.Logger;
|
|
52
|
-
private
|
|
53
|
-
private
|
|
54
|
-
private signingKey: Buffer;
|
|
55
|
-
private credentialScope: string;
|
|
52
|
+
private signingKeyDate?: string;
|
|
53
|
+
private signingKey?: Buffer;
|
|
56
54
|
|
|
57
55
|
constructor({
|
|
58
56
|
accessKeyId,
|
|
@@ -71,10 +69,6 @@ class s3mini {
|
|
|
71
69
|
this.requestSizeInBytes = requestSizeInBytes;
|
|
72
70
|
this.requestAbortTimeout = requestAbortTimeout;
|
|
73
71
|
this.logger = logger;
|
|
74
|
-
this.fullDatetime = new Date().toISOString().replace(/[:-]|\.\d{3}/g, '');
|
|
75
|
-
this.shortDatetime = this.fullDatetime.slice(0, 8);
|
|
76
|
-
this.signingKey = this._getSignatureKey(this.shortDatetime);
|
|
77
|
-
this.credentialScope = [this.shortDatetime, this.region, C.S3_SERVICE, C.AWS_REQUEST_TYPE].join('/');
|
|
78
72
|
}
|
|
79
73
|
|
|
80
74
|
private _sanitize(obj: unknown): unknown {
|
|
@@ -142,11 +136,16 @@ class s3mini {
|
|
|
142
136
|
}
|
|
143
137
|
|
|
144
138
|
private _ensureValidUrl(raw: string): string {
|
|
145
|
-
// prepend https:// if user forgot a scheme
|
|
146
139
|
const candidate = /^(https?:)?\/\//i.test(raw) ? raw : `https://${raw}`;
|
|
147
140
|
try {
|
|
148
141
|
new URL(candidate);
|
|
149
|
-
|
|
142
|
+
|
|
143
|
+
// Find the last non-slash character
|
|
144
|
+
let endIndex = candidate.length;
|
|
145
|
+
while (endIndex > 0 && candidate[endIndex - 1] === '/') {
|
|
146
|
+
endIndex--;
|
|
147
|
+
}
|
|
148
|
+
return endIndex === candidate.length ? candidate : candidate.substring(0, endIndex);
|
|
150
149
|
} catch {
|
|
151
150
|
const msg = `${C.ERROR_ENDPOINT_FORMAT} But provided: "${raw}"`;
|
|
152
151
|
this._log('error', msg);
|
|
@@ -254,8 +253,12 @@ class s3mini {
|
|
|
254
253
|
url.pathname === '/' ? `/${keyPath.replace(/^\/+/, '')}` : `${url.pathname}/${keyPath.replace(/^\/+/, '')}`;
|
|
255
254
|
}
|
|
256
255
|
|
|
256
|
+
const fullDatetime = new Date().toISOString().replace(/[:-]|\.\d{3}/g, '');
|
|
257
|
+
const shortDatetime = fullDatetime.slice(0, 8);
|
|
258
|
+
const credentialScope = this._buildCredentialScope(shortDatetime);
|
|
259
|
+
|
|
257
260
|
headers[C.HEADER_AMZ_CONTENT_SHA256] = C.UNSIGNED_PAYLOAD; // body ? U.hash(body) : C.UNSIGNED_PAYLOAD;
|
|
258
|
-
headers[C.HEADER_AMZ_DATE] =
|
|
261
|
+
headers[C.HEADER_AMZ_DATE] = fullDatetime;
|
|
259
262
|
headers[C.HEADER_HOST] = url.host;
|
|
260
263
|
const canonicalHeaders = this._buildCanonicalHeaders(headers);
|
|
261
264
|
const signedHeaders = Object.keys(headers)
|
|
@@ -264,9 +267,9 @@ class s3mini {
|
|
|
264
267
|
.join(';');
|
|
265
268
|
|
|
266
269
|
const canonicalRequest = this._buildCanonicalRequest(method, url, query, canonicalHeaders, signedHeaders);
|
|
267
|
-
const stringToSign = this._buildStringToSign(canonicalRequest);
|
|
268
|
-
const signature = this._calculateSignature(stringToSign);
|
|
269
|
-
const authorizationHeader = this._buildAuthorizationHeader(signedHeaders, signature);
|
|
270
|
+
const stringToSign = this._buildStringToSign(fullDatetime, credentialScope, canonicalRequest);
|
|
271
|
+
const signature = this._calculateSignature(shortDatetime, stringToSign);
|
|
272
|
+
const authorizationHeader = this._buildAuthorizationHeader(credentialScope, signedHeaders, signature);
|
|
270
273
|
headers[C.HEADER_AUTHORIZATION] = authorizationHeader;
|
|
271
274
|
return { url: url.toString(), headers };
|
|
272
275
|
}
|
|
@@ -295,17 +298,25 @@ class s3mini {
|
|
|
295
298
|
].join('\n');
|
|
296
299
|
}
|
|
297
300
|
|
|
298
|
-
private
|
|
299
|
-
return [
|
|
301
|
+
private _buildCredentialScope(shortDatetime: string): string {
|
|
302
|
+
return [shortDatetime, this.region, C.S3_SERVICE, C.AWS_REQUEST_TYPE].join('/');
|
|
300
303
|
}
|
|
301
304
|
|
|
302
|
-
private
|
|
303
|
-
return
|
|
305
|
+
private _buildStringToSign(fullDatetime: string, credentialScope: string, canonicalRequest: string): string {
|
|
306
|
+
return [C.AWS_ALGORITHM, fullDatetime, credentialScope, U.hash(canonicalRequest)].join('\n');
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
private _calculateSignature(shortDatetime: string, stringToSign: string): string {
|
|
310
|
+
if (shortDatetime !== this.signingKeyDate) {
|
|
311
|
+
this.signingKeyDate = shortDatetime;
|
|
312
|
+
this.signingKey = this._getSignatureKey(shortDatetime);
|
|
313
|
+
}
|
|
314
|
+
return U.hmac(this.signingKey!, stringToSign, 'hex') as string;
|
|
304
315
|
}
|
|
305
316
|
|
|
306
|
-
private _buildAuthorizationHeader(signedHeaders: string, signature: string): string {
|
|
317
|
+
private _buildAuthorizationHeader(credentialScope: string, signedHeaders: string, signature: string): string {
|
|
307
318
|
return [
|
|
308
|
-
`${C.AWS_ALGORITHM} Credential=${this.accessKeyId}/${
|
|
319
|
+
`${C.AWS_ALGORITHM} Credential=${this.accessKeyId}/${credentialScope}`,
|
|
309
320
|
`SignedHeaders=${signedHeaders}`,
|
|
310
321
|
`Signature=${signature}`,
|
|
311
322
|
].join(', ');
|
|
@@ -535,6 +546,14 @@ class s3mini {
|
|
|
535
546
|
return res.text();
|
|
536
547
|
}
|
|
537
548
|
|
|
549
|
+
public async getObjectResponse(key: string, opts: Record<string, unknown> = {}): Promise<Response | null> {
|
|
550
|
+
const res = await this._signedRequest('GET', key, { query: opts, tolerated: [200, 404, 412, 304] });
|
|
551
|
+
if ([404, 412, 304].includes(res.status)) {
|
|
552
|
+
return null;
|
|
553
|
+
}
|
|
554
|
+
return res;
|
|
555
|
+
}
|
|
556
|
+
|
|
538
557
|
public async getObjectArrayBuffer(key: string, opts: Record<string, unknown> = {}): Promise<ArrayBuffer | null> {
|
|
539
558
|
const res = await this._signedRequest('GET', key, { query: opts, tolerated: [200, 404, 412, 304] });
|
|
540
559
|
if ([404, 412, 304].includes(res.status)) {
|
|
@@ -543,6 +562,14 @@ class s3mini {
|
|
|
543
562
|
return res.arrayBuffer();
|
|
544
563
|
}
|
|
545
564
|
|
|
565
|
+
public async getObjectJSON<T = unknown>(key: string, opts: Record<string, unknown> = {}): Promise<T | null> {
|
|
566
|
+
const res = await this._signedRequest('GET', key, { query: opts, tolerated: [200, 404, 412, 304] });
|
|
567
|
+
if ([404, 412, 304].includes(res.status)) {
|
|
568
|
+
return null;
|
|
569
|
+
}
|
|
570
|
+
return res.json() as Promise<T>;
|
|
571
|
+
}
|
|
572
|
+
|
|
546
573
|
public async getObjectWithETag(
|
|
547
574
|
key: string,
|
|
548
575
|
opts: Record<string, unknown> = {},
|
|
@@ -620,13 +647,20 @@ class s3mini {
|
|
|
620
647
|
return U.sanitizeETag(etag);
|
|
621
648
|
}
|
|
622
649
|
|
|
623
|
-
public async putObject(
|
|
650
|
+
public async putObject(
|
|
651
|
+
key: string,
|
|
652
|
+
data: string | Buffer,
|
|
653
|
+
fileType: string = C.DEFAULT_STREAM_CONTENT_TYPE,
|
|
654
|
+
): Promise<Response> {
|
|
624
655
|
if (!(data instanceof Buffer || typeof data === 'string')) {
|
|
625
656
|
throw new TypeError(C.ERROR_DATA_BUFFER_REQUIRED);
|
|
626
657
|
}
|
|
627
658
|
return this._signedRequest('PUT', key, {
|
|
628
659
|
body: data,
|
|
629
|
-
headers: {
|
|
660
|
+
headers: {
|
|
661
|
+
[C.HEADER_CONTENT_LENGTH]: typeof data === 'string' ? Buffer.byteLength(data) : data.length,
|
|
662
|
+
[C.HEADER_CONTENT_TYPE]: fileType,
|
|
663
|
+
},
|
|
630
664
|
tolerated: [200],
|
|
631
665
|
});
|
|
632
666
|
}
|
|
@@ -781,7 +815,6 @@ class s3mini {
|
|
|
781
815
|
const res = await fetch(url, {
|
|
782
816
|
method,
|
|
783
817
|
headers,
|
|
784
|
-
keepalive: true,
|
|
785
818
|
body: ['GET', 'HEAD'].includes(method) ? undefined : (body as string),
|
|
786
819
|
signal: this.requestAbortTimeout !== undefined ? AbortSignal.timeout(this.requestAbortTimeout) : undefined,
|
|
787
820
|
});
|
package/src/types.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { createHash as NodeCreateHash, createHmac as NodeCreateHmac } from 'node:crypto';
|
|
2
|
-
|
|
3
1
|
export interface S3Config {
|
|
4
2
|
accessKeyId: string;
|
|
5
3
|
secretAccessKey: string;
|
|
@@ -11,8 +9,17 @@ export interface S3Config {
|
|
|
11
9
|
}
|
|
12
10
|
|
|
13
11
|
export interface Crypto {
|
|
14
|
-
createHmac:
|
|
15
|
-
|
|
12
|
+
createHmac: (
|
|
13
|
+
algorithm: string,
|
|
14
|
+
key: Buffer | string,
|
|
15
|
+
) => {
|
|
16
|
+
update: (data: Buffer | string) => { digest: (encoding?: string) => string | Buffer };
|
|
17
|
+
digest: (encoding?: string) => string | Buffer;
|
|
18
|
+
};
|
|
19
|
+
createHash: (algorithm: string) => {
|
|
20
|
+
update: (data: Buffer | string) => { digest: (encoding?: string) => string | Buffer };
|
|
21
|
+
digest: (encoding?: string) => string | Buffer;
|
|
22
|
+
};
|
|
16
23
|
}
|
|
17
24
|
|
|
18
25
|
export interface Logger {
|
package/src/utils.ts
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
import type { Crypto, XmlValue, XmlMap, ListBucketResponse, ErrorWithCode } from './types.js';
|
|
4
4
|
declare const crypto: Crypto;
|
|
5
5
|
|
|
6
|
-
// Initialize crypto functions
|
|
6
|
+
// Initialize crypto functions - this is needed for environments where `crypto` is not available globally
|
|
7
|
+
// e.g., in Cloudflare Workers or other non-Node.js environments with nodejs_flags enabled.
|
|
7
8
|
const _createHmac: Crypto['createHmac'] = crypto.createHmac || (await import('node:crypto')).createHmac;
|
|
8
9
|
const _createHash: Crypto['createHash'] = crypto.createHash || (await import('node:crypto')).createHash;
|
|
9
10
|
|
|
@@ -13,7 +14,7 @@ const _createHash: Crypto['createHash'] = crypto.createHash || (await import('no
|
|
|
13
14
|
* @returns {string} Hex encoded hash
|
|
14
15
|
*/
|
|
15
16
|
export const hash = (content: string | Buffer): string => {
|
|
16
|
-
return _createHash('sha256').update(content).digest('hex');
|
|
17
|
+
return _createHash('sha256').update(content).digest('hex') as string;
|
|
17
18
|
};
|
|
18
19
|
|
|
19
20
|
/**
|
|
@@ -158,15 +159,15 @@ export class S3ServiceError extends S3Error {
|
|
|
158
159
|
* @param {Iterable<() => Promise<unknonw>>} tasks – functions returning Promises
|
|
159
160
|
* @param {number} [batchSize=30] – max concurrent requests
|
|
160
161
|
* @param {number} [minIntervalMs=0] – ≥0; 0 means “no pacing”
|
|
161
|
-
* @returns {Promise<Array<PromiseSettledResult<
|
|
162
|
+
* @returns {Promise<Array<PromiseSettledResult<T>>>}
|
|
162
163
|
*/
|
|
163
|
-
export const runInBatches = async (
|
|
164
|
-
tasks: Iterable<() => Promise<
|
|
165
|
-
batchSize = 30,
|
|
166
|
-
minIntervalMs = 0,
|
|
167
|
-
): Promise<Array<PromiseSettledResult<
|
|
168
|
-
const allResults: PromiseSettledResult<
|
|
169
|
-
let batch: Array<() => Promise<
|
|
164
|
+
export const runInBatches = async <T = unknown>(
|
|
165
|
+
tasks: Iterable<() => Promise<T>>,
|
|
166
|
+
batchSize: number = 30,
|
|
167
|
+
minIntervalMs: number = 0,
|
|
168
|
+
): Promise<Array<PromiseSettledResult<T>>> => {
|
|
169
|
+
const allResults: PromiseSettledResult<T>[] = [];
|
|
170
|
+
let batch: Array<() => Promise<T>> = [];
|
|
170
171
|
|
|
171
172
|
for (const task of tasks) {
|
|
172
173
|
batch.push(task);
|
|
@@ -181,16 +182,18 @@ export const runInBatches = async (
|
|
|
181
182
|
return allResults;
|
|
182
183
|
|
|
183
184
|
// ───────── helpers ──────────
|
|
184
|
-
async function executeBatch(batchFns:
|
|
185
|
-
const start = Date.now();
|
|
185
|
+
async function executeBatch(batchFns: ReadonlyArray<() => Promise<T>>): Promise<void> {
|
|
186
|
+
const start: number = Date.now();
|
|
186
187
|
|
|
187
|
-
const settled = await Promise.allSettled(
|
|
188
|
+
const settled: Array<PromiseSettledResult<T>> = await Promise.allSettled(
|
|
189
|
+
batchFns.map((fn: () => Promise<T>) => fn()),
|
|
190
|
+
);
|
|
188
191
|
allResults.push(...settled);
|
|
189
192
|
|
|
190
193
|
if (minIntervalMs > 0) {
|
|
191
|
-
const wait = minIntervalMs - (Date.now() - start);
|
|
194
|
+
const wait: number = minIntervalMs - (Date.now() - start);
|
|
192
195
|
if (wait > 0) {
|
|
193
|
-
await new Promise(
|
|
196
|
+
await new Promise<void>((resolve: () => void) => setTimeout(resolve, wait));
|
|
194
197
|
}
|
|
195
198
|
}
|
|
196
199
|
}
|