s3mini 0.7.1 → 0.8.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.
@@ -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","UNSIGNED_PAYLOAD","DEFAULT_STREAM_CONTENT_TYPE","XML_CONTENT_TYPE","SENSITIVE_KEYS_REDACTED","Set","IFHEADERS","HEADER_AMZ_CONTENT_SHA256","HEADER_AMZ_CHECKSUM_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","ENCODR","TextEncoder","HEXS","getByteSize","data","encode","byteLength","ArrayBuffer","Uint8Array","Blob","size","Error","hexFromBuffer","buffer","bytes","hex","byte","sha256","async","content","globalThis","crypto","subtle","digest","hmac","key","secret","importKey","name","hash","sign","sanitizeETag","etag","replaceChars","replaceAll","m","entityMap","unescapeXml","value","parseXml","input","xmlContent","replace","RE_TAG","result","match","exec","tagName","innerContent","node","trim","current","undefined","Array","isArray","push","Object","keys","length","encodeAsHex","c","charCodeAt","toString","toUpperCase","uriEscape","uriStr","encodeURIComponent","S3Error","code","constructor","msg","cause","super","this","S3NetworkError","S3ServiceError","status","serviceCode","body","runInBatches","tasks","batchSize","minIntervalMs","allResults","batch","task","executeBatch","batchFns","start","Date","now","settled","Promise","allSettled","map","fn","wait","resolve","setTimeout","S3mini","accessKeyId","secretAccessKey","endpoint","region","bucketName","requestSizeInBytes","requestAbortTimeout","logger","_fetch","signingKeyDate","signingKey","fetch","_validateConstructorParams","URL","_ensureValidUrl","_extractBucketName","init","_sanitize","obj","reduce","acc","C.SENSITIVE_KEYS_REDACTED","has","toLowerCase","_log","level","message","additionalData","sanitizedData","logEntry","timestamp","toISOString","details","context","substring","JSON","stringify","TypeError","C.ERROR_ACCESS_KEY_REQUIRED","C.ERROR_SECRET_KEY_REQUIRED","C.ERROR_ENDPOINT_REQUIRED","raw","candidate","test","endIndex","C.ERROR_ENDPOINT_FORMAT","_validateMethodIsGetOrHead","method","C.ERROR_PREFIX","_checkKey","C.ERROR_KEY_REQUIRED","_checkDelimiter","delimiter","C.ERROR_DELIMITER_REQUIRED","_checkPrefix","prefix","C.ERROR_PREFIX_TYPE","_checkOpts","opts","_filterIfHeaders","filteredOpts","conditionalHeaders","entries","C.IFHEADERS","_validateData","Buffer","C.ERROR_DATA_BUFFER_REQUIRED","_validateUploadPartParams","uploadId","partNumber","C.ERROR_UPLOAD_ID_REQUIRED","Number","isInteger","_sign","keyPath","query","headers","url","pathname","d","shortDatetime","getUTCFullYear","getUTCMonth","String","padStart","getUTCDate","fullDatetime","getUTCHours","getUTCMinutes","getUTCSeconds","credentialScope","C.AWS_REQUEST_TYPE","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","host","ignoredHeaders","canonicalHeaders","signedHeaders","sort","a","b","localeCompare","lowerKey","canonicalRequest","_buildCanonicalQueryString","stringToSign","C.AWS_ALGORITHM","U.hexFromBuffer","U.sha256","_getSignatureKey","signature","U.hmac","_signedRequest","tolerated","withQuery","includes","baseHeaders","encodedKey","filteredOptsStrings","fromEntries","k","v","finalUrl","URLSearchParams","signedHeadersString","_sendRequest","U.sanitizeETag","createBucket","xmlBody","C.HEADER_CONTENT_TYPE","C.XML_CONTENT_TYPE","C.HEADER_CONTENT_LENGTH","U.getByteSize","pathSegments","split","filter","Boolean","hostParts","hostname","domain","slice","join","some","bucketExists","listObjects","maxKeys","U.uriEscape","unlimited","token","remaining","Infinity","all","batchResult","_fetchObjectBatch","objects","continuationToken","_buildListObjectsQuery","res","_handleListObjectsError","xmlText","text","_parseListObjectsResponse","Math","min","errorBody","parsedErrorBody","_parseErrorXml","errorCode","get","svcCode","errorMessage","statusText","U.parseXml","out","ListBucketResult","listBucketResult","_extractObjectsFromResponse","_extractContinuationToken","response","contents","Contents","IsTruncated","isTruncated","NextContinuationToken","nextContinuationToken","NextMarker","nextMarker","listMultipartUploads","uploads","listMultipartUploadsResult","getObject","ssecHeaders","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","additionalHeaders","getMultipartUploadId","parsed","uploadResult","initiateMultipartUploadResult","InitiateMultipartUploadResult","UploadId","uploadPart","completeMultipartUpload","parts","_buildCompleteMultipartUploadXml","completeMultipartUploadResult","CompleteMultipartUploadResult","resultObj","ETag","eTag","abortMultipartUpload","error","xml","part","_executeCopyOperation","destinationKey","copySource","options","metadataDirective","metadata","contentType","storageClass","taggingDirective","websiteRedirectLocation","sourceSSECHeaders","destinationSSECHeaders","_buildSSECHeaders","_buildMetadataHeaders","_parseCopyObjectResponse","copyObject","sourceKey","sourceHeaders","destHeaders","moveObject","copyResult","deleteObject","startsWith","CopyObjectResult","copyObjectResult","lastModified","LastModified","_deleteObjectsProcess","sha256base64","i","chunk","subarray","btoa","fromCodePoint","U.base64FromBuffer","C.HEADER_AMZ_CHECKSUM_SHA256","delete","DeleteResult","deleteResult","resultMap","Map","set","deleted","Deleted","deletedArray","item","Key","errors","errorsArray","Code","Message","deleteObjects","maxBatchSize","allPromises","flat","toleratedStatusCodes","signal","AbortSignal","timeout","ok","_handleErrorResponse","e","U.extractErrCode","U.S3NetworkError","parsedBody","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","UNSIGNED_PAYLOAD","DEFAULT_STREAM_CONTENT_TYPE","XML_CONTENT_TYPE","SENSITIVE_KEYS_REDACTED","Set","IFHEADERS","HEADER_AMZ_CONTENT_SHA256","HEADER_AMZ_CHECKSUM_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","ENCODR","TextEncoder","HEX_CHARS","Uint8Array","getByteSize","data","encode","byteLength","ArrayBuffer","Blob","size","Error","hexFromBuffer","buffer","bytes","hex","length","i","j","String","fromCharCode","sha256","async","content","globalThis","crypto","subtle","digest","hmac","key","secret","importKey","name","hash","sign","sanitizeETag","etag","replaceChars","replaceAll","m","entityMap","unescapeXml","value","parseXml","input","xmlContent","replace","RE_TAG","result","match","exec","tagName","innerContent","node","trim","current","undefined","Array","isArray","push","Object","keys","encodeAsHex","c","charCodeAt","toString","toUpperCase","uriEscape","uriStr","encodeURIComponent","S3Error","code","constructor","msg","cause","super","this","S3NetworkError","S3ServiceError","status","serviceCode","body","runInBatches","tasks","batchSize","minIntervalMs","allResults","batch","task","executeBatch","batchFns","start","Date","now","settled","Promise","allSettled","map","fn","wait","resolve","setTimeout","S3mini","accessKeyId","secretAccessKey","endpoint","region","bucketName","requestSizeInBytes","requestAbortTimeout","logger","_fetch","signingKeyDate","signingKey","fetch","_validateConstructorParams","URL","_ensureValidUrl","_extractBucketName","init","_sanitize","obj","reduce","acc","C.SENSITIVE_KEYS_REDACTED","has","toLowerCase","_log","level","message","additionalData","sanitizedData","logEntry","timestamp","toISOString","details","context","substring","JSON","stringify","TypeError","C.ERROR_ACCESS_KEY_REQUIRED","C.ERROR_SECRET_KEY_REQUIRED","C.ERROR_ENDPOINT_REQUIRED","raw","candidate","test","endIndex","C.ERROR_ENDPOINT_FORMAT","_validateMethodIsGetOrHead","method","C.ERROR_PREFIX","_checkKey","C.ERROR_KEY_REQUIRED","_checkDelimiter","delimiter","C.ERROR_DELIMITER_REQUIRED","_checkPrefix","prefix","C.ERROR_PREFIX_TYPE","_checkOpts","opts","_filterIfHeaders","filteredOpts","conditionalHeaders","entries","C.IFHEADERS","_validateData","Buffer","C.ERROR_DATA_BUFFER_REQUIRED","_validateUploadPartParams","uploadId","partNumber","C.ERROR_UPLOAD_ID_REQUIRED","Number","isInteger","_sign","keyPath","query","headers","url","pathname","d","shortDatetime","getUTCFullYear","getUTCMonth","padStart","getUTCDate","fullDatetime","getUTCHours","getUTCMinutes","getUTCSeconds","credentialScope","C.AWS_REQUEST_TYPE","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","host","ignoredHeaders","canonicalHeaders","signedHeaders","sort","a","b","localeCompare","lowerKey","canonicalRequest","_buildCanonicalQueryString","stringToSign","C.AWS_ALGORITHM","_getSignatureKey","signature","_signedRequest","tolerated","withQuery","includes","baseHeaders","encodedKey","filteredOptsStrings","fromEntries","k","v","finalUrl","URLSearchParams","signedHeadersString","_sendRequest","createBucket","xmlBody","C.HEADER_CONTENT_TYPE","C.XML_CONTENT_TYPE","C.HEADER_CONTENT_LENGTH","pathSegments","split","filter","Boolean","hostParts","hostname","domain","slice","join","some","bucketExists","listObjects","maxKeys","unlimited","token","remaining","Infinity","all","batchResult","_fetchObjectBatch","objects","continuationToken","listObjectsPaged","nextContinuationToken","_buildListObjectsQuery","res","_handleListObjectsError","xmlText","text","_parseListObjectsResponse","Math","min","errorBody","parsedErrorBody","_parseErrorXml","errorCode","get","svcCode","errorMessage","statusText","out","ListBucketResult","listBucketResult","_extractObjectsFromResponse","_extractContinuationToken","response","contents","Contents","IsTruncated","isTruncated","NextContinuationToken","NextMarker","nextMarker","listMultipartUploads","uploads","listMultipartUploadsResult","getObject","ssecHeaders","getObjectResponse","getObjectArrayBuffer","arrayBuffer","getObjectJSON","json","getObjectWithETag","s","C.HEADER_ETAG","err","getObjectRaw","wholeFile","rangeFrom","rangeTo","range","getContentLength","len","objectExists","getEtag","putObject","fileType","C.DEFAULT_STREAM_CONTENT_TYPE","additionalHeaders","getMultipartUploadId","parsed","uploadResult","initiateMultipartUploadResult","InitiateMultipartUploadResult","UploadId","uploadPart","completeMultipartUpload","parts","_buildCompleteMultipartUploadXml","completeMultipartUploadResult","CompleteMultipartUploadResult","resultObj","ETag","eTag","abortMultipartUpload","error","xml","part","_executeCopyOperation","destinationKey","copySource","options","metadataDirective","metadata","contentType","storageClass","taggingDirective","websiteRedirectLocation","sourceSSECHeaders","destinationSSECHeaders","_buildSSECHeaders","_buildMetadataHeaders","_parseCopyObjectResponse","copyObject","sourceKey","sourceHeaders","destHeaders","moveObject","copyResult","deleteObject","startsWith","CopyObjectResult","copyObjectResult","lastModified","LastModified","_deleteObjectsProcess","sha256base64","chunk","subarray","btoa","fromCodePoint","base64FromBuffer","C.HEADER_AMZ_CHECKSUM_SHA256","delete","DeleteResult","deleteResult","resultMap","Map","set","deleted","Deleted","deletedArray","item","Key","errors","errorsArray","Code","Message","deleteObjects","maxBatchSize","allPromises","flat","toleratedStatusCodes","signal","AbortSignal","timeout","ok","_handleErrorResponse","e","extractErrCode","parsedBody","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.7.1",
3
+ "version": "0.8.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": {
@@ -67,27 +67,26 @@
67
67
  "devDependencies": {
68
68
  "@aws-lite/client": "^0.23.2",
69
69
  "@aws-lite/s3": "0.2.6",
70
- "@aws-sdk/client-s3": "3.940.0",
70
+ "@aws-sdk/client-s3": "3.948.0",
71
71
  "@eslint/eslintrc": "3.3.3",
72
72
  "@eslint/js": "9.39.1",
73
73
  "@rollup/plugin-node-resolve": "16.0.3",
74
74
  "@rollup/plugin-terser": "0.4.4",
75
75
  "@rollup/plugin-typescript": "12.3.0",
76
- "@types/node": "24.10.1",
77
- "@typescript-eslint/eslint-plugin": "8.48.0",
78
- "@typescript-eslint/parser": "8.48.0",
76
+ "@typescript-eslint/eslint-plugin": "8.49.0",
77
+ "@typescript-eslint/parser": "8.49.0",
79
78
  "console-table-printer": "2.15.0",
80
79
  "dotenv": "17.2.3",
81
80
  "eslint": "9.39.1",
82
81
  "eslint-config-prettier": "10.1.8",
83
82
  "jest": "30.2.0",
84
83
  "minio": "8.0.6",
85
- "prettier": "3.7.2",
84
+ "prettier": "3.7.4",
86
85
  "rimraf": "6.1.2",
87
86
  "rollup": "4.53.3",
88
87
  "rollup-plugin-dts": "6.3.0",
89
- "s3mini": "0.7.0",
90
- "tinybench": "5.1.0",
88
+ "s3mini": "0.7.1",
89
+ "tinybench": "6.0.0",
91
90
  "typescript": "5.9.3"
92
91
  },
93
92
  "overrides": {
package/src/S3.ts CHANGED
@@ -1,8 +1,22 @@
1
1
  'use strict';
2
2
 
3
3
  import * as C from './consts.js';
4
+ import {
5
+ hexFromBuffer,
6
+ sha256,
7
+ hmac,
8
+ uriResourceEscape,
9
+ getByteSize,
10
+ sanitizeETag,
11
+ uriEscape,
12
+ parseXml,
13
+ escapeXml,
14
+ base64FromBuffer,
15
+ extractErrCode,
16
+ S3NetworkError,
17
+ S3ServiceError,
18
+ } from './utils.js';
4
19
  import type * as IT from './types.js';
5
- import * as U from './utils.js';
6
20
 
7
21
  /**
8
22
  * S3 class for interacting with S3-compatible object storage services.
@@ -43,8 +57,8 @@ class S3mini {
43
57
  * @param {typeof fetch} [config.fetch=globalThis.fetch] - Custom fetch implementation to use for HTTP requests.
44
58
  * @throws {TypeError} Will throw an error if required parameters are missing or of incorrect type.
45
59
  */
46
- readonly accessKeyId: string;
47
- readonly secretAccessKey: string;
60
+ readonly #accessKeyId: string;
61
+ readonly #secretAccessKey: string;
48
62
  readonly endpoint: URL;
49
63
  readonly region: string;
50
64
  readonly bucketName: string;
@@ -66,8 +80,8 @@ class S3mini {
66
80
  fetch = globalThis.fetch,
67
81
  }: IT.S3Config) {
68
82
  this._validateConstructorParams(accessKeyId, secretAccessKey, endpoint);
69
- this.accessKeyId = accessKeyId;
70
- this.secretAccessKey = secretAccessKey;
83
+ this.#accessKeyId = accessKeyId;
84
+ this.#secretAccessKey = secretAccessKey;
71
85
  this.endpoint = new URL(this._ensureValidUrl(endpoint));
72
86
  this.region = region;
73
87
  this.bucketName = this._extractBucketName();
@@ -120,7 +134,7 @@ class S3mini {
120
134
  region: this.region,
121
135
  endpoint: this.endpoint.toString(),
122
136
  // Only include the first few characters of the access key, if it exists
123
- accessKeyId: this.accessKeyId ? `${this.accessKeyId.substring(0, 4)}...` : undefined,
137
+ accessKeyId: this.#accessKeyId ? `${this.#accessKeyId.substring(0, 4)}...` : undefined,
124
138
  }),
125
139
  };
