entity-client 1.0.12 → 1.0.14

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.
Files changed (48) hide show
  1. package/dist/EntityAppServerApi.d.ts +480 -0
  2. package/dist/EntityServerApi.d.ts +248 -7
  3. package/dist/client/base.d.ts +35 -4
  4. package/dist/client/base.js +1 -1
  5. package/dist/client/base.js.map +3 -3
  6. package/dist/client/request.d.ts +6 -1
  7. package/dist/client/request.js +1 -1
  8. package/dist/client/request.js.map +3 -3
  9. package/dist/hooks/useEntityClient.d.ts +4 -4
  10. package/dist/hooks/useEntityClient.js +1 -1
  11. package/dist/hooks/useEntityClient.js.map +3 -3
  12. package/dist/index.js +1 -1
  13. package/dist/index.js.map +3 -3
  14. package/dist/mixins/app/plugins/alimtalk.d.ts +30 -0
  15. package/dist/mixins/app/plugins/friendtalk.d.ts +30 -0
  16. package/dist/mixins/app/plugins/holidays.d.ts +30 -0
  17. package/dist/mixins/app/plugins/identity.d.ts +30 -0
  18. package/dist/mixins/app/plugins/llm.d.ts +30 -0
  19. package/dist/mixins/app/plugins/ocr.d.ts +30 -0
  20. package/dist/mixins/app/plugins/pg.d.ts +30 -0
  21. package/dist/mixins/app/plugins/push.d.ts +30 -0
  22. package/dist/mixins/app/plugins/sms.d.ts +30 -0
  23. package/dist/mixins/app/plugins/taxinvoice.d.ts +30 -0
  24. package/dist/mixins/app/routes/account.d.ts +30 -0
  25. package/dist/mixins/app/routes/board.d.ts +30 -0
  26. package/dist/mixins/app/routes/board.js +1 -1
  27. package/dist/mixins/app/routes/board.js.map +2 -2
  28. package/dist/mixins/app/routes/email-verify.d.ts +30 -0
  29. package/dist/mixins/app/routes/oauth.d.ts +30 -0
  30. package/dist/mixins/app/routes/password-reset.d.ts +30 -0
  31. package/dist/mixins/app/routes/two-factor.d.ts +30 -0
  32. package/dist/mixins/server/admin.d.ts +30 -0
  33. package/dist/mixins/server/auth.d.ts +72 -8
  34. package/dist/mixins/server/auth.js +1 -1
  35. package/dist/mixins/server/auth.js.map +3 -3
  36. package/dist/mixins/server/entity.d.ts +30 -0
  37. package/dist/mixins/server/file.d.ts +30 -0
  38. package/dist/mixins/server/index.d.ts +2 -1
  39. package/dist/mixins/server/index.js +1 -1
  40. package/dist/mixins/server/index.js.map +3 -3
  41. package/dist/mixins/server/push.d.ts +30 -0
  42. package/dist/mixins/server/smtp.d.ts +30 -0
  43. package/dist/mixins/server/transaction.d.ts +30 -0
  44. package/dist/mixins/server/utils.d.ts +30 -0
  45. package/dist/react.js +1 -1
  46. package/dist/react.js.map +3 -3
  47. package/dist/types.d.ts +46 -11
  48. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- function ct(r){let n=import.meta;if(n?.env?.[r]!=null)return n.env[r];let t=globalThis.process;if(t?.env?.[r]!=null)return t.env[r]}function c(r){return Object.entries(r).filter(([,n])=>n!=null).map(([n,t])=>`${encodeURIComponent(n==="orderBy"?"order_by":n)}=${encodeURIComponent(String(t))}`).join("&")}import{xchacha20poly1305 as mt}from"@noble/ciphers/chacha";import{sha256 as Rt}from"@noble/hashes/sha2";import{hkdf as Ct}from"@noble/hashes/hkdf";var q=32,M=2,O=14,k=24,St=16,_t="entity-server:hkdf:v1",Bt="entity-server:packet-encryption";function w(r){return r instanceof Uint8Array?r:new Uint8Array(r)}function lt(r,n=Bt){return Ct(Rt,new TextEncoder().encode(r),new TextEncoder().encode(_t),new TextEncoder().encode(n),q)}function dt(r,n=M,t=O){let e=w(r);return e.length<q?n:n+e[q-1]%t}function ht(r,n,t=M,e=O){let s=w(r),i=w(n),o=dt(i,t,e),a=crypto.getRandomValues(new Uint8Array(o)),u=crypto.getRandomValues(new Uint8Array(k)),h=mt(i,u).encrypt(s),p=new Uint8Array(o+k+h.length);return p.set(a,0),p.set(u,o),p.set(h,o+k),p}function pt(r,n,t=M,e=O){let s=w(r),i=w(n),o=dt(i,t,e);if(s.length<o+k+St)throw new Error("Encrypted packet too short");let a=s.slice(o,o+k),u=s.slice(o+k);return mt(i,a).decrypt(u)}function v(r,n){return lt(r||n)}function Tt(r,n){return ht(r,n)}function S(r,n){let t=pt(r,n);return JSON.parse(new TextDecoder().decode(t))}function ft(r,n,t,e){let s=n.toLowerCase().includes("application/octet-stream");if(t&&!s)throw new Error("Encrypted request required: Content-Type must be application/octet-stream");if(s){if(r==null)throw new Error("Encrypted request body is empty");if(r instanceof ArrayBuffer)return S(r,e);if(r instanceof Uint8Array){let i=r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength);return S(i,e)}throw new Error("Encrypted request body must be ArrayBuffer or Uint8Array")}return r==null||r===""?{}:typeof r=="string"?JSON.parse(r):r}import{sha256 as $t}from"@noble/hashes/sha2";import{hmac as At}from"@noble/hashes/hmac";function gt(r,n,t,e,s){let i=String(Math.floor(Date.now()/1e3)),o=crypto.randomUUID(),a=new TextEncoder().encode(`${r}|${n}|${i}|${o}|`),u=new Uint8Array(a.length+t.length);u.set(a,0),u.set(t,a.length);let h=[...At($t,new TextEncoder().encode(s),u)].map(p=>p.toString(16).padStart(2,"0")).join("");return{"X-API-Key":e,"X-Timestamp":i,"X-Nonce":o,"X-Signature":h}}function Et(r){return r.hmacSecret||r.token||r.anonymousPacketToken}function qt(r){return r!=="GET"&&r!=="HEAD"&&r!=="OPTIONS"}function _(r){if(typeof document>"u")return"";for(let n of document.cookie.split(";")){let t=n.indexOf("=");if(!(t<0)&&n.substring(0,t).trim()===r)return decodeURIComponent(n.substring(t+1).trim())}return""}function Mt(r,n){return r===403&&/csrf/i.test(n)?!0:/csrf/i.test(n)&&/expired|token validation failed/i.test(n)}async function kt(r){if((r.headers.get("Content-Type")??"").includes("application/json")){let e=await r.json().catch(()=>null);if(e?.error)return e.error;if(e?.message)return e.message}return await r.text().catch(()=>"")||`HTTP ${r.status}`}async function g(r,n,t,e,s=!0,i={},o=!0){let{baseUrl:a,token:u,apiKey:d,hmacSecret:h,encryptRequests:p,csrfEnabled:Pt,csrfHeaderName:yt,csrfCookieName:A,refreshCsrfCookie:b}=r,x=r.anonymousPacketToken||_("anon_token"),R=s&&!!(d&&h),wt=Et(r),C=Pt&&qt(n)&&!R,y=C?_(A):"",ot="application/json",vt=!u&&!R&&!!x,f=null;if(e!=null)if(p&&!!wt&&n!=="GET"&&n!=="HEAD"){let T=v(h,u||x);f=Tt(new TextEncoder().encode(JSON.stringify(e)),T),ot="application/octet-stream"}else f=JSON.stringify(e);let bt=m=>{let T={"Content-Type":ot,...i};if(!R&&s&&u&&(T.Authorization=`Bearer ${u}`),vt&&(T["X-Packet-Token"]=x),C&&m&&(T[yt]=m),R){let xt=f instanceof Uint8Array?f:typeof f=="string"?new TextEncoder().encode(f):new Uint8Array(0);Object.assign(T,gt(n,t,xt,d,h))}return T};C&&!y&&b&&(await b(),y=_(A));let at=m=>fetch(a+t,{method:n,headers:bt(m),...f!=null?{body:f}:{},credentials:"include"}),l=await at(y);if(!l.ok){let m=await kt(l.clone());if(C&&b&&Mt(l.status,m))await b(),y=_(A),l=await at(y);else{let T=new Error(m);throw T.status=l.status,T}}if(!l.ok){let m=new Error(await kt(l));throw m.status=l.status,m}let ut=l.headers.get("Content-Type")??"";if(ut.includes("application/octet-stream")){let m=v(h,u||x);return S(await l.arrayBuffer(),m)}if(!ut.includes("application/json"))return await l.text();let E=await l.json();if(o&&!E.ok){let m=new Error(E.message??`EntityServer error (HTTP ${l.status})`);throw m.status=l.status,m}return E}var B=class{baseUrl;token;anonymousPacketToken;apiKey;hmacSecret;encryptRequests;csrfEnabled;csrfHeaderName;csrfCookieName;_csrfRefresher=null;activeTxId=null;keepSession;refreshBuffer;onTokenRefreshed;onSessionExpired;onHealthChange;_sessionRefreshToken=null;_refreshTimer=null;_healthTickTimer=null;_healthTickPromise=null;constructor(n={}){let t=ct("VITE_ENTITY_SERVER_URL");this.baseUrl=(n.baseUrl??t??"").replace(/\/$/,""),this.token=n.token??"",this.anonymousPacketToken=n.anonymousPacketToken??"",this.apiKey=n.apiKey??"",this.hmacSecret=n.hmacSecret??"",this.encryptRequests=n.encryptRequests??!1,this.csrfEnabled=n.csrfEnabled??!1,this.csrfHeaderName=n.csrfHeaderName??"x-csrf-token",this.csrfCookieName=n.csrfCookieName??"_csrf",this.keepSession=n.keepSession??!1,this.refreshBuffer=n.refreshBuffer??60,this.onTokenRefreshed=n.onTokenRefreshed,this.onSessionExpired=n.onSessionExpired,this.onHealthChange=n.onHealthChange,typeof n.healthTickInterval=="number"&&n.healthTickInterval>0&&Promise.resolve().then(()=>this.startHealthTick(n.healthTickInterval))}configure(n){typeof n.baseUrl=="string"&&(this.baseUrl=n.baseUrl.replace(/\/$/,"")),typeof n.token=="string"&&(this.token=n.token),typeof n.anonymousPacketToken=="string"&&(this.anonymousPacketToken=n.anonymousPacketToken),typeof n.encryptRequests=="boolean"&&(this.encryptRequests=n.encryptRequests),typeof n.csrfEnabled=="boolean"&&(this.csrfEnabled=n.csrfEnabled),typeof n.csrfHeaderName=="string"&&(this.csrfHeaderName=n.csrfHeaderName),typeof n.csrfCookieName=="string"&&(this.csrfCookieName=n.csrfCookieName),typeof n.apiKey=="string"&&(this.apiKey=n.apiKey),typeof n.hmacSecret=="string"&&(this.hmacSecret=n.hmacSecret),typeof n.keepSession=="boolean"&&(this.keepSession=n.keepSession),typeof n.refreshBuffer=="number"&&(this.refreshBuffer=n.refreshBuffer),n.onTokenRefreshed&&(this.onTokenRefreshed=n.onTokenRefreshed),n.onSessionExpired&&(this.onSessionExpired=n.onSessionExpired),n.onHealthChange&&(this.onHealthChange=n.onHealthChange),typeof n.healthTickInterval=="number"&&n.healthTickInterval>0&&Promise.resolve().then(()=>this.startHealthTick(n.healthTickInterval))}setToken(n){this.token=n}setAnonymousPacketToken(n){this.anonymousPacketToken=n}setApiKey(n){this.apiKey=n}setHmacSecret(n){this.hmacSecret=n}setEncryptRequests(n){this.encryptRequests=n}setCsrfEnabled(n){this.csrfEnabled=n}startHealthTick(n=300*1e3){this.stopHealthTick();let t=()=>{this._healthTickPromise||(this._healthTickPromise=(this._csrfRefresher?this._csrfRefresher():Promise.resolve()).then(()=>{this.onHealthChange?.(!0)}).catch(()=>{this.onHealthChange?.(!1)}).finally(()=>{this._healthTickPromise=null}))};t(),this._healthTickTimer=setInterval(t,n)}stopHealthTick(){this._healthTickTimer!==null&&(clearInterval(this._healthTickTimer),this._healthTickTimer=null),this._healthTickPromise=null}_scheduleKeepSession(n,t,e){this._clearRefreshTimer(),this._sessionRefreshToken=n;let s=Math.max((t-this.refreshBuffer)*1e3,0);this._refreshTimer=setTimeout(async()=>{if(this._sessionRefreshToken)try{let i=await e(this._sessionRefreshToken);this.onTokenRefreshed?.(i.access_token,i.expires_in),this._scheduleKeepSession(this._sessionRefreshToken,i.expires_in,e)}catch(i){this._clearRefreshTimer(),this.onSessionExpired?.(i instanceof Error?i:new Error(String(i)))}},s)}_clearRefreshTimer(){this._refreshTimer!==null&&(clearTimeout(this._refreshTimer),this._refreshTimer=null)}stopKeepSession(){this._clearRefreshTimer(),this._sessionRefreshToken=null}_applyCsrfHealth(){if(!(typeof document>"u")){for(let n of document.cookie.split(";")){let t=n.indexOf("=");if(!(t<0)&&n.substring(0,t).trim()===this.csrfCookieName){this.csrfEnabled=!!n.substring(t+1).trim();return}}this.csrfEnabled=!1}}readRequestBody(n,t="application/json",e=!1){let s=v(this.hmacSecret,this.token||this.anonymousPacketToken);return ft(n,t,e,s)}get _reqOpts(){return{baseUrl:this.baseUrl,token:this.token,anonymousPacketToken:this.anonymousPacketToken,apiKey:this.apiKey,hmacSecret:this.hmacSecret,encryptRequests:this.encryptRequests,csrfEnabled:this.csrfEnabled,csrfHeaderName:this.csrfHeaderName,csrfCookieName:this.csrfCookieName,refreshCsrfCookie:this.csrfEnabled?this._csrfRefresher:null}}get http(){let n=this;return{get(t,e=!0,s){return g(n._reqOpts,"GET",t,void 0,e,s,!1)},post(t,e,s=!0,i){return g(n._reqOpts,"POST",t,e,s,i,!1)},put(t,e,s=!0,i){return g(n._reqOpts,"PUT",t,e,s,i,!1)},patch(t,e,s=!0,i){return g(n._reqOpts,"PATCH",t,e,s,i,!1)},delete(t,e,s=!0,i){return g(n._reqOpts,"DELETE",t,e,s,i,!1)}}}requestBinary(n,t,e,s=!0){return this._requestBinary(n,t,e,s)}requestForm(n,t,e,s=!0){return this._requestForm(n,t,e,s)}requestFormBinary(n,t,e,s=!0){return this._requestFormBinary(n,t,e,s)}_request(n,t,e,s=!0,i){return g(this._reqOpts,n,t,e,s,i,!0)}async _requestBinary(n,t,e,s=!0){let i={"Content-Type":"application/json"};s&&this.token&&(i.Authorization=`Bearer ${this.token}`),this.apiKey&&(i["X-API-Key"]=this.apiKey);let o=await fetch(this.baseUrl+t,{method:n,headers:i,...e!=null?{body:JSON.stringify(e)}:{},credentials:"include"});if(!o.ok){let a=await o.text(),u=new Error(`HTTP ${o.status}: ${a}`);throw u.status=o.status,u}return o.arrayBuffer()}async _requestForm(n,t,e,s=!0){let i={};s&&this.token&&(i.Authorization=`Bearer ${this.token}`),this.apiKey&&(i["X-API-Key"]=this.apiKey);let o=await fetch(this.baseUrl+t,{method:n,headers:i,body:e,credentials:"include"}),a=await o.json();if(!a.ok){let u=new Error(a.message??`EntityServer error (HTTP ${o.status})`);throw u.status=o.status,u}return a}async _requestFormBinary(n,t,e,s=!0){let i={};s&&this.token&&(i.Authorization=`Bearer ${this.token}`),this.apiKey&&(i["X-API-Key"]=this.apiKey);let o=await fetch(this.baseUrl+t,{method:n,headers:i,body:e,credentials:"include"});if(!o.ok){let a=await o.text(),u=new Error(`HTTP ${o.status}: ${a}`);throw u.status=o.status,u}return o.arrayBuffer()}};function U(r){return class extends r{_csrfRefresher=()=>this.checkHealth().then(()=>{});async checkHealth(){let e=await(await fetch(`${this.baseUrl}/v1/health`,{signal:AbortSignal.timeout(3e3),credentials:"include"})).json(),s=this._readCookie("anon_token");return s&&(this.anonymousPacketToken=s),this._applyCsrfHealth(),e}_readCookie(t){if(typeof document>"u")return null;let e=document.cookie.split(";").map(s=>s.trim()).find(s=>s.startsWith(`${t}=`));if(!e)return null;try{return decodeURIComponent(e.slice(t.length+1))}catch{return e.slice(t.length+1)}}async login(t,e){let s=await this._request("POST","/v1/auth/login",{email:t,passwd:e},!1);return this.token=s.data.access_token,this.keepSession&&this._scheduleKeepSession(s.data.refresh_token,s.data.expires_in,i=>this.refreshToken(i)),s.data}async refreshToken(t){let e=await this._request("POST","/v1/auth/refresh",{refresh_token:t},!1);return this.token=e.data.access_token,this.keepSession&&this._scheduleKeepSession(t,e.data.expires_in,s=>this.refreshToken(s)),e.data}async logout(t){this.stopKeepSession();let e=await this._request("POST","/v1/auth/logout",{refresh_token:t},!1);return this.token="",e}me(){return this._request("GET","/v1/auth/me")}withdraw(t){return this._request("POST","/v1/auth/withdraw",t?{passwd:t}:{})}}}function I(r){return class extends r{async transStart(){let t=await this._request("POST","/v1/transaction/start",void 0,!1);return this.activeTxId=t.transaction_id,this.activeTxId}transRollback(t){let e=t??this.activeTxId;return e?(this.activeTxId=null,this._request("POST",`/v1/transaction/rollback/${e}`)):Promise.reject(new Error("No active transaction. Call transStart() first."))}transCommit(t){let e=t??this.activeTxId;return e?(this.activeTxId=null,this._request("POST",`/v1/transaction/commit/${e}`)):Promise.reject(new Error("No active transaction. Call transStart() first."))}meta(t){return this._request("POST",`/v1/entity/${t}/meta`,{})}validate(t,e){return this.http.post(`/v1/entity/${t}/validate`,e)}get(t,e,s={}){let i=s.skipHooks?"?skipHooks=true":"";return this._request("GET",`/v1/entity/${t}/${e}${i}`)}find(t,e,s={}){let i=s.skipHooks?"?skipHooks=true":"";return this._request("POST",`/v1/entity/${t}/find${i}`,e??{})}list(t,e={}){let{conditions:s,fields:i,orderDir:o,orderBy:a,...u}=e,d={page:1,limit:20,...u};return a&&(d.orderBy=o==="DESC"?`-${a}`:a),i?.length&&(d.fields=i.join(",")),this._request("POST",`/v1/entity/${t}/list?${c(d)}`,s??{})}count(t,e){return this._request("POST",`/v1/entity/${t}/count`,e??{})}query(t,e){return this._request("POST",`/v1/entity/${t}/query`,e)}submit(t,e,s={}){let i=s.transactionId??this.activeTxId,o=i?{"X-Transaction-ID":i}:void 0,a=s.skipHooks?"?skipHooks=true":"";return this._request("POST",`/v1/entity/${t}/submit${a}`,e,!0,o)}delete(t,e,s={}){let i=new URLSearchParams;s.hard&&i.set("hard","true"),s.skipHooks&&i.set("skipHooks","true");let o=i.size?`?${i}`:"",a=s.transactionId??this.activeTxId,u=a?{"X-Transaction-ID":a}:void 0;return this._request("POST",`/v1/entity/${t}/delete/${e}${o}`,void 0,!0,u)}history(t,e,s={}){return this._request("GET",`/v1/entity/${t}/history/${e}?${c({page:1,limit:50,...s})}`)}rollback(t,e){return this._request("POST",`/v1/entity/${t}/rollback/${e}`)}}}function G(r){return class extends r{async fileUpload(t,e,s={}){let i=new FormData;return i.append("file",e,e instanceof File?e.name:"upload"),s.refSeq!=null&&i.append("ref_seq",String(s.refSeq)),s.isPublic!=null&&i.append("is_public",s.isPublic?"true":"false"),this._requestForm("POST",`/v1/files/${t}/upload`,i)}fileDownload(t,e){return this._requestBinary("POST",`/v1/files/${t}/download/${e}`,{})}fileDelete(t,e){return this._request("POST",`/v1/files/${t}/delete/${e}`,{})}fileList(t,e={}){return this._request("POST",`/v1/files/${t}/list`,e.refSeq?{ref_seq:e.refSeq}:{})}fileMeta(t,e){return this._request("POST",`/v1/files/${t}/meta/${e}`,{})}fileToken(t){return this._request("POST",`/v1/files/token/${t}`,{})}fileViewUrl(t,e={}){let s=e.download?"?download=true":"";return`${this.baseUrl}/v1/files/${t}${s}`}fileUrl(t){return`${this.baseUrl}/v1/files/${t}`}}}function H(r){return class extends r{push(t,e,s={}){return this.submit(t,e,s)}pushLogList(t={}){return this.list("push_log",t)}registerPushDevice(t,e,s,i={}){let{platform:o,deviceType:a,browser:u,browserVersion:d,pushEnabled:h=!0,transactionId:p}=i;return this.submit("account_device",{id:e,account_seq:t,push_token:s,push_enabled:h,...o?{platform:o}:{},...a?{device_type:a}:{},...u?{browser:u}:{},...d?{browser_version:d}:{}},{transactionId:p})}updatePushDeviceToken(t,e,s={}){let{pushEnabled:i=!0,transactionId:o}=s;return this.submit("account_device",{seq:t,push_token:e,push_enabled:i},{transactionId:o})}disablePushDevice(t,e={}){return this.submit("account_device",{seq:t,push_enabled:!1},{transactionId:e.transactionId})}}}function F(r){return class extends r{smtpSend(t){return this._request("POST","/v1/smtp/send",t)}smtpStatus(t){return this._request("POST",`/v1/smtp/status/${t}`,{})}smtpTemplatePreview(t){let e=t.split("/").map(encodeURIComponent).join("/");return fetch(`${this.baseUrl}/v1/smtp/template/${e}`,{credentials:"include"}).then(s=>s.text())}}}function L(r){return class extends r{transactionStart(t){return this._request("POST","/v1/transaction/start",t??{})}transactionCommit(t){return this._request("POST",`/v1/transaction/commit/${encodeURIComponent(t)}`,{})}transactionRollback(t){return this._request("POST",`/v1/transaction/rollback/${encodeURIComponent(t)}`,{})}}}function j(r){return class extends r{addressSido(){return this.http.get("/v1/utils/address/sido",!1)}addressSigungu(t){let e=new URLSearchParams({sido:t.sido}).toString();return this.http.get(`/v1/utils/address/sigungu?${e}`,!1)}addressDong(t){let e=new URLSearchParams({sido:t.sido,sigungu:t.sigungu}).toString();return this.http.get(`/v1/utils/address/dong?${e}`,!1)}addressClean(t){let e=new URLSearchParams({q:t.q}).toString();return this.http.get(`/v1/utils/address/clean?${e}`,!1)}qrcode(t,e={}){return this._requestBinary("POST","/v1/utils/qrcode",{content:t,...e})}qrcodeBase64(t,e={}){return this._request("POST","/v1/utils/qrcode/base64",{content:t,...e})}qrcodeText(t,e={}){return this._request("POST","/v1/utils/qrcode/text",{content:t,...e})}barcode(t,e={}){return this._requestBinary("POST","/v1/utils/barcode",{content:t,...e})}pdf2png(t,e={}){let s=new FormData;s.append("file",new Blob([t],{type:"application/pdf"}),"document.pdf");let i=new URLSearchParams;e.dpi!=null&&i.set("dpi",String(e.dpi)),e.firstPage!=null&&i.set("first_page",String(e.firstPage)),e.lastPage!=null&&i.set("last_page",String(e.lastPage));let o=i.toString(),a="/v1/utils/pdf2png"+(o?`?${o}`:"");return this._requestFormBinary("POST",a,s)}pdf2pngByFileSeq(t,e={}){return this.requestBinary("POST",`/v1/utils/pdf2png/${t}`,e)}pdf2jpg(t,e={}){let s=new FormData;s.append("file",new Blob([t],{type:"application/pdf"}),"document.pdf");let i=new URLSearchParams;e.dpi!=null&&i.set("dpi",String(e.dpi)),e.firstPage!=null&&i.set("first_page",String(e.firstPage)),e.lastPage!=null&&i.set("last_page",String(e.lastPage));let o=i.toString(),a="/v1/utils/pdf2jpg"+(o?`?${o}`:"");return this._requestFormBinary("POST",a,s)}pdf2jpgByFileSeq(t,e={}){return this.requestBinary("POST",`/v1/utils/pdf2jpg/${t}`,e)}}}function K(r){return class extends r{_adminPath(t){return`/v1/admin${t}`}_adminGet(t){return this.http.get(this._adminPath(t))}_adminPost(t,e){return this.http.post(this._adminPath(t),e)}_adminPut(t,e){return this.http.put(this._adminPath(t),e)}_adminPatch(t,e){return this.http.patch(this._adminPath(t),e)}_adminDelete(t,e){return this.http.delete(this._adminPath(t),e)}listAdminEntities(){return this._adminGet("/entities")}getAdminErdSchema(){return this._adminGet("/erd/schema")}batchEnsureAdminEntities(t){return this._adminPost("/entities/batch-ensure",t)}createAdminEntityConfig(t,e){return this._adminPost(`/${t}/create`,e)}getAdminEntityConfig(t){return this._adminGet(`/${t}/config`)}updateAdminEntityConfig(t,e){return this._adminPut(`/${t}/config`,e)}validateAdminEntityConfig(t,e){return this._adminPost(e?`/${e}/validate`:"/entity/validate",t)}normalizeAdminEntityConfig(t,e){return this._adminPost(e?`/${e}/normalize`:"/entity/normalize",t)}getAdminEntityStats(t,e){return this._adminPost(`/${t}/stats`,e)}reindexAdminEntity(t){return this._adminPost(`/${t}/reindex`)}syncAdminEntitySchema(t){return this._adminPost(`/${t}/sync-schema`)}resetAdminEntity(t){return this._adminPost(`/${t}/reset`)}truncateAdminEntity(t){return this._adminPost(`/${t}/truncate`)}dropAdminEntity(t){return this._adminPost(`/${t}/drop`)}resetAllAdmin(t){return this._adminPost("/reset-all",t)}listAdminConfigs(){return this._adminGet("/configs")}getAdminConfig(t){return this._adminGet(`/configs/${t}`)}updateAdminConfig(t,e){return this._adminPatch(`/configs/${t}`,e)}listAdminRoles(){return this._adminGet("/roles")}createAdminRole(t){return this._adminPost("/roles",t)}getAdminRole(t){return this._adminGet(`/roles/${t}`)}updateAdminRole(t,e){return this._adminPatch(`/roles/${t}`,e)}deleteAdminRole(t){return this._adminDelete(`/roles/${t}`)}listAdminApiKeys(){return this._adminGet("/api-keys")}createAdminApiKey(t){return this._adminPost("/api-keys",t)}getAdminApiKey(t){return this._adminGet(`/api-keys/${t}`)}updateAdminApiKey(t,e){return this._adminPatch(`/api-keys/${t}`,e)}deleteAdminApiKey(t){return this._adminDelete(`/api-keys/${t}`)}regenerateAdminApiKeySecret(t){return this._adminPost(`/api-keys/${t}/regenerate-secret`)}listAdminAccounts(){return this._adminGet("/accounts")}createAdminAccount(t){return this._adminPost("/accounts",t)}getAdminAccount(t){return this._adminGet(`/accounts/${t}`)}updateAdminAccount(t,e){return this._adminPatch(`/accounts/${t}`,e)}deleteAdminAccount(t){return this._adminDelete(`/accounts/${t}`)}listAdminLicenses(){return this._adminGet("/licenses")}createAdminLicense(t){return this._adminPost("/licenses",t)}getAdminLicense(t){return this._adminGet(`/licenses/${t}`)}updateAdminLicense(t,e){return this._adminPatch(`/licenses/${t}`,e)}deleteAdminLicense(t){return this._adminDelete(`/licenses/${t}`)}runAdminBackup(t){return this._adminPost("/backup/run",t)}getAdminBackupStatus(t){return this._adminPost("/backup/status",t)}listAdminBackups(t){return this._adminPost("/backup/list",t)}restoreAdminBackup(t){return this._adminPost("/backup/restore",t)}deleteAdminBackup(t){return this._adminPost("/backup/delete",t)}disableAdminAccountTwoFactor(t){return this._adminDelete(`/accounts/${t}/2fa`)}}}var P=class extends j(L(G(F(H(K(I(U(B)))))))){};function D(r){return class extends r{accountRegister(t){return this.http.post("/v1/account/register",t,!1)}accountWithdraw(t){return this.http.post("/v1/account/withdraw",t)}accountChangePassword(t){return this.http.post("/v1/account/change-password",t)}accountReactivate(t){return this.http.post("/v1/account/reactivate",t,!1)}listAccountBiometrics(){return this.http.get("/v1/account/biometric")}registerAccountBiometric(t){return this.http.post("/v1/account/biometric",t)}deleteAccountBiometric(t){return this.http.delete(`/v1/account/biometric/${t}`)}}}function N(r){return class extends r{listBoardCategories(t={}){let e=c(t);return this.http.get(`/v1/board/categories${e?`?${e}`:""}`,!1)}getBoardCategory(t){return this.http.get(`/v1/board/categories/${t}`,!1)}createBoardCategory(t){return this.http.post("/v1/board/categories",t)}updateBoardCategory(t,e){return this.http.put(`/v1/board/categories/${t}`,e)}deleteBoardCategory(t){return this.http.delete(`/v1/board/categories/${t}`)}listBoardPosts(t,e={}){let s=c(e);return this.http.get(`/v1/board/${t}/list${s?`?${s}`:""}`,!1)}getBoardPost(t){return this.http.get(`/v1/board/posts/${t}`,!1)}createBoardPost(t,e){return this.http.post(`/v1/board/${t}/submit`,e)}updateBoardPost(t,e){return this.http.put(`/v1/board/posts/${t}`,e)}deleteBoardPost(t){return this.http.delete(`/v1/board/posts/${t}`)}listBoardComments(t,e={}){let s=c(e);return this.http.get(`/v1/board/posts/${t}/comments${s?`?${s}`:""}`,!1)}createBoardComment(t,e){return this.http.post(`/v1/board/posts/${t}/comments/submit`,e)}updateBoardComment(t,e){return this.http.put(`/v1/board/comments/${t}`,e)}deleteBoardComment(t){return this.http.delete(`/v1/board/comments/${t}`)}listBoardFiles(t){return this.http.get(`/v1/board/posts/${t}/files`,!1)}async uploadBoardFile(t,e){let s=new FormData;return s.append("file",e,e instanceof File?e.name:"upload"),this.requestForm("POST",`/v1/board/posts/${t}/files`,s)}boardFileUrl(t){return`${this.baseUrl}/v1/board/files/${t}`}deleteBoardFile(t){return this.http.delete(`/v1/board/files/${t}`)}createBoardGuestPost(t,e){return this.http.post(`/v1/board/${t}/guest-submit`,e,!1)}authenticateBoardGuestPost(t,e){return this.http.post(`/v1/board/posts/${t}/guest-auth`,e,!1)}toggleBoardPostLike(t){return this.http.post(`/v1/board/posts/${t}/like`,{})}acceptBoardPost(t){return this.http.post(`/v1/board/posts/${t}/accept`,{})}rateBoardPost(t,e){return this.http.post(`/v1/board/posts/${t}/rating`,e)}rateBoardComment(t,e){return this.http.post(`/v1/board/comments/${t}/rating`,e)}listBoardTags(t={}){let e=c(t);return this.http.get(`/v1/board/tags${e?`?${e}`:""}`,!1)}setBoardPostTags(t,e){return this.http.put(`/v1/board/posts/${t}/tags`,e)}reportBoardPost(t,e){return this.http.post(`/v1/board/posts/${t}/report`,e)}reportBoardComment(t,e){return this.http.post(`/v1/board/comments/${t}/report`,e)}listBoardReports(t={}){let e=c(t);return this.http.get(`/v1/board/admin/reports${e?`?${e}`:""}`)}updateBoardReport(t,e){return this.http.patch(`/v1/board/admin/reports/${t}`,e)}markBoardPostRead(t){return this.http.post(`/v1/board/posts/${t}/read`,{})}listBoardMentions(t={}){let e=c(t);return this.http.get(`/v1/board/mentions${e?`?${e}`:""}`)}markBoardMentionRead(t){return this.http.patch(`/v1/board/mentions/${t}/read`,{})}}}function V(r){return class extends r{sendEmailVerification(t){return this.http.post("/v1/email-verify/send",t,!1)}confirmEmailVerification(t){return this.http.post("/v1/email-verify/confirm",t,!1)}activateEmailVerification(t){let e=c(t);return this.http.get(`/v1/email-verify/activate${e?`?${e}`:""}`,!1)}getEmailVerificationStatus(){return this.http.get("/v1/email-verify/status")}changeVerifiedEmail(t){return this.http.post("/v1/email-verify/change",t)}}}function Q(r){return class extends r{oauthAuthorizeUrl(t,e={}){let s=c(e);return`${this.baseUrl}/v1/oauth/${t}${s?`?${s}`:""}`}oauthCallback(t,e,s="POST"){if(s==="GET"){let i=c(e??{});return this.http.get(`/v1/oauth/${t}/callback${i?`?${i}`:""}`,!1)}return this.http.post(`/v1/oauth/${t}/callback`,e,!1)}linkOAuthAccount(t){return this.http.post("/v1/account/oauth/link",t)}unlinkOAuthAccount(t){return this.http.delete(`/v1/account/oauth/link/${t}`)}listOAuthProviders(){return this.http.get("/v1/account/oauth/providers")}refreshOAuthProviderToken(t,e){return this.http.post(`/v1/account/oauth/refresh/${t}`,e)}}}function z(r){return class extends r{requestPasswordReset(t){return this.http.post("/v1/password-reset/request",t,!1)}validatePasswordResetToken(t){return this.http.get(`/v1/password-reset/validate/${encodeURIComponent(t)}`,!1)}verifyPasswordReset(t){return this.http.post("/v1/password-reset/verify",t,!1)}}}function X(r){return class extends r{setupTwoFactor(t){return this.http.post("/v1/account/2fa/setup",t)}verifyTwoFactorSetup(t){return this.http.post("/v1/account/2fa/setup/verify",t,!1)}disableTwoFactor(){return this.http.delete("/v1/account/2fa")}getTwoFactorStatus(){return this.http.get("/v1/account/2fa/status")}regenerateTwoFactorRecoveryCodes(){return this.http.post("/v1/account/2fa/recovery/regenerate")}verifyTwoFactor(t){return this.http.post("/v1/account/2fa/verify",t,!1)}recoverTwoFactorAccess(t){return this.http.post("/v1/account/2fa/recovery",t,!1)}}}function W(r){return class extends r{alimtalkSend(t){return this.http.post("/v1/alimtalk/send",t)}alimtalkStatus(t){return this.http.get(`/v1/alimtalk/status/${t}`,!1)}listAlimtalkTemplates(){return this.http.get("/v1/alimtalk/templates",!1)}alimtalkWebhook(t,e){return this.http.post(`/v1/alimtalk/webhook/${encodeURIComponent(t)}`,e,!1)}}}function J(r){return class extends r{friendtalkSend(t){return this.http.post("/v1/friendtalk/send",t)}}}function Y(r){return class extends r{listHolidays(t={}){let e=c(t);return this.http.get(`/v1/holidays${e?`?${e}`:""}`,!1)}getHolidayByDate(t){return this.http.get(`/v1/holidays/${encodeURIComponent(t)}`,!1)}syncHolidays(t){return this.http.post("/v1/holidays/sync",t)}}}function Z(r){return class extends r{identityRequest(t){return this.http.post("/v1/identity/request",t,!1)}identityCallback(t){return this.http.post("/v1/identity/callback",t,!1)}identityResult(t){return this.http.get(`/v1/identity/result/${encodeURIComponent(t)}`,!1)}identityVerifyCI(t){return this.http.post("/v1/identity/verify-ci",t)}}}function tt(r){return class extends r{llmChat(t){return this.http.post("/v1/llm/chat",t)}llmChatStream(t){return this.http.post("/v1/llm/chat/stream",t)}createLlmConversation(t){return this.http.post("/v1/llm/conversations",t)}sendLlmMessage(t,e){return this.http.post(`/v1/llm/conversations/${t}/messages`,e)}listLlmConversations(t={}){let e=c(t);return this.http.get(`/v1/llm/conversations${e?`?${e}`:""}`)}getLlmConversation(t){return this.http.get(`/v1/llm/conversations/${t}`)}updateLlmConversation(t,e){return this.http.patch(`/v1/llm/conversations/${t}`,e)}deleteLlmConversation(t){return this.http.delete(`/v1/llm/conversations/${t}`)}ragUploadDocument(t){return this.requestForm("POST","/v1/llm/rag/documents",t)}ragListDocuments(t={}){let e=c(t);return this.http.get(`/v1/llm/rag/documents${e?`?${e}`:""}`)}ragDeleteDocument(t){return this.http.delete(`/v1/llm/rag/documents/${encodeURIComponent(t)}`)}ragSearch(t){return this.http.post("/v1/llm/rag/search",t)}ragChat(t){return this.http.post("/v1/llm/rag/chat",t)}ragChatStream(t){return this.http.post("/v1/llm/rag/chat/stream",t)}ragRebuildIndex(t){return this.http.post("/v1/llm/rag/rebuild-index",t)}listLlmProviders(){return this.http.get("/v1/llm/providers")}getLlmUsage(t={}){let e=c(t);return this.http.get(`/v1/llm/usage${e?`?${e}`:""}`)}getLlmUsageSummary(t={}){let e=c(t);return this.http.get(`/v1/llm/usage/summary${e?`?${e}`:""}`)}getLlmCacheStats(){return this.http.get("/v1/llm/cache/stats")}clearLlmCache(){return this.http.delete("/v1/llm/cache")}listLlmTemplates(){return this.http.get("/v1/llm/templates")}llmTemplateChat(t,e){return this.http.post(`/v1/llm/${encodeURIComponent(t)}/chat`,e)}llmTemplateChatStream(t,e){return this.http.post(`/v1/llm/${encodeURIComponent(t)}/chat/stream`,e)}listLlmChatbots(t={}){let e=c(t);return this.http.get(`/v1/llm/chatbots${e?`?${e}`:""}`)}createLlmChatbot(t){return this.http.post("/v1/llm/chatbots",t)}getLlmChatbot(t){return this.http.get(`/v1/llm/chatbots/${t}`)}updateLlmChatbot(t,e){return this.http.patch(`/v1/llm/chatbots/${t}`,e)}deleteLlmChatbot(t){return this.http.delete(`/v1/llm/chatbots/${t}`)}llmChatbotChat(t,e){return this.http.post(`/v1/llm/chatbots/${t}/chat`,e)}llmChatbotChatStream(t,e){return this.http.post(`/v1/llm/chatbots/${t}/chat/stream`,e)}listLlmChatbotSessions(t,e={}){let s=c(e);return this.http.get(`/v1/llm/chatbots/${t}/sessions${s?`?${s}`:""}`)}deleteLlmChatbotSession(t,e){return this.http.delete(`/v1/llm/chatbots/${t}/sessions/${e}`)}listLlmProfiles(t={}){let e=c(t);return this.http.get(`/v1/llm/profiles${e?`?${e}`:""}`)}upsertLlmProfile(t){return this.http.post("/v1/llm/profiles",t)}deleteLlmProfile(t){return this.http.delete(`/v1/llm/profiles/${t}`)}}}function et(r){return class extends r{ocrRecognize(t){return this.requestForm("POST","/v1/ocr/recognize",t)}ocrRecognizeAsync(t){return this.requestForm("POST","/v1/ocr/recognize/async",t)}ocrRecognizeByDocType(t,e){return this.requestForm("POST",`/v1/ocr/${encodeURIComponent(t)}`,e)}listOcrResults(t={}){let e=c(t);return this.http.get(`/v1/ocr/results${e?`?${e}`:""}`)}getOcrResult(t){return this.http.get(`/v1/ocr/results/${encodeURIComponent(t)}`)}getOcrResultText(t){return this.http.get(`/v1/ocr/results/${encodeURIComponent(t)}/text`)}deleteOcrResult(t){return this.http.delete(`/v1/ocr/results/${encodeURIComponent(t)}`)}getOcrQuota(){return this.http.get("/v1/ocr/quota")}}}function nt(r){return class extends r{pgCreateOrder(t){return this.http.post("/v1/pg/orders",t)}pgGetOrder(t){return this.http.get(`/v1/pg/orders/${encodeURIComponent(t)}`)}pgConfirmPayment(t){return this.http.post("/v1/pg/confirm",t)}pgCancelPayment(t,e){return this.http.post(`/v1/pg/orders/${encodeURIComponent(t)}/cancel`,e)}pgSyncPaymentStatus(t,e){return this.http.post(`/v1/pg/orders/${encodeURIComponent(t)}/sync`,e)}pgWebhook(t){return this.http.post("/v1/pg/webhook",t,!1)}pgGetClientConfig(){return this.http.get("/v1/pg/config",!1)}}}function rt(r){return class extends r{appPushSend(t){return this.http.post("/v1/push/send",t)}appPushBroadcast(t){return this.http.post("/v1/push/broadcast",t)}appPushStatus(t){return this.http.get(`/v1/push/status/${t}`)}appPushRegisterDevice(t){return this.http.post("/v1/push/device",t)}appPushUnregisterDevice(t){return this.http.delete(`/v1/push/device/${t}`)}}}function st(r){return class extends r{smsSend(t){return this.http.post("/v1/sms/send",t)}smsStatus(t){return this.http.get(`/v1/sms/status/${t}`,!1)}smsVerificationSend(t){return this.http.post("/v1/sms/verification/send",t,!1)}smsVerificationVerify(t){return this.http.post("/v1/sms/verification/verify",t,!1)}}}function it(r){return class extends r{taxinvoiceRegistIssue(t){return this.http.post("/v1/taxinvoice",t)}taxinvoiceRegister(t){return this.http.post("/v1/taxinvoice/register",t)}taxinvoiceIssue(t){return this.http.post(`/v1/taxinvoice/${t}/issue`,{})}taxinvoiceCancelIssue(t,e){return this.http.post(`/v1/taxinvoice/${t}/cancel`,e)}taxinvoiceGetState(t){return this.http.get(`/v1/taxinvoice/${t}/state`)}taxinvoiceGetDetail(t){return this.http.get(`/v1/taxinvoice/${t}`)}}}var $=class extends W(J(st(rt(nt(it(et(tt(Z(Y(Q(X(z(V(N(D(P)))))))))))))))){};var Un=new P,In=new $;export{D as AccountAppMixin,K as AdminMixin,U as AuthMixin,N as BoardMixin,V as EmailVerifyMixin,$ as EntityAppServerApi,I as EntityMixin,P as EntityServerApi,G as FileMixin,Q as OAuthMixin,_t as PACKET_HKDF_SALT,Bt as PACKET_INFO_LABEL,q as PACKET_KEY_SIZE,M as PACKET_MAGIC_MIN,O as PACKET_MAGIC_RANGE,k as PACKET_NONCE_SIZE,St as PACKET_TAG_SIZE,z as PasswordResetMixin,H as PushMixin,F as SmtpMixin,L as TransactionMixin,X as TwoFactorMixin,j as UtilsMixin,pt as decryptPacket,lt as derivePacketKey,ht as encryptPacket,In as entityAppServer,Un as entityServer,dt as packetMagicLenFromKey};
