s3mini 0.7.1 → 0.8.1

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,2 +1,2 @@
1
- const t="AWS4-HMAC-SHA256",e="aws4_request",r="UNSIGNED-PAYLOAD",o="application/octet-stream",s="application/xml",n=new Set(["accessKeyId","secretAccessKey","sessionToken","password","token"]),i=new Set(["if-match","if-none-match","if-modified-since","if-unmodified-since"]),a="x-amz-content-sha256",c="x-amz-checksum-sha256",h="content-type",u="content-length",d="etag",l="[s3mini] ",p=l+"accessKeyId must be a non-empty string",y=l+"secretAccessKey must be a non-empty string",f=l+"endpoint must be a non-empty string",w=l+"endpoint must be a valid URL. Expected format: https://<host>[:port][/base-path]",b=l+"key must be a non-empty string",g=l+"uploadId must be a non-empty string",m=l+"data must be a Buffer or string",E=l+"prefix must be a string",$=l+"delimiter must be a string",j=new TextEncoder,T="0123456789abcdef",O=t=>{if("string"==typeof t)return j.encode(t).byteLength;if(t instanceof ArrayBuffer||t instanceof Uint8Array)return t.byteLength;if(t instanceof Blob)return t.size;throw Error("Unsupported data type")},A=t=>{const e=new Uint8Array(t);let r="";for(const t of e)r+=T[t>>4]+T[15&t];return r},S=async t=>{const e=j.encode(t);return await globalThis.crypto.subtle.digest("SHA-256",e)},U=async(t,e)=>{const r=await globalThis.crypto.subtle.importKey("raw","string"==typeof t?j.encode(t):t,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),o=j.encode(e);return await globalThis.crypto.subtle.sign("HMAC",r,o)},x=t=>{const e={'"':"","&quot;":"","&#34;":""};return t.replaceAll(/(^("|&quot;|&#34;))|(("|&quot;|&#34;)$)/g,t=>e[t]||"")},_={"&quot;":'"',"&apos;":"'","&lt;":"<","&gt;":">","&amp;":"&"},v=t=>t.replaceAll(/&(quot|apos|lt|gt|amp);/g,t=>_[t]??t),q=t=>{const e=t.replace(/<\?xml[^?]*\?>\s*/,""),r=/<([A-Za-z_][\w\-.]*)[^>]*>([\s\S]*?)<\/\1>/gm,o={};let s;for(;null!==(s=r.exec(e));){const t=s[1],e=s[2],r=e?q(e):v(e?.trim()||"");if(!t)continue;const n=o[t];void 0===n?o[t]=r:Array.isArray(n)?n.push(r):o[t]=[n,r]}return Object.keys(o).length>0?o:v(e.trim())},C=t=>"%"+t.charCodeAt(0).toString(16).toUpperCase(),D=t=>encodeURIComponent(t).replace(/[!'()*]/g,C);class H extends Error{code;constructor(t,e,r){super(t),this.name=new.target.name,this.code=e,this.cause=r}}class R extends H{}class k extends H{status;serviceCode;body;constructor(t,e,r,o){super(t,r),this.status=e,this.serviceCode=r,this.body=o}}const P=async(t,e=30,r=0)=>{const o=[];let s=[];for(const r of t)s.push(r),s.length===e&&(await n(s),s=[]);return s.length&&await n(s),o;async function n(t){const e=Date.now(),s=await Promise.allSettled(t.map(t=>t()));if(o.push(...s),r>0){const t=r-(Date.now()-e);t>0&&await new Promise(e=>setTimeout(e,t))}}};class N{accessKeyId;secretAccessKey;endpoint;region;bucketName;requestSizeInBytes;requestAbortTimeout;logger;t;signingKeyDate;signingKey;constructor({accessKeyId:t,secretAccessKey:e,endpoint:r,region:o="auto",requestSizeInBytes:s=8388608,requestAbortTimeout:n,logger:i,fetch:a=globalThis.fetch}){this.o(t,e,r),this.accessKeyId=t,this.secretAccessKey=e,this.endpoint=new URL(this.i(r)),this.region=o,this.bucketName=this.h(),this.requestSizeInBytes=s,this.requestAbortTimeout=n,this.logger=i,this.t=(t,e)=>a(t,e)}u(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r]=n.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 o=this.u(r),s={timestamp:(new Date).toISOString(),level:t,message:e,details:o,context:this.u({region:this.region,endpoint:""+this.endpoint,accessKeyId:this.accessKeyId?this.accessKeyId.substring(0,4)+"...":void 0})};this.logger[t](JSON.stringify(s))}}o(t,e,r){if("string"!=typeof t||0===t.trim().length)throw new TypeError(p);if("string"!=typeof e||0===e.trim().length)throw new TypeError(y);if("string"!=typeof r||0===r.trim().length)throw new TypeError(f)}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=`${w} But provided: "${t}"`;throw this.l("error",e),new TypeError(e)}}p(t){if("GET"!==t&&"HEAD"!==t)throw this.l("error",l+"method must be either GET or HEAD"),Error(l+"method must be either GET or HEAD")}m(t){if("string"!=typeof t||0===t.trim().length)throw this.l("error",b),new TypeError(b)}$(t){if("string"!=typeof t||0===t.trim().length)throw this.l("error",$),new TypeError($)}j(t){if("string"!=typeof t)throw this.l("error",E),new TypeError(E)}T(t){if("object"!=typeof t)throw this.l("error",l+"opts must be an object"),new TypeError(l+"opts must be an object")}O(t){const e={},r={};for(const[o,s]of Object.entries(t))i.has(o.toLowerCase())?r[o]=s:e[o]=s;return{filteredOpts:e,conditionalHeaders:r}}A(t){if(!(globalThis.Buffer&&t instanceof globalThis.Buffer||"string"==typeof t))throw this.l("error",m),new TypeError(m);return t}S(t,e,r,o,s){if(this.m(t),"string"!=typeof e||0===e.trim().length)throw this.l("error",g),new TypeError(g);if(!Number.isInteger(o)||o<=0)throw this.l("error",l+"partNumber must be a positive integer"),new TypeError(l+"partNumber must be a positive integer");return this.T(s),this.A(r)}async U(o,s,n={},i={}){const c=new URL(this.endpoint);s&&s.length>0&&(c.pathname="/"===c.pathname?"/"+s.replace(/^\/+/,""):`${c.pathname}/${s.replace(/^\/+/,"")}`);const h=new Date,u=`${h.getUTCFullYear()}${(h.getUTCMonth()+1+"").padStart(2,"0")}${(h.getUTCDate()+"").padStart(2,"0")}`,d=`${u}T${(h.getUTCHours()+"").padStart(2,"0")}${(h.getUTCMinutes()+"").padStart(2,"0")}${(h.getUTCSeconds()+"").padStart(2,"0")}Z`,l=`${u}/${this.region}/s3/${e}`;i[a]=r,i["x-amz-date"]=d,i.host=c.host;const p=new Set(["authorization","content-length","content-type","user-agent"]);let y="",f="";for(const[t,e]of Object.entries(i).sort(([t],[e])=>t.localeCompare(e))){const r=t.toLowerCase();p.has(r)||(y&&(y+="\n",f+=";"),y+=`${r}:${(e+"").trim()}`,f+=r)}const w=`${o}\n${c.pathname}\n${this._(n)}\n${y}\n\n${f}\n${r}`,b=`${t}\n${d}\n${l}\n${A(await S(w))}`;u===this.signingKeyDate&&this.signingKey||(this.signingKeyDate=u,this.signingKey=await this.v(u));const g=A(await U(this.signingKey,b));return i.authorization=`${t} Credential=${this.accessKeyId}/${l}, SignedHeaders=${f}, Signature=${g}`,{url:""+c,headers:i}}async q(t,e,{query:o={},body:s="",headers:n={},tolerated:i=[],withQuery:c=!1}={}){const{filteredOpts:h,conditionalHeaders:u}=["GET","HEAD"].includes(t)?this.O(o):{filteredOpts:o,conditionalHeaders:{}},d={[a]:r,...n,...u},l=e?D(e).replaceAll("%2F","/"):"",{url:p,headers:y}=await this.U(t,l,h,d);Object.keys(o).length>0&&(c=!0);const f=Object.fromEntries(Object.entries(h).map(([t,e])=>[t,e+""])),w=c&&Object.keys(h).length?`${p}?${new URLSearchParams(f)}`:p,b=Object.fromEntries(Object.entries(y).map(([t,e])=>[t,e+""]));return this.C(w,t,b,s,i)}sanitizeETag(t){return x(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={[h]:s,[u]:O(t)};return 200===(await this.q("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.q("HEAD","",{tolerated:[200,404,403]})).status}async listObjects(t="/",e="",r,o={}){this.$(t),this.j(e),this.T(o);const s="/"===t?t:D(t),n=!(r&&r>0);let i,a=n?1/0:r;const c=[];do{const t=await this.D(s,e,a,i,o);if(null===t)return null;c.push(...t.objects),n||(a-=t.objects.length),i=t.continuationToken}while(i&&a>0);return c}async D(t,e,r,o,s){const n=this.H(e,r,o,s),i=await this.q("GET",t,{query:n,withQuery:!0,tolerated:[200,404]});if(404===i.status)return null;200!==i.status&&await this.R(i);const a=await i.text();return this.k(a)}H(t,e,r,o){return{"list-type":"2","max-keys":Math.min(e,1e3)+"",...t?{prefix:t}:{},...r?{"continuation-token":r}:{},...o}}async R(t){const e=await t.text(),r=this.P(t.headers,e),o=t.headers.get("x-amz-error-code")??r.svcCode??"Unknown",s=t.headers.get("x-amz-error-message")??r.errorMessage??t.statusText;throw this.l("error",`${l}Request failed with status ${t.status}: ${o} - ${s}, err body: ${e}`),Error(`${l}Request failed with status ${t.status}: ${o} - ${s}, err body: ${e}`)}k(t){const e=q(t);if("object"!=typeof e||!e||"error"in e)throw this.l("error",`${l}Unexpected listObjects response shape: ${JSON.stringify(e)}`),Error(l+"Unexpected listObjects response shape");const r=e.ListBucketResult||e.listBucketResult||e;return{objects:this.N(r),continuationToken:this.I(r)}}N(t){const e=t.Contents||t.contents;return e?Array.isArray(e)?e:[e]:[]}I(t){if("true"===t.IsTruncated||"true"===t.isTruncated)return t.NextContinuationToken||t.nextContinuationToken||t.NextMarker||t.nextMarker}async listMultipartUploads(t="/",e="",r="GET",o={}){this.$(t),this.j(e),this.p(r),this.T(o);const s={uploads:"",...o},n="/"===t?t:D(t),i=await this.q(r,n,{query:s,withQuery:!0}),a=q(await i.text());if("object"!=typeof a||null===a)throw Error(l+"Unexpected listMultipartUploads response shape");return"listMultipartUploadsResult"in a?a.listMultipartUploadsResult:a}async getObject(t,e={},r){const o=await this.q("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return[404,412,304].includes(o.status)?null:o.text()}async getObjectResponse(t,e={},r){const o=await this.q("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return[404,412,304].includes(o.status)?null:o}async getObjectArrayBuffer(t,e={},r){const o=await this.q("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return[404,412,304].includes(o.status)?null:o.arrayBuffer()}async getObjectJSON(t,e={},r){const o=await this.q("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return[404,412,304].includes(o.status)?null:o.json()}async getObjectWithETag(t,e={},r){try{const o=await this.q("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});if([404,412,304].includes(o.status))return{etag:null,data:null};const s=o.headers.get(d);if(!s)throw Error(l+"ETag not found in response headers");return{etag:x(s),data:await o.arrayBuffer()}}catch(e){throw this.l("error",`Error getting object ${t} with ETag: ${e+""}`),e}}async getObjectRaw(t,e=!0,r=0,o=this.requestSizeInBytes,s={},n){return this.q("GET",t,{query:{...s},headers:{...e?{}:{range:`bytes=${r}-${o-1}`},...n},withQuery:!0})}async getContentLength(t,e){try{const r=(await this.q("HEAD",t,{headers:e?{...e}:void 0})).headers.get(u);return r?+r:0}catch(e){throw this.l("error",`Error getting content length for object ${t}: ${e+""}`),Error(`${l}Error getting content length for object ${t}: ${e+""}`)}}async objectExists(t,e={}){const r=await this.q("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 o=await this.q("HEAD",t,{query:e,tolerated:[200,304,404,412],headers:r?{...r}:void 0});if(404===o.status)return null;if(412===o.status||304===o.status)return null;const s=o.headers.get(d);if(!s)throw Error(l+"ETag not found in response headers");return x(s)}async putObject(t,e,r=o,s,n){return this.q("PUT",t,{body:this.A(e),headers:{[u]:O(e),[h]:r,...n,...s},tolerated:[200]})}async getMultipartUploadId(t,e=o,r){if(this.m(t),"string"!=typeof e)throw new TypeError(l+"fileType must be a string");const s={[h]:e,...r},n=await this.q("POST",t,{query:{uploads:""},headers:s,withQuery:!0}),i=q(await n.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(`${l}Failed to create multipart upload: ${JSON.stringify(i)}`)}async uploadPart(t,e,r,o,s={},n){const i=this.S(t,e,r,o,s),a={uploadId:e,partNumber:o,...s},c=await this.q("PUT",t,{query:a,body:i,headers:{[u]:O(r),...n}});return{partNumber:o,etag:x(c.headers.get("etag")||"")}}async completeMultipartUpload(t,e,r){const o={uploadId:e},n=this.M(r),i={[h]:s,[u]:O(n)},a=await this.q("POST",t,{query:o,body:n,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:x(r)}:t}}throw Error(`${l}Failed to complete multipart upload: ${JSON.stringify(c)}`)}async abortMultipartUpload(t,e,r){if(this.m(t),!e)throw new TypeError(g);const o={uploadId:e},n={[h]:s,...r?{...r}:{}},i=await this.q("DELETE",t,{query:o,headers:n,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",`${l}Failed to abort multipart upload: ${a.error.message+""}`),Error(`${l}Failed to abort multipart upload: ${a.error.message+""}`);return{status:"Aborted",key:t,uploadId:e,response:a}}M(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 G(t,e,r){const{metadataDirective:o="COPY",metadata:s={},contentType:n,storageClass:i,taggingDirective:a,websiteRedirectLocation:c,sourceSSECHeaders:u={},destinationSSECHeaders:d={},additionalHeaders:l={}}=r,p={"x-amz-copy-source":e,"x-amz-metadata-directive":o,...l,...n&&{[h]:n},...i&&{"x-amz-storage-class":i},...a&&{"x-amz-tagging-directive":a},...c&&{"x-amz-website-redirect-location":c},...this.L(u,d),..."REPLACE"===o?this.K(s):{}};try{const e=await this.q("PUT",t,{headers:p,tolerated:[200]});return this.B(await e.text())}catch(e){throw this.l("error","Error in copy operation to "+t,{error:e+""}),e}}copyObject(t,e,r={}){this.m(t),this.m(e);const o=`/${this.bucketName}/${D(t)}`;return this.G(e,o,r)}L(t,e){const r={};for(const[o,s]of Object.entries({...t,...e}))void 0!==s&&(r[o]=s);return r}async moveObject(t,e,r={}){try{const o=await this.copyObject(t,e,r);if(!await this.deleteObject(t))throw Error(l+"Failed to delete source object after successful copy");return o}catch(r){throw this.l("error",`Error moving object from ${t} to ${e}`,{error:r+""}),r}}K(t){const e={};for(const[r,o]of Object.entries(t))e[r.startsWith("x-amz-meta-")?r:"x-amz-meta-"+r]=o;return e}B(t){const e=q(t);if(!e||"object"!=typeof e)throw Error(l+"Unexpected copyObject response format");const r=e.CopyObjectResult||e.copyObjectResult||e,o=r.ETag||r.eTag||r.etag,s=r.LastModified||r.lastModified;if(!o||"string"!=typeof o)throw Error(l+"ETag not found in copyObject response");return{etag:x(o),lastModified:s?new Date(s):void 0}}async deleteObject(t){const e=await this.q("DELETE",t,{tolerated:[200,204]});return 200===e.status||204===e.status}async F(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 o=e.subarray(t,t+32768);r+=btoa(String.fromCodePoint(...o))}return r})(await S(e)),o={[h]:s,[u]:O(e),[c]:r},n=await this.q("POST","",{query:{delete:""},body:e,headers:o,withQuery:!0}),i=q(await n.text());if(!i||"object"!=typeof i)throw Error(`${l}Failed to delete objects: ${JSON.stringify(i)}`);const a=i.DeleteResult||i.deleteResult||i,d=new Map;for(const e of t)d.set(e,!1);const p=a.deleted||a.Deleted;if(p){const t=Array.isArray(p)?p:[p];for(const e of t)if(e&&"object"==typeof e){const t=e.key||e.Key;t&&"string"==typeof t&&d.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,o=e.message||e.Message;t&&"string"==typeof t&&(d.set(t,!1),this.l("warn","Failed to delete object: "+t,{code:r||"Unknown",message:o||"Unknown error"}))}}return t.map(t=>d.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 o=0;o<t.length;o+=e){const s=t.slice(o,o+e);r.push(this.F(s))}return(await Promise.all(r)).flat()}return await this.F(t)}async C(t,e,r,o,s=[]){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","HEAD"].includes(e)?void 0:o,signal:this.requestAbortTimeout?AbortSignal.timeout(this.requestAbortTimeout):void 0});return this.l("info",`Response status: ${n.status}, tolerated: ${s.join(",")}`),n.ok||s.includes(n.status)||await this.J(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 R("S3 network error: "+e,e,t);throw t}}P(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 o=r.Error;return{svcCode:"Code"in o&&"string"==typeof o.Code?o.Code:void 0,errorMessage:"Message"in o&&"string"==typeof o.Message?o.Message:void 0}}async J(t){const e=await t.text(),r=this.P(t.headers,e),o=t.headers.get("x-amz-error-code")??r.svcCode??"Unknown",s=t.headers.get("x-amz-error-message")??r.errorMessage??t.statusText;throw this.l("error",`${l}Request failed with status ${t.status}: ${o} - ${s},err body: ${e}`),new k(`S3 returned ${t.status} – ${o}`,t.status,o,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 v(t){const r=await U("AWS4"+this.secretAccessKey,t),o=await U(r,this.region),s=await U(o,"s3");return await U(s,e)}}export{N as S3mini,P as runInBatches,x as sanitizeETag};
1
+ const t="AWS4-HMAC-SHA256",e="aws4_request",r="UNSIGNED-PAYLOAD",o="application/octet-stream",s="application/xml",n=new Set(["accessKeyId","secretAccessKey","sessionToken","password","token"]),i=new Set(["if-match","if-none-match","if-modified-since","if-unmodified-since"]),a="x-amz-content-sha256",c="x-amz-checksum-sha256",h="content-type",u="content-length",d="etag",l="[s3mini] ",p=l+"accessKeyId must be a non-empty string",y=l+"secretAccessKey must be a non-empty string",f=l+"endpoint must be a non-empty string",w=l+"endpoint must be a valid URL. Expected format: https://<host>[:port][/base-path]",g=l+"key must be a non-empty string",b=l+"uploadId must be a non-empty string",m=l+"data must be a Buffer or string",E=l+"prefix must be a string",$=l+"delimiter must be a string",j=new TextEncoder,T=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 j.encode(t).byteLength;if(t instanceof ArrayBuffer||t instanceof Uint8Array)return t.byteLength;if(t instanceof Blob)return t.size;throw Error("Unsupported data type")},A=t=>{const e=new Uint8Array(t),r=new Uint8Array(2*e.length);for(let t=0,o=0;t<e.length;t++)r[o++]=T[e[t]>>4],r[o++]=T[15&e[t]];return String.fromCodePoint(...r)},S=async t=>{const e=j.encode(t);return await globalThis.crypto.subtle.digest("SHA-256",e)},U=async(t,e)=>{const r=await globalThis.crypto.subtle.importKey("raw","string"==typeof t?j.encode(t):t,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),o=j.encode(e);return await globalThis.crypto.subtle.sign("HMAC",r,o)},x=t=>{const e={'"':"","&quot;":"","&#34;":""};return t.replaceAll(/(^("|&quot;|&#34;))|(("|&quot;|&#34;)$)/g,t=>e[t]||"")},_={"&quot;":'"',"&apos;":"'","&lt;":"<","&gt;":">","&amp;":"&"},v=t=>t.replaceAll(/&(quot|apos|lt|gt|amp);/g,t=>_[t]??t),C=t=>{const e=t.replace(/<\?xml[^?]*\?>\s*/,""),r=/<([A-Za-z_][\w\-.]*)[^>]*>([\s\S]*?)<\/\1>/gm,o={};let s;for(;null!==(s=r.exec(e));){const t=s[1],e=s[2],r=e?C(e):v(e?.trim()||"");if(!t)continue;const n=o[t];void 0===n?o[t]=r:Array.isArray(n)?n.push(r):o[t]=[n,r]}return Object.keys(o).length>0?o:v(e.trim())},q=t=>"%"+(t.codePointAt(0)??0).toString(16).toUpperCase(),D=t=>encodeURIComponent(t).replaceAll(/[!'()*]/g,q);class H extends Error{code;constructor(t,e,r){super(t),this.name=new.target.name,this.code=e,this.cause=r}}class k extends H{}class P extends H{status;serviceCode;body;constructor(t,e,r,o){super(t,r),this.status=e,this.serviceCode=r,this.body=o}}const R=async(t,e=30,r=0)=>{const o=[];let s=[];for(const r of t)s.push(r),s.length===e&&(await n(s),s=[]);return s.length&&await n(s),o;async function n(t){const e=Date.now(),s=await Promise.allSettled(t.map(t=>t()));if(o.push(...s),r>0){const t=r-(Date.now()-e);t>0&&await new Promise(e=>setTimeout(e,t))}}};class N{#t;#e;endpoint;region;bucketName;requestSizeInBytes;requestAbortTimeout;logger;t;signingKeyDate;signingKey;constructor({accessKeyId:t,secretAccessKey:e,endpoint:r,region:o="auto",requestSizeInBytes:s=8388608,requestAbortTimeout:n,logger:i,fetch:a=globalThis.fetch}){this.o(t,e,r),this.#t=t,this.#e=e,this.endpoint=new URL(this.i(r)),this.region=o,this.bucketName=this.h(),this.requestSizeInBytes=s,this.requestAbortTimeout=n,this.logger=i,this.t=(t,e)=>a(t,e)}u(t){return"object"!=typeof t||null===t?t:Object.keys(t).reduce((e,r)=>(e[r]=n.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 o=this.u(r),s={timestamp:(new Date).toISOString(),level:t,message:e,details:o,context:this.u({region:this.region,endpoint:""+this.endpoint,accessKeyId:this.#t?this.#t.substring(0,4)+"...":void 0})};this.logger[t](JSON.stringify(s))}}o(t,e,r){if("string"!=typeof t||0===t.trim().length)throw new TypeError(p);if("string"!=typeof e||0===e.trim().length)throw new TypeError(y);if("string"!=typeof r||0===r.trim().length)throw new TypeError(f)}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=`${w} But provided: "${t}"`;throw this.l("error",e),new TypeError(e)}}p(t){if("GET"!==t&&"HEAD"!==t)throw this.l("error",l+"method must be either GET or HEAD"),Error(l+"method must be either GET or HEAD")}m(t){if("string"!=typeof t||0===t.trim().length)throw this.l("error",g),new TypeError(g)}$(t){if("string"!=typeof t||0===t.trim().length)throw this.l("error",$),new TypeError($)}j(t){if("string"!=typeof t)throw this.l("error",E),new TypeError(E)}T(t){if("object"!=typeof t)throw this.l("error",l+"opts must be an object"),new TypeError(l+"opts must be an object")}O(t){const e={},r={};for(const[o,s]of Object.entries(t))i.has(o.toLowerCase())?r[o]=s:e[o]=s;return{filteredOpts:e,conditionalHeaders:r}}A(t){if(!(globalThis.Buffer&&t instanceof globalThis.Buffer||"string"==typeof t))throw this.l("error",m),new TypeError(m);return t}S(t,e,r,o,s){if(this.m(t),"string"!=typeof e||0===e.trim().length)throw this.l("error",b),new TypeError(b);if(!Number.isInteger(o)||o<=0)throw this.l("error",l+"partNumber must be a positive integer"),new TypeError(l+"partNumber must be a positive integer");return this.T(s),this.A(r)}async U(o,s,n={},i={}){const c=new URL(this.endpoint);s&&s.length>0&&(c.pathname="/"===c.pathname?"/"+s.replace(/^\/+/,""):`${c.pathname}/${s.replace(/^\/+/,"")}`);const h=new Date,u=`${h.getUTCFullYear()}${(h.getUTCMonth()+1+"").padStart(2,"0")}${(h.getUTCDate()+"").padStart(2,"0")}`,d=`${u}T${(h.getUTCHours()+"").padStart(2,"0")}${(h.getUTCMinutes()+"").padStart(2,"0")}${(h.getUTCSeconds()+"").padStart(2,"0")}Z`,l=`${u}/${this.region}/s3/${e}`;i[a]=r,i["x-amz-date"]=d,i.host=c.host;const p=new Set(["authorization","content-length","content-type","user-agent"]);let y="",f="";for(const[t,e]of Object.entries(i).sort(([t],[e])=>t.localeCompare(e))){const r=t.toLowerCase();p.has(r)||(y&&(y+="\n",f+=";"),y+=`${r}:${(e+"").trim()}`,f+=r)}const w=`${o}\n${c.pathname}\n${this._(n)}\n${y}\n\n${f}\n${r}`,g=`${t}\n${d}\n${l}\n${A(await S(w))}`;u===this.signingKeyDate&&this.signingKey||(this.signingKeyDate=u,this.signingKey=await this.v(u));const b=A(await U(this.signingKey,g));return i.authorization=`${t} Credential=${this.#t}/${l}, SignedHeaders=${f}, Signature=${b}`,{url:""+c,headers:i}}async C(t,e,{query:o={},body:s="",headers:n={},tolerated:i=[],withQuery:c=!1}={}){const{filteredOpts:h,conditionalHeaders:u}=["GET","HEAD"].includes(t)?this.O(o):{filteredOpts:o,conditionalHeaders:{}},d={[a]:r,...n,...u},l=e?D(e).replaceAll("%2F","/"):"",{url:p,headers:y}=await this.U(t,l,h,d);Object.keys(o).length>0&&(c=!0);const f=Object.fromEntries(Object.entries(h).map(([t,e])=>[t,e+""])),w=c&&Object.keys(h).length?`${p}?${new URLSearchParams(f)}`:p,g=Object.fromEntries(Object.entries(y).map(([t,e])=>[t,e+""]));return this.q(w,t,g,s,i)}sanitizeETag(t){return x(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={[h]:s,[u]:O(t)};return 200===(await this.C("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.C("HEAD","",{tolerated:[200,404,403]})).status}async listObjects(t="/",e="",r,o={}){this.$(t),this.j(e),this.T(o);const s="/"===t?t:D(t),n=!(r&&r>0);let i,a=n?1/0:r;const c=[];do{const t=await this.D(s,e,a,i,o);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,o,s={}){this.$(t),this.j(e),this.T(s);const n="/"===t?t:D(t);let i=o;const a=[],c=await this.D(n,e,r,i,s);return null===c?null:(a.push(...c.objects),i=c.continuationToken,{objects:a,nextContinuationToken:i})}async D(t,e,r,o,s){const n=this.H(e,r,o,s),i=await this.C("GET",t,{query:n,withQuery:!0,tolerated:[200,404]});if(404===i.status)return null;200!==i.status&&await this.k(i);const a=await i.text();return this.P(a)}H(t,e,r,o){return{"list-type":"2","max-keys":Math.min(e,1e3)+"",...t?{prefix:t}:{},...r?{"continuation-token":r}:{},...o}}async k(t){const e=await t.text(),r=this.R(t.headers,e),o=t.headers.get("x-amz-error-code")??r.svcCode??"Unknown",s=t.headers.get("x-amz-error-message")??r.errorMessage??t.statusText;throw this.l("error",`${l}Request failed with status ${t.status}: ${o} - ${s}, err body: ${e}`),Error(`${l}Request failed with status ${t.status}: ${o} - ${s}, err body: ${e}`)}P(t){const e=C(t);if("object"!=typeof e||!e||"error"in e)throw this.l("error",`${l}Unexpected listObjects response shape: ${JSON.stringify(e)}`),Error(l+"Unexpected listObjects response shape");const r=e.ListBucketResult||e.listBucketResult||e;return{objects:this.N(r),continuationToken:this.I(r)}}N(t){const e=t.Contents||t.contents,r=t.CommonPrefixes||t.commonPrefixes,o=[];if(e&&(Array.isArray(e)?o.push(...e):o.push(e)),r){const t=Array.isArray(r)?r:[r];for(const e of t){const t=e.Prefix||e.prefix;"string"==typeof t&&o.push({Key:t,Size:0,LastModified:new Date(0),ETag:"",StorageClass:""})}}return o}I(t){if("true"===t.IsTruncated||"true"===t.isTruncated)return t.NextContinuationToken||t.nextContinuationToken||t.NextMarker||t.nextMarker}async listMultipartUploads(t="/",e="",r="GET",o={}){this.$(t),this.j(e),this.p(r),this.T(o);const s={uploads:"",...o},n="/"===t?t:D(t),i=await this.C(r,n,{query:s,withQuery:!0}),a=C(await i.text());if("object"!=typeof a||null===a)throw Error(l+"Unexpected listMultipartUploads response shape");return"listMultipartUploadsResult"in a?a.listMultipartUploadsResult:a}async getObject(t,e={},r){const o=await this.C("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===o.status?o.text():null}async getObjectResponse(t,e={},r){const o=await this.C("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===o.status?o:null}async getObjectArrayBuffer(t,e={},r){const o=await this.C("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===o.status?o.arrayBuffer():null}async getObjectJSON(t,e={},r){const o=await this.C("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0});return 200===o.status?o.json():null}async getObjectWithETag(t,e={},r){try{const o=await this.C("GET",t,{query:e,tolerated:[200,404,412,304],headers:r?{...r}:void 0}),s=o.status;if(404===s||412===s||304===s)return{etag:null,data:null};const n=o.headers.get(d);if(!n)throw Error(l+"ETag not found in response headers");return{etag:x(n),data:await o.arrayBuffer()}}catch(e){throw this.l("error",`Error getting object ${t} with ETag: ${e+""}`),e}}async getObjectRaw(t,e=!0,r=0,o,s={},n){let i={};return e||(i=void 0===o?{range:`bytes=${r}-`}:{range:`bytes=${r}-${o-1}`}),this.C("GET",t,{query:{...s},headers:{...i,...n},withQuery:!0})}async getContentLength(t,e){try{const r=(await this.C("HEAD",t,{headers:e?{...e}:void 0})).headers.get(u);return r?+r:0}catch(e){throw this.l("error",`Error getting content length for object ${t}: ${e+""}`),Error(`${l}Error getting content length for object ${t}: ${e+""}`)}}async objectExists(t,e={}){const r=await this.C("HEAD",t,{query:e,tolerated:[200,404,412,304]});return 404!==r.status&&(412!==r.status&&304!==r.status||null)}async getEtag(t,e={},r){const o=await this.C("HEAD",t,{query:e,tolerated:[200,304,404,412],headers:r?{...r}:void 0});if(404===o.status)return null;if(412===o.status||304===o.status)return null;const s=o.headers.get(d);if(!s)throw Error(l+"ETag not found in response headers");return x(s)}async putObject(t,e,r=o,s,n){return this.C("PUT",t,{body:this.A(e),headers:{[u]:O(e),[h]:r,...n,...s},tolerated:[200]})}async getMultipartUploadId(t,e=o,r){if(this.m(t),"string"!=typeof e)throw new TypeError(l+"fileType must be a string");const s={[h]:e,...r},n=await this.C("POST",t,{query:{uploads:""},headers:s,withQuery:!0}),i=C(await n.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(`${l}Failed to create multipart upload: ${JSON.stringify(i)}`)}async uploadPart(t,e,r,o,s={},n){const i=this.S(t,e,r,o,s),a={uploadId:e,partNumber:o,...s},c=await this.C("PUT",t,{query:a,body:i,headers:{[u]:O(r),...n}});return{partNumber:o,etag:x(c.headers.get("etag")||"")}}async completeMultipartUpload(t,e,r){const o={uploadId:e},n=this.M(r),i={[h]:s,[u]:O(n)},a=await this.C("POST",t,{query:o,body:n,headers:i,withQuery:!0}),c=C(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:x(r)}:t}}throw Error(`${l}Failed to complete multipart upload: ${JSON.stringify(c)}`)}async abortMultipartUpload(t,e,r){if(this.m(t),!e)throw new TypeError(b);const o={uploadId:e},n={[h]:s,...r?{...r}:{}},i=await this.C("DELETE",t,{query:o,headers:n,withQuery:!0}),a=C(await i.text());if(a&&"error"in a&&"object"==typeof a.error&&null!==a.error&&"message"in a.error)throw this.l("error",`${l}Failed to abort multipart upload: ${a.error.message+""}`),Error(`${l}Failed to abort multipart upload: ${a.error.message+""}`);return{status:"Aborted",key:t,uploadId:e,response:a}}M(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 L(t,e,r){const{metadataDirective:o="COPY",metadata:s={},contentType:n,storageClass:i,taggingDirective:a,websiteRedirectLocation:c,sourceSSECHeaders:u={},destinationSSECHeaders:d={},additionalHeaders:l={}}=r,p={"x-amz-copy-source":e,"x-amz-metadata-directive":o,...l,...n&&{[h]:n},...i&&{"x-amz-storage-class":i},...a&&{"x-amz-tagging-directive":a},...c&&{"x-amz-website-redirect-location":c},...this.G(u,d),..."REPLACE"===o?this.K(s):{}};try{const e=await this.C("PUT",t,{headers:p,tolerated:[200]});return this.B(await e.text())}catch(e){throw this.l("error","Error in copy operation to "+t,{error:e+""}),e}}copyObject(t,e,r={}){this.m(t),this.m(e);const o=`/${this.bucketName}/${D(t)}`;return this.L(e,o,r)}G(t,e){const r={};for(const[o,s]of Object.entries({...t,...e}))void 0!==s&&(r[o]=s);return r}async moveObject(t,e,r={}){try{const o=await this.copyObject(t,e,r);if(!await this.deleteObject(t))throw Error(l+"Failed to delete source object after successful copy");return o}catch(r){throw this.l("error",`Error moving object from ${t} to ${e}`,{error:r+""}),r}}K(t){const e={};for(const[r,o]of Object.entries(t))e[r.startsWith("x-amz-meta-")?r:"x-amz-meta-"+r]=o;return e}B(t){const e=C(t);if(!e||"object"!=typeof e)throw Error(l+"Unexpected copyObject response format");const r=e.CopyObjectResult||e.copyObjectResult||e,o=r.ETag||r.eTag||r.etag,s=r.LastModified||r.lastModified;if(!o||"string"!=typeof o)throw Error(l+"ETag not found in copyObject response");return{etag:x(o),lastModified:s?new Date(s):void 0}}async deleteObject(t){const e=await this.C("DELETE",t,{tolerated:[200,204]});return 200===e.status||204===e.status}async F(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 o=e.subarray(t,t+32768);r+=btoa(String.fromCodePoint(...o))}return r})(await S(e)),o={[h]:s,[u]:O(e),[c]:r},n=await this.C("POST","",{query:{delete:""},body:e,headers:o,withQuery:!0}),i=C(await n.text());if(!i||"object"!=typeof i)throw Error(`${l}Failed to delete objects: ${JSON.stringify(i)}`);const a=i.DeleteResult||i.deleteResult||i,d=new Map;for(const e of t)d.set(e,!1);const p=a.deleted||a.Deleted;if(p){const t=Array.isArray(p)?p:[p];for(const e of t)if(e&&"object"==typeof e){const t=e.key||e.Key;t&&"string"==typeof t&&d.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,o=e.message||e.Message;t&&"string"==typeof t&&(d.set(t,!1),this.l("warn","Failed to delete object: "+t,{code:r||"Unknown",message:o||"Unknown error"}))}}return t.map(t=>d.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 o=0;o<t.length;o+=e){const s=t.slice(o,o+e);r.push(this.F(s))}return(await Promise.all(r)).flat()}return await this.F(t)}async q(t,e,r,o,s=[]){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:o,signal:this.requestAbortTimeout?AbortSignal.timeout(this.requestAbortTimeout):void 0});return this.l("info",`Response status: ${n.status}, tolerated: ${s.join(",")}`),n.ok||s.includes(n.status)||await this.J(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}}R(t,e){if("application/xml"!==t.get("content-type"))return{};const r=C(e);if(!r||"object"!=typeof r||!("Error"in r)||!r.Error||"object"!=typeof r.Error)return{};const o=r.Error;return{svcCode:"Code"in o&&"string"==typeof o.Code?o.Code:void 0,errorMessage:"Message"in o&&"string"==typeof o.Message?o.Message:void 0}}async J(t){const e=await t.text(),r=this.R(t.headers,e),o=t.headers.get("x-amz-error-code")??r.svcCode??"Unknown",s=t.headers.get("x-amz-error-message")??r.errorMessage??t.statusText;throw this.l("error",`${l}Request failed with status ${t.status}: ${o} - ${s},err body: ${e}`),new P(`S3 returned ${t.status} – ${o}`,t.status,o,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 v(t){const r=await U("AWS4"+this.#e,t),o=await U(r,this.region),s=await U(o,"s3");return await U(s,e)}}export{N as S3mini,R as runInBatches,x 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","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","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","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","commonPrefixes","CommonPrefixes","prefixList","item","Prefix","Key","Size","LastModified","ETag","StorageClass","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","getMultipartUploadId","parsed","uploadResult","initiateMultipartUploadResult","InitiateMultipartUploadResult","UploadId","uploadPart","completeMultipartUpload","parts","_buildCompleteMultipartUploadXml","completeMultipartUploadResult","CompleteMultipartUploadResult","resultObj","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","_deleteObjectsProcess","sha256base64","chunk","subarray","btoa","base64FromBuffer","C.HEADER_AMZ_CHECKSUM_SHA256","delete","DeleteResult","deleteResult","resultMap","Map","set","deleted","Deleted","deletedArray","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.1",
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.956.0",
71
71
  "@eslint/eslintrc": "3.3.3",
72
- "@eslint/js": "9.39.1",
72
+ "@eslint/js": "9.39.2",
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.50.0",
77
+ "@typescript-eslint/parser": "8.50.0",
79
78
  "console-table-printer": "2.15.0",
80
79
  "dotenv": "17.2.3",
81
- "eslint": "9.39.1",
80
+ "eslint": "9.39.2",
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
- "rollup": "4.53.3",
86
+ "rollup": "4.54.0",
88
87
  "rollup-plugin-dts": "6.3.0",
89
- "s3mini": "0.7.0",
90
- "tinybench": "5.1.0",
88
+ "s3mini": "0.8.0",
89
+ "tinybench": "6.0.0",
91
90
  "typescript": "5.9.3"
92
91
  },
93
92
  "overrides": {