126
140
 
@@ -292,14 +306,14 @@ class S3mini {
292
306
  }
293
307
  }
294
308
  const canonicalRequest = `${method}\n${url.pathname}\n${this._buildCanonicalQueryString(query)}\n${canonicalHeaders}\n\n${signedHeaders}\n${C.UNSIGNED_PAYLOAD}`;
295
- const stringToSign = `${C.AWS_ALGORITHM}\n${fullDatetime}\n${credentialScope}\n${U.hexFromBuffer(await U.sha256(canonicalRequest))}`;
309
+ const stringToSign = `${C.AWS_ALGORITHM}\n${fullDatetime}\n${credentialScope}\n${hexFromBuffer(await sha256(canonicalRequest))}`;
296
310
  if (shortDatetime !== this.signingKeyDate || !this.signingKey) {
297
311
  this.signingKeyDate = shortDatetime;
298
312
  this.signingKey = await this._getSignatureKey(shortDatetime);
299
313
  }
300
- const signature = U.hexFromBuffer(await U.hmac(this.signingKey, stringToSign));
314
+ const signature = hexFromBuffer(await hmac(this.signingKey, stringToSign));
301
315
  headers[C.HEADER_AUTHORIZATION] =
302
- `${C.AWS_ALGORITHM} Credential=${this.accessKeyId}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`;
316
+ `${C.AWS_ALGORITHM} Credential=${this.#accessKeyId}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`;
303
317
  return { url: url.toString(), headers };