1
+ function I(r){let n=import.meta;if(n?.env?.[r]!=null)return n.env[r];let e=globalThis.process;if(e?.env?.[r]!=null)return e.env[r]}function c(r){return Object.entries(r).filter(([,n])=>n!=null).map(([n,e])=>`${encodeURIComponent(n==="orderBy"?"order_by":n)}=${encodeURIComponent(String(e))}`).join("&")}import{xchacha20poly1305 as ge}from"@noble/ciphers/chacha";import{sha256 as Me}from"@noble/hashes/sha2";import{hkdf as Oe}from"@noble/hashes/hkdf";var G=32,H=2,F=14,y=24,Le=16,Ue="entity-server:hkdf:v1",Ie="entity-server:packet-encryption";function R(r){return r instanceof Uint8Array?r:new Uint8Array(r)}function ye(r,n=Ie){return Oe(Me,new TextEncoder().encode(r),new TextEncoder().encode(Ue),new TextEncoder().encode(n),G)}function Pe(r,n=H,e=F){let t=R(r);return t.length<G?n:n+t[G-1]%e}function we(r,n,e=H,t=F){let s=R(r),i=R(n),o=Pe(i,e,t),a=crypto.getRandomValues(new Uint8Array(o)),u=crypto.getRandomValues(new Uint8Array(y)),k=ge(i,u).encrypt(s),p=new Uint8Array(o+y+k.length);return p.set(a,0),p.set(u,o),p.set(k,o+y),p}function be(r,n,e=H,t=F){let s=R(r),i=R(n),o=Pe(i,e,t);if(s.length<o+y+Le)throw new Error("Encrypted packet too short");let a=s.slice(o,o+y),u=s.slice(o+y);return ge(i,a).decrypt(u)}function S(r,n){return ye(r||n)}function ve(r,n){return we(r,n)}function B(r,n){let e=be(r,n);return JSON.parse(new TextDecoder().decode(e))}function Re(r,n,e,t){let s=n.toLowerCase().includes("application/octet-stream");if(e&&!s)throw new Error("Encrypted request required: Content-Type must be application/octet-stream");if(s){if(r==null)throw new Error("Encrypted request body is empty");if(r instanceof ArrayBuffer)return B(r,t);if(r instanceof Uint8Array){let i=r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength);return B(i,t)}throw new Error("Encrypted request body must be ArrayBuffer or Uint8Array")}return r==null||r===""?{}:typeof r=="string"?JSON.parse(r):r}import{sha256 as Ge}from"@noble/hashes/sha2";import{hmac as He}from"@noble/hashes/hmac";function Se(r,n,e,t,s){let i=String(Math.floor(Date.now()/1e3)),o=crypto.randomUUID(),a=new TextEncoder().encode(`${r}|${n}|${i}|${o}|`),u=new Uint8Array(a.length+e.length);u.set(a,0),u.set(e,a.length);let k=[...He(Ge,new TextEncoder().encode(s),u)].map(p=>p.toString(16).padStart(2,"0")).join("");return{"X-API-Key":t,"X-Timestamp":i,"X-Nonce":o,"X-Signature":k}}function Fe(r){return r.hmacSecret||r.token||r.anonymousPacketToken}function je(r,n,e){return r.hmacSecret?r.hmacSecret:n&&r.token||e}function De(r){return r?r.length<=8?`${r.slice(0,2)}...${r.slice(-2)}`:`${r.slice(0,4)}...${r.slice(-4)}`:""}function Ne(r){typeof console>"u"||typeof console.error!="function"||console.error("[entity-client] packet decrypt failed",{method:r.method,path:r.path,withAuth:r.withAuth,status:r.status,contentType:r.contentType,responsePacketSource:De(r.responsePacketSource),tokenPresent:r.tokenPresent,anonymousPacketTokenPresent:r.anonymousPacketTokenPresent,hmacEnabled:r.hmacEnabled,error:r.error instanceof Error?{name:r.error.name,message:r.error.message,stack:r.error.stack}:r.error})}function Ke(r){return r!=="GET"&&r!=="HEAD"&&r!=="OPTIONS"}function $(r){if(typeof document>"u")return"";for(let n of document.cookie.split(";")){let e=n.indexOf("=");if(!(e<0)&&n.substring(0,e).trim()===r)return decodeURIComponent(n.substring(e+1).trim())}return""}function Ve(r,n){return r===403&&/csrf/i.test(n)?!0:/csrf/i.test(n)&&/expired|token validation failed/i.test(n)}async function xe(r){if((r.headers.get("Content-Type")??"").includes("application/json")){let t=await r.json().catch(()=>null);if(t?.error)return t.error;if(t?.message)return t.message}return await r.text().catch(()=>"")||`HTTP ${r.status}`}async function f(r,n,e,t,s=!0,i={},o=!0){let a=typeof o=="boolean"?{requireOkShape:o}:o,u=a.requireOkShape??!0,m=new Set(a.allowStatuses??[]),{baseUrl:k,token:p,apiKey:de,hmacSecret:w,encryptRequests:Ce,csrfEnabled:Ee,csrfHeaderName:Ae,csrfCookieName:O,refreshCsrfCookie:x,onAccessToken:pe}=r,b=r.anonymousPacketToken||$("anon_token"),_=s&&!!(de&&w),Be=Fe(r),Te=je(r,s,b),C=Ee&&Ke(n)&&!_,v=C?$(O):"",fe="application/json",$e=!_&&!!b,T=null;if(t!=null)if(Ce&&!!Be&&s&&n!=="GET"&&n!=="HEAD"){let d=S(w,p||b);T=ve(new TextEncoder().encode(JSON.stringify(t)),d),fe="application/octet-stream"}else T=JSON.stringify(t);let qe=h=>{let d={...i},A=Object.keys(d).some(g=>g.toLowerCase()==="content-type");if(T!=null&&!A&&(d["Content-Type"]=fe),!_&&s&&p&&(d.Authorization=`Bearer ${p}`),$e&&(d["X-Packet-Token"]=b),C&&h&&(d[Ae]=h),_){let g=T instanceof Uint8Array?T:typeof T=="string"?new TextEncoder().encode(T):new Uint8Array(0);Object.assign(d,Se(n,e,g,de,w))}return d};C&&!v&&x&&(await x(),v=$(O));let ke=h=>fetch(k+e,{method:n,headers:qe(h),...T!=null?{body:T}:{},credentials:"include"}),l=await ke(v);if(!l.ok){let h=await xe(l.clone());if(C&&x&&Ve(l.status,h))await x(),v=$(O),l=await ke(v);else if(!m.has(l.status)){let d=new Error(h);throw d.status=l.status,d}}if(!l.ok&&!m.has(l.status)){let h=new Error(await xe(l));throw h.status=l.status,h}let E=l.headers.get("X-Access-Token")?.trim()??"",L=l.headers.get("Content-Type")??"";if(L.includes("application/octet-stream")){let h=S(w,Te),d=await l.arrayBuffer(),A;try{A=B(d,h)}catch(g){throw Ne({method:n,path:e,withAuth:s,status:l.status,contentType:L,responsePacketSource:Te,tokenPresent:!!p,anonymousPacketTokenPresent:!!b,hmacEnabled:!!w,error:g}),g}return E&&pe?.(E),A}if(E&&pe?.(E),!L.includes("application/json"))return await l.text();let U=await l.json();if(u&&!U.ok&&!m.has(l.status)){let h=new Error(U.message??`EntityServer error (HTTP ${l.status})`);throw h.status=l.status,h}return U}var j="/v1/realtime",q=class{baseUrl;token;anonymousPacketToken;apiKey;hmacSecret;encryptRequests;csrfEnabled;csrfHeaderName;csrfCookieName;_csrfRefresher=null;activeTxId=null;keepSession;refreshBuffer;onTokenRefreshed;onSessionExpired;onHealthChange;_sessionRefreshToken=null;_refreshTimer=null;_healthTickTimer=null;_healthTickPromise=null;realtimeEnabled;realtimePath;realtimeAutoConnect;realtimeAutoReconnect;realtimeReconnectDelayMs;realtimeStatus;_realtimeSocket=null;_realtimeConnectPromise=null;_realtimeReconnectTimer=null;_realtimeShouldReconnect=!1;_realtimeMessageListeners=new Set;_realtimeStatusListeners=new Set;_realtimeEventListeners=new Map;constructor(n={}){let e=I("VITE_ENTITY_SERVER_URL");this.baseUrl=(n.baseUrl??e??"").replace(/\/$/,""),this.token=n.token??"",this.anonymousPacketToken=n.anonymousPacketToken??"",this.apiKey=n.apiKey??"",this.hmacSecret=n.hmacSecret??"",this.encryptRequests=n.encryptRequests??!1,this.csrfEnabled=n.csrfEnabled??!1,this.csrfHeaderName=n.csrfHeaderName??"x-csrf-token",this.csrfCookieName=n.csrfCookieName??"_csrf",this.keepSession=n.keepSession??!1,this.refreshBuffer=n.refreshBuffer??60,this.onTokenRefreshed=n.onTokenRefreshed,this.onSessionExpired=n.onSessionExpired,this.onHealthChange=n.onHealthChange,this.realtimeEnabled=!1,this.realtimePath=j,this.realtimeAutoConnect=!0,this.realtimeAutoReconnect=!0,this.realtimeReconnectDelayMs=3e3,this.realtimeStatus="idle",this._applyRealtimeOptions(n.realtime),typeof n.healthTickInterval=="number"&&n.healthTickInterval>0&&Promise.resolve().then(()=>this.startHealthTick(n.healthTickInterval))}configure(n){typeof n.baseUrl=="string"&&(this.baseUrl=n.baseUrl.replace(/\/$/,"")),typeof n.token=="string"&&(this.token=n.token),typeof n.anonymousPacketToken=="string"&&(this.anonymousPacketToken=n.anonymousPacketToken),typeof n.encryptRequests=="boolean"&&(this.encryptRequests=n.encryptRequests),typeof n.csrfEnabled=="boolean"&&(this.csrfEnabled=n.csrfEnabled),typeof n.csrfHeaderName=="string"&&(this.csrfHeaderName=n.csrfHeaderName),typeof n.csrfCookieName=="string"&&(this.csrfCookieName=n.csrfCookieName),typeof n.apiKey=="string"&&(this.apiKey=n.apiKey),typeof n.hmacSecret=="string"&&(this.hmacSecret=n.hmacSecret),typeof n.keepSession=="boolean"&&(this.keepSession=n.keepSession),typeof n.refreshBuffer=="number"&&(this.refreshBuffer=n.refreshBuffer),n.onTokenRefreshed&&(this.onTokenRefreshed=n.onTokenRefreshed),n.onSessionExpired&&(this.onSessionExpired=n.onSessionExpired),n.onHealthChange&&(this.onHealthChange=n.onHealthChange),typeof n.realtime<"u"&&this._applyRealtimeOptions(n.realtime),typeof n.healthTickInterval=="number"&&n.healthTickInterval>0&&Promise.resolve().then(()=>this.startHealthTick(n.healthTickInterval))}setToken(n){if(this.token=n,!n){this.disconnectRealtime("token_cleared");return}this.realtimeEnabled&&this.realtimeAutoConnect&&this.connectRealtime().catch(()=>{})}setAnonymousPacketToken(n){this.anonymousPacketToken=n}setApiKey(n){this.apiKey=n}setHmacSecret(n){this.hmacSecret=n}setEncryptRequests(n){this.encryptRequests=n}setCsrfEnabled(n){this.csrfEnabled=n}addRealtimeListener(n){this._realtimeMessageListeners.add(n)}removeRealtimeListener(n){this._realtimeMessageListeners.delete(n)}addRealtimeStatusListener(n){this._realtimeStatusListeners.add(n)}removeRealtimeStatusListener(n){this._realtimeStatusListeners.delete(n)}addRealtimeEventListener(n,e){let t=String(n).trim();t&&(this._realtimeEventListeners.has(t)||this._realtimeEventListeners.set(t,new Set),this._realtimeEventListeners.get(t).add(e))}removeRealtimeEventListener(n,e){let t=String(n).trim();if(!t)return;let s=this._realtimeEventListeners.get(t);s&&(s.delete(e),s.size===0&&this._realtimeEventListeners.delete(t))}async connectRealtime(){if(!this.realtimeEnabled){this._setRealtimeStatus("disabled","realtime_disabled");return}if(!this.token)throw new Error("Cannot open realtime connection without access token.");if(typeof WebSocket>"u")throw new Error("WebSocket is not available in this environment.");if(this._realtimeSocket&&this._realtimeSocket.readyState===WebSocket.OPEN)return;if(this._realtimeSocket&&this._realtimeSocket.readyState===WebSocket.CONNECTING&&this._realtimeConnectPromise)return this._realtimeConnectPromise;this._clearRealtimeReconnectTimer(),this._realtimeShouldReconnect=this.realtimeAutoReconnect,this._setRealtimeStatus("connecting","connect_requested");let n=new WebSocket(this._buildRealtimeUrl());return this._realtimeSocket=n,this._realtimeConnectPromise=new Promise((e,t)=>{let s=!1,i=()=>{s||(s=!0,this._realtimeConnectPromise=null,e())},o=a=>{s||(s=!0,this._realtimeConnectPromise=null,t(a))};n.addEventListener("open",()=>{this._setRealtimeStatus("open","socket_open"),i()}),n.addEventListener("message",a=>{this._handleRealtimeMessage(a.data)}),n.addEventListener("error",()=>{this._setRealtimeStatus("closed","socket_error",new Error("Realtime socket error."))}),n.addEventListener("close",a=>{this._realtimeSocket===n&&(this._realtimeSocket=null);let u=a.reason||"socket_closed",m=new Error(`Realtime socket closed (${a.code}${a.reason?`: ${a.reason}`:""}).`);this._setRealtimeStatus("closed",u,m),s||o(m),this._realtimeShouldReconnect&&this.realtimeEnabled&&this.realtimeAutoReconnect&&this.token&&this._scheduleRealtimeReconnect(u)})}),this._realtimeConnectPromise}disconnectRealtime(n="client_disconnect"){if(this._realtimeShouldReconnect=!1,this._clearRealtimeReconnectTimer(),this._realtimeSocket){let e=this._realtimeSocket;this._realtimeSocket=null;try{(e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING)&&e.close(1e3,n)}catch{}}this._realtimeConnectPromise=null,this._setRealtimeStatus(this.realtimeEnabled?"idle":"disabled",n)}sendRealtime(n){return!this._realtimeSocket||this._realtimeSocket.readyState!==WebSocket.OPEN?!1:(this._realtimeSocket.send(JSON.stringify(n)),!0)}subscribeRealtime(n){return this.sendRealtime({type:"subscribe",channel:"session",event:"session.subscribe",data:{subscriptions:n}})}unsubscribeRealtime(n){return this.sendRealtime({type:"unsubscribe",channel:"session",event:"session.unsubscribe",data:{subscriptions:n}})}startHealthTick(n=300*1e3){this.stopHealthTick();let e=()=>{this._healthTickPromise||(this._healthTickPromise=(this._csrfRefresher?this._csrfRefresher():Promise.resolve()).then(()=>{this.onHealthChange?.(!0)}).catch(()=>{this.onHealthChange?.(!1)}).finally(()=>{this._healthTickPromise=null}))};e(),this._healthTickTimer=setInterval(e,n)}stopHealthTick(){this._healthTickTimer!==null&&(clearInterval(this._healthTickTimer),this._healthTickTimer=null),this._healthTickPromise=null}_scheduleKeepSession(n,e,t){this._clearRefreshTimer(),this._sessionRefreshToken=n;let s=Math.max((e-this.refreshBuffer)*1e3,0);this._refreshTimer=setTimeout(async()=>{if(this._sessionRefreshToken)try{let i=await t(this._sessionRefreshToken);this.onTokenRefreshed?.(i.access_token,i.expires_in),this._scheduleKeepSession(this._sessionRefreshToken,i.expires_in,t)}catch(i){this._clearRefreshTimer(),this.onSessionExpired?.(i instanceof Error?i:new Error(String(i)))}},s)}_clearRefreshTimer(){this._refreshTimer!==null&&(clearTimeout(this._refreshTimer),this._refreshTimer=null)}stopKeepSession(){this._clearRefreshTimer(),this._sessionRefreshToken=null}_applyRealtimeOptions(n){let e=typeof n=="boolean"?{enabled:n}:n??{};if(this.realtimeEnabled=e.enabled??!1,this.realtimePath=String(e.path??j).trim()||j,this.realtimeAutoConnect=e.autoConnect??!0,this.realtimeAutoReconnect=e.autoReconnect??!0,this.realtimeReconnectDelayMs=Math.max(250,e.reconnectDelayMs??3e3),!this.realtimeEnabled){this.disconnectRealtime("realtime_disabled");return}this._setRealtimeStatus("idle","realtime_enabled"),this.token&&this.realtimeAutoConnect&&this.connectRealtime().catch(()=>{})}_buildRealtimeUrl(){let e=this.baseUrl||I("VITE_ENTITY_SERVER_URL")||""||(typeof window<"u"?window.location.origin:"");if(!e)throw new Error("Realtime connection requires baseUrl.");let t=new URL(this.realtimePath,e);return t.protocol=t.protocol==="https:"?"wss:":"ws:",t.searchParams.set("access_token",this.token),t.toString()}_handleRealtimeMessage(n){if(typeof n!="string")return;let e;try{e=JSON.parse(n)}catch{return}for(let s of this._realtimeMessageListeners)s(e);let t=this._realtimeEventListeners.get(e.event);if(t)for(let s of t)s(e)}_scheduleRealtimeReconnect(n){this._clearRealtimeReconnectTimer(),this._realtimeReconnectTimer=setTimeout(()=>{this._realtimeReconnectTimer=null,!(!this.realtimeEnabled||!this.token)&&(this._setRealtimeStatus("connecting",`${n}:reconnect`),this.connectRealtime().catch(()=>{}))},this.realtimeReconnectDelayMs)}_clearRealtimeReconnectTimer(){this._realtimeReconnectTimer!==null&&(clearTimeout(this._realtimeReconnectTimer),this._realtimeReconnectTimer=null)}_setRealtimeStatus(n,e,t){let s=this.realtimeStatus;if(!(s===n&&typeof e>"u"&&typeof t>"u")){this.realtimeStatus=n;for(let i of this._realtimeStatusListeners)i({status:n,previousStatus:s,...e?{reason:e}:{},...t?{error:t}:{}})}}_applyCsrfHealth(){if(!(typeof document>"u")){for(let n of document.cookie.split(";")){let e=n.indexOf("=");if(!(e<0)&&n.substring(0,e).trim()===this.csrfCookieName){this.csrfEnabled=!!n.substring(e+1).trim();return}}this.csrfEnabled=!1}}readRequestBody(n,e="application/json",t=!1){let s=S(this.hmacSecret,this.token||this.anonymousPacketToken);return Re(n,e,t,s)}get _reqOpts(){return{baseUrl:this.baseUrl,token:this.token,anonymousPacketToken:this.anonymousPacketToken,apiKey:this.apiKey,hmacSecret:this.hmacSecret,encryptRequests:this.encryptRequests,csrfEnabled:this.csrfEnabled,csrfHeaderName:this.csrfHeaderName,csrfCookieName:this.csrfCookieName,refreshCsrfCookie:this.csrfEnabled?this._csrfRefresher:null,onAccessToken:n=>{this.token=n}}}get http(){let n=this;return{get(e,t=!0,s){return f(n._reqOpts,"GET",e,void 0,t,s,!1)},post(e,t,s=!0,i){return f(n._reqOpts,"POST",e,t,s,i,!1)},put(e,t,s=!0,i){return f(n._reqOpts,"PUT",e,t,s,i,!1)},patch(e,t,s=!0,i){return f(n._reqOpts,"PATCH",e,t,s,i,!1)},delete(e,t,s=!0,i){return f(n._reqOpts,"DELETE",e,t,s,i,!1)}}}requestBinary(n,e,t,s=!0){return this._requestBinary(n,e,t,s)}requestForm(n,e,t,s=!0){return this._requestForm(n,e,t,s)}requestFormBinary(n,e,t,s=!0){return this._requestFormBinary(n,e,t,s)}_request(n,e,t,s=!0,i){return f(this._reqOpts,n,e,t,s,i,!0)}async _requestBinary(n,e,t,s=!0){let i={"Content-Type":"application/json"};s&&this.token&&(i.Authorization=`Bearer ${this.token}`),this.apiKey&&(i["X-API-Key"]=this.apiKey);let o=await fetch(this.baseUrl+e,{method:n,headers:i,...t!=null?{body:JSON.stringify(t)}:{},credentials:"include"});if(!o.ok){let a=await o.text(),u=new Error(`HTTP ${o.status}: ${a}`);throw u.status=o.status,u}return o.arrayBuffer()}async _requestForm(n,e,t,s=!0){let i={};s&&this.token&&(i.Authorization=`Bearer ${this.token}`),this.apiKey&&(i["X-API-Key"]=this.apiKey);let o=await fetch(this.baseUrl+e,{method:n,headers:i,body:t,credentials:"include"}),a=await o.json();if(!a.ok){let u=new Error(a.message??`EntityServer error (HTTP ${o.status})`);throw u.status=o.status,u}return a}async _requestFormBinary(n,e,t,s=!0){let i={};s&&this.token&&(i.Authorization=`Bearer ${this.token}`),this.apiKey&&(i["X-API-Key"]=this.apiKey);let o=await fetch(this.baseUrl+e,{method:n,headers:i,body:t,credentials:"include"});if(!o.ok){let a=await o.text(),u=new Error(`HTTP ${o.status}: ${a}`);throw u.status=o.status,u}return o.arrayBuffer()}};function _e(r){return r.ok===!0&&r.requires_2fa!==!0&&typeof r.data=="object"&&r.data!==null&&"access_token"in r.data}function D(r){return class extends r{_csrfRefresher=()=>this.checkHealth(this.keepSession).then(()=>{});async checkHealth(e=!1){let t=this.token,s={};e&&(s["X-Session-Bootstrap"]="1");let i=await fetch(`${this.baseUrl}/v1/health`,{signal:AbortSignal.timeout(3e3),credentials:"include",headers:s}),o=await i.json(),a=i.headers.get("X-Access-Token");a&&(this.token=a,e&&a!==t&&this.onTokenRefreshed?.(a,0),e&&o.authenticated===!0&&this.realtimeEnabled&&this.realtimeAutoConnect&&this.connectRealtime().catch(()=>{}));let u=this._readCookie("anon_token");return u&&(this.anonymousPacketToken=u,this.encryptRequests=!0),this._applyCsrfHealth(),e&&o.authenticated===!1&&t&&(this.disconnectRealtime("session_expired"),this.onSessionExpired?.(new Error("Session expired"))),o}_readCookie(e){if(typeof document>"u")return null;let t=document.cookie.split(";").map(s=>s.trim()).find(s=>s.startsWith(`${e}=`));if(!t)return null;try{return decodeURIComponent(t.slice(e.length+1))}catch{return t.slice(e.length+1)}}async _ensurePublicAuthBootstrap(){if(typeof document>"u"||this.apiKey&&this.hmacSecret)return;let e=!!this.anonymousPacketToken||!!this._readCookie("anon_token"),t=!!this._readCookie(this.csrfCookieName);e&&t&&this.csrfEnabled||await this.checkHealth(!1)}async login(e,t){await this._ensurePublicAuthBootstrap();let s=await f(this._reqOpts,"POST","/v1/auth/login",{email:e,passwd:t},!1,{},{requireOkShape:!1,allowStatuses:[403]});return _e(s)&&(this.token=s.data.access_token,this._applyCsrfHealth(),this.keepSession&&this._healthTickTimer===null&&this.startHealthTick(),this.realtimeEnabled&&this.realtimeAutoConnect&&this.connectRealtime().catch(()=>{})),s}async tokenRefresh(){let e=await this._request("POST","/v1/auth/token_refresh",void 0,!1);return this.token=e.data.access_token,this._applyCsrfHealth(),e.data}async refreshToken(e){if(!e)return this.tokenRefresh();let t=await this._request("POST","/v1/auth/refresh",{refresh_token:e},!1);return this.token=t.data.access_token,this._applyCsrfHealth(),t.data}async logout(e){this.stopKeepSession(),this.stopHealthTick(),this.disconnectRealtime("logout");let t=await this._request("POST","/v1/auth/logout",e?{refresh_token:e}:void 0,!1);return this.token="",this._applyCsrfHealth(),t}me(){return this._request("GET","/v1/auth/me")}withdraw(e){return this._request("POST","/v1/auth/withdraw",e?{passwd:e}:{})}}}function N(r){return class extends r{async transStart(){let e=await this._request("POST","/v1/transaction/start",void 0,!1);return this.activeTxId=e.transaction_id,this.activeTxId}transRollback(e){let t=e??this.activeTxId;return t?(this.activeTxId=null,this._request("POST",`/v1/transaction/rollback/${t}`)):Promise.reject(new Error("No active transaction. Call transStart() first."))}transCommit(e){let t=e??this.activeTxId;return t?(this.activeTxId=null,this._request("POST",`/v1/transaction/commit/${t}`)):Promise.reject(new Error("No active transaction. Call transStart() first."))}meta(e){return this._request("POST",`/v1/entity/${e}/meta`,{})}validate(e,t){return this.http.post(`/v1/entity/${e}/validate`,t)}get(e,t,s={}){let i=s.skipHooks?"?skipHooks=true":"";return this._request("GET",`/v1/entity/${e}/${t}${i}`)}find(e,t,s={}){let i=s.skipHooks?"?skipHooks=true":"";return this._request("POST",`/v1/entity/${e}/find${i}`,t??{})}list(e,t={}){let{conditions:s,fields:i,orderDir:o,orderBy:a,...u}=t,m={page:1,limit:20,...u};return a&&(m.orderBy=o==="DESC"?`-${a}`:a),i?.length&&(m.fields=i.join(",")),this._request("POST",`/v1/entity/${e}/list?${c(m)}`,s??{})}count(e,t){return this._request("POST",`/v1/entity/${e}/count`,t??{})}query(e,t){return this._request("POST",`/v1/entity/${e}/query`,t)}submit(e,t,s={}){let i=s.transactionId??this.activeTxId,o=i?{"X-Transaction-ID":i}:void 0,a=s.skipHooks?"?skipHooks=true":"";return this._request("POST",`/v1/entity/${e}/submit${a}`,t,!0,o)}delete(e,t,s={}){let i=new URLSearchParams;s.hard&&i.set("hard","true"),s.skipHooks&&i.set("skipHooks","true");let o=i.size?`?${i}`:"",a=s.transactionId??this.activeTxId,u=a?{"X-Transaction-ID":a}:void 0;return this._request("POST",`/v1/entity/${e}/delete/${t}${o}`,void 0,!0,u)}history(e,t,s={}){return this._request("GET",`/v1/entity/${e}/history/${t}?${c({page:1,limit:50,...s})}`)}rollback(e,t){return this._request("POST",`/v1/entity/${e}/rollback/${t}`)}}}function K(r){return class extends r{async fileUpload(e,t,s={}){let i=new FormData;return i.append("file",t,t instanceof File?t.name:"upload"),s.refSeq!=null&&i.append("ref_seq",String(s.refSeq)),s.isPublic!=null&&i.append("is_public",s.isPublic?"true":"false"),this._requestForm("POST",`/v1/files/${e}/upload`,i)}fileDownload(e,t){return this._requestBinary("POST",`/v1/files/${e}/download/${t}`,{})}fileDelete(e,t){return this._request("POST",`/v1/files/${e}/delete/${t}`,{})}fileList(e,t={}){return this._request("POST",`/v1/files/${e}/list`,t.refSeq?{ref_seq:t.refSeq}:{})}fileMeta(e,t){return this._request("POST",`/v1/files/${e}/meta/${t}`,{})}fileToken(e){return this._request("POST",`/v1/files/token/${e}`,{})}fileViewUrl(e,t={}){let s=t.download?"?download=true":"";return`${this.baseUrl}/v1/files/${e}${s}`}fileUrl(e){return`${this.baseUrl}/v1/files/${e}`}}}function V(r){return class extends r{push(e,t,s={}){return this.submit(e,t,s)}pushLogList(e={}){return this.list("push_log",e)}registerPushDevice(e,t,s,i={}){let{platform:o,deviceType:a,browser:u,browserVersion:m,pushEnabled:k=!0,transactionId:p}=i;return this.submit("account_device",{id:t,account_seq:e,push_token:s,push_enabled:k,...o?{platform:o}:{},...a?{device_type:a}:{},...u?{browser:u}:{},...m?{browser_version:m}:{}},{transactionId:p})}updatePushDeviceToken(e,t,s={}){let{pushEnabled:i=!0,transactionId:o}=s;return this.submit("account_device",{seq:e,push_token:t,push_enabled:i},{transactionId:o})}disablePushDevice(e,t={}){return this.submit("account_device",{seq:e,push_enabled:!1},{transactionId:t.transactionId})}}}function z(r){return class extends r{smtpSend(e){return this._request("POST","/v1/smtp/send",e)}smtpStatus(e){return this._request("POST",`/v1/smtp/status/${e}`,{})}smtpTemplatePreview(e){let t=e.split("/").map(encodeURIComponent).join("/");return fetch(`${this.baseUrl}/v1/smtp/template/${t}`,{credentials:"include"}).then(s=>s.text())}}}function Q(r){return class extends r{transactionStart(e){return this._request("POST","/v1/transaction/start",e??{})}transactionCommit(e){return this._request("POST",`/v1/transaction/commit/${encodeURIComponent(e)}`,{})}transactionRollback(e){return this._request("POST",`/v1/transaction/rollback/${encodeURIComponent(e)}`,{})}}}function W(r){return class extends r{addressSido(){return this.http.get("/v1/utils/address/sido",!1)}addressSigungu(e){let t=new URLSearchParams({sido:e.sido}).toString();return this.http.get(`/v1/utils/address/sigungu?${t}`,!1)}addressDong(e){let t=new URLSearchParams({sido:e.sido,sigungu:e.sigungu}).toString();return this.http.get(`/v1/utils/address/dong?${t}`,!1)}addressClean(e){let t=new URLSearchParams({q:e.q}).toString();return this.http.get(`/v1/utils/address/clean?${t}`,!1)}qrcode(e,t={}){return this._requestBinary("POST","/v1/utils/qrcode",{content:e,...t})}qrcodeBase64(e,t={}){return this._request("POST","/v1/utils/qrcode/base64",{content:e,...t})}qrcodeText(e,t={}){return this._request("POST","/v1/utils/qrcode/text",{content:e,...t})}barcode(e,t={}){return this._requestBinary("POST","/v1/utils/barcode",{content:e,...t})}pdf2png(e,t={}){let s=new FormData;s.append("file",new Blob([e],{type:"application/pdf"}),"document.pdf");let i=new URLSearchParams;t.dpi!=null&&i.set("dpi",String(t.dpi)),t.firstPage!=null&&i.set("first_page",String(t.firstPage)),t.lastPage!=null&&i.set("last_page",String(t.lastPage));let o=i.toString(),a="/v1/utils/pdf2png"+(o?`?${o}`:"");return this._requestFormBinary("POST",a,s)}pdf2pngByFileSeq(e,t={}){return this.requestBinary("POST",`/v1/utils/pdf2png/${e}`,t)}pdf2jpg(e,t={}){let s=new FormData;s.append("file",new Blob([e],{type:"application/pdf"}),"document.pdf");let i=new URLSearchParams;t.dpi!=null&&i.set("dpi",String(t.dpi)),t.firstPage!=null&&i.set("first_page",String(t.firstPage)),t.lastPage!=null&&i.set("last_page",String(t.lastPage));let o=i.toString(),a="/v1/utils/pdf2jpg"+(o?`?${o}`:"");return this._requestFormBinary("POST",a,s)}pdf2jpgByFileSeq(e,t={}){return this.requestBinary("POST",`/v1/utils/pdf2jpg/${e}`,t)}}}function X(r){return class extends r{_adminPath(e){return`/v1/admin${e}`}_adminGet(e){return this.http.get(this._adminPath(e))}_adminPost(e,t){return this.http.post(this._adminPath(e),t)}_adminPut(e,t){return this.http.put(this._adminPath(e),t)}_adminPatch(e,t){return this.http.patch(this._adminPath(e),t)}_adminDelete(e,t){return this.http.delete(this._adminPath(e),t)}listAdminEntities(){return this._adminGet("/entities")}getAdminErdSchema(){return this._adminGet("/erd/schema")}batchEnsureAdminEntities(e){return this._adminPost("/entities/batch-ensure",e)}createAdminEntityConfig(e,t){return this._adminPost(`/${e}/create`,t)}getAdminEntityConfig(e){return this._adminGet(`/${e}/config`)}updateAdminEntityConfig(e,t){return this._adminPut(`/${e}/config`,t)}validateAdminEntityConfig(e,t){return this._adminPost(t?`/${t}/validate`:"/entity/validate",e)}normalizeAdminEntityConfig(e,t){return this._adminPost(t?`/${t}/normalize`:"/entity/normalize",e)}getAdminEntityStats(e,t){return this._adminPost(`/${e}/stats`,t)}reindexAdminEntity(e){return this._adminPost(`/${e}/reindex`)}syncAdminEntitySchema(e){return this._adminPost(`/${e}/sync-schema`)}resetAdminEntity(e){return this._adminPost(`/${e}/reset`)}truncateAdminEntity(e){return this._adminPost(`/${e}/truncate`)}dropAdminEntity(e){return this._adminPost(`/${e}/drop`)}resetAllAdmin(e){return this._adminPost("/reset-all",e)}listAdminConfigs(){return this._adminGet("/configs")}getAdminConfig(e){return this._adminGet(`/configs/${e}`)}updateAdminConfig(e,t){return this._adminPatch(`/configs/${e}`,t)}listAdminRoles(){return this._adminGet("/roles")}createAdminRole(e){return this._adminPost("/roles",e)}getAdminRole(e){return this._adminGet(`/roles/${e}`)}updateAdminRole(e,t){return this._adminPatch(`/roles/${e}`,t)}deleteAdminRole(e){return this._adminDelete(`/roles/${e}`)}listAdminApiKeys(){return this._adminGet("/api-keys")}createAdminApiKey(e){return this._adminPost("/api-keys",e)}getAdminApiKey(e){return this._adminGet(`/api-keys/${e}`)}updateAdminApiKey(e,t){return this._adminPatch(`/api-keys/${e}`,t)}deleteAdminApiKey(e){return this._adminDelete(`/api-keys/${e}`)}regenerateAdminApiKeySecret(e){return this._adminPost(`/api-keys/${e}/regenerate-secret`)}listAdminAccounts(){return this._adminGet("/accounts")}createAdminAccount(e){return this._adminPost("/accounts",e)}getAdminAccount(e){return this._adminGet(`/accounts/${e}`)}updateAdminAccount(e,t){return this._adminPatch(`/accounts/${e}`,t)}deleteAdminAccount(e){return this._adminDelete(`/accounts/${e}`)}listAdminLicenses(){return this._adminGet("/licenses")}createAdminLicense(e){return this._adminPost("/licenses",e)}getAdminLicense(e){return this._adminGet(`/licenses/${e}`)}updateAdminLicense(e,t){return this._adminPatch(`/licenses/${e}`,t)}deleteAdminLicense(e){return this._adminDelete(`/licenses/${e}`)}runAdminBackup(e){return this._adminPost("/backup/run",e)}getAdminBackupStatus(e){return this._adminPost("/backup/status",e)}listAdminBackups(e){return this._adminPost("/backup/list",e)}restoreAdminBackup(e){return this._adminPost("/backup/restore",e)}deleteAdminBackup(e){return this._adminPost("/backup/delete",e)}disableAdminAccountTwoFactor(e){return this._adminDelete(`/accounts/${e}/2fa`)}}}var P=class extends W(Q(K(z(V(X(N(D(q)))))))){};function J(r){return class extends r{accountRegister(e){return this.http.post("/v1/account/register",e,!1)}accountWithdraw(e){return this.http.post("/v1/account/withdraw",e)}accountChangePassword(e){return this.http.post("/v1/account/change-password",e)}accountReactivate(e){return this.http.post("/v1/account/reactivate",e,!1)}listAccountBiometrics(){return this.http.get("/v1/account/biometric")}registerAccountBiometric(e){return this.http.post("/v1/account/biometric",e)}deleteAccountBiometric(e){return this.http.delete(`/v1/account/biometric/${e}`)}}}function Y(r){return class extends r{listBoardCategories(e={}){let t=c(e);return this.http.get(`/v1/board/categories${t?`?${t}`:""}`,!1)}getBoardCategory(e){return this.http.get(`/v1/board/categories/${e}`,!1)}createBoardCategory(e){return this.http.post("/v1/board/categories",e)}updateBoardCategory(e,t){return this.http.put(`/v1/board/categories/${e}`,t)}deleteBoardCategory(e){return this.http.delete(`/v1/board/categories/${e}`)}listBoardPosts(e,t={}){let s=c(t);return this.http.get(`/v1/board/${e}/list${s?`?${s}`:""}`)}getBoardPost(e){return this.http.get(`/v1/board/posts/${e}`)}createBoardPost(e,t){return this.http.post(`/v1/board/${e}/submit`,t)}updateBoardPost(e,t){return this.http.put(`/v1/board/posts/${e}`,t)}deleteBoardPost(e){return this.http.delete(`/v1/board/posts/${e}`)}listBoardComments(e,t={}){let s=c(t);return this.http.get(`/v1/board/posts/${e}/comments${s?`?${s}`:""}`,!1)}createBoardComment(e,t){return this.http.post(`/v1/board/posts/${e}/comments/submit`,t)}updateBoardComment(e,t){return this.http.put(`/v1/board/comments/${e}`,t)}deleteBoardComment(e){return this.http.delete(`/v1/board/comments/${e}`)}listBoardFiles(e){return this.http.get(`/v1/board/posts/${e}/files`,!1)}async uploadBoardFile(e,t){let s=new FormData;return s.append("file",t,t instanceof File?t.name:"upload"),this.requestForm("POST",`/v1/board/posts/${e}/files`,s)}boardFileUrl(e){return`${this.baseUrl}/v1/board/files/${e}`}deleteBoardFile(e){return this.http.delete(`/v1/board/files/${e}`)}createBoardGuestPost(e,t){return this.http.post(`/v1/board/${e}/guest-submit`,t,!1)}authenticateBoardGuestPost(e,t){return this.http.post(`/v1/board/posts/${e}/guest-auth`,t,!1)}toggleBoardPostLike(e){return this.http.post(`/v1/board/posts/${e}/like`,{})}acceptBoardPost(e){return this.http.post(`/v1/board/posts/${e}/accept`,{})}rateBoardPost(e,t){return this.http.post(`/v1/board/posts/${e}/rating`,t)}rateBoardComment(e,t){return this.http.post(`/v1/board/comments/${e}/rating`,t)}listBoardTags(e={}){let t=c(e);return this.http.get(`/v1/board/tags${t?`?${t}`:""}`,!1)}setBoardPostTags(e,t){return this.http.put(`/v1/board/posts/${e}/tags`,t)}reportBoardPost(e,t){return this.http.post(`/v1/board/posts/${e}/report`,t)}reportBoardComment(e,t){return this.http.post(`/v1/board/comments/${e}/report`,t)}listBoardReports(e={}){let t=c(e);return this.http.get(`/v1/board/admin/reports${t?`?${t}`:""}`)}updateBoardReport(e,t){return this.http.patch(`/v1/board/admin/reports/${e}`,t)}markBoardPostRead(e){return this.http.post(`/v1/board/posts/${e}/read`,{})}listBoardMentions(e={}){let t=c(e);return this.http.get(`/v1/board/mentions${t?`?${t}`:""}`)}markBoardMentionRead(e){return this.http.patch(`/v1/board/mentions/${e}/read`,{})}}}function Z(r){return class extends r{sendEmailVerification(e){return this.http.post("/v1/email-verify/send",e,!1)}confirmEmailVerification(e){return this.http.post("/v1/email-verify/confirm",e,!1)}activateEmailVerification(e){let t=c(e);return this.http.get(`/v1/email-verify/activate${t?`?${t}`:""}`,!1)}getEmailVerificationStatus(){return this.http.get("/v1/email-verify/status")}changeVerifiedEmail(e){return this.http.post("/v1/email-verify/change",e)}}}function ee(r){return class extends r{oauthAuthorizeUrl(e,t={}){let s=c(t);return`${this.baseUrl}/v1/oauth/${e}${s?`?${s}`:""}`}oauthCallback(e,t,s="POST"){if(s==="GET"){let i=c(t??{});return this.http.get(`/v1/oauth/${e}/callback${i?`?${i}`:""}`,!1)}return this.http.post(`/v1/oauth/${e}/callback`,t,!1)}linkOAuthAccount(e){return this.http.post("/v1/account/oauth/link",e)}unlinkOAuthAccount(e){return this.http.delete(`/v1/account/oauth/link/${e}`)}listOAuthProviders(){return this.http.get("/v1/account/oauth/providers")}refreshOAuthProviderToken(e,t){return this.http.post(`/v1/account/oauth/refresh/${e}`,t)}}}function te(r){return class extends r{requestPasswordReset(e){return this.http.post("/v1/password-reset/request",e,!1)}validatePasswordResetToken(e){return this.http.get(`/v1/password-reset/validate/${encodeURIComponent(e)}`,!1)}verifyPasswordReset(e){return this.http.post("/v1/password-reset/verify",e,!1)}}}function ne(r){return class extends r{setupTwoFactor(e){return this.http.post("/v1/account/2fa/setup",e)}verifyTwoFactorSetup(e){return this.http.post("/v1/account/2fa/setup/verify",e,!1)}disableTwoFactor(){return this.http.delete("/v1/account/2fa")}getTwoFactorStatus(){return this.http.get("/v1/account/2fa/status")}regenerateTwoFactorRecoveryCodes(){return this.http.post("/v1/account/2fa/recovery/regenerate")}verifyTwoFactor(e){return this.http.post("/v1/account/2fa/verify",e,!1)}recoverTwoFactorAccess(e){return this.http.post("/v1/account/2fa/recovery",e,!1)}}}function re(r){return class extends r{alimtalkSend(e){return this.http.post("/v1/alimtalk/send",e)}alimtalkStatus(e){return this.http.get(`/v1/alimtalk/status/${e}`,!1)}listAlimtalkTemplates(){return this.http.get("/v1/alimtalk/templates",!1)}alimtalkWebhook(e,t){return this.http.post(`/v1/alimtalk/webhook/${encodeURIComponent(e)}`,t,!1)}}}function se(r){return class extends r{friendtalkSend(e){return this.http.post("/v1/friendtalk/send",e)}}}function ie(r){return class extends r{listHolidays(e={}){let t=c(e);return this.http.get(`/v1/holidays${t?`?${t}`:""}`,!1)}getHolidayByDate(e){return this.http.get(`/v1/holidays/${encodeURIComponent(e)}`,!1)}syncHolidays(e){return this.http.post("/v1/holidays/sync",e)}}}function oe(r){return class extends r{identityRequest(e){return this.http.post("/v1/identity/request",e,!1)}identityCallback(e){return this.http.post("/v1/identity/callback",e,!1)}identityResult(e){return this.http.get(`/v1/identity/result/${encodeURIComponent(e)}`,!1)}identityVerifyCI(e){return this.http.post("/v1/identity/verify-ci",e)}}}function ae(r){return class extends r{llmChat(e){return this.http.post("/v1/llm/chat",e)}llmChatStream(e){return this.http.post("/v1/llm/chat/stream",e)}createLlmConversation(e){return this.http.post("/v1/llm/conversations",e)}sendLlmMessage(e,t){return this.http.post(`/v1/llm/conversations/${e}/messages`,t)}listLlmConversations(e={}){let t=c(e);return this.http.get(`/v1/llm/conversations${t?`?${t}`:""}`)}getLlmConversation(e){return this.http.get(`/v1/llm/conversations/${e}`)}updateLlmConversation(e,t){return this.http.patch(`/v1/llm/conversations/${e}`,t)}deleteLlmConversation(e){return this.http.delete(`/v1/llm/conversations/${e}`)}ragUploadDocument(e){return this.requestForm("POST","/v1/llm/rag/documents",e)}ragListDocuments(e={}){let t=c(e);return this.http.get(`/v1/llm/rag/documents${t?`?${t}`:""}`)}ragDeleteDocument(e){return this.http.delete(`/v1/llm/rag/documents/${encodeURIComponent(e)}`)}ragSearch(e){return this.http.post("/v1/llm/rag/search",e)}ragChat(e){return this.http.post("/v1/llm/rag/chat",e)}ragChatStream(e){return this.http.post("/v1/llm/rag/chat/stream",e)}ragRebuildIndex(e){return this.http.post("/v1/llm/rag/rebuild-index",e)}listLlmProviders(){return this.http.get("/v1/llm/providers")}getLlmUsage(e={}){let t=c(e);return this.http.get(`/v1/llm/usage${t?`?${t}`:""}`)}getLlmUsageSummary(e={}){let t=c(e);return this.http.get(`/v1/llm/usage/summary${t?`?${t}`:""}`)}getLlmCacheStats(){return this.http.get("/v1/llm/cache/stats")}clearLlmCache(){return this.http.delete("/v1/llm/cache")}listLlmTemplates(){return this.http.get("/v1/llm/templates")}llmTemplateChat(e,t){return this.http.post(`/v1/llm/${encodeURIComponent(e)}/chat`,t)}llmTemplateChatStream(e,t){return this.http.post(`/v1/llm/${encodeURIComponent(e)}/chat/stream`,t)}listLlmChatbots(e={}){let t=c(e);return this.http.get(`/v1/llm/chatbots${t?`?${t}`:""}`)}createLlmChatbot(e){return this.http.post("/v1/llm/chatbots",e)}getLlmChatbot(e){return this.http.get(`/v1/llm/chatbots/${e}`)}updateLlmChatbot(e,t){return this.http.patch(`/v1/llm/chatbots/${e}`,t)}deleteLlmChatbot(e){return this.http.delete(`/v1/llm/chatbots/${e}`)}llmChatbotChat(e,t){return this.http.post(`/v1/llm/chatbots/${e}/chat`,t)}llmChatbotChatStream(e,t){return this.http.post(`/v1/llm/chatbots/${e}/chat/stream`,t)}listLlmChatbotSessions(e,t={}){let s=c(t);return this.http.get(`/v1/llm/chatbots/${e}/sessions${s?`?${s}`:""}`)}deleteLlmChatbotSession(e,t){return this.http.delete(`/v1/llm/chatbots/${e}/sessions/${t}`)}listLlmProfiles(e={}){let t=c(e);return this.http.get(`/v1/llm/profiles${t?`?${t}`:""}`)}upsertLlmProfile(e){return this.http.post("/v1/llm/profiles",e)}deleteLlmProfile(e){return this.http.delete(`/v1/llm/profiles/${e}`)}}}function ue(r){return class extends r{ocrRecognize(e){return this.requestForm("POST","/v1/ocr/recognize",e)}ocrRecognizeAsync(e){return this.requestForm("POST","/v1/ocr/recognize/async",e)}ocrRecognizeByDocType(e,t){return this.requestForm("POST",`/v1/ocr/${encodeURIComponent(e)}`,t)}listOcrResults(e={}){let t=c(e);return this.http.get(`/v1/ocr/results${t?`?${t}`:""}`)}getOcrResult(e){return this.http.get(`/v1/ocr/results/${encodeURIComponent(e)}`)}getOcrResultText(e){return this.http.get(`/v1/ocr/results/${encodeURIComponent(e)}/text`)}deleteOcrResult(e){return this.http.delete(`/v1/ocr/results/${encodeURIComponent(e)}`)}getOcrQuota(){return this.http.get("/v1/ocr/quota")}}}function ce(r){return class extends r{pgCreateOrder(e){return this.http.post("/v1/pg/orders",e)}pgGetOrder(e){return this.http.get(`/v1/pg/orders/${encodeURIComponent(e)}`)}pgConfirmPayment(e){return this.http.post("/v1/pg/confirm",e)}pgCancelPayment(e,t){return this.http.post(`/v1/pg/orders/${encodeURIComponent(e)}/cancel`,t)}pgSyncPaymentStatus(e,t){return this.http.post(`/v1/pg/orders/${encodeURIComponent(e)}/sync`,t)}pgWebhook(e){return this.http.post("/v1/pg/webhook",e,!1)}pgGetClientConfig(){return this.http.get("/v1/pg/config",!1)}}}function le(r){return class extends r{appPushSend(e){return this.http.post("/v1/push/send",e)}appPushBroadcast(e){return this.http.post("/v1/push/broadcast",e)}appPushStatus(e){return this.http.get(`/v1/push/status/${e}`)}appPushRegisterDevice(e){return this.http.post("/v1/push/device",e)}appPushUnregisterDevice(e){return this.http.delete(`/v1/push/device/${e}`)}}}function me(r){return class extends r{smsSend(e){return this.http.post("/v1/sms/send",e)}smsStatus(e){return this.http.get(`/v1/sms/status/${e}`,!1)}smsVerificationSend(e){return this.http.post("/v1/sms/verification/send",e,!1)}smsVerificationVerify(e){return this.http.post("/v1/sms/verification/verify",e,!1)}}}function he(r){return class extends r{taxinvoiceRegistIssue(e){return this.http.post("/v1/taxinvoice",e)}taxinvoiceRegister(e){return this.http.post("/v1/taxinvoice/register",e)}taxinvoiceIssue(e){return this.http.post(`/v1/taxinvoice/${e}/issue`,{})}taxinvoiceCancelIssue(e,t){return this.http.post(`/v1/taxinvoice/${e}/cancel`,t)}taxinvoiceGetState(e){return this.http.get(`/v1/taxinvoice/${e}/state`)}taxinvoiceGetDetail(e){return this.http.get(`/v1/taxinvoice/${e}`)}}}var M=class extends re(se(me(le(ce(he(ue(ae(oe(ie(ee(ne(te(Z(Y(J(P)))))))))))))))){};var Wn=new P,Xn=new M;export{J as AccountAppMixin,X as AdminMixin,D as AuthMixin,Y as BoardMixin,Z as EmailVerifyMixin,M as EntityAppServerApi,N as EntityMixin,P as EntityServerApi,K as FileMixin,ee as OAuthMixin,Ue as PACKET_HKDF_SALT,Ie as PACKET_INFO_LABEL,G as PACKET_KEY_SIZE,H as PACKET_MAGIC_MIN,F as PACKET_MAGIC_RANGE,y as PACKET_NONCE_SIZE,Le as PACKET_TAG_SIZE,te as PasswordResetMixin,V as PushMixin,z as SmtpMixin,Q as TransactionMixin,ne as TwoFactorMixin,W as UtilsMixin,be as decryptPacket,ye as derivePacketKey,we as encryptPacket,Xn as entityAppServer,Wn as entityServer,_e as isAuthLoginSuccessResponse,Pe as packetMagicLenFromKey};
2
2
  //# sourceMappingURL=index.js.map