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 CHANGED
@@ -1,6 +1,10 @@
1
- # s3mini | Tiny & fast S3 client built for the edge.
1
+ # s3mini | Tiny & fast S3 client for node and edge platforms.
2
2
 
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, and MinIO. (No Browser support!)
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; Ceph and Garage are in the queue).
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
- ![GitHub Repo stars](https://img.shields.io/github/stars/good-lly/s3mini?style=social)
14
- ![GitHub License](https://img.shields.io/github/license/good-lly/s3mini)
17
+ #### Tested On
18
+
19
+ ![Tested On](testedon.png)
15
20
 
16
21
  Dev:
17
- ![GitHub package.json version](https://img.shields.io/github/package-json/v/good-lly/s3mini?color=green)
18
- ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/good-lly/s3mini)
22
+
23
+ ![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/m/good-lly/s3mini/dev?color=greeen)
24
+ ![GitHub Issues or Pull Requests](https://img.shields.io/github/issues/good-lly/s3mini)
19
25
  [![CodeQL Advanced](https://github.com/good-lly/s3mini/actions/workflows/codeql.yml/badge.svg?branch=dev)](https://github.com/good-lly/s3mini/actions/workflows/codeql.yml)
20
26
  [![Test:e2e(all)](https://github.com/good-lly/s3mini/actions/workflows/test-e2e.yml/badge.svg?branch=dev)](https://github.com/good-lly/s3mini/actions/workflows/test-e2e.yml)
21
27
 
28
+ ![GitHub Repo stars](https://img.shields.io/github/stars/good-lly/s3mini?style=social)
29
+ ![NPM Downloads](https://img.shields.io/npm/dm/s3mini)
30
+ ![NPM Version](https://img.shields.io/npm/v/s3mini?color=green)
31
+ ![npm package minimized gzipped size](https://img.shields.io/bundlejs/size/s3mini?color=green)
32
+ ![GitHub License](https://img.shields.io/github/license/good-lly/s3mini)
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
  ![performance-image](https://raw.githubusercontent.com/good-lly/s3mini/dev/performance-screenshot.png)
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
- - _Report Issues_: If you encounter a problem or have a feature request, please open an issue on GitHub. Include as much detail as possible (environment, error messages, logs, steps to reproduce, etc.) so we can understand and address the issue.
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
- - _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 good idea to discuss your plans in an issue first.
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
- - _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.
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
- - _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.
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
+ [![Become a Sponsor](https://img.shields.io/badge/💸_GitHub-Sponsor-ff69b4?logo=github&logoColor=white)](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 fullDatetime;
118
- private shortDatetime;
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<unknonw>>>}
184
+ * @returns {Promise<Array<PromiseSettledResult<T>>>}
184
185
  */
185
- declare const runInBatches: (tasks: Iterable<() => Promise<unknown>>, batchSize?: number, minIntervalMs?: number) => Promise<Array<PromiseSettledResult<unknown>>>;
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<unknonw>>>}
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(r => setTimeout(r, wait));
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
- fullDatetime;
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
- return candidate.replace(/\/+$/, ''); // strip trailing slash
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] = this.fullDatetime;
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
- _buildStringToSign(canonicalRequest) {
435
- return [AWS_ALGORITHM, this.fullDatetime, this.credentialScope, hash(canonicalRequest)].join('\n');
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}/${this.credentialScope}`,
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: { [HEADER_CONTENT_LENGTH]: typeof data === 'string' ? Buffer.byteLength(data) : data.length },
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
  });
@@ -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":"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"}
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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"}
@@ -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={'"':"","&quot;":"","&#34;":"","&QUOT;":"","&#x00022":""};return t.replace(/^("|&quot;|&#34;)|("|&quot;|&#34;)$/g,(t=>e[t]))},j={"&quot;":'"',"&apos;":"'","&lt;":"<","&gt;":">","&amp;":"&"},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={'"':"","&quot;":"","&#34;":"","&QUOT;":"","&#x00022":""};return t.replace(/^("|&quot;|&#34;)|("|&quot;|&#34;)$/g,(t=>e[t]))},A={"&quot;":'"',"&apos;":"'","&lt;":"<","&gt;":">","&amp;":"&"},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
@@ -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.1.0",
4
- "description": "👶 Tiny & fast S3 client built for edge.",
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
- "import": {
40
- "development": "./dist/s3mini.js",
41
- "default": "./dist/s3mini.min.js"
42
- },
43
- "require": "./dist/s3mini.min.js",
44
- "types": "./dist/s3mini.d.ts"
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 fullDatetime: string;
53
- private shortDatetime: string;
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
- return candidate.replace(/\/+$/, ''); // strip trailing slash
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] = this.fullDatetime;
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 _buildStringToSign(canonicalRequest: string): string {
299
- return [C.AWS_ALGORITHM, this.fullDatetime, this.credentialScope, U.hash(canonicalRequest)].join('\n');
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 _calculateSignature(stringToSign: string): string {
303
- return U.hmac(this.signingKey, stringToSign, 'hex') as string;
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}/${this.credentialScope}`,
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(key: string, data: string | Buffer): Promise<Response> {
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: { [C.HEADER_CONTENT_LENGTH]: typeof data === 'string' ? Buffer.byteLength(data) : data.length },
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: typeof NodeCreateHmac;
15
- createHash: typeof NodeCreateHash;
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<unknonw>>>}
162
+ * @returns {Promise<Array<PromiseSettledResult<T>>>}
162
163
  */
163
- export const runInBatches = async (
164
- tasks: Iterable<() => Promise<unknown>>,
165
- batchSize = 30,
166
- minIntervalMs = 0,
167
- ): Promise<Array<PromiseSettledResult<unknown>>> => {
168
- const allResults: PromiseSettledResult<unknown>[] = [];
169
- let batch: Array<() => Promise<unknown>> = [];
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: Array<() => Promise<unknown>>): Promise<void> {
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(batchFns.map(fn => fn()));
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(r => setTimeout(r, wait));
196
+ await new Promise<void>((resolve: () => void) => setTimeout(resolve, wait));
194
197
  }
195
198
  }
196
199
  }