s3mini 0.1.1 → 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,6 @@
1
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
4
 
5
5
  [[github](https://github.com/good-lly/s3mini)]
6
6
  [[issues](https://github.com/good-lly/s3mini/issues)]
@@ -12,7 +12,7 @@
12
12
  - 🔧 Zero dependencies; supports AWS SigV4 (no pre-signed requests).
13
13
  - 🟠 Works on Cloudflare Workers; ideal for edge computing, Node, and Bun (no browser support).
14
14
  - 🔑 Only the essential S3 APIs—improved list, put, get, delete, and a few more.
15
- - 📦 **BYOS3** — _Bring your own S3-compatible bucket_ (tested on Cloudflare R2, Backblaze B2, DigitalOcean Spaces, MinIO and Garage! Ceph and AWS 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).
16
16
 
17
17
  #### Tested On
18
18
 
@@ -31,6 +31,8 @@ Dev:
31
31
  ![npm package minimized gzipped size](https://img.shields.io/bundlejs/size/s3mini?color=green)
32
32
  ![GitHub License](https://img.shields.io/github/license/good-lly/s3mini)
33
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
+
34
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.
35
37
  ![performance-image](https://raw.githubusercontent.com/good-lly/s3mini/dev/performance-screenshot.png)
36
38
 
@@ -80,6 +82,15 @@ yarn add s3mini
80
82
  pnpm add s3mini
81
83
  ```
82
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
+
83
94
  > **⚠️ Environment Support Notice**
84
95
  >
85
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.
@@ -124,7 +135,10 @@ let etag: string | null = null;
124
135
  if (!objectExists) {
125
136
  // put/upload the object, content can be a string or Buffer
126
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'
127
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');
128
142
  // you can also get etag via getEtag method
129
143
  // const etag: string = await s3client.getEtag(smallObjectKey);
130
144
  etag = sanitizeETag(resp.headers.get('etag'));
@@ -214,17 +228,17 @@ For more check [USAGE.md](USAGE.md) file, examples and tests.
214
228
  - Authors are not responsible for any data loss or security breaches resulting from improper usage of the library.
215
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.
216
230
 
217
- ## Contributions welcomed!
231
+ ## Contributions welcomed! (in specific order)
218
232
 
219
- 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:
220
234
 
221
- - _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.
222
236
 
223
- - _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!
224
238
 
225
- - _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.
226
240
 
227
- - _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.
228
242
 
229
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!
230
244
 
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;
@@ -156,7 +155,7 @@ declare class s3mini {
156
155
  getContentLength(key: string): Promise<number>;
157
156
  objectExists(key: string, opts?: Record<string, unknown>): Promise<ExistResponseCode>;
158
157
  getEtag(key: string, opts?: Record<string, unknown>): Promise<string | null>;
159
- putObject(key: string, data: string | Buffer): Promise<Response>;
158
+ putObject(key: string, data: string | Buffer, fileType?: string): Promise<Response>;
160
159
  getMultipartUploadId(key: string, fileType?: string): Promise<string>;
161
160
  uploadPart(key: string, uploadId: string, data: Buffer | string, partNumber: number, opts?: Record<string, unknown>): Promise<UploadPart>;
162
161
  completeMultipartUpload(key: string, uploadId: string, parts: Array<UploadPart>): Promise<CompleteMultipartUploadResult>;
@@ -182,8 +181,8 @@ declare const sanitizeETag: (etag: string) => string;
182
181
  * @param {Iterable<() => Promise<unknonw>>} tasks – functions returning Promises
183
182
  * @param {number} [batchSize=30] – max concurrent requests
184
183
  * @param {number} [minIntervalMs=0] – ≥0; 0 means “no pacing”
185
- * @returns {Promise<Array<PromiseSettledResult<unknonw>>>}
184
+ * @returns {Promise<Array<PromiseSettledResult<T>>>}
186
185
  */
187
- 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>>>;
188
187
 
189
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
@@ -168,7 +168,7 @@ class S3ServiceError extends S3Error {
168
168
  * @param {Iterable<() => Promise<unknonw>>} tasks – functions returning Promises
169
169
  * @param {number} [batchSize=30] – max concurrent requests
170
170
  * @param {number} [minIntervalMs=0] – ≥0; 0 means “no pacing”
171
- * @returns {Promise<Array<PromiseSettledResult<unknonw>>>}
171
+ * @returns {Promise<Array<PromiseSettledResult<T>>>}
172
172
  */
173
173
  const runInBatches = async (tasks, batchSize = 30, minIntervalMs = 0) => {
174
174
  const allResults = [];
@@ -187,12 +187,12 @@ const runInBatches = async (tasks, batchSize = 30, minIntervalMs = 0) => {
187
187
  // ───────── helpers ──────────
188
188
  async function executeBatch(batchFns) {
189
189
  const start = Date.now();
190
- const settled = await Promise.allSettled(batchFns.map(fn => fn()));
190
+ const settled = await Promise.allSettled(batchFns.map((fn) => fn()));
191
191
  allResults.push(...settled);
192
192
  if (minIntervalMs > 0) {
193
193
  const wait = minIntervalMs - (Date.now() - start);
194
194
  if (wait > 0) {
195
- await new Promise(r => setTimeout(r, wait));
195
+ await new Promise((resolve) => setTimeout(resolve, wait));
196
196
  }
197
197
  }
198
198
  }
@@ -243,10 +243,8 @@ class s3mini {
243
243
  requestSizeInBytes;
244
244
  requestAbortTimeout;
245
245
  logger;
246
- fullDatetime;
247
- shortDatetime;
246
+ signingKeyDate;
248
247
  signingKey;
249
- credentialScope;
250
248
  constructor({ accessKeyId, secretAccessKey, endpoint, region = 'auto', requestSizeInBytes = DEFAULT_REQUEST_SIZE_IN_BYTES, requestAbortTimeout = undefined, logger = undefined, }) {
251
249
  this._validateConstructorParams(accessKeyId, secretAccessKey, endpoint);
252
250
  this.accessKeyId = accessKeyId;
@@ -256,10 +254,6 @@ class s3mini {
256
254
  this.requestSizeInBytes = requestSizeInBytes;
257
255
  this.requestAbortTimeout = requestAbortTimeout;
258
256
  this.logger = logger;
259
- this.fullDatetime = new Date().toISOString().replace(/[:-]|\.\d{3}/g, '');
260
- this.shortDatetime = this.fullDatetime.slice(0, 8);
261
- this.signingKey = this._getSignatureKey(this.shortDatetime);
262
- this.credentialScope = [this.shortDatetime, this.region, S3_SERVICE, AWS_REQUEST_TYPE].join('/');
263
257
  }
264
258
  _sanitize(obj) {
265
259
  if (typeof obj !== 'object' || obj === null) {
@@ -314,11 +308,15 @@ class s3mini {
314
308
  }
315
309
  }
316
310
  _ensureValidUrl(raw) {
317
- // prepend https:// if user forgot a scheme
318
311
  const candidate = /^(https?:)?\/\//i.test(raw) ? raw : `https://${raw}`;
319
312
  try {
320
313
  new URL(candidate);
321
- 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);
322
320
  }
323
321
  catch {
324
322
  const msg = `${ERROR_ENDPOINT_FORMAT} But provided: "${raw}"`;
@@ -401,8 +399,11 @@ class s3mini {
401
399
  url.pathname =
402
400
  url.pathname === '/' ? `/${keyPath.replace(/^\/+/, '')}` : `${url.pathname}/${keyPath.replace(/^\/+/, '')}`;
403
401
  }
402
+ const fullDatetime = new Date().toISOString().replace(/[:-]|\.\d{3}/g, '');
403
+ const shortDatetime = fullDatetime.slice(0, 8);
404
+ const credentialScope = this._buildCredentialScope(shortDatetime);
404
405
  headers[HEADER_AMZ_CONTENT_SHA256] = UNSIGNED_PAYLOAD; // body ? U.hash(body) : C.UNSIGNED_PAYLOAD;
405
- headers[HEADER_AMZ_DATE] = this.fullDatetime;
406
+ headers[HEADER_AMZ_DATE] = fullDatetime;
406
407
  headers[HEADER_HOST] = url.host;
407
408
  const canonicalHeaders = this._buildCanonicalHeaders(headers);
408
409
  const signedHeaders = Object.keys(headers)
@@ -410,9 +411,9 @@ class s3mini {
410
411
  .sort()
411
412
  .join(';');
412
413
  const canonicalRequest = this._buildCanonicalRequest(method, url, query, canonicalHeaders, signedHeaders);
413
- const stringToSign = this._buildStringToSign(canonicalRequest);
414
- const signature = this._calculateSignature(stringToSign);
415
- 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);
416
417
  headers[HEADER_AUTHORIZATION] = authorizationHeader;
417
418
  return { url: url.toString(), headers };
418
419
  }
@@ -432,15 +433,22 @@ class s3mini {
432
433
  UNSIGNED_PAYLOAD,
433
434
  ].join('\n');
434
435
  }
435
- _buildStringToSign(canonicalRequest) {
436
- 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');
437
441
  }
438
- _calculateSignature(stringToSign) {
442
+ _calculateSignature(shortDatetime, stringToSign) {
443
+ if (shortDatetime !== this.signingKeyDate) {
444
+ this.signingKeyDate = shortDatetime;
445
+ this.signingKey = this._getSignatureKey(shortDatetime);
446
+ }
439
447
  return hmac(this.signingKey, stringToSign, 'hex');
440
448
  }
441
- _buildAuthorizationHeader(signedHeaders, signature) {
449
+ _buildAuthorizationHeader(credentialScope, signedHeaders, signature) {
442
450
  return [
443
- `${AWS_ALGORITHM} Credential=${this.accessKeyId}/${this.credentialScope}`,
451
+ `${AWS_ALGORITHM} Credential=${this.accessKeyId}/${credentialScope}`,
444
452
  `SignedHeaders=${signedHeaders}`,
445
453
  `Signature=${signature}`,
446
454
  ].join(', ');
@@ -695,13 +703,16 @@ class s3mini {
695
703
  }
696
704
  return sanitizeETag(etag);
697
705
  }
698
- async putObject(key, data) {
706
+ async putObject(key, data, fileType = DEFAULT_STREAM_CONTENT_TYPE) {
699
707
  if (!(data instanceof Buffer || typeof data === 'string')) {
700
708
  throw new TypeError(ERROR_DATA_BUFFER_REQUIRED);
701
709
  }
702
710
  return this._signedRequest('PUT', key, {
703
711
  body: data,
704
- 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
+ },
705
716
  tolerated: [200],
706
717
  });
707
718
  }
@@ -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",c="Content-Length",u="etag",h="[s3mini] ",d=h+"accessKeyId must be a non-empty string",l=h+"secretAccessKey must be a non-empty string",p=h+"endpoint must be a non-empty string",y=h+"endpoint must be a valid URL. Expected format: https://<host>[:port][/base-path]",f=h+"key must be a non-empty string",w=h+"uploadId must be a non-empty string",g=h+"data must be a Buffer or string",b=h+"prefix must be a string",m=h+"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:c}){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=c,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("/")}u(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.u(t[r]):t[r],e)),Array.isArray(t)?[]:{})}h(t,e,r={}){if(this.logger&&"function"==typeof this.logger[t]){const s=this.u(r),i={timestamp:(new Date).toISOString(),level:t,message:e,details:s,context:this.u({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.h("error",e),new TypeError(e)}}l(t){if("GET"!==t&&"HEAD"!==t)throw this.h("error",h+"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.h("error",f),new TypeError(f)}m(t){if("string"!=typeof t||0===t.trim().length)throw this.h("error",m),new TypeError(m)}T(t){if("string"!=typeof t)throw this.h("error",b),new TypeError(b)}$(t){if("object"!=typeof t)throw this.h("error",h+"opts must be an object"),new TypeError(h+"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.h("error",g),new TypeError(g);if("string"!=typeof e||0===e.trim().length)throw this.h("error",w),new TypeError(w);if(!Number.isInteger(s)||s<=0)throw this.h("error",h+"partNumber must be a positive integer"),new TypeError(h+"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),c=Object.keys(i).map((t=>t.toLowerCase())).sort().join(";"),u=this.q(t,o,r,a,c),h=this.S(u),d=this.D(h),l=this.I(c,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:c=!1}={}){if(!["GET","HEAD","PUT","POST","DELETE"].includes(t))throw Error(`${h}Unsupported HTTP method ${t}`);e&&this.p(e);const{filteredOpts:u,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,u,l);Object.keys(r).length>0&&(c=!0);const w=Object.fromEntries(Object.entries(u).map((([t,e])=>[t,e+""]))),g=c&&Object.keys(u).length?`${y}?${new URLSearchParams(w)}`:y,b=Object.fromEntries(Object.entries(f).map((([t,e])=>[t,e+""])));return this.P(g,t,b,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,[c]:""+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 c=[];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.h("error",`${h}Request failed with status ${r.status}: ${e} - ${s}, err body: ${t}`),Error(`${h}Request failed with status ${r.status}: ${e} - ${s}, err body: ${t}`)}const u=A(await r.text());if("object"!=typeof u||!u||"error"in u)throw this.h("error",`${h}Unexpected listObjects response shape: ${JSON.stringify(u)}`),Error(h+"Unexpected listObjects response shape");const d="listBucketResult"in u?u.listBucketResult:u,l=d.contents;if(l){const t=Array.isArray(l)?l:[l];c.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 c}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(h+"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 getObjectResponse(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}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 getObjectJSON(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.json()}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(u);if(!s)throw Error("ETag not found in response headers");return{etag:O(s),data:await r.arrayBuffer()}}catch(e){throw this.h("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(c);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(u);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:{[c]:"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(h+"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(`${h}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:{[c]:"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,[c]:""+Buffer.byteLength(o)},u=await this.C("POST",t,{query:s,body:o,headers:n,withQuery:!0}),d=A(await u.text()),l=d&&"object"==typeof d&&"completeMultipartUploadResult"in d?d.completeMultipartUploadResult:d;if(!l||"object"!=typeof l)throw Error(`${h}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.h("error",`${h}Failed to abort multipart upload: ${n.error.message+""}`),Error(`${h}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.h("info",`Sending ${e} request to ${t}`,"headers: "+JSON.stringify(r));try{const o=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.h("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.h("error",`${h}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","getObjectResponse","getObjectArrayBuffer","arrayBuffer","getObjectJSON","json","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","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,6 +1,6 @@
1
1
  {
2
2
  "name": "s3mini",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "👶 Tiny & fast S3 client for node and edge computing platforms",
5
5
  "homepage": "https://github.com/good-lly/s3mini",
6
6
  "bugs": {
@@ -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/",
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('/');
303
+ }
304
+
305
+ private _buildStringToSign(fullDatetime: string, credentialScope: string, canonicalRequest: string): string {
306
+ return [C.AWS_ALGORITHM, fullDatetime, credentialScope, U.hash(canonicalRequest)].join('\n');
300
307
  }
301
308
 
302
- private _calculateSignature(stringToSign: string): string {
303
- return U.hmac(this.signingKey, stringToSign, 'hex') as string;
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(', ');
@@ -636,13 +647,20 @@ class s3mini {
636
647
  return U.sanitizeETag(etag);
637
648
  }
638
649
 
639
- 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> {
640
655
  if (!(data instanceof Buffer || typeof data === 'string')) {
641
656
  throw new TypeError(C.ERROR_DATA_BUFFER_REQUIRED);
642
657
  }
643
658
  return this._signedRequest('PUT', key, {
644
659
  body: data,
645
- 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
+ },
646
664
  tolerated: [200],
647
665
  });
648
666
  }
package/src/utils.ts CHANGED
@@ -159,15 +159,15 @@ export class S3ServiceError extends S3Error {
159
159
  * @param {Iterable<() => Promise<unknonw>>} tasks – functions returning Promises
160
160
  * @param {number} [batchSize=30] – max concurrent requests
161
161
  * @param {number} [minIntervalMs=0] – ≥0; 0 means “no pacing”
162
- * @returns {Promise<Array<PromiseSettledResult<unknonw>>>}
162
+ * @returns {Promise<Array<PromiseSettledResult<T>>>}
163
163
  */
164
- export const runInBatches = async (
165
- tasks: Iterable<() => Promise<unknown>>,
164
+ export const runInBatches = async <T = unknown>(
165
+ tasks: Iterable<() => Promise<T>>,
166
166
  batchSize: number = 30,
167
167
  minIntervalMs: number = 0,
168
- ): Promise<Array<PromiseSettledResult<unknown>>> => {
169
- const allResults: PromiseSettledResult<unknown>[] = [];
170
- let batch: Array<() => Promise<unknown>> = [];
168
+ ): Promise<Array<PromiseSettledResult<T>>> => {
169
+ const allResults: PromiseSettledResult<T>[] = [];
170
+ let batch: Array<() => Promise<T>> = [];
171
171
 
172
172
  for (const task of tasks) {
173
173
  batch.push(task);
@@ -182,16 +182,18 @@ export const runInBatches = async (
182
182
  return allResults;
183
183
 
184
184
  // ───────── helpers ──────────
185
- async function executeBatch(batchFns: Array<() => Promise<unknown>>): Promise<void> {
186
- const start = Date.now();
185
+ async function executeBatch(batchFns: ReadonlyArray<() => Promise<T>>): Promise<void> {
186
+ const start: number = Date.now();
187
187
 
188
- 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
+ );
189
191
  allResults.push(...settled);
190
192
 
191
193
  if (minIntervalMs > 0) {
192
- const wait = minIntervalMs - (Date.now() - start);
194
+ const wait: number = minIntervalMs - (Date.now() - start);
193
195
  if (wait > 0) {
194
- await new Promise(r => setTimeout(r, wait));
196
+ await new Promise<void>((resolve: () => void) => setTimeout(resolve, wait));
195
197
  }
196
198
  }
197
199
  }