s3mini 0.9.2 → 0.9.3

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
@@ -515,6 +515,21 @@ const url = await s3.getPresignedUrl('GET', 'report.pdf', 3600, {
515
515
  });
516
516
  ```
517
517
 
518
+ **Signed headers (enforce headers on the client request):**
519
+
520
+ ```typescript
521
+ // Upload URL that requires Content-Type — client MUST send this exact header
522
+ const url = await s3.getPresignedUrl('PUT', 'uploads/data.json', 300, {}, {
523
+ 'Content-Type': 'application/json',
524
+ });
525
+
526
+ await fetch(url, {
527
+ method: 'PUT',
528
+ body: JSON.stringify({ ok: true }),
529
+ headers: { 'Content-Type': 'application/json' },
530
+ });
531
+ ```
532
+
518
533
  **Method signature:**
519
534
 
520
535
  ```typescript
@@ -523,6 +538,7 @@ getPresignedUrl(
523
538
  key: string,
524
539
  expiresIn?: number, // Default: 3600 (1 hour), max: 604800 (7 days)
525
540
  queryParams?: Record<string, string>,
541
+ headers?: Record<string, string>, // HTTP headers to sign (e.g. Content-Type)
526
542
  ): Promise<string>
527
543
  ```
528
544
 
@@ -532,6 +548,7 @@ getPresignedUrl(
532
548
  - Works with both virtual-hosted-style and path-style endpoints.
533
549
  - Special characters and unicode in keys are handled automatically.
534
550
  - Throws `TypeError` for empty keys or out-of-range `expiresIn`.
551
+ - When `headers` are provided, they are included in `X-Amz-SignedHeaders` and the signature. The client consuming the URL must send those exact headers with matching values. The `host` header is always signed automatically.
535
552
 
536
553
  ---
537
554
 
@@ -603,7 +620,7 @@ await s3.copyObject('secret.dat', 'backup/secret.dat', {
603
620
  | `getContentLength(key, ssec?)` | `Promise<number>` | Get size in bytes |
604
621
  | `copyObject(source, dest, opts?)` | `Promise<CopyObjectResult>` | Server-side copy |
605
622
  | `moveObject(source, dest, opts?)` | `Promise<CopyObjectResult>` | Copy + delete |
606
- | `getPresignedUrl(method, key, expiresIn?, queryParams?)` | `Promise<string>` | Generate pre-signed URL |
623
+ | `getPresignedUrl(method, key, expiresIn?, queryParams?, headers?)` | `Promise<string>` | Generate pre-signed URL |
607
624
  | `getMultipartUploadId(key, type?, ssec?, headers?)` | `Promise<string>` | Init multipart |
608
625
  | `uploadPart(key, uploadId, data, partNum, opts?, ssec?, headers?)` | `Promise<UploadPart>` | Upload part |
609
626
  | `completeMultipartUpload(key, uploadId, parts)` | `Promise<CompleteResult>` | Complete multipart |
package/dist/s3mini.d.ts CHANGED
@@ -597,20 +597,24 @@ declare class S3mini {
597
597
  * @param {'GET' | 'PUT'} method - HTTP method ('GET' for download, 'PUT' for upload)
598
598
  * @param {string} key - The object key/path
599
599
  * @param {number} [expiresIn=3600] - URL expiration time in seconds (1–604800)
600
- * @param {Record<string, string>} [queryParams={}] - Additional query parameters to sign
600
+ * @param {Record<string, string>} [queryParams={}] - Additional query parameters to include in the URL
601
+ * @param {Record<string, string>} [headers={}] - HTTP headers to sign. The consumer of the URL
602
+ * MUST send these exact headers with matching values. The `host` header is always signed automatically.
601
603
  * @returns {Promise<string>} Pre-signed URL string
602
604
  * @throws {TypeError} If key is empty or expiresIn is out of range
603
605
  * @example
604
606
  * // Download URL valid for 1 hour
605
607
  * const url = await s3.getPresignedUrl('GET', 'photos/vacation.jpg');
606
608
  *
607
- * // Upload URL valid for 5 minutes
608
- * const url = await s3.getPresignedUrl('PUT', 'uploads/file.bin', 300);
609
+ * // Upload URL valid for 5 minutes with signed Content-Type
610
+ * const url = await s3.getPresignedUrl('PUT', 'uploads/file.bin', 300, {}, {
611
+ * 'Content-Type': 'application/octet-stream',
612
+ * });
609
613
  *
610
- * // Client-side usage (no credentials needed)
611
- * await fetch(url, { method: 'PUT', body: data });
614
+ * // Client-side usage (must include signed headers)
615
+ * await fetch(url, { method: 'PUT', body: data, headers: { 'Content-Type': 'application/octet-stream' } });
612
616
  */
613
- getPresignedUrl(method: 'GET' | 'PUT', key: string, expiresIn?: number, queryParams?: Record<string, string>): Promise<string>;
617
+ getPresignedUrl(method: 'GET' | 'PUT', key: string, expiresIn?: number, queryParams?: Record<string, string>, headers?: Record<string, string>): Promise<string>;
614
618
  private _presign;
615
619
  private _getSignatureKey;
616
620
  }
package/dist/s3mini.js CHANGED
@@ -155,7 +155,7 @@ const unescapeXml = (value) => value.replaceAll(/&(quot|apos|lt|gt|amp);/g, m =>
155
155
  */
156
156
  const parseXml = (input) => {
157
157
  const xmlContent = input.replace(/<\?xml[^?]*\?>\s*/, '');
158
- const RE_TAG = /<([A-Za-z_][\w\-.]*)[^>]*>([\s\S]*?)<\/\1>/gm;
158
+ const RE_TAG = /<([A-Za-z_][\w\-.]*)[^>]*?>([\s\S]*?)<\/\1>/gm;
159
159
  const result = {}; // strong type, no `any`
160
160
  let match;
161
161
  while ((match = RE_TAG.exec(xmlContent)) !== null) {
@@ -772,13 +772,17 @@ class S3mini {
772
772
  this._checkOpts(opts);
773
773
  const keyPath = delimiter === '/' ? delimiter : uriEscape(delimiter);
774
774
  let token = nextContinuationToken;
775
+ let remaining = maxKeys;
775
776
  const all = [];
776
- const batchResult = await this._fetchObjectBatch(keyPath, prefix, maxKeys, token, opts);
777
- if (batchResult === null) {
778
- return null; // 404 - bucket not found
779
- }
780
- all.push(...batchResult.objects);
781
- token = batchResult.continuationToken;
777
+ do {
778
+ const batchResult = await this._fetchObjectBatch(keyPath, prefix, remaining, token, opts);
779
+ if (batchResult === null) {
780
+ return null; // 404 - bucket not found
781
+ }
782
+ all.push(...batchResult.objects);
783
+ remaining -= batchResult.objects.length;
784
+ token = batchResult.continuationToken;
785
+ } while (token && remaining > 0);
782
786
  return { objects: all, nextContinuationToken: token };
783
787
  }
784
788
  async _fetchObjectBatch(keyPath, prefix, remaining, token, opts) {
@@ -1789,27 +1793,31 @@ class S3mini {
1789
1793
  * @param {'GET' | 'PUT'} method - HTTP method ('GET' for download, 'PUT' for upload)
1790
1794
  * @param {string} key - The object key/path
1791
1795
  * @param {number} [expiresIn=3600] - URL expiration time in seconds (1–604800)
1792
- * @param {Record<string, string>} [queryParams={}] - Additional query parameters to sign
1796
+ * @param {Record<string, string>} [queryParams={}] - Additional query parameters to include in the URL
1797
+ * @param {Record<string, string>} [headers={}] - HTTP headers to sign. The consumer of the URL
1798
+ * MUST send these exact headers with matching values. The `host` header is always signed automatically.
1793
1799
  * @returns {Promise<string>} Pre-signed URL string
1794
1800
  * @throws {TypeError} If key is empty or expiresIn is out of range
1795
1801
  * @example
1796
1802
  * // Download URL valid for 1 hour
1797
1803
  * const url = await s3.getPresignedUrl('GET', 'photos/vacation.jpg');
1798
1804
  *
1799
- * // Upload URL valid for 5 minutes
1800
- * const url = await s3.getPresignedUrl('PUT', 'uploads/file.bin', 300);
1805
+ * // Upload URL valid for 5 minutes with signed Content-Type
1806
+ * const url = await s3.getPresignedUrl('PUT', 'uploads/file.bin', 300, {}, {
1807
+ * 'Content-Type': 'application/octet-stream',
1808
+ * });
1801
1809
  *
1802
- * // Client-side usage (no credentials needed)
1803
- * await fetch(url, { method: 'PUT', body: data });
1810
+ * // Client-side usage (must include signed headers)
1811
+ * await fetch(url, { method: 'PUT', body: data, headers: { 'Content-Type': 'application/octet-stream' } });
1804
1812
  */
1805
- async getPresignedUrl(method, key, expiresIn = 3600, queryParams = {}) {
1813
+ async getPresignedUrl(method, key, expiresIn = 3600, queryParams = {}, headers = {}) {
1806
1814
  this._checkKey(key);
1807
1815
  if (!Number.isFinite(expiresIn) || expiresIn <= 0 || expiresIn > 604800) {
1808
1816
  throw new TypeError(`${ERROR_PREFIX}expiresIn must be between 1 and 604800 seconds`);
1809
1817
  }
1810
- return this._presign(method, uriResourceEscape(key), Math.floor(expiresIn), queryParams);
1818
+ return this._presign(method, uriResourceEscape(key), Math.floor(expiresIn), queryParams, headers);
1811
1819
  }
1812
- async _presign(method, keyPath, expiresIn, queryParams) {
1820
+ async _presign(method, keyPath, expiresIn, queryParams, headers) {
1813
1821
  const url = new URL(this.endpoint);
1814
1822
  if (keyPath.length > 0) {
1815
1823
  url.pathname =
@@ -1822,7 +1830,16 @@ class S3mini {
1822
1830
  const shortDatetime = `${year}${month}${day}`;
1823
1831
  const fullDatetime = `${shortDatetime}T${String(d.getUTCHours()).padStart(2, '0')}${String(d.getUTCMinutes()).padStart(2, '0')}${String(d.getUTCSeconds()).padStart(2, '0')}Z`;
1824
1832
  const credentialScope = `${shortDatetime}/${this.region}/${S3_SERVICE}/${AWS_REQUEST_TYPE}`;
1825
- const signedHeaders = 'host';
1833
+ const headerEntries = [['host', url.host]];
1834
+ for (const [key, value] of Object.entries(headers)) {
1835
+ const lowerKey = key.toLowerCase();
1836
+ if (lowerKey !== 'host') {
1837
+ headerEntries.push([lowerKey, String(value).trim()]);
1838
+ }
1839
+ }
1840
+ headerEntries.sort(([a], [b]) => a.localeCompare(b));
1841
+ const canonicalHeaders = headerEntries.map(([k, v]) => `${k}:${v}`).join('\n');
1842
+ const signedHeaders = headerEntries.map(([k]) => k).join(';');
1826
1843
  const allQueryParams = {
1827
1844
  ...queryParams,
1828
1845
  'X-Amz-Algorithm': AWS_ALGORITHM,
@@ -1832,7 +1849,7 @@ class S3mini {
1832
1849
  'X-Amz-SignedHeaders': signedHeaders,
1833
1850
  };
1834
1851
  const canonicalQueryString = this._buildCanonicalQueryString(allQueryParams);
1835
- const canonicalRequest = `${method}\n${url.pathname}\n${canonicalQueryString}\nhost:${url.host}\n\n${signedHeaders}\n${UNSIGNED_PAYLOAD}`;
1852
+ const canonicalRequest = `${method}\n${url.pathname}\n${canonicalQueryString}\n${canonicalHeaders}\n\n${signedHeaders}\n${UNSIGNED_PAYLOAD}`;
1836
1853
  const stringToSign = `${AWS_ALGORITHM}\n${fullDatetime}\n${credentialScope}\n${hexFromBuffer(await sha256(canonicalRequest))}`;
1837
1854
  if (shortDatetime !== this.signingKeyDate || !this.signingKey) {
1838
1855
  this.signingKeyDate = shortDatetime;
@@ -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.MIN_PART_SIZE","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.IFHEADERS","C.ERROR_UPLOAD_ID_REQUIRED","C.HEADER_HOST","C.S3_SERVICE","C.AWS_REQUEST_TYPE","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","C.HEADER_AMZ_DATE","C.AWS_ALGORITHM","C.HEADER_AUTHORIZATION","C.HEADER_CONTENT_TYPE","C.XML_CONTENT_TYPE","C.HEADER_CONTENT_LENGTH","C.LIST_TYPE","C.HEADER_ETAG","C.DEFAULT_STREAM_CONTENT_TYPE","C.HEADER_AMZ_CHECKSUM_SHA256"],"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.MIN_PART_SIZE","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.IFHEADERS","C.ERROR_UPLOAD_ID_REQUIRED","C.HEADER_HOST","C.S3_SERVICE","C.AWS_REQUEST_TYPE","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","C.HEADER_AMZ_DATE","C.AWS_ALGORITHM","C.HEADER_AUTHORIZATION","C.HEADER_CONTENT_TYPE","C.XML_CONTENT_TYPE","C.HEADER_CONTENT_LENGTH","C.LIST_TYPE","C.HEADER_ETAG","C.DEFAULT_STREAM_CONTENT_TYPE","C.HEADER_AMZ_CHECKSUM_SHA256"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const t="AWS4-HMAC-SHA256",e="aws4_request",r="s3",s="UNSIGNED-PAYLOAD",o="application/octet-stream",n="application/xml",a=new Set(["accesskeyid","secretaccesskey","sessiontoken","password","token"]),i=new Set(["if-match","if-none-match","if-modified-since","if-unmodified-since"]),c="x-amz-content-sha256",h="x-amz-checksum-sha256",u="host",l="content-type",d="content-length",y="etag",p="[s3mini] ",f=p+"accessKeyId must be a non-empty string",w=p+"secretAccessKey must be a non-empty string",g=p+"endpoint must be a non-empty string",b=p+"endpoint must be a valid URL. Expected format: https://<host>[:port][/base-path]",m=p+"key must be a non-empty string",$=p+"uploadId must be a non-empty string",E=p+"prefix must be a string",j=p+"delimiter must be a string",T=new TextEncoder,A=new Uint8Array([48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102]),O=t=>{if("string"==typeof t)return T.encode(t).byteLength;if(t instanceof ArrayBuffer||t instanceof Uint8Array)return t.byteLength;if(t instanceof Blob||t instanceof File)return t.size;if(t instanceof ReadableStream)return NaN;throw Error("Unsupported data type")},S=t=>"string"==typeof t?T.encode(t):t instanceof ArrayBuffer?new Uint8Array(t):t instanceof Uint8Array?t:"undefined"!=typeof Buffer&&Buffer.isBuffer(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):null,U=t=>{const e=new Uint8Array(t),r=new Uint8Array(2*e.length);for(let t=0,s=0;t<e.length;t++)r[s++]=A[e[t]>>4],r[s++]=A[15&e[t]];return String.fromCodePoint(...r)},_=async t=>{const e=T.encode(t);return await globalThis.crypto.subtle.digest("SHA-256",e)},x=async(t,e)=>{const r=await globalThis.crypto.subtle.importKey("raw","string"==typeof t?T.encode(t):t,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),s=T.encode(e);return await globalThis.crypto.subtle.sign("HMAC",r,s)},C=t=>{const e={'"':"","&quot;":"","&#34;":""};return t.replaceAll(/(^("|&quot;|&#34;))|(("|&quot;|&#34;)$)/g,t=>e[t]||"")},P={"&quot;":'"',"&apos;":"'","&lt;":"<","&gt;":">","&amp;":"&"},v=t=>t.replaceAll(/&(quot|apos|lt|gt|amp);/g,t=>P[t]??t),q=t=>{const e=t.replace(/<\?xml[^?]*\?>\s*/,""),r=/<([A-Za-z_][\w\-.]*)[^>]*>([\s\S]*?)<\/\1>/gm,s={};let o;for(;null!==(o=r.exec(e));){const t=o[1],e=o[2],r=e?q(e):v(e?.trim()||"");if(!t)continue;const n=s[t];void 0===n?s[t]=r:Array.isArray(n)?n.push(r):s[t]=[n,r]}return Object.keys(s).length>0?s:v(e.trim())},z=t=>"%"+(t.codePointAt(0)??0).toString(16).toUpperCase(),D=t=>encodeURIComponent(t).replaceAll(/[!'()*]/g,z),R=t=>D(t).replaceAll("%2F","/");class M extends Error{code;constructor(t,e,r){super(t),this.name=new.target.name,this.code=e,this.cause=r}}class k extends M{}class H extends M{status;serviceCode;body;constructor(t,e,r,s){super(t,r),this.status=e,this.serviceCode=r,this.body=s}}const N=async(t,e=30,r=0)=>{const s=[];let o=[];for(const r of t)o.push(r),o.length===e&&(await n(o),o=[]);return o.length&&await n(o),s;async function n(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))}}},I=(t,e)=>{const r=new Uint8Array(e);let s=0;for(;s<e&&t.length>0;){const o=t[0],n=e-s;o.byteLength<=n?(r.set(o,s),s+=o.byteLength,t.shift()):(r.set(o.subarray(0,n),s),t[0]=o.subarray(n),s=e)}return r.buffer};class B{#t;#e;endpoint;region;bucketName;requestSizeInBytes;requestAbortTimeout;logger;t;minPartSize;signingKeyDate;signingKey;constructor({accessKeyId:t,secretAccessKey:e,endpoint:r,region:s="auto",requestSizeInBytes:o=8388608,requestAbortTimeout:n,logger:a,fetch:i=globalThis.fetch,minPartSize:c=8388608}){this.o(t,e,r),this.#t=t,this.#e=e,this.endpoint=new URL(this.i(r)),this.region=s,this.bucketName=this.h(),this.requestSizeInBytes=o,this.requestAbortTimeout=n,this.logger=a,this.t=(t,e)=>i(t,e),this.minPartSize=c}u(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r]=a.has(r.toLowerCase())?"[REDACTED]":"object"==typeof t[r]&&null!==t[r]?this.u(t[r]):t[r],e),Array.isArray(t)?[]:{})}l(t,e,r={}){if(this.logger&&"function"==typeof this.logger[t]){const s=this.u(r),o={timestamp:(new Date).toISOString(),level:t,message:e,details:s,context:this.u({region:this.region,endpoint:""+this.endpoint,accessKeyId:this.#t?this.#t.substring(0,4)+"...":void 0})};this.logger[t](JSON.stringify(o))}}o(t,e,r){if("string"!=typeof t)throw new TypeError(f);if("string"!=typeof e)throw new TypeError(w);if("string"!=typeof r||0===r.trim().length)throw new TypeError(g)}p(){return this.#t.trim().length>0&&this.#e.trim().length>0}i(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=`${b} But provided: "${t}"`;throw this.l("error",e),new TypeError(e)}}m(t){if("GET"!==t&&"HEAD"!==t)throw this.l("error",p+"method must be either GET or HEAD"),Error(p+"method must be either GET or HEAD")}$(t){if("string"!=typeof t||0===t.trim().length)throw this.l("error",m),new TypeError(m)}j(t){if("string"!=typeof t||0===t.trim().length)throw this.l("error",j),new TypeError(j)}T(t){if("string"!=typeof t)throw this.l("error",E),new TypeError(E)}A(t){if("object"!=typeof t)throw this.l("error",p+"opts must be an object"),new TypeError(p+"opts must be an object")}O(t){const e={},r={};for(const[s,o]of Object.entries(t))i.has(s.toLowerCase())?r[s]=o:e[s]=o;return{filteredOpts:e,conditionalHeaders:r}}S(t,e,r,s,o){if(this.$(t),"string"!=typeof e||0===e.trim().length)throw this.l("error",$),new TypeError($);if(!Number.isInteger(s)||s<=0)throw this.l("error",p+"partNumber must be a positive integer"),new TypeError(p+"partNumber must be a positive integer");return this.A(o),r}async U(o,n,a={},i={}){const h=new URL(this.endpoint);if(n&&n.length>0&&(h.pathname="/"===h.pathname?"/"+n.replace(/^\/+/,""):`${h.pathname}/${n.replace(/^\/+/,"")}`),!this.p())return i[u]=h.host,{url:""+h,headers:i};const l=new Date,d=`${l.getUTCFullYear()}${(l.getUTCMonth()+1+"").padStart(2,"0")}${(l.getUTCDate()+"").padStart(2,"0")}`,y=`${d}T${(l.getUTCHours()+"").padStart(2,"0")}${(l.getUTCMinutes()+"").padStart(2,"0")}${(l.getUTCSeconds()+"").padStart(2,"0")}Z`,p=`${d}/${this.region}/${r}/${e}`;i[c]=s,i["x-amz-date"]=y,i[u]=h.host;const f=new Set(["authorization","content-length","content-type","user-agent"]);let w="",g="";for(const[t,e]of Object.entries(i).sort(([t],[e])=>t.localeCompare(e))){const r=t.toLowerCase();f.has(r)||(w&&(w+="\n",g+=";"),w+=`${r}:${(e+"").trim()}`,g+=r)}const b=`${o}\n${h.pathname}\n${this._(a)}\n${w}\n\n${g}\n${s}`,m=`${t}\n${y}\n${p}\n${U(await _(b))}`;d===this.signingKeyDate&&this.signingKey||(this.signingKeyDate=d,this.signingKey=await this.C(d));const $=U(await x(this.signingKey,m));return i.authorization=`${t} Credential=${this.#t}/${p}, SignedHeaders=${g}, Signature=${$}`,{url:""+h,headers:i}}async P(t,e,{query:r={},body:o="",headers:n={},tolerated:a=[],withQuery:i=!1}={}){const{filteredOpts:h,conditionalHeaders:u}=["GET","HEAD"].includes(t)?this.O(r):{filteredOpts:r,conditionalHeaders:{}},l={[c]:s,...n,...u},d=e?R(e):"",{url:y,headers:p}=await this.U(t,d,h,l);Object.keys(r).length>0&&(i=!0);const f=i&&Object.keys(h).length?`${y}?${this._(h)}`:y,w=Object.fromEntries(Object.entries(p).map(([t,e])=>[t,e+""]));return this.v(f,t,w,o,a)}sanitizeETag(t){return C(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={[l]:n,[d]:O(t)};return 200===(await this.P("PUT","",{body:t,headers:e,tolerated:[200,404,403,409]})).status}h(){const t=this.endpoint,e=t.pathname.split("/").filter(Boolean);if(e.length>0&&"string"==typeof e[0])return e[0];const r=t.hostname.split(".");if(r.length>=3){const t=r.slice(-2).join(".");if(["amazonaws.com","digitaloceanspaces.com","cloudflare.com"].some(e=>t.includes(e))&&"string"==typeof r[0])return r[0]}return r[0]||""}async bucketExists(){return 200===(await this.P("HEAD","",{tolerated:[200,404,403]})).status}async listObjects(t="/",e="",r,s={}){this.j(t),this.T(e),this.A(s);const o="/"===t?t:D(t),n=!(r&&r>0);let a,i=n?1/0:r;const c=[];do{const t=await this.q(o,e,i,a,s);if(null===t)return null;c.push(...t.objects),n||(i-=t.objects.length),a=t.continuationToken}while(a&&i>0);return c}async listObjectsPaged(t="/",e="",r=100,s,o={}){this.j(t),this.T(e),this.A(o);const n="/"===t?t:D(t);let a=s;const i=[],c=await this.q(n,e,r,a,o);return null===c?null:(i.push(...c.objects),a=c.continuationToken,{objects:i,nextContinuationToken:a})}async q(t,e,r,s,o){const n=this.D(e,r,s,o),a=await this.P("GET",t,{query:n,withQuery:!0,tolerated:[200,404]});if(404===a.status)return a.body?.cancel(),null;200!==a.status&&await this.R(a);const i=await a.text();return this.M(i)}D(t,e,r,s){return{"list-type":"2","max-keys":Math.min(e,1e3)+"",...t?{prefix:t}:{},...r?{"continuation-token":r}:{},...s}}async R(t){const e=await t.text(),r=this.k(t.headers,e),s=t.headers.get("x-amz-error-code")??r.svcCode??"Unknown",o=t.headers.get("x-amz-error-message")??r.errorMessage??t.statusText;throw this.l("error",`${p}Request failed with status ${t.status}: ${s} - ${o}, err body: ${e}`),Error(`${p}Request failed with status ${t.status}: ${s} - ${o}, err body: ${e}`)}M(t){const e=q(t);if("object"!=typeof e||!e||"error"in e)throw this.l("error",`${p}Unexpected listObjects response shape: ${JSON.stringify(e)}`),Error(p+"Unexpected listObjects response shape");const r=e.ListBucketResult||e.listBucketResult||e;return{objects:this.H(r),continuationToken:this.N(r)}}H(t){const e=t.Contents||t.contents,r=t.CommonPrefixes||t.commonPrefixes,s=[];if(e){const t=Array.isArray(e)?e:[e];for(const e of t){const t=e;s.push({Key:t.Key??t.key??"",Size:+(t.Size??t.size??0),LastModified:new Date(t.LastModified??t.lastModified??0),ETag:t.ETag??t.etag??"",StorageClass:t.StorageClass??t.storageClass??""})}}if(r){const t=Array.isArray(r)?r:[r];for(const e of t){const t=e.Prefix||e.prefix;"string"==typeof t&&s.push({Key:t,Size:0,LastModified:new Date(0),ETag:"",StorageClass:""})}}return s}N(t){if("true"===t.IsTruncated||"true"===t.isTruncated)return t.NextContinuationToken||t.nextContinuationToken||t.NextMarker||t.nextMarker}async listMultipartUploads(t="/",e="",r="GET",s={}){this.j(t),this.T(e),this.m(r),this.A(s);const o={uploads:"",...s},n="/"===t?t:D(t),a=await this.P(r,n,{query:o,withQuery:!0}),i=q(await a.text());if("object"!=typeof i||null===i)throw Error(p+"Unexpected listMultipartUploads response shape");return"listMultipartUploadsResult"in i?i.listMultipartUploadsResult:i}async getObject(t,e={},r){const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===s.status?s.text():(s.body?.cancel(),null)}async getObjectResponse(t,e={},r){const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===s.status?s:(s.body?.cancel(),null)}async getObjectArrayBuffer(t,e={},r){const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===s.status?s.arrayBuffer():(s.body?.cancel(),null)}async getObjectJSON(t,e={},r){const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===s.status?s.json():(s.body?.cancel(),null)}async getObjectWithETag(t,e={},r){try{const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0}),o=s.status;if(404===o||412===o||304===o)return s.body?.cancel(),{etag:null,data:null};const n=s.headers.get(y);if(!n)throw Error(p+"ETag not found in response headers");return{etag:C(n),data:await s.arrayBuffer()}}catch(e){throw this.l("error",`Error getting object ${t} with ETag: ${e+""}`),e}}async getObjectRaw(t,e=!0,r=0,s,o={},n){let a={};return e||(a=void 0===s?{range:`bytes=${r}-`}:{range:`bytes=${r}-${s-1}`}),this.P("GET",t,{query:{...o},headers:{...a,...n},withQuery:!0})}async getContentLength(t,e){try{const r=(await this.P("HEAD",t,{headers:e?{...e}:void 0})).headers.get(d);return r?+r:0}catch(e){throw this.l("error",`Error getting content length for object ${t}: ${e+""}`),Error(`${p}Error getting content length for object ${t}: ${e+""}`,{cause:e})}}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={},r){const s=await this.P("HEAD",t,{query:e,tolerated:[200,304,404,412],headers:r?{...r}:void 0});if(404===s.status)return null;if(412===s.status||304===s.status)return null;const o=s.headers.get(y);if(!o)throw Error(p+"ETag not found in response headers");return C(o)}async putObject(t,e,r=o,s,n,a){const i=a??O(e);return this.P("PUT",t,{body:e,headers:{...i&&{[d]:i},[l]:r,...n,...s},tolerated:[200]})}async putAnyObject(t,e,r=o,s,n,a){const i=a??O(e);return!Number.isNaN(i)&&i<=this.minPartSize?this.putObject(t,e,r,s,n,a):(this.$(t),this.I(t,e,r,s,n))}async I(t,e,r,s,o){const n=await this.getMultipartUploadId(t,r,s,o);try{const r=await this.B(t,n,e,s,o);r.sort((t,e)=>t.partNumber-e.partNumber);const a=await this.completeMultipartUpload(t,n,r);return this.L(a.etag||"")}catch(e){throw await this.G(t,n),e}}async K(t,e,r,s,o,n=4,a=3){const i=this.minPartSize,c=r instanceof Blob?r.size:r.byteLength,h=Math.ceil(c/i),u=Array(h);let l=0;const d=async()=>{for(;;){const n=l++;if(n>=h)return;const d=n*i,y=Math.min(d+i,c),p=r instanceof Blob?await r.slice(d,y).arrayBuffer():r.subarray(d,y);u[n]=await this.F(t,e,p,n+1,s,o,a)}};return await Promise.all(Array.from({length:Math.min(n,h)},()=>d())),u}async B(t,e,r,s,o,n=4,a=3){const i=S(r);return i?this.K(t,e,i,s,o,n,a):r instanceof Blob?this.K(t,e,r,s,o,n,a):this.X(t,e,r,s,o,n,a)}async X(t,e,r,s,o,n=4,a=3){const i=[],c=new Set;let h=0;for await(const u of async function*(t,e){const r=S(t);if(r)yield*function*(t,e){for(let r=0;r<t.byteLength;r+=e)yield t.subarray(r,Math.min(r+e,t.byteLength))}(r,e);else if(t instanceof Blob)yield*function*(t,e){for(let r=0;r<t.size;r+=e)yield t.slice(r,Math.min(r+e,t.size))}(t,e);else{if(!(t instanceof ReadableStream))throw new TypeError(p+"Unsupported data type for multipart upload");yield*async function*(t,e){const r=t.getReader(),s=[];let o=0;try{for(;;){const{done:t,value:n}=await r.read();if(n)for(s.push(n),o+=n.byteLength;o>=e;)yield I(s,e),o-=e;if(t)break}o>0&&(yield I(s,o))}finally{r.releaseLock()}}(t,e)}}(r,this.minPartSize)){const r=++h;for(;c.size>=n;)await Promise.race(c);const l=this.F(t,e,u,r,s,o,a).then(t=>{i.push(t),c.delete(l)});c.add(l)}return await Promise.all(c),i}async F(t,e,r,s,o,n,a=3){for(let i=0;i<=a;i++)try{return await this.uploadPart(t,e,r,s,{},o,n)}catch(t){if(i===a)throw t;await new Promise(t=>setTimeout(t,Math.min(1e3*2**i,1e4)))}throw Error("Unreachable")}async G(t,e){try{await this.abortMultipartUpload(t,e)}catch(t){this.l("warn","Failed to abort multipart upload: "+t)}}L(t){if("undefined"!=typeof Response){const e=new Headers;return t&&e.set("ETag",t),new Response("",{status:200,headers:e})}return{ok:!0,status:200,headers:new Map([["ETag",t]])}}async getMultipartUploadId(t,e=o,r,s){if(this.$(t),"string"!=typeof e)throw new TypeError(p+"fileType must be a string");const n={[l]:e,...r,...s},a=await this.P("POST",t,{query:{uploads:""},headers:n,withQuery:!0}),i=q(await a.text());if(i&&"object"==typeof i){const t=i.initiateMultipartUploadResult||i.InitiateMultipartUploadResult;if(t&&"object"==typeof t){const e=t.uploadId||t.UploadId;if(e&&"string"==typeof e)return e}}throw Error(`${p}Failed to create multipart upload: ${JSON.stringify(i)}`)}async uploadPart(t,e,r,s,o={},n,a){const i=this.S(t,e,r,s,o),c={uploadId:e,partNumber:s,...o},h=O(r),u=await this.P("PUT",t,{query:c,body:i,headers:{...h&&!Number.isNaN(h)&&{[d]:h},...n,...a}});return{partNumber:s,etag:C(u.headers.get("etag")||"")}}async completeMultipartUpload(t,e,r){const s={uploadId:e},o=this.J(r),a={[l]:n,[d]:O(o)},i=await this.P("POST",t,{query:s,body:o,headers:a,withQuery:!0}),c=q(await i.text());if(c&&"object"==typeof c){const t=c.completeMultipartUploadResult||c.CompleteMultipartUploadResult||c;if(t&&"object"==typeof t){const e=t,r=e.ETag||e.eTag||e.etag;return r&&"string"==typeof r?{...e,etag:C(r)}:t}}throw Error(`${p}Failed to complete multipart upload: ${JSON.stringify(c)}`)}async abortMultipartUpload(t,e,r){if(this.$(t),!e)throw new TypeError($);const s={uploadId:e},o={[l]:n,...r?{...r}:{}},a=await this.P("DELETE",t,{query:s,headers:o,withQuery:!0}),i=q(await a.text());if(i&&"error"in i&&"object"==typeof i.error&&null!==i.error&&"message"in i.error)throw this.l("error",`${p}Failed to abort multipart upload: ${i.error.message+""}`),Error(`${p}Failed to abort multipart upload: ${i.error.message+""}`);return{status:"Aborted",key:t,uploadId:e,response:i}}J(t){let e="<CompleteMultipartUpload>";for(const r of t)e+=`<Part><PartNumber>${r.partNumber}</PartNumber><ETag>${r.etag}</ETag></Part>`;return e+="</CompleteMultipartUpload>",e}async W(t,e,r){const{metadataDirective:s="COPY",metadata:o={},contentType:n,storageClass:a,taggingDirective:i,websiteRedirectLocation:c,sourceSSECHeaders:h={},destinationSSECHeaders:u={},additionalHeaders:d={}}=r,y={"x-amz-copy-source":e,"x-amz-metadata-directive":s,...d,...n&&{[l]:n},...a&&{"x-amz-storage-class":a},...i&&{"x-amz-tagging-directive":i},...c&&{"x-amz-website-redirect-location":c},...this.Z(h,u),..."REPLACE"===s?this.Y(o):{}};try{const e=await this.P("PUT",t,{headers:y,tolerated:[200]});return this.V(await e.text())}catch(e){throw this.l("error","Error in copy operation to "+t,{error:e+""}),e}}copyObject(t,e,r={}){this.$(t),this.$(e);const s=`/${this.bucketName}/${D(t)}`;return this.W(e,s,r)}Z(t,e){const r={};for(const[s,o]of Object.entries({...t,...e}))void 0!==o&&(r[s]=o);return r}async moveObject(t,e,r={}){try{const s=await this.copyObject(t,e,r);if(!await this.deleteObject(t))throw Error(p+"Failed to delete source object after successful copy");return s}catch(r){throw this.l("error",`Error moving object from ${t} to ${e}`,{error:r+""}),r}}Y(t){const e={};for(const[r,s]of Object.entries(t))e[r.startsWith("x-amz-meta-")?r:"x-amz-meta-"+r]=s;return e}V(t){const e=q(t);if(!e||"object"!=typeof e)throw Error(p+"Unexpected copyObject response format");const r=e.CopyObjectResult||e.copyObjectResult||e,s=r.ETag||r.eTag||r.etag,o=r.LastModified||r.lastModified;if(!s||"string"!=typeof s)throw Error(p+"ETag not found in copyObject response");return{etag:C(s),lastModified:o?new Date(o):void 0}}async deleteObject(t){const e=await this.P("DELETE",t,{tolerated:[200,204]});return 200===e.status||204===e.status}async tt(t){const e="<Delete>"+t.map(t=>{return`<Object><Key>${e=t,e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&apos;")}</Key></Object>`;var e}).join("")+"</Delete>",r=(t=>{const e=new Uint8Array(t);let r="";for(let t=0;t<e.length;t+=32768){const s=e.subarray(t,t+32768);r+=btoa(String.fromCodePoint(...s))}return r})(await _(e)),s={[l]:n,[d]:O(e),[h]:r},o=await this.P("POST","",{query:{delete:""},body:e,headers:s,withQuery:!0}),a=q(await o.text());if(!a||"object"!=typeof a)throw Error(`${p}Failed to delete objects: ${JSON.stringify(a)}`);const i=a.DeleteResult||a.deleteResult||a,c=new Map;for(const e of t)c.set(e,!1);const u=i.deleted||i.Deleted;if(u){const t=Array.isArray(u)?u:[u];for(const e of t)if(e&&"object"==typeof e){const t=e.key||e.Key;t&&"string"==typeof t&&c.set(t,!0)}}const y=i.error||i.Error;if(y){const t=Array.isArray(y)?y:[y];for(const e of t)if(e&&"object"==typeof e){const t=e.key||e.Key,r=e.code||e.Code,s=e.message||e.Message;t&&"string"==typeof t&&(c.set(t,!1),this.l("warn","Failed to delete object: "+t,{code:r||"Unknown",message:s||"Unknown error"}))}}return t.map(t=>c.get(t)||!1)}async deleteObjects(t){if(!Array.isArray(t)||0===t.length)return[];const e=1e3;if(t.length>e){const r=[];for(let s=0;s<t.length;s+=e){const o=t.slice(s,s+e);r.push(this.tt(o))}return(await Promise.all(r)).flat()}return await this.tt(t)}async v(t,e,r,s,o=[]){this.l("info",`Sending ${e} request to ${t}`,"headers: "+JSON.stringify(r));try{const n=await this.t(t,{method:e,headers:r,body:"GET"===e||"HEAD"===e?void 0:s,signal:this.requestAbortTimeout?AbortSignal.timeout(this.requestAbortTimeout):void 0});return this.l("info",`Response status: ${n.status}, tolerated: ${o.join(",")}`),n.ok||o.includes(n.status)||await this.et(n),n}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 k("S3 network error: "+e,e,t);throw t}}k(t,e){if("application/xml"!==t.get("content-type"))return{};const r=q(e);if(!r||"object"!=typeof r||!("Error"in r)||!r.Error||"object"!=typeof r.Error)return{};const s=r.Error;return{svcCode:"Code"in s&&"string"==typeof s.Code?s.Code:void 0,errorMessage:"Message"in s&&"string"==typeof s.Message?s.Message:void 0}}async et(t){const e=await t.text(),r=this.k(t.headers,e),s=t.headers.get("x-amz-error-code")??r.svcCode??"Unknown",o=t.headers.get("x-amz-error-message")??r.errorMessage??t.statusText;throw this.l("error",`${p}Request failed with status ${t.status}: ${s} - ${o},err body: ${e}`),new H(`S3 returned ${t.status} – ${s}`,t.status,s,e)}_(t){return t&&0!==Object.keys(t).length?Object.keys(t).map(e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`).sort((t,e)=>t.localeCompare(e)).join("&"):""}async getPresignedUrl(t,e,r=3600,s={}){if(this.$(e),!Number.isFinite(r)||r<=0||r>604800)throw new TypeError(p+"expiresIn must be between 1 and 604800 seconds");return this.rt(t,R(e),Math.floor(r),s)}async rt(o,n,a,i){const c=new URL(this.endpoint);n.length>0&&(c.pathname="/"===c.pathname?"/"+n.replace(/^\/+/,""):`${c.pathname}/${n.replace(/^\/+/,"")}`);const h=new Date,u=`${h.getUTCFullYear()}${(h.getUTCMonth()+1+"").padStart(2,"0")}${(h.getUTCDate()+"").padStart(2,"0")}`,l=`${u}T${(h.getUTCHours()+"").padStart(2,"0")}${(h.getUTCMinutes()+"").padStart(2,"0")}${(h.getUTCSeconds()+"").padStart(2,"0")}Z`,d=`${u}/${this.region}/${r}/${e}`,y="host",p={...i,"X-Amz-Algorithm":t,"X-Amz-Credential":`${this.#t}/${d}`,"X-Amz-Date":l,"X-Amz-Expires":a+"","X-Amz-SignedHeaders":y},f=this._(p),w=`${o}\n${c.pathname}\n${f}\nhost:${c.host}\n\n${y}\n${s}`,g=`${t}\n${l}\n${d}\n${U(await _(w))}`;u===this.signingKeyDate&&this.signingKey||(this.signingKeyDate=u,this.signingKey=await this.C(u));const b=U(await x(this.signingKey,g));return`${c.origin}${c.pathname}?${f}&X-Amz-Signature=${b}`}async C(t){const s=await x("AWS4"+this.#e,t),o=await x(s,this.region),n=await x(o,r);return await x(n,e)}}export{B as S3mini,B as default,N as runInBatches,C as sanitizeETag};
1
+ const t="AWS4-HMAC-SHA256",e="aws4_request",r="s3",s="UNSIGNED-PAYLOAD",o="application/octet-stream",n="application/xml",i=new Set(["accesskeyid","secretaccesskey","sessiontoken","password","token"]),a=new Set(["if-match","if-none-match","if-modified-since","if-unmodified-since"]),c="x-amz-content-sha256",h="x-amz-checksum-sha256",u="host",l="content-type",d="content-length",y="etag",f="[s3mini] ",p=f+"accessKeyId must be a non-empty string",w=f+"secretAccessKey must be a non-empty string",g=f+"endpoint must be a non-empty string",b=f+"endpoint must be a valid URL. Expected format: https://<host>[:port][/base-path]",m=f+"key must be a non-empty string",$=f+"uploadId must be a non-empty string",E=f+"prefix must be a string",j=f+"delimiter must be a string",T=new TextEncoder,O=new Uint8Array([48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102]),A=t=>{if("string"==typeof t)return T.encode(t).byteLength;if(t instanceof ArrayBuffer||t instanceof Uint8Array)return t.byteLength;if(t instanceof Blob||t instanceof File)return t.size;if(t instanceof ReadableStream)return NaN;throw Error("Unsupported data type")},S=t=>"string"==typeof t?T.encode(t):t instanceof ArrayBuffer?new Uint8Array(t):t instanceof Uint8Array?t:"undefined"!=typeof Buffer&&Buffer.isBuffer(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):null,U=t=>{const e=new Uint8Array(t),r=new Uint8Array(2*e.length);for(let t=0,s=0;t<e.length;t++)r[s++]=O[e[t]>>4],r[s++]=O[15&e[t]];return String.fromCodePoint(...r)},_=async t=>{const e=T.encode(t);return await globalThis.crypto.subtle.digest("SHA-256",e)},x=async(t,e)=>{const r=await globalThis.crypto.subtle.importKey("raw","string"==typeof t?T.encode(t):t,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),s=T.encode(e);return await globalThis.crypto.subtle.sign("HMAC",r,s)},C=t=>{const e={'"':"","&quot;":"","&#34;":""};return t.replaceAll(/(^("|&quot;|&#34;))|(("|&quot;|&#34;)$)/g,t=>e[t]||"")},P={"&quot;":'"',"&apos;":"'","&lt;":"<","&gt;":">","&amp;":"&"},v=t=>t.replaceAll(/&(quot|apos|lt|gt|amp);/g,t=>P[t]??t),q=t=>{const e=t.replace(/<\?xml[^?]*\?>\s*/,""),r=/<([A-Za-z_][\w\-.]*)[^>]*?>([\s\S]*?)<\/\1>/gm,s={};let o;for(;null!==(o=r.exec(e));){const t=o[1],e=o[2],r=e?q(e):v(e?.trim()||"");if(!t)continue;const n=s[t];void 0===n?s[t]=r:Array.isArray(n)?n.push(r):s[t]=[n,r]}return Object.keys(s).length>0?s:v(e.trim())},z=t=>"%"+(t.codePointAt(0)??0).toString(16).toUpperCase(),D=t=>encodeURIComponent(t).replaceAll(/[!'()*]/g,z),R=t=>D(t).replaceAll("%2F","/");class M extends Error{code;constructor(t,e,r){super(t),this.name=new.target.name,this.code=e,this.cause=r}}class k extends M{}class H extends M{status;serviceCode;body;constructor(t,e,r,s){super(t,r),this.status=e,this.serviceCode=r,this.body=s}}const N=async(t,e=30,r=0)=>{const s=[];let o=[];for(const r of t)o.push(r),o.length===e&&(await n(o),o=[]);return o.length&&await n(o),s;async function n(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))}}},I=(t,e)=>{const r=new Uint8Array(e);let s=0;for(;s<e&&t.length>0;){const o=t[0],n=e-s;o.byteLength<=n?(r.set(o,s),s+=o.byteLength,t.shift()):(r.set(o.subarray(0,n),s),t[0]=o.subarray(n),s=e)}return r.buffer};class B{#t;#e;endpoint;region;bucketName;requestSizeInBytes;requestAbortTimeout;logger;t;minPartSize;signingKeyDate;signingKey;constructor({accessKeyId:t,secretAccessKey:e,endpoint:r,region:s="auto",requestSizeInBytes:o=8388608,requestAbortTimeout:n,logger:i,fetch:a=globalThis.fetch,minPartSize:c=8388608}){this.o(t,e,r),this.#t=t,this.#e=e,this.endpoint=new URL(this.i(r)),this.region=s,this.bucketName=this.h(),this.requestSizeInBytes=o,this.requestAbortTimeout=n,this.logger=i,this.t=(t,e)=>a(t,e),this.minPartSize=c}u(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r]=i.has(r.toLowerCase())?"[REDACTED]":"object"==typeof t[r]&&null!==t[r]?this.u(t[r]):t[r],e),Array.isArray(t)?[]:{})}l(t,e,r={}){if(this.logger&&"function"==typeof this.logger[t]){const s=this.u(r),o={timestamp:(new Date).toISOString(),level:t,message:e,details:s,context:this.u({region:this.region,endpoint:""+this.endpoint,accessKeyId:this.#t?this.#t.substring(0,4)+"...":void 0})};this.logger[t](JSON.stringify(o))}}o(t,e,r){if("string"!=typeof t)throw new TypeError(p);if("string"!=typeof e)throw new TypeError(w);if("string"!=typeof r||0===r.trim().length)throw new TypeError(g)}p(){return this.#t.trim().length>0&&this.#e.trim().length>0}i(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=`${b} But provided: "${t}"`;throw this.l("error",e),new TypeError(e)}}m(t){if("GET"!==t&&"HEAD"!==t)throw this.l("error",f+"method must be either GET or HEAD"),Error(f+"method must be either GET or HEAD")}$(t){if("string"!=typeof t||0===t.trim().length)throw this.l("error",m),new TypeError(m)}j(t){if("string"!=typeof t||0===t.trim().length)throw this.l("error",j),new TypeError(j)}T(t){if("string"!=typeof t)throw this.l("error",E),new TypeError(E)}O(t){if("object"!=typeof t)throw this.l("error",f+"opts must be an object"),new TypeError(f+"opts must be an object")}A(t){const e={},r={};for(const[s,o]of Object.entries(t))a.has(s.toLowerCase())?r[s]=o:e[s]=o;return{filteredOpts:e,conditionalHeaders:r}}S(t,e,r,s,o){if(this.$(t),"string"!=typeof e||0===e.trim().length)throw this.l("error",$),new TypeError($);if(!Number.isInteger(s)||s<=0)throw this.l("error",f+"partNumber must be a positive integer"),new TypeError(f+"partNumber must be a positive integer");return this.O(o),r}async U(o,n,i={},a={}){const h=new URL(this.endpoint);if(n&&n.length>0&&(h.pathname="/"===h.pathname?"/"+n.replace(/^\/+/,""):`${h.pathname}/${n.replace(/^\/+/,"")}`),!this.p())return a[u]=h.host,{url:""+h,headers:a};const l=new Date,d=`${l.getUTCFullYear()}${(l.getUTCMonth()+1+"").padStart(2,"0")}${(l.getUTCDate()+"").padStart(2,"0")}`,y=`${d}T${(l.getUTCHours()+"").padStart(2,"0")}${(l.getUTCMinutes()+"").padStart(2,"0")}${(l.getUTCSeconds()+"").padStart(2,"0")}Z`,f=`${d}/${this.region}/${r}/${e}`;a[c]=s,a["x-amz-date"]=y,a[u]=h.host;const p=new Set(["authorization","content-length","content-type","user-agent"]);let w="",g="";for(const[t,e]of Object.entries(a).sort(([t],[e])=>t.localeCompare(e))){const r=t.toLowerCase();p.has(r)||(w&&(w+="\n",g+=";"),w+=`${r}:${(e+"").trim()}`,g+=r)}const b=`${o}\n${h.pathname}\n${this._(i)}\n${w}\n\n${g}\n${s}`,m=`${t}\n${y}\n${f}\n${U(await _(b))}`;d===this.signingKeyDate&&this.signingKey||(this.signingKeyDate=d,this.signingKey=await this.C(d));const $=U(await x(this.signingKey,m));return a.authorization=`${t} Credential=${this.#t}/${f}, SignedHeaders=${g}, Signature=${$}`,{url:""+h,headers:a}}async P(t,e,{query:r={},body:o="",headers:n={},tolerated:i=[],withQuery:a=!1}={}){const{filteredOpts:h,conditionalHeaders:u}=["GET","HEAD"].includes(t)?this.A(r):{filteredOpts:r,conditionalHeaders:{}},l={[c]:s,...n,...u},d=e?R(e):"",{url:y,headers:f}=await this.U(t,d,h,l);Object.keys(r).length>0&&(a=!0);const p=a&&Object.keys(h).length?`${y}?${this._(h)}`:y,w=Object.fromEntries(Object.entries(f).map(([t,e])=>[t,e+""]));return this.v(p,t,w,o,i)}sanitizeETag(t){return C(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={[l]:n,[d]:A(t)};return 200===(await this.P("PUT","",{body:t,headers:e,tolerated:[200,404,403,409]})).status}h(){const t=this.endpoint,e=t.pathname.split("/").filter(Boolean);if(e.length>0&&"string"==typeof e[0])return e[0];const r=t.hostname.split(".");if(r.length>=3){const t=r.slice(-2).join(".");if(["amazonaws.com","digitaloceanspaces.com","cloudflare.com"].some(e=>t.includes(e))&&"string"==typeof r[0])return r[0]}return r[0]||""}async bucketExists(){return 200===(await this.P("HEAD","",{tolerated:[200,404,403]})).status}async listObjects(t="/",e="",r,s={}){this.j(t),this.T(e),this.O(s);const o="/"===t?t:D(t),n=!(r&&r>0);let i,a=n?1/0:r;const c=[];do{const t=await this.q(o,e,a,i,s);if(null===t)return null;c.push(...t.objects),n||(a-=t.objects.length),i=t.continuationToken}while(i&&a>0);return c}async listObjectsPaged(t="/",e="",r=100,s,o={}){this.j(t),this.T(e),this.O(o);const n="/"===t?t:D(t);let i=s,a=r;const c=[];do{const t=await this.q(n,e,a,i,o);if(null===t)return null;c.push(...t.objects),a-=t.objects.length,i=t.continuationToken}while(i&&a>0);return{objects:c,nextContinuationToken:i}}async q(t,e,r,s,o){const n=this.D(e,r,s,o),i=await this.P("GET",t,{query:n,withQuery:!0,tolerated:[200,404]});if(404===i.status)return i.body?.cancel(),null;200!==i.status&&await this.R(i);const a=await i.text();return this.M(a)}D(t,e,r,s){return{"list-type":"2","max-keys":Math.min(e,1e3)+"",...t?{prefix:t}:{},...r?{"continuation-token":r}:{},...s}}async R(t){const e=await t.text(),r=this.k(t.headers,e),s=t.headers.get("x-amz-error-code")??r.svcCode??"Unknown",o=t.headers.get("x-amz-error-message")??r.errorMessage??t.statusText;throw this.l("error",`${f}Request failed with status ${t.status}: ${s} - ${o}, err body: ${e}`),Error(`${f}Request failed with status ${t.status}: ${s} - ${o}, err body: ${e}`)}M(t){const e=q(t);if("object"!=typeof e||!e||"error"in e)throw this.l("error",`${f}Unexpected listObjects response shape: ${JSON.stringify(e)}`),Error(f+"Unexpected listObjects response shape");const r=e.ListBucketResult||e.listBucketResult||e;return{objects:this.H(r),continuationToken:this.N(r)}}H(t){const e=t.Contents||t.contents,r=t.CommonPrefixes||t.commonPrefixes,s=[];if(e){const t=Array.isArray(e)?e:[e];for(const e of t){const t=e;s.push({Key:t.Key??t.key??"",Size:+(t.Size??t.size??0),LastModified:new Date(t.LastModified??t.lastModified??0),ETag:t.ETag??t.etag??"",StorageClass:t.StorageClass??t.storageClass??""})}}if(r){const t=Array.isArray(r)?r:[r];for(const e of t){const t=e.Prefix||e.prefix;"string"==typeof t&&s.push({Key:t,Size:0,LastModified:new Date(0),ETag:"",StorageClass:""})}}return s}N(t){if("true"===t.IsTruncated||"true"===t.isTruncated)return t.NextContinuationToken||t.nextContinuationToken||t.NextMarker||t.nextMarker}async listMultipartUploads(t="/",e="",r="GET",s={}){this.j(t),this.T(e),this.m(r),this.O(s);const o={uploads:"",...s},n="/"===t?t:D(t),i=await this.P(r,n,{query:o,withQuery:!0}),a=q(await i.text());if("object"!=typeof a||null===a)throw Error(f+"Unexpected listMultipartUploads response shape");return"listMultipartUploadsResult"in a?a.listMultipartUploadsResult:a}async getObject(t,e={},r){const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===s.status?s.text():(s.body?.cancel(),null)}async getObjectResponse(t,e={},r){const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===s.status?s:(s.body?.cancel(),null)}async getObjectArrayBuffer(t,e={},r){const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===s.status?s.arrayBuffer():(s.body?.cancel(),null)}async getObjectJSON(t,e={},r){const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===s.status?s.json():(s.body?.cancel(),null)}async getObjectWithETag(t,e={},r){try{const s=await this.P("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0}),o=s.status;if(404===o||412===o||304===o)return s.body?.cancel(),{etag:null,data:null};const n=s.headers.get(y);if(!n)throw Error(f+"ETag not found in response headers");return{etag:C(n),data:await s.arrayBuffer()}}catch(e){throw this.l("error",`Error getting object ${t} with ETag: ${e+""}`),e}}async getObjectRaw(t,e=!0,r=0,s,o={},n){let i={};return e||(i=void 0===s?{range:`bytes=${r}-`}:{range:`bytes=${r}-${s-1}`}),this.P("GET",t,{query:{...o},headers:{...i,...n},withQuery:!0})}async getContentLength(t,e){try{const r=(await this.P("HEAD",t,{headers:e?{...e}:void 0})).headers.get(d);return r?+r:0}catch(e){throw this.l("error",`Error getting content length for object ${t}: ${e+""}`),Error(`${f}Error getting content length for object ${t}: ${e+""}`,{cause:e})}}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={},r){const s=await this.P("HEAD",t,{query:e,tolerated:[200,304,404,412],headers:r?{...r}:void 0});if(404===s.status)return null;if(412===s.status||304===s.status)return null;const o=s.headers.get(y);if(!o)throw Error(f+"ETag not found in response headers");return C(o)}async putObject(t,e,r=o,s,n,i){const a=i??A(e);return this.P("PUT",t,{body:e,headers:{...a&&{[d]:a},[l]:r,...n,...s},tolerated:[200]})}async putAnyObject(t,e,r=o,s,n,i){const a=i??A(e);return!Number.isNaN(a)&&a<=this.minPartSize?this.putObject(t,e,r,s,n,i):(this.$(t),this.I(t,e,r,s,n))}async I(t,e,r,s,o){const n=await this.getMultipartUploadId(t,r,s,o);try{const r=await this.B(t,n,e,s,o);r.sort((t,e)=>t.partNumber-e.partNumber);const i=await this.completeMultipartUpload(t,n,r);return this.L(i.etag||"")}catch(e){throw await this.G(t,n),e}}async K(t,e,r,s,o,n=4,i=3){const a=this.minPartSize,c=r instanceof Blob?r.size:r.byteLength,h=Math.ceil(c/a),u=Array(h);let l=0;const d=async()=>{for(;;){const n=l++;if(n>=h)return;const d=n*a,y=Math.min(d+a,c),f=r instanceof Blob?await r.slice(d,y).arrayBuffer():r.subarray(d,y);u[n]=await this.F(t,e,f,n+1,s,o,i)}};return await Promise.all(Array.from({length:Math.min(n,h)},()=>d())),u}async B(t,e,r,s,o,n=4,i=3){const a=S(r);return a?this.K(t,e,a,s,o,n,i):r instanceof Blob?this.K(t,e,r,s,o,n,i):this.X(t,e,r,s,o,n,i)}async X(t,e,r,s,o,n=4,i=3){const a=[],c=new Set;let h=0;for await(const u of async function*(t,e){const r=S(t);if(r)yield*function*(t,e){for(let r=0;r<t.byteLength;r+=e)yield t.subarray(r,Math.min(r+e,t.byteLength))}(r,e);else if(t instanceof Blob)yield*function*(t,e){for(let r=0;r<t.size;r+=e)yield t.slice(r,Math.min(r+e,t.size))}(t,e);else{if(!(t instanceof ReadableStream))throw new TypeError(f+"Unsupported data type for multipart upload");yield*async function*(t,e){const r=t.getReader(),s=[];let o=0;try{for(;;){const{done:t,value:n}=await r.read();if(n)for(s.push(n),o+=n.byteLength;o>=e;)yield I(s,e),o-=e;if(t)break}o>0&&(yield I(s,o))}finally{r.releaseLock()}}(t,e)}}(r,this.minPartSize)){const r=++h;for(;c.size>=n;)await Promise.race(c);const l=this.F(t,e,u,r,s,o,i).then(t=>{a.push(t),c.delete(l)});c.add(l)}return await Promise.all(c),a}async F(t,e,r,s,o,n,i=3){for(let a=0;a<=i;a++)try{return await this.uploadPart(t,e,r,s,{},o,n)}catch(t){if(a===i)throw t;await new Promise(t=>setTimeout(t,Math.min(1e3*2**a,1e4)))}throw Error("Unreachable")}async G(t,e){try{await this.abortMultipartUpload(t,e)}catch(t){this.l("warn","Failed to abort multipart upload: "+t)}}L(t){if("undefined"!=typeof Response){const e=new Headers;return t&&e.set("ETag",t),new Response("",{status:200,headers:e})}return{ok:!0,status:200,headers:new Map([["ETag",t]])}}async getMultipartUploadId(t,e=o,r,s){if(this.$(t),"string"!=typeof e)throw new TypeError(f+"fileType must be a string");const n={[l]:e,...r,...s},i=await this.P("POST",t,{query:{uploads:""},headers:n,withQuery:!0}),a=q(await i.text());if(a&&"object"==typeof a){const t=a.initiateMultipartUploadResult||a.InitiateMultipartUploadResult;if(t&&"object"==typeof t){const e=t.uploadId||t.UploadId;if(e&&"string"==typeof e)return e}}throw Error(`${f}Failed to create multipart upload: ${JSON.stringify(a)}`)}async uploadPart(t,e,r,s,o={},n,i){const a=this.S(t,e,r,s,o),c={uploadId:e,partNumber:s,...o},h=A(r),u=await this.P("PUT",t,{query:c,body:a,headers:{...h&&!Number.isNaN(h)&&{[d]:h},...n,...i}});return{partNumber:s,etag:C(u.headers.get("etag")||"")}}async completeMultipartUpload(t,e,r){const s={uploadId:e},o=this.J(r),i={[l]:n,[d]:A(o)},a=await this.P("POST",t,{query:s,body:o,headers:i,withQuery:!0}),c=q(await a.text());if(c&&"object"==typeof c){const t=c.completeMultipartUploadResult||c.CompleteMultipartUploadResult||c;if(t&&"object"==typeof t){const e=t,r=e.ETag||e.eTag||e.etag;return r&&"string"==typeof r?{...e,etag:C(r)}:t}}throw Error(`${f}Failed to complete multipart upload: ${JSON.stringify(c)}`)}async abortMultipartUpload(t,e,r){if(this.$(t),!e)throw new TypeError($);const s={uploadId:e},o={[l]:n,...r?{...r}:{}},i=await this.P("DELETE",t,{query:s,headers:o,withQuery:!0}),a=q(await i.text());if(a&&"error"in a&&"object"==typeof a.error&&null!==a.error&&"message"in a.error)throw this.l("error",`${f}Failed to abort multipart upload: ${a.error.message+""}`),Error(`${f}Failed to abort multipart upload: ${a.error.message+""}`);return{status:"Aborted",key:t,uploadId:e,response:a}}J(t){let e="<CompleteMultipartUpload>";for(const r of t)e+=`<Part><PartNumber>${r.partNumber}</PartNumber><ETag>${r.etag}</ETag></Part>`;return e+="</CompleteMultipartUpload>",e}async W(t,e,r){const{metadataDirective:s="COPY",metadata:o={},contentType:n,storageClass:i,taggingDirective:a,websiteRedirectLocation:c,sourceSSECHeaders:h={},destinationSSECHeaders:u={},additionalHeaders:d={}}=r,y={"x-amz-copy-source":e,"x-amz-metadata-directive":s,...d,...n&&{[l]:n},...i&&{"x-amz-storage-class":i},...a&&{"x-amz-tagging-directive":a},...c&&{"x-amz-website-redirect-location":c},...this.Z(h,u),..."REPLACE"===s?this.Y(o):{}};try{const e=await this.P("PUT",t,{headers:y,tolerated:[200]});return this.V(await e.text())}catch(e){throw this.l("error","Error in copy operation to "+t,{error:e+""}),e}}copyObject(t,e,r={}){this.$(t),this.$(e);const s=`/${this.bucketName}/${D(t)}`;return this.W(e,s,r)}Z(t,e){const r={};for(const[s,o]of Object.entries({...t,...e}))void 0!==o&&(r[s]=o);return r}async moveObject(t,e,r={}){try{const s=await this.copyObject(t,e,r);if(!await this.deleteObject(t))throw Error(f+"Failed to delete source object after successful copy");return s}catch(r){throw this.l("error",`Error moving object from ${t} to ${e}`,{error:r+""}),r}}Y(t){const e={};for(const[r,s]of Object.entries(t))e[r.startsWith("x-amz-meta-")?r:"x-amz-meta-"+r]=s;return e}V(t){const e=q(t);if(!e||"object"!=typeof e)throw Error(f+"Unexpected copyObject response format");const r=e.CopyObjectResult||e.copyObjectResult||e,s=r.ETag||r.eTag||r.etag,o=r.LastModified||r.lastModified;if(!s||"string"!=typeof s)throw Error(f+"ETag not found in copyObject response");return{etag:C(s),lastModified:o?new Date(o):void 0}}async deleteObject(t){const e=await this.P("DELETE",t,{tolerated:[200,204]});return 200===e.status||204===e.status}async tt(t){const e="<Delete>"+t.map(t=>{return`<Object><Key>${e=t,e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&apos;")}</Key></Object>`;var e}).join("")+"</Delete>",r=(t=>{const e=new Uint8Array(t);let r="";for(let t=0;t<e.length;t+=32768){const s=e.subarray(t,t+32768);r+=btoa(String.fromCodePoint(...s))}return r})(await _(e)),s={[l]:n,[d]:A(e),[h]:r},o=await this.P("POST","",{query:{delete:""},body:e,headers:s,withQuery:!0}),i=q(await o.text());if(!i||"object"!=typeof i)throw Error(`${f}Failed to delete objects: ${JSON.stringify(i)}`);const a=i.DeleteResult||i.deleteResult||i,c=new Map;for(const e of t)c.set(e,!1);const u=a.deleted||a.Deleted;if(u){const t=Array.isArray(u)?u:[u];for(const e of t)if(e&&"object"==typeof e){const t=e.key||e.Key;t&&"string"==typeof t&&c.set(t,!0)}}const y=a.error||a.Error;if(y){const t=Array.isArray(y)?y:[y];for(const e of t)if(e&&"object"==typeof e){const t=e.key||e.Key,r=e.code||e.Code,s=e.message||e.Message;t&&"string"==typeof t&&(c.set(t,!1),this.l("warn","Failed to delete object: "+t,{code:r||"Unknown",message:s||"Unknown error"}))}}return t.map(t=>c.get(t)||!1)}async deleteObjects(t){if(!Array.isArray(t)||0===t.length)return[];const e=1e3;if(t.length>e){const r=[];for(let s=0;s<t.length;s+=e){const o=t.slice(s,s+e);r.push(this.tt(o))}return(await Promise.all(r)).flat()}return await this.tt(t)}async v(t,e,r,s,o=[]){this.l("info",`Sending ${e} request to ${t}`,"headers: "+JSON.stringify(r));try{const n=await this.t(t,{method:e,headers:r,body:"GET"===e||"HEAD"===e?void 0:s,signal:this.requestAbortTimeout?AbortSignal.timeout(this.requestAbortTimeout):void 0});return this.l("info",`Response status: ${n.status}, tolerated: ${o.join(",")}`),n.ok||o.includes(n.status)||await this.et(n),n}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 k("S3 network error: "+e,e,t);throw t}}k(t,e){if("application/xml"!==t.get("content-type"))return{};const r=q(e);if(!r||"object"!=typeof r||!("Error"in r)||!r.Error||"object"!=typeof r.Error)return{};const s=r.Error;return{svcCode:"Code"in s&&"string"==typeof s.Code?s.Code:void 0,errorMessage:"Message"in s&&"string"==typeof s.Message?s.Message:void 0}}async et(t){const e=await t.text(),r=this.k(t.headers,e),s=t.headers.get("x-amz-error-code")??r.svcCode??"Unknown",o=t.headers.get("x-amz-error-message")??r.errorMessage??t.statusText;throw this.l("error",`${f}Request failed with status ${t.status}: ${s} - ${o},err body: ${e}`),new H(`S3 returned ${t.status} – ${s}`,t.status,s,e)}_(t){return t&&0!==Object.keys(t).length?Object.keys(t).map(e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`).sort((t,e)=>t.localeCompare(e)).join("&"):""}async getPresignedUrl(t,e,r=3600,s={},o={}){if(this.$(e),!Number.isFinite(r)||r<=0||r>604800)throw new TypeError(f+"expiresIn must be between 1 and 604800 seconds");return this.rt(t,R(e),Math.floor(r),s,o)}async rt(o,n,i,a,c){const h=new URL(this.endpoint);n.length>0&&(h.pathname="/"===h.pathname?"/"+n.replace(/^\/+/,""):`${h.pathname}/${n.replace(/^\/+/,"")}`);const u=new Date,l=`${u.getUTCFullYear()}${(u.getUTCMonth()+1+"").padStart(2,"0")}${(u.getUTCDate()+"").padStart(2,"0")}`,d=`${l}T${(u.getUTCHours()+"").padStart(2,"0")}${(u.getUTCMinutes()+"").padStart(2,"0")}${(u.getUTCSeconds()+"").padStart(2,"0")}Z`,y=`${l}/${this.region}/${r}/${e}`,f=[["host",h.host]];for(const[t,e]of Object.entries(c)){const r=t.toLowerCase();"host"!==r&&f.push([r,(e+"").trim()])}f.sort(([t],[e])=>t.localeCompare(e));const p=f.map(([t,e])=>`${t}:${e}`).join("\n"),w=f.map(([t])=>t).join(";"),g={...a,"X-Amz-Algorithm":t,"X-Amz-Credential":`${this.#t}/${y}`,"X-Amz-Date":d,"X-Amz-Expires":i+"","X-Amz-SignedHeaders":w},b=this._(g),m=`${o}\n${h.pathname}\n${b}\n${p}\n\n${w}\n${s}`,$=`${t}\n${d}\n${y}\n${U(await _(m))}`;l===this.signingKeyDate&&this.signingKey||(this.signingKeyDate=l,this.signingKey=await this.C(l));const E=U(await x(this.signingKey,$));return`${h.origin}${h.pathname}?${b}&X-Amz-Signature=${E}`}async C(t){const s=await x("AWS4"+this.#e,t),o=await x(s,this.region),n=await x(o,r);return await x(n,e)}}export{B as S3mini,B as default,N as runInBatches,C 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","DEFAULT_STREAM_CONTENT_TYPE","XML_CONTENT_TYPE","SENSITIVE_KEYS_REDACTED","Set","IFHEADERS","HEADER_AMZ_CONTENT_SHA256","HEADER_AMZ_CHECKSUM_SHA256","HEADER_HOST","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_PREFIX_TYPE","ERROR_DELIMITER_REQUIRED","ENCODR","TextEncoder","HEX_CHARS","Uint8Array","getByteSize","data","encode","byteLength","ArrayBuffer","Blob","File","size","ReadableStream","Number","Error","toUint8Array","Buffer","isBuffer","buffer","byteOffset","hexFromBuffer","bytes","hex","length","i","j","String","fromCodePoint","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","codePointAt","toString","toUpperCase","uriEscape","uriStr","encodeURIComponent","uriResourceEscape","string","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","extractPart","chunks","part","offset","chunk","needed","set","shift","subarray","S3mini","accessKeyId","secretAccessKey","endpoint","region","bucketName","requestSizeInBytes","requestAbortTimeout","logger","_fetch","minPartSize","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","_hasCredentials","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","_validateUploadPartParams","uploadId","partNumber","C.ERROR_UPLOAD_ID_REQUIRED","isInteger","_sign","keyPath","query","headers","url","pathname","C.HEADER_HOST","host","d","shortDatetime","getUTCFullYear","getUTCMonth","padStart","getUTCDate","fullDatetime","getUTCHours","getUTCMinutes","getUTCSeconds","credentialScope","C.S3_SERVICE","C.AWS_REQUEST_TYPE","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","ignoredHeaders","canonicalHeaders","signedHeaders","sort","a","b","localeCompare","lowerKey","canonicalRequest","_buildCanonicalQueryString","stringToSign","C.AWS_ALGORITHM","_getSignatureKey","signature","_signedRequest","tolerated","withQuery","includes","baseHeaders","encodedKey","finalUrl","signedHeadersString","fromEntries","k","v","_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","cancel","_handleListObjectsError","xmlText","text","_parseListObjectsResponse","Math","min","errorBody","parsedErrorBody","_parseErrorXml","errorCode","get","svcCode","errorMessage","statusText","out","ListBucketResult","listBucketResult","_extractObjectsFromResponse","_extractContinuationToken","response","contents","Contents","commonPrefixes","CommonPrefixes","item","o","Key","Size","LastModified","lastModified","ETag","StorageClass","storageClass","prefixList","Prefix","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","rangeHdr","range","getContentLength","len","objectExists","getEtag","putObject","fileType","C.DEFAULT_STREAM_CONTENT_TYPE","additionalHeaders","contentLength","putAnyObject","isNaN","_multipartUpload","getMultipartUploadId","parts","_uploadPartsOptimized","completeMultipartUpload","_createSuccessResponse","_safeAbortUpload","_uploadKnownSizePartsParallel","concurrency","maxRetries","partSize","totalSize","totalParts","ceil","results","nextIndex","worker","index","end","_uploadPartWithRetry","from","_uploadStreamingParts","stream","active","partData","generateBufferParts","blob","generateBlobParts","reader","getReader","buffered","done","read","releaseLock","generateStreamParts","generateParts","currentPartNumber","race","p","then","delete","add","attempt","uploadPart","r","abortMultipartUpload","Response","Headers","ok","Map","parsed","uploadResult","initiateMultipartUploadResult","InitiateMultipartUploadResult","UploadId","_buildCompleteMultipartUploadXml","completeMultipartUploadResult","CompleteMultipartUploadResult","resultObj","eTag","error","xml","_executeCopyOperation","destinationKey","copySource","options","metadataDirective","metadata","contentType","taggingDirective","websiteRedirectLocation","sourceSSECHeaders","destinationSSECHeaders","_buildSSECHeaders","_buildMetadataHeaders","_parseCopyObjectResponse","copyObject","sourceKey","sourceHeaders","destHeaders","moveObject","copyResult","deleteObject","startsWith","CopyObjectResult","copyObjectResult","_deleteObjectsProcess","sha256base64","btoa","base64FromBuffer","C.HEADER_AMZ_CHECKSUM_SHA256","DeleteResult","deleteResult","resultMap","deleted","Deleted","deletedArray","errors","errorsArray","Code","Message","deleteObjects","maxBatchSize","allPromises","flat","toleratedStatusCodes","signal","AbortSignal","timeout","_handleErrorResponse","e","extractErrCode","parsedBody","queryParams","getPresignedUrl","expiresIn","isFinite","_presign","floor","allQueryParams","canonicalQueryString","origin","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","Set","IFHEADERS","HEADER_AMZ_CONTENT_SHA256","HEADER_AMZ_CHECKSUM_SHA256","HEADER_HOST","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_PREFIX_TYPE","ERROR_DELIMITER_REQUIRED","ENCODR","TextEncoder","HEX_CHARS","Uint8Array","getByteSize","data","encode","byteLength","ArrayBuffer","Blob","File","size","ReadableStream","Number","Error","toUint8Array","Buffer","isBuffer","buffer","byteOffset","hexFromBuffer","bytes","hex","length","i","j","String","fromCodePoint","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","codePointAt","toString","toUpperCase","uriEscape","uriStr","encodeURIComponent","uriResourceEscape","string","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","extractPart","chunks","part","offset","chunk","needed","set","shift","subarray","S3mini","accessKeyId","secretAccessKey","endpoint","region","bucketName","requestSizeInBytes","requestAbortTimeout","logger","_fetch","minPartSize","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","_hasCredentials","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","_validateUploadPartParams","uploadId","partNumber","C.ERROR_UPLOAD_ID_REQUIRED","isInteger","_sign","keyPath","query","headers","url","pathname","C.HEADER_HOST","host","d","shortDatetime","getUTCFullYear","getUTCMonth","padStart","getUTCDate","fullDatetime","getUTCHours","getUTCMinutes","getUTCSeconds","credentialScope","C.S3_SERVICE","C.AWS_REQUEST_TYPE","C.HEADER_AMZ_CONTENT_SHA256","C.UNSIGNED_PAYLOAD","ignoredHeaders","canonicalHeaders","signedHeaders","sort","a","b","localeCompare","lowerKey","canonicalRequest","_buildCanonicalQueryString","stringToSign","C.AWS_ALGORITHM","_getSignatureKey","signature","_signedRequest","tolerated","withQuery","includes","baseHeaders","encodedKey","finalUrl","signedHeadersString","fromEntries","k","v","_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","cancel","_handleListObjectsError","xmlText","text","_parseListObjectsResponse","Math","min","errorBody","parsedErrorBody","_parseErrorXml","errorCode","get","svcCode","errorMessage","statusText","out","ListBucketResult","listBucketResult","_extractObjectsFromResponse","_extractContinuationToken","response","contents","Contents","commonPrefixes","CommonPrefixes","item","o","Key","Size","LastModified","lastModified","ETag","StorageClass","storageClass","prefixList","Prefix","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","rangeHdr","range","getContentLength","len","objectExists","getEtag","putObject","fileType","C.DEFAULT_STREAM_CONTENT_TYPE","additionalHeaders","contentLength","putAnyObject","isNaN","_multipartUpload","getMultipartUploadId","parts","_uploadPartsOptimized","completeMultipartUpload","_createSuccessResponse","_safeAbortUpload","_uploadKnownSizePartsParallel","concurrency","maxRetries","partSize","totalSize","totalParts","ceil","results","nextIndex","worker","index","end","_uploadPartWithRetry","from","_uploadStreamingParts","stream","active","partData","generateBufferParts","blob","generateBlobParts","reader","getReader","buffered","done","read","releaseLock","generateStreamParts","generateParts","currentPartNumber","race","p","then","delete","add","attempt","uploadPart","r","abortMultipartUpload","Response","Headers","ok","Map","parsed","uploadResult","initiateMultipartUploadResult","InitiateMultipartUploadResult","UploadId","_buildCompleteMultipartUploadXml","completeMultipartUploadResult","CompleteMultipartUploadResult","resultObj","eTag","error","xml","_executeCopyOperation","destinationKey","copySource","options","metadataDirective","metadata","contentType","taggingDirective","websiteRedirectLocation","sourceSSECHeaders","destinationSSECHeaders","_buildSSECHeaders","_buildMetadataHeaders","_parseCopyObjectResponse","copyObject","sourceKey","sourceHeaders","destHeaders","moveObject","copyResult","deleteObject","startsWith","CopyObjectResult","copyObjectResult","_deleteObjectsProcess","sha256base64","btoa","base64FromBuffer","C.HEADER_AMZ_CHECKSUM_SHA256","DeleteResult","deleteResult","resultMap","deleted","Deleted","deletedArray","errors","errorsArray","Code","Message","deleteObjects","maxBatchSize","allPromises","flat","toleratedStatusCodes","signal","AbortSignal","timeout","_handleErrorResponse","e","extractErrCode","parsedBody","queryParams","getPresignedUrl","expiresIn","isFinite","_presign","floor","headerEntries","allQueryParams","canonicalQueryString","origin","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.9.2",
3
+ "version": "0.9.3",
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": {
package/src/S3.ts CHANGED
@@ -548,15 +548,20 @@ class S3mini {
548
548
 
549
549
  const keyPath = delimiter === '/' ? delimiter : uriEscape(delimiter);
550
550
  let token: string | undefined = nextContinuationToken;
551
+ let remaining = maxKeys;
551
552
  const all: IT.ListObject[] = [];
552
553
 
553
- const batchResult = await this._fetchObjectBatch(keyPath, prefix, maxKeys, token, opts);
554
- if (batchResult === null) {
555
- return null; // 404 - bucket not found
556
- }
554
+ do {
555
+ const batchResult = await this._fetchObjectBatch(keyPath, prefix, remaining, token, opts);
556
+ if (batchResult === null) {
557
+ return null; // 404 - bucket not found
558
+ }
559
+
560
+ all.push(...batchResult.objects);
561
+ remaining -= batchResult.objects.length;
562
+ token = batchResult.continuationToken;
563
+ } while (token && remaining > 0);
557
564
 
558
- all.push(...batchResult.objects);
559
- token = batchResult.continuationToken;
560
565
  return { objects: all, nextContinuationToken: token };
561
566
  }
562
567
 
@@ -1869,30 +1874,35 @@ class S3mini {
1869
1874
  * @param {'GET' | 'PUT'} method - HTTP method ('GET' for download, 'PUT' for upload)
1870
1875
  * @param {string} key - The object key/path
1871
1876
  * @param {number} [expiresIn=3600] - URL expiration time in seconds (1–604800)
1872
- * @param {Record<string, string>} [queryParams={}] - Additional query parameters to sign
1877
+ * @param {Record<string, string>} [queryParams={}] - Additional query parameters to include in the URL
1878
+ * @param {Record<string, string>} [headers={}] - HTTP headers to sign. The consumer of the URL
1879
+ * MUST send these exact headers with matching values. The `host` header is always signed automatically.
1873
1880
  * @returns {Promise<string>} Pre-signed URL string
1874
1881
  * @throws {TypeError} If key is empty or expiresIn is out of range
1875
1882
  * @example
1876
1883
  * // Download URL valid for 1 hour
1877
1884
  * const url = await s3.getPresignedUrl('GET', 'photos/vacation.jpg');
1878
1885
  *
1879
- * // Upload URL valid for 5 minutes
1880
- * const url = await s3.getPresignedUrl('PUT', 'uploads/file.bin', 300);
1886
+ * // Upload URL valid for 5 minutes with signed Content-Type
1887
+ * const url = await s3.getPresignedUrl('PUT', 'uploads/file.bin', 300, {}, {
1888
+ * 'Content-Type': 'application/octet-stream',
1889
+ * });
1881
1890
  *
1882
- * // Client-side usage (no credentials needed)
1883
- * await fetch(url, { method: 'PUT', body: data });
1891
+ * // Client-side usage (must include signed headers)
1892
+ * await fetch(url, { method: 'PUT', body: data, headers: { 'Content-Type': 'application/octet-stream' } });
1884
1893
  */
1885
1894
  public async getPresignedUrl(
1886
1895
  method: 'GET' | 'PUT',
1887
1896
  key: string,
1888
1897
  expiresIn: number = 3600,
1889
1898
  queryParams: Record<string, string> = {},
1899
+ headers: Record<string, string> = {},
1890
1900
  ): Promise<string> {
1891
1901
  this._checkKey(key);
1892
1902
  if (!Number.isFinite(expiresIn) || expiresIn <= 0 || expiresIn > 604800) {
1893
1903
  throw new TypeError(`${C.ERROR_PREFIX}expiresIn must be between 1 and 604800 seconds`);
1894
1904
  }
1895
- return this._presign(method, uriResourceEscape(key), Math.floor(expiresIn), queryParams);
1905
+ return this._presign(method, uriResourceEscape(key), Math.floor(expiresIn), queryParams, headers);
1896
1906
  }
1897
1907
 
1898
1908
  private async _presign(
@@ -1900,6 +1910,7 @@ class S3mini {
1900
1910
  keyPath: string,
1901
1911
  expiresIn: number,
1902
1912
  queryParams: Record<string, string>,
1913
+ headers: Record<string, string>,
1903
1914
  ): Promise<string> {
1904
1915
  const url = new URL(this.endpoint);
1905
1916
  if (keyPath.length > 0) {
@@ -1915,7 +1926,17 @@ class S3mini {
1915
1926
  const fullDatetime = `${shortDatetime}T${String(d.getUTCHours()).padStart(2, '0')}${String(d.getUTCMinutes()).padStart(2, '0')}${String(d.getUTCSeconds()).padStart(2, '0')}Z`;
1916
1927
  const credentialScope = `${shortDatetime}/${this.region}/${C.S3_SERVICE}/${C.AWS_REQUEST_TYPE}`;
1917
1928
 
1918
- const signedHeaders = 'host';
1929
+ const headerEntries: Array<[string, string]> = [['host', url.host]];
1930
+ for (const [key, value] of Object.entries(headers)) {
1931
+ const lowerKey = key.toLowerCase();
1932
+ if (lowerKey !== 'host') {
1933
+ headerEntries.push([lowerKey, String(value).trim()]);
1934
+ }
1935
+ }
1936
+ headerEntries.sort(([a], [b]) => a.localeCompare(b));
1937
+
1938
+ const canonicalHeaders = headerEntries.map(([k, v]) => `${k}:${v}`).join('\n');
1939
+ const signedHeaders = headerEntries.map(([k]) => k).join(';');
1919
1940
 
1920
1941
  const allQueryParams: Record<string, string> = {
1921
1942
  ...queryParams,
@@ -1927,7 +1948,7 @@ class S3mini {
1927
1948
  };
1928
1949
 
1929
1950
  const canonicalQueryString = this._buildCanonicalQueryString(allQueryParams);
1930
- const canonicalRequest = `${method}\n${url.pathname}\n${canonicalQueryString}\nhost:${url.host}\n\n${signedHeaders}\n${C.UNSIGNED_PAYLOAD}`;
1951
+ const canonicalRequest = `${method}\n${url.pathname}\n${canonicalQueryString}\n${canonicalHeaders}\n\n${signedHeaders}\n${C.UNSIGNED_PAYLOAD}`;
1931
1952
  const stringToSign = `${C.AWS_ALGORITHM}\n${fullDatetime}\n${credentialScope}\n${hexFromBuffer(await sha256(canonicalRequest))}`;
1932
1953
 
1933
1954
  if (shortDatetime !== this.signingKeyDate || !this.signingKey) {
package/src/utils.ts CHANGED
@@ -149,7 +149,7 @@ const unescapeXml = (value: string): string =>
149
149
 
150
150
  export const parseXml = (input: string): XmlValue => {
151
151
  const xmlContent = input.replace(/<\?xml[^?]*\?>\s*/, '');
152
- const RE_TAG = /<([A-Za-z_][\w\-.]*)[^>]*>([\s\S]*?)<\/\1>/gm;
152
+ const RE_TAG = /<([A-Za-z_][\w\-.]*)[^>]*?>([\s\S]*?)<\/\1>/gm;
153
153
  const result: XmlMap = {}; // strong type, no `any`
154
154
  let match: RegExpExecArray | null;
155
155