"use strict";var re=Object.create;var I=Object.defineProperty,ne=Object.defineProperties,se=Object.getOwnPropertyDescriptor,oe=Object.getOwnPropertyDescriptors,ae=Object.getOwnPropertyNames,F=Object.getOwnPropertySymbols,ce=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable;var _=i=>{throw TypeError(i)};var H=(i,e,t)=>e in i?I(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,M=(i,e)=>{for(var t in e||(e={}))K.call(e,t)&&H(i,t,e[t]);if(F)for(var t of F(e))le.call(e,t)&&H(i,t,e[t]);return i},B=(i,e)=>ne(i,oe(e));var ue=(i,e)=>{for(var t in e)I(i,t,{get:e[t],enumerable:!0})},J=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ae(e))!K.call(i,o)&&o!==t&&I(i,o,{get:()=>e[o],enumerable:!(r=se(e,o))||r.enumerable});return i};var U=(i,e,t)=>(t=i!=null?re(ce(i)):{},J(e||!i||!i.__esModule?I(t,"default",{value:i,enumerable:!0}):t,i)),me=i=>J(I({},"__esModule",{value:!0}),i);var Q=(i,e,t)=>e.has(i)||_("Cannot "+t);var n=(i,e,t)=>(Q(i,e,"read from private field"),t?t.call(i):e.get(i)),u=(i,e,t)=>e.has(i)?_("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,t),g=(i,e,t,r)=>(Q(i,e,"write to private field"),r?r.call(i,t):e.set(i,t),t);var c=(i,e,t)=>new Promise((r,o)=>{var s=p=>{try{h(t.next(p))}catch(f){o(f)}},l=p=>{try{h(t.throw(p))}catch(f){o(f)}},h=p=>p.done?r(p.value):Promise.resolve(p.value).then(s,l);h((t=t.apply(i,e)).next())});var he={};ue(he,{EmailTool:()=>v,EntitiesClient:()=>L,EntityClient:()=>A,FileTool:()=>P,LumiAuthClient:()=>x,LumiClient:()=>$,ToolsClient:()=>O,createClient:()=>ge});module.exports=me(he);var te=require("uuid");var G=U(require("crypto-js/enc-base64")),Y=U(require("crypto-js/enc-hex")),z=U(require("crypto-js/hmac-sha256")),Z=U(require("crypto-js/sha256")),X=require("ofetch");var pe="6QrJZ7pFCmBZAeIJF7IArvkCz+EtzA0RVcpHkiQIsQyhs7QtCS9P+CueZdHfB2OtJcgX3BbqY9pfpWeAVTqCwQ==";function V(i){return encodeURIComponent(i).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function de(i){return e=>{let{options:t}=e,r=Math.floor(Date.now()/1e3).toString(),o=Math.random().toString(36).substring(2,15),s=M({},t.query),l=Object.keys(s).sort().map(w=>`${V(w)}=${V(String(s[w]))}`).join("&"),h={"x-timestamp":r,"x-nonce":o},p=Object.keys(h).sort().map(w=>`${w}:${h[w]}`).join(` `),f=t.body&&!(t.body instanceof FormData)?JSON.stringify(t.body):"",D=(0,Z.default)(f).toString(Y.default),S=[l,p,D].join(` `);console.warn(`Client-side Canonical Request V3: `,S);let d=G.default.stringify((0,z.default)(S,i)),T=new Headers(t.headers);Object.entries(h).forEach(([w,ie])=>{T.set(w,ie)}),T.set("X-Sign",d),t.headers=T}}function a(i,e,t={}){return i.auth.accessToken&&(t.headers=M({Authorization:`Bearer ${i.auth.accessToken}`},t.headers)),(0,X.ofetch)(e,B(M({baseURL:i.config.apiBaseUrl},t),{onRequest:de(pe)}))}function W(){var i,e;return(e=(i=document.querySelector('link[rel="icon"]'))==null?void 0:i.href)!=null?e:null}function ee(){var i;return(i=document.title)!=null?i:null}function q(i,e,t=localStorage){let r=t.getItem(i),o=e?JSON.stringify(e):null;o?t.setItem(i,o):t.removeItem(i),window.dispatchEvent(new StorageEvent("storage",{key:i,oldValue:r,newValue:o,storageArea:t}))}function j(i,e=localStorage){let t=e.getItem(i);try{return t?JSON.parse(t):null}catch(r){return null}}var y,k,x=class{constructor(e){u(this,y);u(this,k,`lumi-auth-${(0,te.v4)()}`);g(this,y,e)}get accessToken(){return j("lumi-access-token")}set accessToken(e){q("lumi-access-token",e)}get user(){return j("lumi-user")}set user(e){q("lumi-user",e)}get isAuthenticated(){return!!this.accessToken}signIn(){let r=(window.screen.width-800)/2,o=(window.screen.height-600)/2,s=window.open(n(this,y).config.authOrigin,n(this,k),`width=800,height=600,left=${r},top=${o}`),l;return new Promise((h,p)=>{if(!s)return p(new Error("Open auth window failed"));let f=setInterval(()=>{s.closed&&p(new Error("Auth window closed"))},1e3),D=d=>{s.closed||(s.focus(),d.stopPropagation(),d.preventDefault())},S=({data:d,origin:T,source:w})=>{if(!(T!==n(this,y).config.authOrigin||w!==s))switch(d==null?void 0:d.type){case"lumi-ready":{s.postMessage({type:"lumi-init",data:{projectId:n(this,y).config.projectId,icon:W(),title:ee()}},n(this,y).config.authOrigin);break}case"lumi-sign-in":{if(d.data.projectId!==n(this,y).config.projectId)break;s.close(),window.focus(),this.accessToken=d.data.accessToken,this.user=d.data.user,h(d.data);break}}};window.addEventListener("message",S),document.addEventListener("click",D,!0),l=()=>{clearInterval(f),window.removeEventListener("message",S),document.removeEventListener("click",D,!0)}}).finally(()=>l==null?void 0:l())}signOut(){this.accessToken=null,this.user=null}refreshUser(){return c(this,null,function*(){let e=yield a(n(this,y),"/lm/user/info",{method:"POST"});if(e.code!==200)throw new Error(e.message);return this.user=e.data,e.data})}onAuthChange(e){let t=r=>{(r.key==="lumi-access-token"||r.key==="lumi-user"||r.key===null)&&e({isAuthenticated:this.isAuthenticated,user:this.user})};return window.addEventListener("storage",t),()=>{window.removeEventListener("storage",t)}}};y=new WeakMap,k=new WeakMap;var m,A=class{constructor(e,t){u(this,m);g(this,m,e),this.entityName=t}list(){return c(this,arguments,function*({filter:e,sort:t,limit:r,skip:o}={}){if(r){let s=yield a(n(this,m),this.uri("/find"),{method:"POST",body:{filter:e,sort:t,limit:r,skip:o}});if(s.code!==200)throw new Error(s.message);return s.data}else{let s=yield a(n(this,m),this.uri("/list"),{method:"POST",body:{filter:e,sort:t}});if(s.code!==200)throw new Error(s.message);return{total:s.data.length,list:s.data}}})}get(e){return c(this,null,function*(){let t=yield a(n(this,m),this.uri(`/${e}`),{method:"GET"});if(t.code!==200)throw new Error(t.message);return t.data})}create(e){return c(this,null,function*(){let t=yield a(n(this,m),this.uri(),{method:"POST",body:e});if(t.code!==200)throw new Error(t.message);return t.data})}createMany(e){return c(this,null,function*(){let t=yield a(n(this,m),this.uri("/batch"),{method:"POST",body:e});if(t.code!==200)throw new Error(t.message);return t.data})}update(e,t){return c(this,null,function*(){let r=yield a(n(this,m),this.uri(),{method:"PUT",body:{filter:{_id:e},update:t}});if(r.code!==200)throw new Error(r.message);return r.data})}delete(e){return c(this,null,function*(){let t=yield a(n(this,m),this.uri(`/${e}`),{method:"DELETE"});if(t.code!==200)throw new Error(t.message)})}deleteMany(e){return c(this,null,function*(){let t=yield a(n(this,m),this.uri("/batch-by-ids"),{method:"DELETE",params:{ids:e}});if(t.code!==200)throw new Error(t.message)})}uri(e=""){return`/lm/${n(this,m).config.projectId}/${this.entityName}/documents${e}`}};m=new WeakMap;var R,L=class{constructor(e){u(this,R);return g(this,R,e),new Proxy(this,{get(t,r){return r in t||(t[r]=new A(n(t,R),r)),t[r]}})}};R=new WeakMap;var b=class extends Error{constructor(t,r){super(r);this.name="LumiError";this.code=t}};var C,v=class{constructor(e){u(this,C);g(this,C,e)}send(p){return c(this,arguments,function*({to:e,subject:t,fromName:r,html:o,text:s="",replyTo:l,scheduledAt:h}){if(!e||!t||!o&&!s)throw new Error("Failed to send email: Missing required parameters.");typeof e=="string"&&(e=[e]),typeof l=="string"&&(l=[l]);let f=yield a(n(this,C),`/lm/${n(this,C).config.projectId}/email/send`,{method:"POST",body:{to:e,subject:t,fromName:r,html:o,text:s,replyTo:l,scheduledAt:h}});if(f.code!==200)throw new b(f.code,f.message)})}};C=new WeakMap;var E,P=class{constructor(e){u(this,E);g(this,E,e)}upload(e){return c(this,null,function*(){let t=new FormData;e.forEach(o=>{t.append("files",o)});let r=yield a(n(this,E),`/lm/${n(this,E).config.projectId}/file/batch`,{method:"POST",body:t});if(r.code!==200)throw new b(r.code,r.message);return r.data})}delete(e){return c(this,null,function*(){let t=yield a(n(this,E),`/lm/${n(this,E).config.projectId}/file/batch`,{method:"DELETE",body:{fileUrls:e}});if(t.code!==200)throw new b(t.code,t.message)})}};E=new WeakMap;var N,O=class{constructor(e){u(this,N);g(this,N,e),this.email=new v(e),this.file=new P(e)}};N=new WeakMap;var $=class{constructor(e){this.config=e,this.auth=new x(this),this.entities=new L(this),this.tools=new O(this)}};function ge(i){return new $(i)}0&&(module.exports={EmailTool,EntitiesClient,EntityClient,FileTool,LumiAuthClient,LumiClient,ToolsClient,createClient}); //# sourceMappingURL=index.js.map