304
318
  }
305
319
 
@@ -335,7 +349,7 @@ class S3mini {
335
349
  ...conditionalHeaders,
336
350
  };
337
351
 
338
- const encodedKey = key ? U.uriResourceEscape(key) : '';
352
+ const encodedKey = key ? uriResourceEscape(key) : '';
339
353
  const { url, headers: signedHeaders } = await this._sign(method, encodedKey, filteredOpts, baseHeaders);
340
354
  if (Object.keys(query).length > 0) {
341
355
  withQuery = true; // append query string to signed URL
@@ -360,7 +374,7 @@ class S3mini {
360
374
  * const cleanEtag = s3.sanitizeETag('"abc123"'); // Returns: 'abc123'
361
375
  */
362
376
  public sanitizeETag(etag: string): string {
363
- return U.sanitizeETag(etag);
377
+ return sanitizeETag(etag);
364
378
  }
365
379
 
366
380
  /**
@@ -376,7 +390,7 @@ class S3mini {
376
390
  `;
377
391
  const headers = {
378
392
  [C.HEADER_CONTENT_TYPE]: C.XML_CONTENT_TYPE,
379
- [C.HEADER_CONTENT_LENGTH]: U.getByteSize(xmlBody),
393
+ [C.HEADER_CONTENT_LENGTH]: getByteSize(xmlBody),
380
394
  };
381
395
  const res = await this._signedRequest('PUT', '', {
382
396
  body: xmlBody,
@@ -457,7 +471,7 @@ class S3mini {
457
471
  this._checkPrefix(prefix);
458
472
  this._checkOpts(opts);
459
473
 
460
- const keyPath = delimiter === '/' ? delimiter : U.uriEscape(delimiter);
474
+ const keyPath = delimiter === '/' ? delimiter : uriEscape(delimiter);
461
475
  const unlimited = !(maxKeys && maxKeys > 0);
462
476
  let remaining = unlimited ? Infinity : maxKeys;
463
477
  let token: string | undefined;
@@ -482,6 +496,47 @@ class S3mini {
482
496
  return all;
483
497
  }
484
498
 
499
+ /**
500
+ * Lists objects in the bucket with optional filtering and pagination using a continuation token.
501
+ * This method retrieves objects matching the criteria (paginated like listObjectsV2).
502
+ * @param {string} [delimiter='/'] - The delimiter to use for grouping objects.
503
+ * @param {string} [prefix=''] - The prefix to filter objects by.
504
+ * @param {number} [maxKeys] - The maximum number of keys to return. Uses a default value of 100.
505
+ * @param {string} [nextContinuationToken] - The nextContinuationToken to continue previous results. If not provided, starts from the beginning.
506
+ * @param {Record<string, unknown>} [opts={}] - Additional options for the request.
507
+ * @returns {Promise<{objects: IT.ListObject[] | null; nextContinuationToken?: string } | undefined | null>} A promise that resolves to an array of objects or null if the bucket is empty, along with nextContinuationToken if there are more reccords.
508
+ * @example
509
+ * // List all objects
510
+ * const { objects, nextContinuationToken } = await s3.listObjectsPaged();
511
+ *
512
+ * // List 200 objects with prefix
513
+ * const photos = await s3.listObjectsPaged('/', 'photos/', 200, "token...");
514
+ */
515
+ public async listObjectsPaged(
516
+ delimiter: string = '/',
517
+ prefix: string = '',
518
+ maxKeys: number = 100,
519
+ nextContinuationToken?: string,
520
+ opts: Record<string, unknown> = {},
521
+ ): Promise<{ objects: IT.ListObject[] | null; nextContinuationToken?: string } | undefined | null> {
522
+ this._checkDelimiter(delimiter);
523
+ this._checkPrefix(prefix);
524
+ this._checkOpts(opts);
525
+
526
+ const keyPath = delimiter === '/' ? delimiter : uriEscape(delimiter);
527
+ let token: string | undefined = nextContinuationToken;
528
+ const all: IT.ListObject[] = [];
529
+
530
+ const batchResult = await this._fetchObjectBatch(keyPath, prefix, maxKeys, token, opts);
531
+ if (batchResult === null) {
532
+ return null; // 404 - bucket not found
533
+ }
534
+
535
+ all.push(...batchResult.objects);
536
+ token = batchResult.continuationToken;
537
+ return { objects: all, nextContinuationToken: token };
538
+ }
539
+
485
540
  private async _fetchObjectBatch(
486
541
  keyPath: string,
487
542
  prefix: string,
@@ -546,7 +601,7 @@ class S3mini {
546
601
  objects: IT.ListObject[];
547
602
  continuationToken?: string;
548
603
  } {
549
- const raw = U.parseXml(xmlText) as Record<string, unknown>;
604
+ const raw = parseXml(xmlText) as Record<string, unknown>;
550
605
 
551
606
  if (typeof raw !== 'object' || !raw || 'error' in raw) {
552
607
  this._log('error', `${C.ERROR_PREFIX}Unexpected listObjects response shape: ${JSON.stringify(raw)}`);
@@ -604,7 +659,7 @@ class S3mini {
604
659
  this._checkOpts(opts);
605
660
 
606
661
  const query = { uploads: '', ...opts };
607
- const keyPath = delimiter === '/' ? delimiter : U.uriEscape(delimiter);
662
+ const keyPath = delimiter === '/' ? delimiter : uriEscape(delimiter);
608
663
 
609
664
  const res = await this._signedRequest(method, keyPath, {
610
665
  query,
@@ -618,7 +673,7 @@ class S3mini {
618
673
  // etag: res.headers.get(C.HEADER_ETAG) ?? '',
619
674
  // };
620
675
  // }
621
- const raw = U.parseXml(await res.text()) as unknown;
676
+ const raw = parseXml(await res.text()) as unknown;
622
677
  if (typeof raw !== 'object' || raw === null) {
623
678
  throw new Error(`${C.ERROR_PREFIX}Unexpected listMultipartUploads response shape`);
624
679
  }
@@ -647,10 +702,11 @@ class S3mini {
647
702
  tolerated: [200, 404, 412, 304],
648
703
  headers: ssecHeaders ? { ...ssecHeaders } : undefined,
649
704
  });
650
- if ([404, 412, 304].includes(res.status)) {
651
- return null;
705
+ const s = res.status;
706
+ if (s === 200) {
707
+ return res.text();
652
708
  }
653
- return res.text();
709
+ return null;
654
710
  }
655
711
 
656
712
  /**
@@ -671,10 +727,10 @@ class S3mini {
671
727
  tolerated: [200, 404, 412, 304],
672
728
  headers: ssecHeaders ? { ...ssecHeaders } : undefined,
673
729
  });
674
- if ([404, 412, 304].includes(res.status)) {
675
- return null;
730
+ if (res.status === 200) {
731
+ return res;
676
732
  }
677
- return res;
733
+ return null;
678
734
  }
679
735
 
680
736
  /**
@@ -695,10 +751,10 @@ class S3mini {
695
751
  tolerated: [200, 404, 412, 304],
696
752
  headers: ssecHeaders ? { ...ssecHeaders } : undefined,
697
753
  });
698
- if ([404, 412, 304].includes(res.status)) {
699
- return null;
754
+ if (res.status === 200) {
755
+ return res.arrayBuffer();
700
756
  }
701
- return res.arrayBuffer();
757
+ return null;
702
758
  }
703
759
 
704
760
  /**
@@ -719,10 +775,10 @@ class S3mini {
719
775
  tolerated: [200, 404, 412, 304],
720
776
  headers: ssecHeaders ? { ...ssecHeaders } : undefined,
721
777
  });
722
- if ([404, 412, 304].includes(res.status)) {
723
- return null;
778
+ if (res.status === 200) {
779
+ return res.json() as Promise<T>;
724
780
  }
725
- return res.json() as Promise<T>;
781
+ return null;
726
782
  }
727
783
 
728
784
  /**
@@ -744,8 +800,8 @@ class S3mini {
744
800
  tolerated: [200, 404, 412, 304],
745
801
  headers: ssecHeaders ? { ...ssecHeaders } : undefined,
746
802
  });
747
-
748
- if ([404, 412, 304].includes(res.status)) {
803
+ const s = res.status;
804
+ if (s === 404 || s === 412 || s === 304) {
749
805
  return { etag: null, data: null };
750
806
  }
751
807
 
@@ -753,7 +809,7 @@ class S3mini {
753
809
  if (!etag) {
754
810
  throw new Error(`${C.ERROR_PREFIX}ETag not found in response headers`);
755
811
  }
756
- return { etag: U.sanitizeETag(etag), data: await res.arrayBuffer() };
812
+ return { etag: sanitizeETag(etag), data: await res.arrayBuffer() };
757
813
  } catch (err) {
758
814
  this._log('error', `Error getting object ${key} with ETag: ${String(err)}`);
759
815
  throw err;
@@ -867,7 +923,7 @@ class S3mini {
867
923
  throw new Error(`${C.ERROR_PREFIX}ETag not found in response headers`);
868
924
  }
869
925
 
870
- return U.sanitizeETag(etag);
926
+ return sanitizeETag(etag);
871
927
  }
872
928
 
873
929
  /**
@@ -897,7 +953,7 @@ class S3mini {
897
953
  return this._signedRequest('PUT', key, {
898
954
  body: this._validateData(data),
899
955
  headers: {
900
- [C.HEADER_CONTENT_LENGTH]: U.getByteSize(data),
956
+ [C.HEADER_CONTENT_LENGTH]: getByteSize(data),
901
957
  [C.HEADER_CONTENT_TYPE]: fileType,
902
958
  ...additionalHeaders,
903
959
  ...ssecHeaders,
@@ -935,7 +991,7 @@ class S3mini {
935
991
  headers,
936
992
  withQuery: true,
937
993
  });
938
- const parsed = U.parseXml(await res.text()) as Record<string, unknown>;
994
+ const parsed = parseXml(await res.text()) as Record<string, unknown>;
939
995
 
940
996
  if (parsed && typeof parsed === 'object') {
941
997
  // Check for both cases of InitiateMultipartUploadResult
@@ -990,12 +1046,12 @@ class S3mini {
990
1046
  query,
991
1047
  body,
992
1048
  headers: {
993
- [C.HEADER_CONTENT_LENGTH]: U.getByteSize(data),
1049
+ [C.HEADER_CONTENT_LENGTH]: getByteSize(data),
994
1050
  ...ssecHeaders,
995
1051
  },
996
1052
  });
997
1053
 
998
- return { partNumber, etag: U.sanitizeETag(res.headers.get('etag') || '') };
1054
+ return { partNumber, etag: sanitizeETag(res.headers.get('etag') || '') };
999
1055
  }
1000
1056
 
1001
1057
  /**
@@ -1025,7 +1081,7 @@ class S3mini {
1025
1081
  const xmlBody = this._buildCompleteMultipartUploadXml(parts);
1026
1082
  const headers = {
1027
1083
  [C.HEADER_CONTENT_TYPE]: C.XML_CONTENT_TYPE,
1028
- [C.HEADER_CONTENT_LENGTH]: U.getByteSize(xmlBody),
1084
+ [C.HEADER_CONTENT_LENGTH]: getByteSize(xmlBody),
1029
1085
  };
1030
1086
 
1031
1087
  const res = await this._signedRequest('POST', key, {
@@ -1035,7 +1091,7 @@ class S3mini {
1035
1091
  withQuery: true,
1036
1092
  });
1037
1093
 
1038
- const parsed = U.parseXml(await res.text()) as Record<string, unknown>;
1094
+ const parsed = parseXml(await res.text()) as Record<string, unknown>;
1039
1095
  if (parsed && typeof parsed === 'object') {
1040
1096
  // Check for both cases
1041
1097
  const result = parsed.completeMultipartUploadResult || parsed.CompleteMultipartUploadResult || parsed;
@@ -1048,7 +1104,7 @@ class S3mini {
1048
1104
  if (etag && typeof etag === 'string') {
1049
1105
  return {
1050
1106
  ...resultObj,
1051
- etag: U.sanitizeETag(etag),
1107
+ etag: sanitizeETag(etag),
1052
1108
  } as IT.CompleteMultipartUploadResult;
1053
1109
  }
1054
1110
 
@@ -1089,7 +1145,7 @@ class S3mini {
1089
1145
  headers,
1090
1146
  withQuery: true,
1091
1147
  });
1092
- const parsed = U.parseXml(await res.text()) as Record<string, unknown>;
1148
+ const parsed = parseXml(await res.text()) as Record<string, unknown>;
1093
1149
  if (
1094
1150
  parsed &&
1095
1151
  'error' in parsed &&
@@ -1220,7 +1276,7 @@ class S3mini {
1220
1276
  this._checkKey(sourceKey);
1221
1277
  this._checkKey(destinationKey);
1222
1278
 
1223
- const copySource = `/${this.bucketName}/${U.uriEscape(sourceKey)}`;
1279
+ const copySource = `/${this.bucketName}/${uriEscape(sourceKey)}`;
1224
1280
 
1225
1281
  return this._executeCopyOperation(destinationKey, copySource, options);
1226
1282
  }
@@ -1312,7 +1368,7 @@ class S3mini {
1312
1368
  }
1313
1369
 
1314
1370
  private _parseCopyObjectResponse(xmlText: string): IT.CopyObjectResult {
1315
- const parsed = U.parseXml(xmlText) as Record<string, unknown>;
1371
+ const parsed = parseXml(xmlText) as Record<string, unknown>;
1316
1372
  if (!parsed || typeof parsed !== 'object') {
1317
1373
  throw new Error(`${C.ERROR_PREFIX}Unexpected copyObject response format`);
1318
1374
  }
@@ -1323,7 +1379,7 @@ class S3mini {
1323
1379
  throw new Error(`${C.ERROR_PREFIX}ETag not found in copyObject response`);
1324
1380
  }
1325
1381
  return {
1326
- etag: U.sanitizeETag(etag),
1382
+ etag: sanitizeETag(etag),
1327
1383
  lastModified: lastModified ? new Date(lastModified as string) : undefined,
1328
1384
  };
1329
1385
  }
@@ -1340,13 +1396,13 @@ class S3mini {
1340
1396
  }
1341
1397
 
1342
1398
  private async _deleteObjectsProcess(keys: string[]): Promise<boolean[]> {
1343
- const objectsXml = keys.map(key => `<Object><Key>${U.escapeXml(key)}</Key></Object>`).join('');
1399
+ const objectsXml = keys.map(key => `<Object><Key>${escapeXml(key)}</Key></Object>`).join('');
1344
1400
  const xmlBody = '<Delete>' + objectsXml + '</Delete>';
1345
1401
  const query = { delete: '' };
1346
- const sha256base64 = U.base64FromBuffer(await U.sha256(xmlBody));
1402
+ const sha256base64 = base64FromBuffer(await sha256(xmlBody));
1347
1403
  const headers = {
1348
1404
  [C.HEADER_CONTENT_TYPE]: C.XML_CONTENT_TYPE,
1349
- [C.HEADER_CONTENT_LENGTH]: U.getByteSize(xmlBody),
1405
+ [C.HEADER_CONTENT_LENGTH]: getByteSize(xmlBody),
1350
1406
  [C.HEADER_AMZ_CHECKSUM_SHA256]: sha256base64,
1351
1407
  };
1352
1408
 
@@ -1356,7 +1412,7 @@ class S3mini {
1356
1412
  headers,
1357
1413
  withQuery: true,
1358
1414
  });
1359
- const parsed = U.parseXml(await res.text()) as Record<string, unknown>;
1415
+ const parsed = parseXml(await res.text()) as Record<string, unknown>;
1360
1416
  if (!parsed || typeof parsed !== 'object') {
1361
1417
  throw new Error(`${C.ERROR_PREFIX}Failed to delete objects: ${JSON.stringify(parsed)}`);
1362
1418
  }
@@ -1444,7 +1500,7 @@ class S3mini {
1444
1500
  const res = await this._fetch(url, {
1445
1501
  method,
1446
1502
  headers,
1447
- body: ['GET', 'HEAD'].includes(method) ? undefined : body,
1503
+ body: method === 'GET' || method === 'HEAD' ? undefined : body,
1448
1504
  signal: this.requestAbortTimeout ? AbortSignal.timeout(this.requestAbortTimeout) : undefined,
1449
1505
  });
1450
1506
  this._log('info', `Response status: ${res.status}, tolerated: ${toleratedStatusCodes.join(',')}`);
@@ -1454,9 +1510,9 @@ class S3mini {
1454
1510
  await this._handleErrorResponse(res);
1455
1511
  return res;
1456
1512
  } catch (err: unknown) {
1457
- const code = U.extractErrCode(err);
1513
+ const code = extractErrCode(err);
1458
1514
  if (code && ['ENOTFOUND', 'EAI_AGAIN', 'ETIMEDOUT', 'ECONNREFUSED'].includes(code)) {
1459
- throw new U.S3NetworkError(`S3 network error: ${code}`, code, err);
1515
+ throw new S3NetworkError(`S3 network error: ${code}`, code, err);
1460
1516
  }
1461
1517
  throw err;
1462
1518
  }
@@ -1466,7 +1522,7 @@ class S3mini {
1466
1522
  if (headers.get('content-type') !== 'application/xml') {
1467
1523
  return {};
1468
1524
  }
1469
- const parsedBody = U.parseXml(body);
1525
+ const parsedBody = parseXml(body);
1470
1526
  if (
1471
1527
  !parsedBody ||
1472
1528
  typeof parsedBody !== 'object' ||
@@ -1492,7 +1548,7 @@ class S3mini {
1492
1548
  'error',
1493
1549
  `${C.ERROR_PREFIX}Request failed with status ${res.status}: ${svcCode} - ${errorMessage},err body: ${errorBody}`,
1494
1550
  );
1495
- throw new U.S3ServiceError(`S3 returned ${res.status} – ${svcCode}`, res.status, svcCode, errorBody);
1551
+ throw new S3ServiceError(`S3 returned ${res.status} – ${svcCode}`, res.status, svcCode, errorBody);
1496
1552
  }
1497
1553
 
1498
1554
  private _buildCanonicalQueryString(queryParams: Record<string, unknown>): string {
@@ -1505,10 +1561,10 @@ class S3mini {
1505
1561
  .join('&');
1506
1562
  }
1507
1563
  private async _getSignatureKey(dateStamp: string): Promise<ArrayBuffer> {
1508
- const kDate = await U.hmac(`AWS4${this.secretAccessKey}`, dateStamp);
1509
- const kRegion = await U.hmac(kDate, this.region);
1510
- const kService = await U.hmac(kRegion, C.S3_SERVICE);
1511
- return await U.hmac(kService, C.AWS_REQUEST_TYPE);
1564
+ const kDate = await hmac(`AWS4${this.#secretAccessKey}`, dateStamp);
1565
+ const kRegion = await hmac(kDate, this.region);
1566
+ const kService = await hmac(kRegion, C.S3_SERVICE);
1567
+ return await hmac(kService, C.AWS_REQUEST_TYPE);
1512
1568
  }
1513
1569
  }
1514
1570