UNPKG

azion

Version:

Azion Packages for Edge Computing.

2 lines (1 loc) 17.9 kB
"use strict";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(o){return o.replace(/^\//,"")}var h=async(o,t=1e3)=>{let r=0,s=12e4,e=Date.now();for(;Date.now()-e<s;)try{return await o()}catch (e2){if(r===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 ${r+1} failed. Retrying in ${t*Math.pow(2,r)} ms...`),await new Promise(i=>setTimeout(i,t*Math.pow(2,r))),r++}throw new Error("Max retry time reached")},P=async(o,t,r)=>{let e=await S(o,{page_size:1e6},_nullishCoalesce(_optionalChain([r, 'optionalAccess', _2 => _2.debug]), () => (!1)),_optionalChain([r, 'optionalAccess', _3 => _3.env])),n=e.results;return e.error?{error:e.error}:n?{data:n.find(a=>a.name===t)}:{error:{message:"Failed to retrieve buckets.",operation:"getBuckets"}}};async function u(o,t,r,s=!0){let e=await fetch(o,t);if(!e.ok)try{let n=await e.json();if(r&&console.log("Error response body:",n),n.detail||n.message)return n;let i=`HTTP error! Status: ${e.status} - ${e.statusText}`;throw r&&console.log(`Error in fetch: ${i}`),new Error(i)}catch (e3){let i=`HTTP error! Status: ${e.status} - ${e.statusText}`;throw r&&console.log(`Error in fetch: ${i}`),new Error(i)}if(s){let n=e.headers.get("content-type");if(!n||!n.includes("application/json")){let c=`Expected JSON response, but got: ${await e.text()}`;throw r&&console.log(`Error in fetch: ${c}`),new Error(c)}return await e.json()}else return await e.text()}var l=(o="production")=>({production:"https://api.azion.com/v4/storage/buckets",development:"/v4/storage/buckets",staging:"https://stage-api.azion.com/v4/storage/buckets"})[o],w=(o,t={})=>{let r={Accept:"application/json",...t};return o?{...r,Authorization:`Token ${o}`}:r},T=(o,t,r)=>{let s={method:o,headers:t,credentials:"include"};return r&&(s.body=r),s},A=(o,t,r)=>{let s={message:"Error unknown",operation:r};return o.forEach(e=>{t[e]&&(s={message:Array.isArray(t[e])?t[e].join(", "):t[e],operation:r})}),s},S=async(o,t,r,s="production")=>{try{let{page_size:e=10,page:n=1}=t||{},i=new URLSearchParams({page_size:String(e),page:String(n)}),a=w(o,{Accept:"application/json; version=3"}),c=T("GET",a),C=l(s),b=await u(`${C}?${i.toString()}`,c,r);return b.results?(r&&console.log("Response:",b),b):(b.error=A(["detail"],b,"get all buckets"),{error:_nullishCoalesce(b.error, () => (JSON.stringify(b)))})}catch(e){return r&&console.error("Error getting all buckets:",e),{error:{message:e.toString(),operation:"get all buckets"}}}},v=async(o,t,r,s,e="production")=>{try{let n=l(e),i=await u(n,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Token ${o}`},body:JSON.stringify({name:t,edge_access:r})},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(n){return s&&console.error("Error creating bucket:",n),{error:{message:n.toString(),operation:"create bucket"}}}},_=async(o,t,r,s,e="production")=>{try{let n=l(e),i=await u(`${n}/${t}`,{method:"PATCH",headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Token ${o}`},body:JSON.stringify({edge_access:r})},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(n){return s&&console.error("Error updating bucket:",n),{error:{message:n.toString(),operation:"update bucket"}}}},$=async(o,t,r,s="production")=>{try{let e=l(s),n=await u(`${e}/${t}`,{method:"DELETE",headers:{Accept:"application/json",Authorization:`Token ${o}`}},r);return _optionalChain([n, 'optionalAccess', _6 => _6.state])?(r&&console.log("Response Delete Bucket:",n),n):(n.error=A(["detail"],n,"delete bucket"),{error:_nullishCoalesce(n.error, () => (JSON.stringify(n)))})}catch(e){return r&&console.error("Error deleting bucket:",e),{error:{message:e.toString(),operation:"delete bucket"}}}},x=async(o,t,r,s,e="production")=>{try{let{max_object_count:n=1e4}=r||{},i=new URLSearchParams({max_object_count:String(n)}),a=l(e),c=await u(`${a}/${t}/objects?${i.toString()}`,{method:"GET",headers:{Accept:"application/json",Authorization:`Token ${o}`}},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(n){return s&&console.error("Error getting all objects:",n),{error:{message:n.toString(),operation:"get all objects"}}}},D=async(o,t,r,s,e,n="production")=>{try{let i=l(n),a=await u(`${i}/${t}/objects/${r}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/octet-stream",Authorization:`Token ${o}`},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(o,t,r,s,e="production")=>{try{let n=l(e),i=w(o),a=T("GET",i),c=await u(`${n}/${t}/objects/${r}`,a,s);return c.error?{error:A(["detail"],c,"get object by key")}:(s&&console.log("Response:",c),{data:c})}catch(n){return s&&console.error("Error getting object by name:",n),{error:{message:n.toString(),operation:"get object by key"}}}},L=async(o,t,r,s,e,n="production")=>{try{let i=l(n),a=await u(`${i}/${t}/objects/${r}`,{method:"PUT",headers:{Accept:"application/json","Content-Type":"application/octet-stream",Authorization:`Token ${o}`},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(o,t,r,s,e="production")=>{try{let n=l(e),i=await u(`${n}/${t}/objects/${r}`,{method:"DELETE",headers:{Accept:"application/json",Authorization:`Token ${o}`}},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(n){return s&&console.error("Error deleting object:",n),{error:{message:n.toString(),operation:"delete object"}}}};var K=()=>_optionalChain([globalThis, 'access', _9 => _9.Azion, 'optionalAccess', _10 => _10.Sql])||null,d= (_class =class{constructor(t,r){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);this.token=t;this.debug=r}__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 r=await h(()=>this.storage.list()),s=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _11 => _11.max_object_count]), () => (r.entries.length)),e=await Promise.all(r.entries.slice(0,s).map(async n=>({key:B(n.key),size:n.content_length,state:"executed-runtime"})));return{data:{objects:e,count:e.length}}}catch(r){return this.debug&&console.error("Error getting objects:",r),{error:{message:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _12 => _12.message]), () => ("Error getting objects")),operation:"getObjects"}}}}async getObjectByKey({key:t}){this.initializeStorage(this.name);try{let r=await h(()=>this.storage.get(t)),s=await r.arrayBuffer(),n=new TextDecoder().decode(s);return{data:{state:"executed-runtime",key:B(t),size:r.contentLength,content:n,content_type:r.metadata.get("content-type")}}}catch(r){return this.debug&&console.error("Error getting object by key:",r),{error:{message:_nullishCoalesce(_optionalChain([r, 'optionalAccess', _13 => _13.message]), () => ("Error getting object by key")),operation:"getObjectByKey"}}}}async createObject({key:t,content:r,options:s}){this.initializeStorage(this.name);try{let e=new TextEncoder().encode(r);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:r}}}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:r,options:s}){return this.createObject({key:t,content:r,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(r){return this.debug&&console.error("Error deleting object:",r),{error:{message:_nullishCoalesce(_optionalChain([r, '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=o=>E()?_nullishCoalesce(o, () => ("")):_nullishCoalesce(_nullishCoalesce(o, () => (_optionalChain([process, 'optionalAccess', _20 => _20.env, 'access', _21 => _21.AZION_TOKEN]))), () => ("")),f=o=>_nullishCoalesce(o, () => (!!F)),R=o=>E()?_nullishCoalesce(o, () => ("production")):_nullishCoalesce(_nullishCoalesce(o, () => (_optionalChain([process, 'optionalAccess', _22 => _22.env, 'access', _23 => _23.AZION_ENV]))), () => ("production")),p=o=>({...o,debug:f(_optionalChain([o, 'optionalAccess', _24 => _24.debug])),env:R(_optionalChain([o, 'optionalAccess', _25 => _25.env]))}),k=(o,t)=>(...r)=>{let s=r[r.length-1];return p(s).external||!K()?t(...r):o(...r)},U= exports.createBucketMethod =async(o,t,r,s)=>{let e=p(s),n=await v(g(o),t,r,e.debug,e.env);return n.data?{data:{...n.data,edge_access:n.data.edge_access,getObjects:({params:i})=>m(o,t,i,e),getObjectByKey:({key:i})=>z(o,t,i,e),createObject:({key:i,content:a})=>O(o,t,i,a,e),updateObject:({key:i,content:a})=>j(o,t,i,a,e),deleteObject:({key:i})=>y(o,t,i,e)}}:{error:n.error}},W= exports.deleteBucketMethod =async(o,t,r)=>{let s=p(r),e=await $(g(o),t,s.debug,s.env);return e.data?{data:{name:e.data.name,state:e.state}}:{error:e.error}},I= exports.getBucketsMethod =async(o,t,r)=>{let s=p(r),e=await S(g(o),t,s.debug,s.env);if(_optionalChain([e, 'optionalAccess', _26 => _26.results])&&e.results.length>0){let n=_optionalChain([e, 'access', _27 => _27.results, 'optionalAccess', _28 => _28.map, 'call', _29 => _29(i=>({...i,edge_access:i.edge_access,getObjects:({params:a})=>m(o,i.name,a,s),getObjectByKey:({key:a})=>z(o,i.name,a,s),createObject:({key:a,content:c})=>O(o,i.name,a,c,s),updateObject:({key:a,content:c})=>j(o,i.name,a,c,s),deleteObject:({key:a})=>y(o,i.name,a,s)}))]);return{data:{buckets:n,count:_nullishCoalesce(e.count, () => (n.length))}}}return{error:e.error}},J=k(async(o,t,r)=>{let s=p(r),e=await P(o,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 d(o,s.debug).getBucket({name:t});return i?{data:{...i,getObjects:({params:a})=>m(o,t,a,s),getObjectByKey:({key:a})=>z(o,t,a,s),createObject:({key:a,content:c})=>O(o,t,a,c,s),updateObject:({key:a,content:c})=>j(o,t,a,c,s),deleteObject:({key:a})=>y(o,t,a,s)}}:{error:{message:"Failed to retrieve bucket",operation:"get bucket"}}},async(o,t,r)=>{let s=p(r),e=await P(o,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:n})=>m(o,t,n,s),getObjectByKey:({key:n})=>z(o,t,n,s),createObject:({key:n,content:i})=>O(o,t,n,i,s),updateObject:({key:n,content:i})=>j(o,t,n,i,s),deleteObject:({key:n})=>y(o,t,n,s)}}}),G= exports.updateBucketMethod =async(o,t,r,s)=>{let e=p(s),n=await _(g(o),t,r,e.debug,e.env);return _optionalChain([n, 'optionalAccess', _40 => _40.data])?{data:{...n.data,edge_access:n.data.edge_access,getObjects:({params:i})=>m(o,t,i,e),getObjectByKey:({key:i})=>z(o,t,i,e),createObject:({key:i,content:a})=>O(o,t,i,a,e),updateObject:({key:i,content:a})=>j(o,t,i,a,e),deleteObject:({key:i})=>y(o,t,i,e)}}:{error:n.error}},m=k(async(o,t,r,s)=>{let e=new d(o,_optionalChain([s, 'optionalAccess', _41 => _41.debug]));e.name=t;let n=await e.getObjects({params:r});return n.data?{data:n.data}:{error:{message:"Failed to retrieve objects",operation:"get objects"}}},async(o,t,r,s)=>{let e=await x(g(o),t,r,_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(o,t,r,s)=>{let e=new d(o,_optionalChain([s, 'optionalAccess', _45 => _45.debug]));e.name=t;let n=await e.getObjectByKey({key:r});return n.data?{data:n.data}:{error:{message:"Failed to retrieve object",operation:"get object by key"}}},async(o,t,r,s)=>{let e=await M(g(o),t,r,f(_optionalChain([s, 'optionalAccess', _46 => _46.debug])),R(_optionalChain([s, 'optionalAccess', _47 => _47.env])));return e.data?{data:{key:r,content:e.data}}:{error:e.error}}),O=k(async(o,t,r,s,e)=>{let n=new d(o,_optionalChain([e, 'optionalAccess', _48 => _48.debug]));n.name=t;let i=await n.createObject({key:r,content:s});return _optionalChain([i, 'optionalAccess', _49 => _49.data])?{data:i.data}:{error:{message:"Failed to create object",operation:"create object"}}},async(o,t,r,s,e)=>{let n=await D(g(o),t,r,s,f(_optionalChain([e, 'optionalAccess', _50 => _50.debug])),R(_optionalChain([e, 'optionalAccess', _51 => _51.env])));return n.data?{data:{key:n.data.object_key,content:s,state:n.state}}:{error:n.error}}),j=k(async(o,t,r,s,e)=>{let n=new d(o,_optionalChain([e, 'optionalAccess', _52 => _52.debug]));n.name=t;let i=await n.updateObject({key:r,content:s});return _optionalChain([i, 'optionalAccess', _53 => _53.data])?{data:i.data}:{error:i.error}},async(o,t,r,s,e)=>{let n=await L(g(o),t,r,s,f(_optionalChain([e, 'optionalAccess', _54 => _54.debug])),R(_optionalChain([e, 'optionalAccess', _55 => _55.env])));return n.data?{data:{key:n.data.object_key,content:s,state:n.state}}:{error:n.error}}),y=k(async(o,t,r,s)=>{let e=new d(o,_optionalChain([s, 'optionalAccess', _56 => _56.debug]));e.name=t;let n=await e.deleteObject({key:r});return n.data?{data:n.data}:{error:n.error}},async(o,t,r,s)=>{let e=await N(g(o),t,r,f(_optionalChain([s, 'optionalAccess', _57 => _57.debug])),R(_optionalChain([s, 'optionalAccess', _58 => _58.env])));return e.data?{data:{key:r,state:e.state}}:{error:e.error}}),re= exports.createBucket =({name:o,edge_access:t,options:r})=>U(g(),o,t,p(r)),ne= exports.deleteBucket =({name:o,options:t})=>W(g(),o,p(t)),se= exports.getBuckets =({params:o,options:t})=>I(g(),o,p(t)),ie= exports.getBucket =({name:o,options:t})=>J(g(),o,p(t)),ae= exports.updateBucket =({name:o,edge_access:t,options:r})=>G(g(),o,t,p(r)),ce= exports.getObjects =({bucket:o,params:t,options:r})=>m(g(),o,t,p(r)),ge= exports.createObject =({bucket:o,key:t,content:r,options:s})=>O(g(),o,t,r,p(s)),pe= exports.getObjectByKey =({bucket:o,key:t,options:r})=>z(g(),o,t,p(r)),ue= exports.updateObject =({bucket:o,key:t,content:r,options:s})=>j(g(),o,t,r,p(s)),le= exports.deleteObject =({bucket:o,key:t,options:r})=>y(g(),o,t,p(r)),H= exports.createClient =o=>{let t=g(_optionalChain([o, 'optionalAccess', _59 => _59.token])),r=p(_optionalChain([o, 'optionalAccess', _60 => _60.options]));return{getBuckets:e=>I(t,_optionalChain([e, 'optionalAccess', _61 => _61.params]),r),createBucket:({name:e,edge_access:n})=>U(t,e,n,r),updateBucket:({name:e,edge_access:n})=>G(t,e,n,r),deleteBucket:({name:e})=>W(t,e,r),getBucket:({name:e})=>J(t,e,r)}};var de=H;exports.createBucket = re; exports.createBucketMethod = U; exports.createClient = H; exports.createObject = ge; exports.default = de; exports.deleteBucket = ne; 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;