azion
Version:
Azion Packages for Edge Computing.
2 lines (1 loc) • 17.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;function B(r){return r.replace(/^\//,"")}var h=async(r,t=1e3)=>{let n=0,s=12e4,e=Date.now();for(;Date.now()-e<s;)try{return await r()}catch (e2){if(n===0&&console.warn("Attempting to synchronize. The content may not be synchronized on the edge yet."),Date.now()-e>=s)throw new Error("Max retry time reached");console.log(`Retry attempt ${n+1} failed. Retrying in ${t*Math.pow(2,n)} ms...`),await new Promise(i=>setTimeout(i,t*Math.pow(2,n))),n++}throw new Error("Max retry time reached")},P=async(r,t,n)=>{let e=await S(r,{page_size:1e6},_nullishCoalesce(_optionalChain([n, 'optionalAccess', _2 => _2.debug]), () => (!1)),_optionalChain([n, 'optionalAccess', _3 => _3.env])),o=e.results;return e.error?{error:e.error}:o?{data:o.find(a=>a.name===t)}:{error:{message:"Failed to retrieve buckets.",operation:"getBuckets"}}};async function u(r,t,n,s=!0){let e=await fetch(r,t);if(!e.ok)try{let o=await e.json();if(n&&console.log("Error response body:",o),o.detail||o.message)return o;let i=`HTTP error! Status: ${e.status} - ${e.statusText}`;throw n&&console.log(`Error in fetch: ${i}`),new Error(i)}catch (e3){let i=`HTTP error! Status: ${e.status} - ${e.statusText}`;throw n&&console.log(`Error in fetch: ${i}`),new Error(i)}if(s){let o=e.headers.get("content-type");if(!o||!o.includes("application/json")){let c=`Expected JSON response, but got: ${await e.text()}`;throw n&&console.log(`Error in fetch: ${c}`),new Error(c)}return await e.json()}else return await e.text()}var l=(r="production")=>({production:"https://api.azion.com/v4/storage/buckets",development:"/v4/storage/buckets",staging:"https://stage-api.azion.com/v4/storage/buckets"})[r],C=(r,t={})=>{let n={Accept:"application/json",...t};return r?{...n,Authorization:`Token ${r}`}:n},v=(r,t,n)=>{let s={method:r,headers:t,credentials:"include"};return n&&(s.body=n),s},A=(r,t,n)=>{let s={message:"Error unknown",operation:n};return r.forEach(e=>{t[e]&&(s={message:Array.isArray(t[e])?t[e].join(", "):t[e],operation:n})}),s},S=async(r,t,n,s="production")=>{try{let{page_size:e=10,page:o=1}=t||{},i=new URLSearchParams({page_size:String(e),page:String(o)}),a=C(r,{Accept:"application/json; version=3"}),c=v("GET",a),w=l(s),d=await u(`${w}?${i.toString()}`,c,n);return d.results?(n&&console.log("Response:",d),d):(d.error=A(["detail"],d,"get all buckets"),{error:_nullishCoalesce(d.error, () => (JSON.stringify(d)))})}catch(e){return n&&console.error("Error getting all buckets:",e),{error:{message:e.toString(),operation:"get all buckets"}}}},T=async(r,t,n,s,e="production")=>{try{let o=l(e),i=await u(o,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Token ${r}`},body:JSON.stringify({name:t,edge_access:n})},s);return _optionalChain([i, 'optionalAccess', _4 => _4.state])?(s&&console.log("Response:",i),i):(i.error=A(["name","edge_access","detail"],i,"create bucket"),{error:_nullishCoalesce(i.error, () => (JSON.stringify(i)))})}catch(o){return s&&console.error("Error creating bucket:",o),{error:{message:o.toString(),operation:"create bucket"}}}},$=async(r,t,n,s,e="production")=>{try{let o=l(e),i=await u(`${o}/${t}`,{method:"PATCH",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Token ${r}`},body:JSON.stringify({edge_access:n})},s);return _optionalChain([i, 'optionalAccess', _5 => _5.state])?(s&&console.log("Response:",i),i):(i.error=A(["name","edge_access","detail"],i,"update bucket"),{error:_nullishCoalesce(i.error, () => (JSON.stringify(i)))})}catch(o){return s&&console.error("Error updating bucket:",o),{error:{message:o.toString(),operation:"update bucket"}}}},_=async(r,t,n,s="production")=>{try{let e=l(s),o=await u(`${e}/${t}`,{method:"DELETE",headers:{Accept:"application/json",Authorization:`Token ${r}`}},n);return _optionalChain([o, 'optionalAccess', _6 => _6.state])?(n&&console.log("Response Delete Bucket:",o),o):(o.error=A(["detail"],o,"delete bucket"),{error:_nullishCoalesce(o.error, () => (JSON.stringify(o)))})}catch(e){return n&&console.error("Error deleting bucket:",e),{error:{message:e.toString(),operation:"delete bucket"}}}},x=async(r,t,n,s,e="production")=>{try{let{max_object_count:o=1e4}=n||{},i=new URLSearchParams({max_object_count:String(o)}),a=l(e),c=await u(`${a}/${t}/objects?${i.toString()}`,{method:"GET",headers:{Accept:"application/json",Authorization:`Token ${r}`}},s);return c.results?(s&&console.log("Response:",c),c):(c.error=A(["detail"],c,"get all objects"),{error:_nullishCoalesce(c.error, () => (JSON.stringify(c)))})}catch(o){return s&&console.error("Error getting all objects:",o),{error:{message:o.toString(),operation:"get all objects"}}}},D=async(r,t,n,s,e,o="production")=>{try{let i=l(o),a=await u(`${i}/${t}/objects/${n}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/octet-stream",Authorization:`Token ${r}`},body:s},e);return _optionalChain([a, 'optionalAccess', _7 => _7.state])?(e&&console.log("Response:",a),a):(a.error=A(["detail"],a,"create object"),{error:_nullishCoalesce(a.error, () => (JSON.stringify(a)))})}catch(i){return e&&console.error("Error posting object:",i),{error:{message:i.toString(),operation:"create object"}}}},M=async(r,t,n,s,e="production")=>{try{let o=l(e),i=C(r),a=v("GET",i),c=await u(`${o}/${t}/objects/${n}`,a,s);return c.error?{error:A(["detail"],c,"get object by key")}:(s&&console.log("Response:",c),{data:c})}catch(o){return s&&console.error("Error getting object by name:",o),{error:{message:o.toString(),operation:"get object by key"}}}},L=async(r,t,n,s,e,o="production")=>{try{let i=l(o),a=await u(`${i}/${t}/objects/${n}`,{method:"PUT",headers:{Accept:"application/json","Content-Type":"application/octet-stream",Authorization:`Token ${r}`},body:s},e);return e&&console.log("Response:",a),a}catch(i){return e&&console.error("Error putting object:",i),{error:{message:i.toString(),operation:"put object"}}}},N=async(r,t,n,s,e="production")=>{try{let o=l(e),i=await u(`${o}/${t}/objects/${n}`,{method:"DELETE",headers:{Accept:"application/json",Authorization:`Token ${r}`}},s);return _optionalChain([i, 'optionalAccess', _8 => _8.state])?(s&&console.log("Response:",i),i):(i.error=A(["detail"],i,"delete object"),{error:_nullishCoalesce(i.error, () => (JSON.stringify(i)))})}catch(o){return s&&console.error("Error deleting object:",o),{error:{message:o.toString(),operation:"delete object"}}}};var K=()=>_optionalChain([globalThis, 'access', _9 => _9.Azion, 'optionalAccess', _10 => _10.Sql])||null,b= (_class =class{constructor(t,n){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);this.token=t;this.debug=n}__init() {this.storage=null}initializeStorage(t){this.storage||(this.storage=new globalThis.Azion.Storage(t))}__init2() {this.name=""}__init3() {this.edge_access="unknown"}async getBucket({name:t}){return this.initializeStorage(t),this.storage?(this.name=t,{name:t,edge_access:"unknown",state:"executed-runtime",getObjects:this.getObjects.bind(this),getObjectByKey:this.getObjectByKey.bind(this),createObject:this.createObject.bind(this),updateObject:this.updateObject.bind(this),deleteObject:this.deleteObject.bind(this)}):null}async getObjects({params:t}){this.initializeStorage(this.name);try{let n=await h(()=>this.storage.list()),s=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _11 => _11.max_object_count]), () => (n.entries.length)),e=await Promise.all(n.entries.slice(0,s).map(async o=>({key:B(o.key),size:o.content_length,state:"executed-runtime"})));return{data:{objects:e,count:e.length}}}catch(n){return this.debug&&console.error("Error getting objects:",n),{error:{message:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _12 => _12.message]), () => ("Error getting objects")),operation:"getObjects"}}}}async getObjectByKey({key:t}){this.initializeStorage(this.name);try{let n=await h(()=>this.storage.get(t)),s=await n.arrayBuffer(),o=new TextDecoder().decode(s);return{data:{state:"executed-runtime",key:B(t),size:n.contentLength,content:o,content_type:n.metadata.get("content-type")}}}catch(n){return this.debug&&console.error("Error getting object by key:",n),{error:{message:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _13 => _13.message]), () => ("Error getting object by key")),operation:"getObjectByKey"}}}}async createObject({key:t,content:n,options:s}){this.initializeStorage(this.name);try{let e=new TextEncoder().encode(n);return await h(()=>this.storage.put(t,e,{"content-type":_optionalChain([s, 'optionalAccess', _14 => _14.content_type])})),{data:{state:"executed-runtime",key:B(t),size:e.byteLength,content_type:_optionalChain([s, 'optionalAccess', _15 => _15.content_type]),content:n}}}catch(e){return this.debug&&console.error("Error creating object:",e),{error:{message:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _16 => _16.message]), () => ("Error creating object")),operation:"createObject"}}}}async updateObject({key:t,content:n,options:s}){return this.createObject({key:t,content:n,options:s})}async deleteObject({key:t}){this.initializeStorage(this.name);try{return await h(()=>this.storage.delete(t)),{data:{key:B(t),state:"executed-runtime"}}}catch(n){return this.debug&&console.error("Error deleting object:",n),{error:{message:_nullishCoalesce(_optionalChain([n, 'optionalAccess', _17 => _17.message]), () => ("Error deleting object")),operation:"deleteObject"}}}}}, _class);var E=()=>typeof window<"u"&&typeof window.document<"u",F=!E()&&_optionalChain([process, 'optionalAccess', _18 => _18.env, 'access', _19 => _19.AZION_DEBUG])==="true",g=r=>E()?_nullishCoalesce(r, () => ("")):_nullishCoalesce(_nullishCoalesce(r, () => (_optionalChain([process, 'optionalAccess', _20 => _20.env, 'access', _21 => _21.AZION_TOKEN]))), () => ("")),f=r=>_nullishCoalesce(r, () => (!!F)),R=r=>E()?_nullishCoalesce(r, () => ("production")):_nullishCoalesce(_nullishCoalesce(r, () => (_optionalChain([process, 'optionalAccess', _22 => _22.env, 'access', _23 => _23.AZION_ENV]))), () => ("production")),p=r=>({...r,debug:f(_optionalChain([r, 'optionalAccess', _24 => _24.debug])),env:R(_optionalChain([r, 'optionalAccess', _25 => _25.env]))}),k=(r,t)=>(...n)=>K()?r(...n):t(...n),U= exports.createBucketMethod =async(r,t,n,s)=>{let e=p(s),o=await T(g(r),t,n,e.debug,e.env);return o.data?{data:{...o.data,getObjects:({params:i})=>m(r,t,i,e),getObjectByKey:({key:i})=>z(r,t,i,e),createObject:({key:i,content:a})=>O(r,t,i,a,e),updateObject:({key:i,content:a})=>j(r,t,i,a,e),deleteObject:({key:i})=>y(r,t,i,e)}}:{error:o.error}},W= exports.deleteBucketMethod =async(r,t,n)=>{let s=p(n),e=await _(g(r),t,s.debug,s.env);return e.data?{data:{name:e.data.name,state:e.state}}:{error:e.error}},I= exports.getBucketsMethod =async(r,t,n)=>{let s=p(n),e=await S(g(r),t,s.debug,s.env);if(_optionalChain([e, 'optionalAccess', _26 => _26.results])&&e.results.length>0){let o=_optionalChain([e, 'access', _27 => _27.results, 'optionalAccess', _28 => _28.map, 'call', _29 => _29(i=>({...i,getObjects:({params:a})=>m(r,i.name,a,s),getObjectByKey:({key:a})=>z(r,i.name,a,s),createObject:({key:a,content:c})=>O(r,i.name,a,c,s),updateObject:({key:a,content:c})=>j(r,i.name,a,c,s),deleteObject:({key:a})=>y(r,i.name,a,s)}))]);return{data:{buckets:o,count:_nullishCoalesce(e.count, () => (o.length))}}}return{error:e.error}},J=k(async(r,t,n)=>{let s=p(n),e=await P(r,t,s);if(e.error||!_optionalChain([e, 'access', _30 => _30.data, 'optionalAccess', _31 => _31.name]))return{error:{message:_nullishCoalesce(_optionalChain([e, 'access', _32 => _32.error, 'optionalAccess', _33 => _33.message]), () => ("Bucket not found")),operation:"get bucket"}};let i=await new b(r,s.debug).getBucket({name:t});return i?{data:{...i,getObjects:({params:a})=>m(r,t,a,s),getObjectByKey:({key:a})=>z(r,t,a,s),createObject:({key:a,content:c})=>O(r,t,a,c,s),updateObject:({key:a,content:c})=>j(r,t,a,c,s),deleteObject:({key:a})=>y(r,t,a,s)}}:{error:{message:"Failed to retrieve bucket",operation:"get bucket"}}},async(r,t,n)=>{let s=p(n),e=await P(r,t,s);return e.error||!_optionalChain([e, 'access', _34 => _34.data, 'optionalAccess', _35 => _35.name])?{error:{message:_nullishCoalesce(_optionalChain([e, 'access', _36 => _36.error, 'optionalAccess', _37 => _37.message]), () => ("Bucket not found")),operation:"get bucket"}}:{data:{name:e.data.name,edge_access:_optionalChain([e, 'access', _38 => _38.data, 'optionalAccess', _39 => _39.edge_access]),getObjects:({params:o})=>m(r,t,o,s),getObjectByKey:({key:o})=>z(r,t,o,s),createObject:({key:o,content:i})=>O(r,t,o,i,s),updateObject:({key:o,content:i})=>j(r,t,o,i,s),deleteObject:({key:o})=>y(r,t,o,s)}}}),G= exports.updateBucketMethod =async(r,t,n,s)=>{let e=p(s),o=await $(g(r),t,n,e.debug,e.env);return _optionalChain([o, 'optionalAccess', _40 => _40.data])?{data:{...o.data,getObjects:({params:i})=>m(r,t,i,e),getObjectByKey:({key:i})=>z(r,t,i,e),createObject:({key:i,content:a})=>O(r,t,i,a,e),updateObject:({key:i,content:a})=>j(r,t,i,a,e),deleteObject:({key:i})=>y(r,t,i,e)}}:{error:o.error}},m=k(async(r,t,n,s)=>{let e=new b(r,_optionalChain([s, 'optionalAccess', _41 => _41.debug]));e.name=t;let o=await e.getObjects({params:n});return o.data?{data:o.data}:{error:{message:"Failed to retrieve objects",operation:"get objects"}}},async(r,t,n,s)=>{let e=await x(g(r),t,n,_optionalChain([s, 'optionalAccess', _42 => _42.debug]),_optionalChain([s, 'optionalAccess', _43 => _43.env]));return e.results?{data:{objects:e.results,count:e.results.length}}:{error:_optionalChain([e, 'optionalAccess', _44 => _44.error])}}),z=k(async(r,t,n,s)=>{let e=new b(r,_optionalChain([s, 'optionalAccess', _45 => _45.debug]));e.name=t;let o=await e.getObjectByKey({key:n});return o.data?{data:o.data}:{error:{message:"Failed to retrieve object",operation:"get object by key"}}},async(r,t,n,s)=>{let e=await M(g(r),t,n,f(_optionalChain([s, 'optionalAccess', _46 => _46.debug])),R(_optionalChain([s, 'optionalAccess', _47 => _47.env])));return e.data?{data:{key:n,content:e.data}}:{error:e.error}}),O=k(async(r,t,n,s,e)=>{let o=new b(r,_optionalChain([e, 'optionalAccess', _48 => _48.debug]));o.name=t;let i=await o.createObject({key:n,content:s});return _optionalChain([i, 'optionalAccess', _49 => _49.data])?{data:i.data}:{error:{message:"Failed to create object",operation:"create object"}}},async(r,t,n,s,e)=>{let o=await D(g(r),t,n,s,f(_optionalChain([e, 'optionalAccess', _50 => _50.debug])),R(_optionalChain([e, 'optionalAccess', _51 => _51.env])));return o.data?{data:{key:o.data.object_key,content:s,state:o.state}}:{error:o.error}}),j=k(async(r,t,n,s,e)=>{let o=new b(r,_optionalChain([e, 'optionalAccess', _52 => _52.debug]));o.name=t;let i=await o.updateObject({key:n,content:s});return _optionalChain([i, 'optionalAccess', _53 => _53.data])?{data:i.data}:{error:i.error}},async(r,t,n,s,e)=>{let o=await L(g(r),t,n,s,f(_optionalChain([e, 'optionalAccess', _54 => _54.debug])),R(_optionalChain([e, 'optionalAccess', _55 => _55.env])));return o.data?{data:{key:o.data.object_key,content:s,state:o.state}}:{error:o.error}}),y=k(async(r,t,n,s)=>{let e=new b(r,_optionalChain([s, 'optionalAccess', _56 => _56.debug]));e.name=t;let o=await e.deleteObject({key:n});return o.data?{data:o.data}:{error:o.error}},async(r,t,n,s)=>{let e=await N(g(r),t,n,f(_optionalChain([s, 'optionalAccess', _57 => _57.debug])),R(_optionalChain([s, 'optionalAccess', _58 => _58.env])));return e.data?{data:{key:n,state:e.state}}:{error:e.error}}),ne= exports.createBucket =({name:r,edge_access:t,options:n})=>U(g(),r,t,p(n)),oe= exports.deleteBucket =({name:r,options:t})=>W(g(),r,p(t)),se= exports.getBuckets =({params:r,options:t})=>I(g(),r,p(t)),ie= exports.getBucket =({name:r,options:t})=>J(g(),r,p(t)),ae= exports.updateBucket =({name:r,edge_access:t,options:n})=>G(g(),r,t,p(n)),ce= exports.getObjects =({bucket:r,params:t,options:n})=>m(g(),r,t,p(n)),ge= exports.createObject =({bucket:r,key:t,content:n,options:s})=>O(g(),r,t,n,p(s)),pe= exports.getObjectByKey =({bucket:r,key:t,options:n})=>z(g(),r,t,p(n)),ue= exports.updateObject =({bucket:r,key:t,content:n,options:s})=>j(g(),r,t,n,p(s)),le= exports.deleteObject =({bucket:r,key:t,options:n})=>y(g(),r,t,p(n)),H= exports.createClient =r=>{let t=g(_optionalChain([r, 'optionalAccess', _59 => _59.token])),n=p(_optionalChain([r, 'optionalAccess', _60 => _60.options]));return{getBuckets:e=>I(t,_optionalChain([e, 'optionalAccess', _61 => _61.params]),n),createBucket:({name:e,edge_access:o})=>U(t,e,o,n),updateBucket:({name:e,edge_access:o})=>G(t,e,o,n),deleteBucket:({name:e})=>W(t,e,n),getBucket:({name:e})=>J(t,e,n)}};var be=H;exports.createBucket = ne; exports.createBucketMethod = U; exports.createClient = H; exports.createObject = ge; exports.default = be; exports.deleteBucket = oe; exports.deleteBucketMethod = W; exports.deleteObject = le; exports.getBucket = ie; exports.getBuckets = se; exports.getBucketsMethod = I; exports.getObjectByKey = pe; exports.getObjects = ce; exports.updateBucket = ae; exports.updateBucketMethod = G; exports.updateObject = ue;
;