@runware/sdk-js 1.2.6 → 1.2.7
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.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +5 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Ze=Object.create;var W=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var et=Object.getPrototypeOf,tt=Object.prototype.hasOwnProperty;var nt=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),st=(l,e)=>{for(var t in e)W(l,t,{get:e[t],enumerable:!0})},Ue=(l,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of $e(e))!tt.call(l,s)&&s!==t&&W(l,s,{get:()=>e[s],enumerable:!(n=Ye(e,s))||n.enumerable});return l};var Te=(l,e,t)=>(t=l!=null?Ze(et(l)):{},Ue(e||!l||!l.__esModule?W(t,"default",{value:l,enumerable:!0}):t,l)),rt=l=>Ue(W({},"__esModule",{value:!0}),l);var qe=nt((fn,Fe)=>{"use strict";var Pe=l=>l&&l.CLOSING===2,ot=()=>typeof WebSocket<"u"&&Pe(WebSocket),it=()=>({constructor:ot()?WebSocket:null,maxReconnectionDelay:1e4,minReconnectionDelay:1500,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,debug:!1}),lt=(l,e,t)=>{Object.defineProperty(e,t,{get:()=>l[t],set:n=>{l[t]=n},enumerable:!0,configurable:!0})},Ne=l=>l.minReconnectionDelay+Math.random()*l.minReconnectionDelay,ut=(l,e)=>{let t=e*l.reconnectionDelayGrowFactor;return t>l.maxReconnectionDelay?l.maxReconnectionDelay:t},ct=["onopen","onclose","onmessage","onerror"],dt=(l,e,t)=>{Object.keys(t).forEach(n=>{t[n].forEach(([s,a])=>{l.addEventListener(n,s,a)})}),e&&ct.forEach(n=>{l[n]=e[n]})},Le=function(l,e,t={}){let n,s,a=0,r=0,o=!0,i={};if(!(this instanceof Le))throw new TypeError("Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator");let d=it();if(Object.keys(d).filter(c=>t.hasOwnProperty(c)).forEach(c=>d[c]=t[c]),!Pe(d.constructor))throw new TypeError("Invalid WebSocket constructor. Set `options.constructor`");let m=d.debug?(...c)=>console.log("RWS:",...c):()=>{},g=(c,y)=>setTimeout(()=>{let U=new Error(y);U.code=c,Array.isArray(i.error)&&i.error.forEach(([b])=>b(U)),n.onerror&&n.onerror(U)},0),p=()=>{if(m("close"),r++,m("retries count:",r),r>d.maxRetries){g("EHOSTDOWN","Too many failed connection attempts");return}a?a=ut(d,a):a=Ne(d),m("reconnectDelay:",a),o&&setTimeout(u,a)},u=()=>{m("connect");let c=n;n=new d.constructor(l,e),s=setTimeout(()=>{m("timeout"),n.close(),g("ETIMEDOUT","Connection timeout")},d.connectionTimeout),m("bypass properties");for(let y in n)["addEventListener","removeEventListener","close","send"].indexOf(y)<0&<(n,this,y);n.addEventListener("open",()=>{clearTimeout(s),m("open"),a=Ne(d),m("reconnectDelay:",a),r=0}),n.addEventListener("close",p),dt(n,c,i)};m("init"),u(),this.close=(c=1e3,y="",{keepClosed:U=!1,fastClose:b=!0,delay:f=0}={})=>{if(f&&(a=f),o=!U,n.close(c,y),b){let h={code:c,reason:y,wasClean:!0};p(),Array.isArray(i.close)&&i.close.forEach(([k,I])=>{k(h),n.removeEventListener("close",k,I)}),n.onclose&&(n.onclose(h),n.onclose=null)}},this.send=c=>{n.send(c)},this.addEventListener=(c,y,U)=>{Array.isArray(i[c])?i[c].some(([b])=>b===y)||i[c].push([y,U]):i[c]=[[y,U]],n.addEventListener(c,y,U)},this.removeEventListener=(c,y,U)=>{Array.isArray(i[c])&&(i[c]=i[c].filter(([b])=>b!==y)),n.removeEventListener(c,y,U)}};Fe.exports=Le});var pt={};st(pt,{EControlMode:()=>ee,EModelArchitecture:()=>Re,EModelConditioning:()=>De,EModelFormat:()=>fe,EModelType:()=>ke,EOpenPosePreProcessor:()=>be,EPhotoMakerEnum:()=>_e,EPreProcessor:()=>ne,EPreProcessorGroup:()=>te,ETaskType:()=>B,Environment:()=>$,Runware:()=>re,RunwareClient:()=>P,RunwareServer:()=>L,SdkType:()=>V});module.exports=rt(pt);var $=(n=>(n.PRODUCTION="PRODUCTION",n.DEVELOPMENT="DEVELOPMENT",n.TEST="TEST",n))($||{}),V=(t=>(t.CLIENT="CLIENT",t.SERVER="SERVER",t))(V||{}),B=(h=>(h.IMAGE_INFERENCE="imageInference",h.IMAGE_UPLOAD="imageUpload",h.UPSCALE="upscale",h.REMOVE_BACKGROUND="removeBackground",h.VIDEO_INFERENCE="videoInference",h.CAPTION="caption",h.AUDIO_INFERENCE="audioInference",h.THREE_D_INFERENCE="3dInference",h.GET_RESPONSE="getResponse",h.PHOTO_MAKER="photoMaker",h.IMAGE_CONTROL_NET_PRE_PROCESS="imageControlNetPreProcess",h.IMAGE_MASKING="imageMasking",h.PROMPT_ENHANCE="promptEnhance",h.AUTHENTICATION="authentication",h.MODEL_UPLOAD="modelUpload",h.MODEL_SEARCH="modelSearch",h.MEDIA_STORAGE="mediaStorage",h.VECTORIZE="vectorize",h.TEXT_INFERENCE="textInference",h))(B||{}),ee=(n=>(n.BALANCED="balanced",n.PROMPT="prompt",n.CONTROL_NET="controlnet",n))(ee||{}),te=(p=>(p.canny="canny",p.depth="depth",p.mlsd="mlsd",p.normalbae="normalbae",p.openpose="openpose",p.tile="tile",p.seg="seg",p.lineart="lineart",p.lineart_anime="lineart_anime",p.shuffle="shuffle",p.scribble="scribble",p.softedge="softedge",p))(te||{}),ne=(T=>(T.canny="canny",T.depth_leres="depth_leres",T.depth_midas="depth_midas",T.depth_zoe="depth_zoe",T.inpaint_global_harmonious="inpaint_global_harmonious",T.lineart_anime="lineart_anime",T.lineart_coarse="lineart_coarse",T.lineart_realistic="lineart_realistic",T.lineart_standard="lineart_standard",T.mlsd="mlsd",T.normal_bae="normal_bae",T.scribble_hed="scribble_hed",T.scribble_pidinet="scribble_pidinet",T.seg_ofade20k="seg_ofade20k",T.seg_ofcoco="seg_ofcoco",T.seg_ufade20k="seg_ufade20k",T.shuffle="shuffle",T.softedge_hed="softedge_hed",T.softedge_hedsafe="softedge_hedsafe",T.softedge_pidinet="softedge_pidinet",T.softedge_pidisafe="softedge_pidisafe",T.tile_gaussian="tile_gaussian",T.openpose="openpose",T.openpose_face="openpose_face",T.openpose_faceonly="openpose_faceonly",T.openpose_full="openpose_full",T.openpose_hand="openpose_hand",T))(ne||{}),be=(a=>(a.openpose="openpose",a.openpose_face="openpose_face",a.openpose_faceonly="openpose_faceonly",a.openpose_full="openpose_full",a.openpose_hand="openpose_hand",a))(be||{}),fe=(t=>(t.safetensors="safetensors",t.pickletensor="pickletensor",t))(fe||{}),Re=(u=>(u.flux1d="flux1d",u.flux1s="flux1s",u.pony="pony",u.sdhyper="sdhyper",u.sd1x="sd1x",u.sd1xlcm="sd1xlcm",u.sd3="sd3",u.sdxl="sdxl",u.sdxllcm="sdxllcm",u.sdxldistilled="sdxldistilled",u.sdxlhyper="sdxlhyper",u.sdxllightning="sdxllightning",u.sdxlturbo="sdxlturbo",u))(Re||{}),ke=(n=>(n.base="base",n.inpainting="inpainting",n.pix2pix="pix2pix",n))(ke||{}),De=(I=>(I.canny="canny",I.depth="depth",I.qrcode="qrcode",I.hed="hed",I.scrible="scrible",I.openpose="openpose",I.seg="segmentation",I.openmlsd="openmlsd",I.softedge="softedge",I.normal="normal bae",I.shuffle="shuffle",I.pix2pix="pix2pix",I.inpaint="inpaint",I.lineart="line art",I.sketch="sketch",I.inpaintdepth="inpaint depth",I.tile="tile",I.outfit="outfit",I.blur="blur",I.gray="gray",I.lowquality="low quality",I))(De||{}),_e=(g=>(g.NoStyle="No style",g.Cinematic="Cinematic",g.DisneyCharacter="Disney Character",g.DigitalArt="Digital Art",g.Photographic="Photographic",g.FantasyArt="Fantasy art",g.Neonpunk="Neonpunk",g.Enhance="Enhance",g.ComicBook="Comic book",g.Lowpoly="Lowpoly",g.LineArt="Line art",g))(_e||{});var H=require("uuid"),Q=6e4,G=1e3,xe=100,se={PRODUCTION:"wss://ws-api.runware.ai/v1",TEST:"ws://localhost:8080"},ve=(l,e)=>{if(l==null)return;let t=l.indexOf(e);t!==-1&&l.splice(t,1)},M=(l,{debugKey:e="debugKey",timeoutDuration:t=Q,shouldThrowError:n=!0,pollingInterval:s=xe})=>(t=t<G?G:t,new Promise((a,r)=>{let o=setTimeout(()=>{i&&(clearInterval(i),n&&r(`Response could not be received from server for ${e}`)),clearTimeout(o)},t),i=setInterval(async()=>{l({resolve:a,reject:r,intervalId:i})&&(clearInterval(i),clearTimeout(o))},s)})),Se=l=>new Promise(e=>{let t=new FileReader;t.readAsDataURL(l),t.onload=function(){e(t.result)}}),D=()=>(0,H.v4)(),we=l=>(0,H.validate)(l);var Ae=({key:l,data:e,useZero:t=!0,shouldReturnString:n=!1})=>l.split(/\.|\[/).map(r=>r.replace(/\]$/,"")).reduce((r,o)=>{let i=t?0:void 0,d=r?.[o];if(!d)return i;if(Array.isArray(d)&&/^\d+$/.test(o)){let m=parseInt(o,10);return m>=0&&m<d.length?r[o]=d[m]:r[o]??i}else return r[o]??i},e||{})??{},Ee=(l,e=1e3)=>new Promise(t=>setTimeout(t,l*e));var Me=(l,e)=>l.filter(t=>t.key!==e.key);var R=({key:l,value:e})=>e||e===0||e===!1?{[l]:e}:{},at=(l,e)=>Math.floor(Math.random()*(e-l+1))+l,Ce=()=>at(1,Number.MAX_SAFE_INTEGER),Oe=(l,{debugKey:e="debugKey",timeoutDuration:t=Q,shouldThrowError:n=!0,pollingInterval:s=xe})=>(t=t<G?G:t,new Promise((a,r)=>{let o=setTimeout(()=>{i&&(clearInterval(i),n&&r(`Response could not be received from server for ${e}`)),clearTimeout(o)},t),i=setInterval(async()=>{try{await l({resolve:a,reject:r,intervalId:i})&&(clearInterval(i),clearTimeout(o))}catch(d){clearInterval(i),clearTimeout(o),r(d)}},s)}));var x=async(l,e={})=>{let{delayInSeconds:t=1,callback:n}=e,s=e.maxRetries??1;for(;s;)try{return await l()}catch(a){if(n?.(),a?.error)throw a;if(s--,s>0)await Ee(t),await x(l,{...e,maxRetries:s});else throw a}};var C=class{constructor({apiKey:e,url:t=se.PRODUCTION,shouldReconnect:n=!0,globalMaxRetries:s=2,timeoutDuration:a=Q}){this._listeners=[];this._globalMessages={};this._globalImages=[];this._globalErrors=[];this.ensureConnectionUUID=null;this.isWebsocketReadyState=()=>this._ws?.readyState===1;this.isInvalidAPIKey=()=>this._connectionError?.error?.code==="invalidApiKey";this.send=e=>{this._ws.send(JSON.stringify([e]))};this.uploadImage=async e=>{try{return await x(async()=>{let t=D();if(typeof e=="string"&&we(e))return{imageURL:e,imageUUID:e,taskUUID:t,taskType:"imageUpload"};let n=typeof e=="string"?e:await Se(e);return{imageURL:n,imageUUID:n,taskUUID:t,taskType:"imageUpload"}})}catch(t){throw t}};this.controlNetPreProcess=async({inputImage:e,preProcessorType:t,height:n,width:s,outputType:a,outputFormat:r,highThresholdCanny:o,lowThresholdCanny:i,includeHandsAndFaceOpenPose:d,includeCost:m,outputQuality:g,customTaskUUID:p,taskUUID:u,retry:c,includeGenerationTime:y,includePayload:U})=>{let b=c||this._globalMaxRetries,f,h=Date.now();try{return await x(async()=>{await this.ensureConnection();let k=await this.uploadImage(e);if(!k?.imageUUID)return null;let I=u||p||D(),w={inputImage:k.imageUUID,taskType:"imageControlNetPreProcess",taskUUID:I,preProcessorType:t,...R({key:"height",value:n}),...R({key:"width",value:s}),...R({key:"outputType",value:a}),...R({key:"outputFormat",value:r}),...R({key:"includeCost",value:m}),...R({key:"highThresholdCanny",value:o}),...R({key:"lowThresholdCanny",value:i}),...R({key:"includeHandsAndFaceOpenPose",value:d}),...g?{outputQuality:g}:{}};this.send({...w}),f=this.globalListener({taskUUID:I});let A=await M(({resolve:S,reject:z})=>{let v=this.getSingleMessage({taskUUID:I});if(v){if(v?.error)return z(v),!0;if(v)return S(v),!0}},{debugKey:"unprocessed-image",timeoutDuration:this._timeoutDuration});return f.destroy(),this.insertAdditionalResponse({response:A,payload:U?w:void 0,startTime:y?h:void 0}),A},{maxRetries:b,callback:()=>{f?.destroy()}})}catch(k){throw k}};this.controlNetPreprocess=async e=>this.controlNetPreProcess(e);this.requestImageToText=async({inputImage:e,inputs:t,includeCost:n,customTaskUUID:s,taskUUID:a,retry:r,includePayload:o,includeGenerationTime:i,deliveryMethod:d,skipResponse:m,model:g})=>{try{let p;e&&(p=await this.uploadImage(e));let c={taskUUID:a||s||D(),taskType:"caption",model:g,inputImage:p?.imageUUID,inputs:t,...R({key:"includeCost",value:n}),retry:r,includePayload:o,includeGenerationTime:i},y=await this.baseSingleRequest({payload:{...c,taskType:"caption"},debugKey:"caption"});if(m)return y;if(d==="async"){let U=y?.taskUUID;return(await this.pollForAsyncResults({taskUUID:U}))[0]}return y}catch(p){throw p}};this.caption=async e=>this.requestImageToText(e);this.removeImageBackground=async e=>{let{skipResponse:t,...n}=e;try{let s=n.deliveryMethod,a=await this.baseSingleRequest({payload:{...n,taskType:"removeBackground"},debugKey:"remove-background"});if(t)return a;if(s==="async"){let r=a?.taskUUID;return(await this.pollForAsyncResults({taskUUID:r}))[0]}return a}catch(s){throw s}};this.removeBackground=async e=>this.removeImageBackground(e);this.vectorize=async e=>this.baseSingleRequest({payload:{...e,taskType:"vectorize"},debugKey:"vectorize"});this.videoInference=async e=>{let{skipResponse:t,inputAudios:n,referenceVideos:s,...a}=e;try{let r=await this.baseSingleRequest({payload:{...a,...n?.length&&{inputAudios:n},...s?.length&&{referenceVideos:s},deliveryMethod:"async",taskType:"videoInference"},debugKey:"video-inference"});if(t)return r;let o=r?.taskUUID;return this.pollForAsyncResults({taskUUID:o,numberResults:e?.numberResults})}catch(r){throw r}};this.audioInference=async e=>{let{skipResponse:t,deliveryMethod:n="sync",...s}=e;try{let r=await(n==="sync"?this.baseSyncRequest:this.baseSingleRequest)({payload:{...s,numberResults:s.numberResults||1,taskType:"audioInference",deliveryMethod:n},groupKey:"REQUEST_AUDIO",debugKey:"audio-inference",skipResponse:t});if(t)return r;let o=r?.taskUUID;return n==="async"?this.pollForAsyncResults({taskUUID:o,numberResults:e?.numberResults}):r}catch(a){throw a}};this.threeDInference=async e=>{let{skipResponse:t,deliveryMethod:n="sync",...s}=e;try{let r=await(n==="sync"?this.baseSyncRequest:this.baseSingleRequest)({payload:{...s,numberResults:s.numberResults||1,taskType:"3dInference",deliveryMethod:n},groupKey:"REQUEST_IMAGES",debugKey:"three-d-inference",skipResponse:t});if(t)return r;let o=r?.taskUUID;return n==="async"?this.pollForAsyncResults({taskUUID:o,numberResults:e?.numberResults}):r}catch(a){throw a}};this.textInference=async e=>{let{skipResponse:t,deliveryMethod:n="sync",...s}=e;try{let r=await(n==="sync"?this.baseSyncRequest:this.baseSingleRequest)({payload:{...s,numberResults:s.numberResults||1,taskType:"textInference",deliveryMethod:n},groupKey:"REQUEST_TEXT",debugKey:"text-inference",skipResponse:t});if(t)return r;let o=r?.taskUUID;return n==="async"?this.pollForAsyncResults({taskUUID:o,numberResults:e?.numberResults}):r}catch(a){throw a}};this.getResponse=async e=>{let t=e.taskUUID;return this.baseSingleRequest({payload:{...e,customTaskUUID:t,taskType:"getResponse"},isMultiple:!0,debugKey:"async-results"})};this.upscaleGan=async e=>{let{inputImage:t,skipResponse:n,deliveryMethod:s="sync",...a}=e;try{let r;t&&(r=await this.uploadImage(t));let o=await this.baseSingleRequest({payload:{...a,...r?.imageUUID?{inputImage:r.imageUUID}:{},taskType:"upscale",deliveryMethod:s},debugKey:"upscale"});if(n)return o;if(s==="async"){let i=o?.taskUUID;return(await this.pollForAsyncResults({taskUUID:i}))[0]}return o}catch(r){throw r}};this.upscale=async e=>this.upscaleGan(e);this.enhancePrompt=async({prompt:e,promptMaxLength:t=380,promptVersions:n=1,includeCost:s,customTaskUUID:a,taskUUID:r,retry:o,includeGenerationTime:i,includePayload:d})=>{let m=o||this._globalMaxRetries,g,p=Date.now();try{return await x(async()=>{await this.ensureConnection();let u=r||a||D(),c={prompt:e,taskUUID:u,promptMaxLength:t,promptVersions:n,...R({key:"includeCost",value:s}),taskType:"promptEnhance"};this.send(c),g=this.globalListener({taskUUID:u});let y=await M(({resolve:U,reject:b})=>{let f=this._globalMessages[u];if(f?.error)return b(f),!0;if(f?.length>=n)return delete this._globalMessages[u],U(f),!0},{debugKey:"enhance-prompt",timeoutDuration:this._timeoutDuration});return g.destroy(),this.insertAdditionalResponse({response:y,payload:d?c:void 0,startTime:i?p:void 0}),y},{maxRetries:m,callback:()=>{g?.destroy()}})}catch(u){throw u}};this.promptEnhance=async e=>this.enhancePrompt(e);this.modelUpload=async e=>{let{onUploadStream:t,retry:n,customTaskUUID:s,taskUUID:a,...r}=e,o=n||this._globalMaxRetries,i;try{return await x(async()=>{await this.ensureConnection();let d=a||s||D();this.send({...r,taskUUID:d,taskType:"modelUpload"});let m,g;return i=this.listenToUpload({taskUUID:d,onUploadStream:(u,c)=>{t?.(u,c),u?.status==="ready"?m=u:c&&(g=c)}}),await M(({resolve:u,reject:c})=>{if(m)return u(m),!0;if(g)return c(g),!1},{shouldThrowError:!1,timeoutDuration:60*60*1e3})},{maxRetries:o,callback:()=>{i?.destroy()}})}catch(d){throw d}};this.photoMaker=async(e,t)=>{let{onPartialImages:n,retry:s,customTaskUUID:a,taskUUID:r,numberResults:o,includeGenerationTime:i,includePayload:d,...m}=e,g=s||this._globalMaxRetries,p,u=[],c=0,y=Date.now();try{return await x(async()=>{await this.ensureConnection(),c++;let U=this._globalImages.filter(I=>u.includes(I.taskUUID)),b=r||a||D();u.push(b);let f=o-U.length,h={...m,...m.seed?{seed:m.seed}:{seed:Ce()},...t??{},taskUUID:b,taskType:"photoMaker",numberResults:o};this.send({...h,numberResults:f}),p=this.listenToResponse({onPartialImages:n,taskUUID:b,groupKey:"REQUEST_IMAGES",requestPayload:d?h:void 0,startTime:i?y:void 0});let k=await this.getResponseWithSimilarTaskUUID({taskUUID:u,numberResults:o,lis:p});return p.destroy(),k},{maxRetries:g,callback:()=>{p?.destroy()}})}catch(U){if(U.taskUUID)throw U;if(c>=g)return this.handleIncompleteImages({taskUUIDs:u,error:U})}};this.modelSearch=async e=>this.baseSingleRequest({payload:{...e,taskType:"modelSearch"},debugKey:"model-search"});this.imageMasking=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageMasking"},debugKey:"image-masking"});this.imageUpload=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageUpload"},debugKey:"image-upload"});this.mediaStorage=async e=>this.baseSingleRequest({payload:{...e,operation:e.operation||"upload",taskType:"mediaStorage"},debugKey:"media-storage"});this.baseSingleRequest=async({payload:e,debugKey:t,isMultiple:n})=>{let{retry:s,customTaskUUID:a,taskUUID:r,includePayload:o,includeGenerationTime:i,...d}=e,m=s||this._globalMaxRetries,g,p=Date.now();try{return await x(async()=>{await this.ensureConnection();let u=r||a||D(),c={...d,taskUUID:u};this.send(c),g=this.globalListener({taskUUID:u});let y=await M(({resolve:U,reject:b})=>{let f=n?this.getMultipleMessages({taskUUID:u}):this.getSingleMessage({taskUUID:u});if(f){if(f?.error)return b(f),!0;if(f)return delete this._globalMessages[u],U(f),!0}},{debugKey:t,timeoutDuration:this._timeoutDuration});return this.insertAdditionalResponse({response:y,payload:o?c:void 0,startTime:i?p:void 0}),g.destroy(),y},{maxRetries:m,callback:()=>{g?.destroy()}})}catch(u){throw u}};this.baseSyncRequest=async({payload:e,groupKey:t,skipResponse:n=!1})=>{let{retry:s,customTaskUUID:a,includePayload:r,numberResults:o=1,onPartialResponse:i,includeGenerationTime:d,...m}=e,g=s||this._globalMaxRetries,p,u=[],c=0,y=Date.now();try{return await x(async()=>{await this.ensureConnection(),c++;let U=this._globalImages.filter(I=>u.includes(I.taskUUID)),b=a||D();u.push(b);let f=o-U.length,h={...m,taskUUID:b,numberResults:f};if(this.send(h),n)return new Promise((I,w)=>{let A=this.addListener({taskUUID:b,groupKey:t,lis:S=>{A.destroy(),S.error?w(S.error):I(S[b])}})});p=this.listenToResponse({onPartialImages:i,taskUUID:b,groupKey:t,requestPayload:r?h:void 0,startTime:d?y:void 0});let k=await this.getResponseWithSimilarTaskUUID({taskUUID:u,numberResults:o,lis:p});return p.destroy(),k},{maxRetries:g,callback:()=>{p?.destroy()}})}catch(U){throw U}};this.getSingleMessage=({taskUUID:e})=>{let t=this._globalMessages[e]?.[0],n=this._globalMessages[e];return!t&&!n?null:n?.error?n:t};this.getMultipleMessages=({taskUUID:e})=>{let t=this._globalMessages[e]?.[0],n=this._globalMessages[e];return!t&&!n?null:n};this.insertAdditionalResponse=({response:e,payload:t,startTime:n})=>{if(!t&&!n)return;let s=e;s.additionalResponse={},t&&(e.additionalResponse.payload=t),n&&(e.additionalResponse.generationTime=Date.now()-n)};this.disconnect=async()=>{this._shouldReconnect=!1,this._ws?.terminate?.(),this._ws?.close?.()};this.connected=()=>this.isWebsocketReadyState()&&!!this._connectionSessionUUID;this._apiKey=e,this._url=t,this._sdkType="CLIENT",this._shouldReconnect=n,this._globalMaxRetries=s,this._timeoutDuration=a}getUniqueUUID(e){return e.mediaUUID||e.audioUUID||e.imageUUID||e.videoUUID||e.outputs?.files?.map(t=>t.uuid).join("-")||e.text}async pollForAsyncResults({taskUUID:e,numberResults:t=1}){let n=new Map;return await Oe(async({resolve:s,reject:a})=>{try{let r=await this.getResponse({taskUUID:e});for(let i of r||[])if(i.status==="success"){let d=this.getUniqueUUID(i);d&&n.set(d,i)}return n.size===t?(s(Array.from(n.values())),!0):!1}catch(r){return a(r),!0}},{debugKey:"async-response",pollingInterval:2*1e3,timeoutDuration:10*60*1e3}),Array.from(n.values())}static async initialize(e){try{let t=new this(e);return await t.ensureConnection(),t}catch(t){throw t}}addListener({lis:e,groupKey:t,taskUUID:n}){let s=o=>{let i=Array.isArray(o?.data)?o.data:[o.data],d=o?.[0]?.errors?o?.[0]?.errors:Array.isArray(o?.errors)?o.errors:[o.errors],m=i.filter(p=>(p?.taskUUID||p?.taskType)===n);if(d.filter(p=>(p?.taskUUID||p?.taskType)===n).length){e({error:{...d[0]??{}}});return}if(m.length){e({[n]:i});return}},a={key:n||D(),listener:s,groupKey:t};return this._listeners.push(a),{destroy:()=>{this._listeners=Me(this._listeners,a)}}}connect(){this._ws.onopen=e=>{this._connectionSessionUUID?this.send({taskType:"authentication",apiKey:this._apiKey,connectionSessionUUID:this._connectionSessionUUID}):this.send({apiKey:this._apiKey,taskType:"authentication"}),this.addListener({taskUUID:"authentication",lis:t=>{if(t?.error){this._connectionError=t;return}this._connectionSessionUUID=t?.authentication?.[0]?.connectionSessionUUID,this._connectionError=void 0}})},this._ws.onmessage=e=>{let t=JSON.parse(e.data);for(let n of this._listeners)if(n?.listener?.(t))return},this._ws.onclose=e=>{this.isInvalidAPIKey()}}destroy(e){ve(this._listeners,e)}listenToResponse({onPartialImages:e,taskUUID:t,groupKey:n,requestPayload:s,startTime:a}){return this.addListener({taskUUID:t,lis:r=>{let o=r?.[t]?.filter(i=>i.taskUUID===t);r.error?(e?.(o,r?.error&&r),this._globalErrors.push(r)):(o=o.map(i=>(this.insertAdditionalResponse({response:i,payload:s||void 0,startTime:a||void 0}),{...i})),e?.(o,r?.error&&r),this._sdkType==="CLIENT"?this._globalImages=[...this._globalImages,...(r?.[t]??[]).map(i=>(this.insertAdditionalResponse({response:i,payload:s||void 0,startTime:a||void 0}),{...i}))]:this._globalImages=[...this._globalImages,...o])},groupKey:n})}listenToUpload({onUploadStream:e,taskUUID:t}){return this.addListener({taskUUID:t,lis:n=>{let s=n?.error,a=n?.[t]?.[0],r=a?.taskUUID===t?a:null;(r||s)&&e?.(r||void 0,s)}})}globalListener({taskUUID:e}){return this.addListener({taskUUID:e,lis:t=>{if(t.error){this._globalMessages[e]=t;return}let n=Ae({key:e,data:t,useZero:!1});Array.isArray(n)?n.forEach(s=>{this._globalMessages[s.taskUUID]=[...this._globalMessages[s.taskUUID]??[],s]}):this._globalMessages[n.taskUUID]=n}})}async requestImages({outputType:e,outputFormat:t,uploadEndpoint:n,checkNSFW:s,positivePrompt:a,negativePrompt:r,seedImage:o,maskImage:i,strength:d,height:m,width:g,model:p,steps:u,scheduler:c,seed:y,CFGScale:U,clipSkip:b,usePromptWeighting:f,promptWeighting:h,numberResults:k=1,onPartialImages:I,includeCost:w,customTaskUUID:A,taskUUID:S,retry:z,refiner:v,maskMargin:T,outputQuality:ae,controlNet:j,lora:oe,embeddings:ie,ipAdapters:le,providerSettings:ue,outpaint:ce,acceleratorOptions:de,advancedFeatures:pe,referenceImages:ge,includeGenerationTime:Ve,includePayload:Be,...me},Ge){let O,Ie,F=[],ye=0,he=z||this._globalMaxRetries;try{await this.ensureConnection();let E=null,X=null,J=[];if(o){let _=await this.uploadImage(o);if(!_)return[];E=_.imageUUID}if(i){let _=await this.uploadImage(i);if(!_)return[];X=_.imageUUID}if(j?.length)for(let _=0;_<j.length;_++){let N=j[_],{endStep:Z,startStep:q,weight:Y,guideImage:K,controlMode:Qe,startStepPercentage:ze,endStepPercentage:je,model:Xe}=N,Je=K?await this.uploadImage(K):null;J.push({guideImage:Je?.imageUUID,model:Xe,endStep:Z,startStep:q,weight:Y,...R({key:"startStepPercentage",value:ze}),...R({key:"endStepPercentage",value:je}),controlMode:Qe||"controlnet"})}Ie={taskType:"imageInference",model:p,positivePrompt:a,...r?{negativePrompt:r}:{},...m?{height:m}:{},...g?{width:g}:{},numberResults:k,...e?{outputType:e}:{},...t?{outputFormat:t}:{},...n?{uploadEndpoint:n}:{},...R({key:"checkNSFW",value:s}),...R({key:"strength",value:d}),...R({key:"CFGScale",value:U}),...R({key:"clipSkip",value:b}),...R({key:"maskMargin",value:T}),...R({key:"usePromptWeighting",value:f}),...R({key:"steps",value:u}),...h?{promptWeighting:h}:{},...y?{seed:y}:{},...c?{scheduler:c}:{},...v?{refiner:v}:{},...ce?{outpaint:ce}:{},...R({key:"includeCost",value:w}),...E?{seedImage:E}:{},...X?{maskImage:X}:{},...ae?{outputQuality:ae}:{},...J.length?{controlNet:J}:{},...oe?.length?{lora:oe}:{},...ie?.length?{embeddings:ie}:{},...le?.length?{ipAdapters:le}:{},...ue?{providerSettings:ue}:{},...de?{acceleratorOptions:de}:{},...pe?{advancedFeatures:pe}:{},...ge?.length?{referenceImages:ge}:{},...me,...Ge??{}};let He=Date.now();return await x(async()=>{ye++,O?.destroy();let _=this._globalImages.filter(K=>F.includes(K.taskUUID)),N=S||A||D();F.push(N);let Z=k-_.length,q={...Ie,taskUUID:N,numberResults:Z};this.send(q),O=this.listenToResponse({onPartialImages:I,taskUUID:N,groupKey:"REQUEST_IMAGES",requestPayload:Be?q:void 0,startTime:Ve?He:void 0});let Y=await this.getResponseWithSimilarTaskUUID({taskUUID:F,numberResults:k,lis:O,deliveryMethod:me.deliveryMethod});return O.destroy(),Y},{maxRetries:he,callback:()=>{O?.destroy()}})}catch(E){if(ye>=he)return this.handleIncompleteImages({taskUUIDs:F,error:E});throw E}}async imageInference(e,t){return this.requestImages(e,t)}async ensureConnection(){if(this.connected()||this._url===se.TEST)return;let t=2e3,n=200;try{if(this.isInvalidAPIKey())throw this._connectionError;return new Promise((s,a)=>{let r=0,o=30,i=D(),d,m,g=()=>{this.ensureConnectionUUID=null,clearInterval(d),clearInterval(m)};this._sdkType==="SERVER"&&(d=setInterval(async()=>{try{let p=this.connected(),u=!1;(!this.ensureConnectionUUID||i===this.ensureConnectionUUID)&&(this.ensureConnectionUUID||(this.ensureConnectionUUID=i),u=!0);let c=r%10===0&&u;p?(g(),s(!0)):r>=o?(g(),a(new Error("Retry timed out"))):(c&&this.connect(),r++)}catch(p){g(),a(p)}},t)),m=setInterval(async()=>{if(this.connected()){g(),s(!0);return}if(this.isInvalidAPIKey()){g(),a(this._connectionError);return}},n)})}catch{throw this.ensureConnectionUUID=null,this._connectionError=void 0,this._connectionError??"Could not connect to server. Ensure your API key is correct"}}async getResponseWithSimilarTaskUUID({taskUUID:e,numberResults:t,shouldThrowError:n,lis:s,deliveryMethod:a}){return await M(({resolve:r,reject:o,intervalId:i})=>{let d=Array.isArray(e)?e:[e],m=this._globalImages.filter(u=>d.includes(u.taskUUID)),g=a==="async"&&m.length>0,p=this._globalErrors.filter(u=>d.includes(u.error.taskUUID));if(p.length>0){let u=p[0];return this._globalErrors=this._globalErrors.filter(c=>!d.includes(c.error.taskUUID)),clearInterval(i),o?.(u),!0}else if(m.length>=t||g)return clearInterval(i),this._globalImages=this._globalImages.filter(u=>!d.includes(u.taskUUID)),r([...m].slice(0,t)),!0},{debugKey:"getting images",shouldThrowError:n,timeoutDuration:this._timeoutDuration})}handleIncompleteImages({taskUUIDs:e,error:t}){let n=this._globalImages.filter(s=>e.includes(s.taskUUID));if(n.length>1)return this._globalImages=this._globalImages.filter(s=>!e.includes(s.taskUUID)),n;throw t}};var Ke=Te(qe(),1),P=class extends C{constructor(e){let{shouldReconnect:t,...n}=e;super(n),this._ws=new Ke.default(this._url),this.connect()}};var We=Te(require("ws"),1);var L=class extends C{constructor(t){super(t);this._instantiated=!1;this._listeners=[];this._reconnectingIntervalId=null;this.send=t=>{this._ws.send(JSON.stringify([t]))};this.resetConnection=()=>{this._ws&&(this._listeners.forEach(t=>{t?.destroy?.()}),this._ws.removeAllListeners(),this._ws.readyState===1&&(this._ws.terminate(),this._ws.close()),this._ws=null,this._listeners=[])};this._sdkType="SERVER",this.connect()}async connect(){this._url&&(this.resetConnection(),this._ws=new We.default(this._url,{perMessageDeflate:!1}),this._ws.on("error",()=>{}),this._ws.on("close",()=>{this.handleClose()}),this._ws.on("open",()=>{this._reconnectingIntervalId&&clearInterval(this._reconnectingIntervalId),this._connectionSessionUUID&&this.isWebsocketReadyState()?this.send({taskType:"authentication",apiKey:this._apiKey,connectionSessionUUID:this._connectionSessionUUID}):this.isWebsocketReadyState()&&this.send({apiKey:this._apiKey,taskType:"authentication"}),this.addListener({taskUUID:"authentication",lis:t=>{if(t?.error){this._connectionError=t;return}this._connectionSessionUUID=t?.authentication?.[0]?.connectionSessionUUID,this._connectionError=void 0}})}),this._ws.on("message",(t,n)=>{let s=n?t:t?.toString();if(!s)return;let a=JSON.parse(s);this._listeners.forEach(r=>{r.listener(a)})}))}handleClose(){this.isInvalidAPIKey()||(this._reconnectingIntervalId&&clearInterval(this._reconnectingIntervalId),this._shouldReconnect&&setTimeout(()=>this.connect(),1e3))}heartBeat(){clearTimeout(this._pingTimeout),this._pingTimeout=setTimeout(()=>{this.isWebsocketReadyState()&&this.send({ping:!0})},5e3)}};var re;typeof window>"u"?re=L:re=P;0&&(module.exports={EControlMode,EModelArchitecture,EModelConditioning,EModelFormat,EModelType,EOpenPosePreProcessor,EPhotoMakerEnum,EPreProcessor,EPreProcessorGroup,ETaskType,Environment,Runware,RunwareClient,RunwareServer,SdkType});
|
|
1
|
+
"use strict";var et=Object.create;var V=Object.defineProperty;var tt=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var nt=Object.getPrototypeOf,rt=Object.prototype.hasOwnProperty;var ot=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),at=(l,e)=>{for(var t in e)V(l,t,{get:e[t],enumerable:!0})},be=(l,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of st(e))!rt.call(l,n)&&n!==t&&V(l,n,{get:()=>e[n],enumerable:!(s=tt(e,n))||s.enumerable});return l};var fe=(l,e,t)=>(t=l!=null?et(nt(l)):{},be(e||!l||!l.__esModule?V(t,"default",{value:l,enumerable:!0}):t,l)),it=l=>be(V({},"__esModule",{value:!0}),l);var Ve=ot((xs,We)=>{"use strict";var Ke=l=>l&&l.CLOSING===2,ct=()=>typeof WebSocket<"u"&&Ke(WebSocket),dt=()=>({constructor:ct()?WebSocket:null,maxReconnectionDelay:1e4,minReconnectionDelay:1500,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,debug:!1}),pt=(l,e,t)=>{Object.defineProperty(e,t,{get:()=>l[t],set:s=>{l[t]=s},enumerable:!0,configurable:!0})},Fe=l=>l.minReconnectionDelay+Math.random()*l.minReconnectionDelay,gt=(l,e)=>{let t=e*l.reconnectionDelayGrowFactor;return t>l.maxReconnectionDelay?l.maxReconnectionDelay:t},mt=["onopen","onclose","onmessage","onerror"],It=(l,e,t)=>{Object.keys(t).forEach(s=>{t[s].forEach(([n,o])=>{l.addEventListener(s,n,o)})}),e&&mt.forEach(s=>{l[s]=e[s]})},qe=function(l,e,t={}){let s,n,o=0,r=0,a=!0,i={};if(!(this instanceof qe))throw new TypeError("Failed to construct 'ReconnectingWebSocket': Please use the 'new' operator");let d=dt();if(Object.keys(d).filter(c=>t.hasOwnProperty(c)).forEach(c=>d[c]=t[c]),!Ke(d.constructor))throw new TypeError("Invalid WebSocket constructor. Set `options.constructor`");let m=d.debug?(...c)=>console.log("RWS:",...c):()=>{},g=(c,y)=>setTimeout(()=>{let U=new Error(y);U.code=c,Array.isArray(i.error)&&i.error.forEach(([b])=>b(U)),s.onerror&&s.onerror(U)},0),p=()=>{if(m("close"),r++,m("retries count:",r),r>d.maxRetries){g("EHOSTDOWN","Too many failed connection attempts");return}o?o=gt(d,o):o=Fe(d),m("reconnectDelay:",o),a&&setTimeout(u,o)},u=()=>{m("connect");let c=s;s=new d.constructor(l,e),n=setTimeout(()=>{m("timeout"),s.close(),g("ETIMEDOUT","Connection timeout")},d.connectionTimeout),m("bypass properties");for(let y in s)["addEventListener","removeEventListener","close","send"].indexOf(y)<0&&pt(s,this,y);s.addEventListener("open",()=>{clearTimeout(n),m("open"),o=Fe(d),m("reconnectDelay:",o),r=0}),s.addEventListener("close",p),It(s,c,i)};m("init"),u(),this.close=(c=1e3,y="",{keepClosed:U=!1,fastClose:b=!0,delay:f=0}={})=>{if(f&&(o=f),a=!U,s.close(c,y),b){let h={code:c,reason:y,wasClean:!0};p(),Array.isArray(i.close)&&i.close.forEach(([k,I])=>{k(h),s.removeEventListener("close",k,I)}),s.onclose&&(s.onclose(h),s.onclose=null)}},this.send=c=>{s.send(c)},this.addEventListener=(c,y,U)=>{Array.isArray(i[c])?i[c].some(([b])=>b===y)||i[c].push([y,U]):i[c]=[[y,U]],s.addEventListener(c,y,U)},this.removeEventListener=(c,y,U)=>{Array.isArray(i[c])&&(i[c]=i[c].filter(([b])=>b!==y)),s.removeEventListener(c,y,U)}};We.exports=qe});var yt={};at(yt,{EControlMode:()=>se,EModelArchitecture:()=>De,EModelConditioning:()=>xe,EModelFormat:()=>ke,EModelType:()=>_e,EOpenPosePreProcessor:()=>Re,EPhotoMakerEnum:()=>ve,EPreProcessor:()=>re,EPreProcessorGroup:()=>ne,ETaskType:()=>G,Environment:()=>te,Runware:()=>ae,RunwareClient:()=>L,RunwareServer:()=>F,SDK_VERSION:()=>P,SdkType:()=>B});module.exports=it(yt);var te=(s=>(s.PRODUCTION="PRODUCTION",s.DEVELOPMENT="DEVELOPMENT",s.TEST="TEST",s))(te||{}),B=(t=>(t.CLIENT="CLIENT",t.SERVER="SERVER",t))(B||{}),G=(h=>(h.IMAGE_INFERENCE="imageInference",h.IMAGE_UPLOAD="imageUpload",h.UPSCALE="upscale",h.REMOVE_BACKGROUND="removeBackground",h.VIDEO_INFERENCE="videoInference",h.CAPTION="caption",h.AUDIO_INFERENCE="audioInference",h.THREE_D_INFERENCE="3dInference",h.GET_RESPONSE="getResponse",h.PHOTO_MAKER="photoMaker",h.IMAGE_CONTROL_NET_PRE_PROCESS="imageControlNetPreProcess",h.IMAGE_MASKING="imageMasking",h.PROMPT_ENHANCE="promptEnhance",h.AUTHENTICATION="authentication",h.MODEL_UPLOAD="modelUpload",h.MODEL_SEARCH="modelSearch",h.MEDIA_STORAGE="mediaStorage",h.VECTORIZE="vectorize",h.TEXT_INFERENCE="textInference",h))(G||{}),se=(s=>(s.BALANCED="balanced",s.PROMPT="prompt",s.CONTROL_NET="controlnet",s))(se||{}),ne=(p=>(p.canny="canny",p.depth="depth",p.mlsd="mlsd",p.normalbae="normalbae",p.openpose="openpose",p.tile="tile",p.seg="seg",p.lineart="lineart",p.lineart_anime="lineart_anime",p.shuffle="shuffle",p.scribble="scribble",p.softedge="softedge",p))(ne||{}),re=(T=>(T.canny="canny",T.depth_leres="depth_leres",T.depth_midas="depth_midas",T.depth_zoe="depth_zoe",T.inpaint_global_harmonious="inpaint_global_harmonious",T.lineart_anime="lineart_anime",T.lineart_coarse="lineart_coarse",T.lineart_realistic="lineart_realistic",T.lineart_standard="lineart_standard",T.mlsd="mlsd",T.normal_bae="normal_bae",T.scribble_hed="scribble_hed",T.scribble_pidinet="scribble_pidinet",T.seg_ofade20k="seg_ofade20k",T.seg_ofcoco="seg_ofcoco",T.seg_ufade20k="seg_ufade20k",T.shuffle="shuffle",T.softedge_hed="softedge_hed",T.softedge_hedsafe="softedge_hedsafe",T.softedge_pidinet="softedge_pidinet",T.softedge_pidisafe="softedge_pidisafe",T.tile_gaussian="tile_gaussian",T.openpose="openpose",T.openpose_face="openpose_face",T.openpose_faceonly="openpose_faceonly",T.openpose_full="openpose_full",T.openpose_hand="openpose_hand",T))(re||{}),Re=(o=>(o.openpose="openpose",o.openpose_face="openpose_face",o.openpose_faceonly="openpose_faceonly",o.openpose_full="openpose_full",o.openpose_hand="openpose_hand",o))(Re||{}),ke=(t=>(t.safetensors="safetensors",t.pickletensor="pickletensor",t))(ke||{}),De=(u=>(u.flux1d="flux1d",u.flux1s="flux1s",u.pony="pony",u.sdhyper="sdhyper",u.sd1x="sd1x",u.sd1xlcm="sd1xlcm",u.sd3="sd3",u.sdxl="sdxl",u.sdxllcm="sdxllcm",u.sdxldistilled="sdxldistilled",u.sdxlhyper="sdxlhyper",u.sdxllightning="sdxllightning",u.sdxlturbo="sdxlturbo",u))(De||{}),_e=(s=>(s.base="base",s.inpainting="inpainting",s.pix2pix="pix2pix",s))(_e||{}),xe=(I=>(I.canny="canny",I.depth="depth",I.qrcode="qrcode",I.hed="hed",I.scrible="scrible",I.openpose="openpose",I.seg="segmentation",I.openmlsd="openmlsd",I.softedge="softedge",I.normal="normal bae",I.shuffle="shuffle",I.pix2pix="pix2pix",I.inpaint="inpaint",I.lineart="line art",I.sketch="sketch",I.inpaintdepth="inpaint depth",I.tile="tile",I.outfit="outfit",I.blur="blur",I.gray="gray",I.lowquality="low quality",I))(xe||{}),ve=(g=>(g.NoStyle="No style",g.Cinematic="Cinematic",g.DisneyCharacter="Disney Character",g.DigitalArt="Digital Art",g.Photographic="Photographic",g.FantasyArt="Fantasy art",g.Neonpunk="Neonpunk",g.Enhance="Enhance",g.ComicBook="Comic book",g.Lowpoly="Lowpoly",g.LineArt="Line art",g))(ve||{});var j=require("uuid");var Se={name:"@runware/sdk-js",version:"1.2.7",description:"The SDK is used to run image inference with the Runware API, powered by the RunWare inference platform. It can be used to generate imaged with text-to-image and image-to-image. It also allows the use of an existing gallery of models or selecting any model or LoRA from the CivitAI gallery. The API also supports upscaling, background removal, inpainting and outpainting, and a series of other ControlNet models.",main:"dist/index.js",module:"dist/index.js",types:"dist/index.d.ts",type:"module",exports:{".":{types:"./dist/index.d.ts",require:"./dist/index.cjs",import:"./dist/index.js"}},files:["dist/"],scripts:{build:"tsup",lint:"tsc",pkg:"npx pkgfiles","dev:test":"vitest --reporter verbose",test:"vitest run --reporter verbose","test:single":"vitest run --reporter verbose tests/Runware/upscale-gan.test.ts",debug:"tsx tests/script.ts","beta:tag":"npm publish --tag beta"},keywords:["runware","sdk","ai"],author:"",license:"ISC",devDependencies:{"@types/uuid":"^9.0.6","@types/ws":"^8.5.8",dotenv:"^16.4.5","mock-socket":"^9.3.1",tsup:"^8.3.5",typescript:"^5.2.2",vitest:"^0.34.6"},dependencies:{uuid:"^9.0.1",ws:"^8.18.0"},optionalDependencies:{bufferutil:"^4.0.8"},directories:{test:"tests"}};var P=Se.version;function Q(l){let e=l.includes("?")?"&":"?";return`${l}${e}sdk=js&version=${P}`}var z=6e4,H=1e3,we=100,oe={PRODUCTION:"wss://ws-api.runware.ai/v1",TEST:"ws://localhost:8080"},Ae=(l,e)=>{if(l==null)return;let t=l.indexOf(e);t!==-1&&l.splice(t,1)},M=(l,{debugKey:e="debugKey",timeoutDuration:t=z,shouldThrowError:s=!0,pollingInterval:n=we})=>(t=t<H?H:t,new Promise((o,r)=>{let a=setTimeout(()=>{i&&(clearInterval(i),s&&r(`Response could not be received from server for ${e}`)),clearTimeout(a)},t),i=setInterval(async()=>{l({resolve:o,reject:r,intervalId:i})&&(clearInterval(i),clearTimeout(a))},n)})),Ee=l=>new Promise(e=>{let t=new FileReader;t.readAsDataURL(l),t.onload=function(){e(t.result)}}),D=()=>(0,j.v4)(),Me=l=>(0,j.validate)(l);var Ce=({key:l,data:e,useZero:t=!0,shouldReturnString:s=!1})=>l.split(/\.|\[/).map(r=>r.replace(/\]$/,"")).reduce((r,a)=>{let i=t?0:void 0,d=r?.[a];if(!d)return i;if(Array.isArray(d)&&/^\d+$/.test(a)){let m=parseInt(a,10);return m>=0&&m<d.length?r[a]=d[m]:r[a]??i}else return r[a]??i},e||{})??{},Oe=(l,e=1e3)=>new Promise(t=>setTimeout(t,l*e));var Ne=(l,e)=>l.filter(t=>t.key!==e.key);var R=({key:l,value:e})=>e||e===0||e===!1?{[l]:e}:{},ut=(l,e)=>Math.floor(Math.random()*(e-l+1))+l,Pe=()=>ut(1,Number.MAX_SAFE_INTEGER),Le=(l,{debugKey:e="debugKey",timeoutDuration:t=z,shouldThrowError:s=!0,pollingInterval:n=we})=>(t=t<H?H:t,new Promise((o,r)=>{let a=setTimeout(()=>{i&&(clearInterval(i),s&&r(`Response could not be received from server for ${e}`)),clearTimeout(a)},t),i=setInterval(async()=>{try{await l({resolve:o,reject:r,intervalId:i})&&(clearInterval(i),clearTimeout(a))}catch(d){clearInterval(i),clearTimeout(a),r(d)}},n)}));var x=async(l,e={})=>{let{delayInSeconds:t=1,callback:s}=e,n=e.maxRetries??1;for(;n;)try{return await l()}catch(o){if(s?.(),o?.error)throw o;if(n--,n>0)return await Oe(t),await x(l,{...e,maxRetries:n});throw o}};var C=class{constructor({apiKey:e,url:t=oe.PRODUCTION,shouldReconnect:s=!0,globalMaxRetries:n=2,timeoutDuration:o=z}){this._listeners=[];this._globalMessages={};this._globalImages=[];this._globalErrors=[];this.ensureConnectionUUID=null;this.isWebsocketReadyState=()=>this._ws?.readyState===1;this.isInvalidAPIKey=()=>this._connectionError?.error?.code==="invalidApiKey";this.send=e=>{this._ws.send(JSON.stringify([e]))};this.uploadImage=async e=>{try{return await x(async()=>{let t=D();if(typeof e=="string"&&Me(e))return{imageURL:e,imageUUID:e,taskUUID:t,taskType:"imageUpload"};let s=typeof e=="string"?e:await Ee(e);return{imageURL:s,imageUUID:s,taskUUID:t,taskType:"imageUpload"}})}catch(t){throw t}};this.controlNetPreProcess=async({inputImage:e,preProcessorType:t,height:s,width:n,outputType:o,outputFormat:r,highThresholdCanny:a,lowThresholdCanny:i,includeHandsAndFaceOpenPose:d,includeCost:m,outputQuality:g,customTaskUUID:p,taskUUID:u,retry:c,includeGenerationTime:y,includePayload:U})=>{let b=c||this._globalMaxRetries,f,h=Date.now();try{return await x(async()=>{await this.ensureConnection();let k=await this.uploadImage(e);if(!k?.imageUUID)return null;let I=u||p||D(),w={inputImage:k.imageUUID,taskType:"imageControlNetPreProcess",taskUUID:I,preProcessorType:t,...R({key:"height",value:s}),...R({key:"width",value:n}),...R({key:"outputType",value:o}),...R({key:"outputFormat",value:r}),...R({key:"includeCost",value:m}),...R({key:"highThresholdCanny",value:a}),...R({key:"lowThresholdCanny",value:i}),...R({key:"includeHandsAndFaceOpenPose",value:d}),...g?{outputQuality:g}:{}};this.send({...w}),f=this.globalListener({taskUUID:I});let A=await M(({resolve:S,reject:X})=>{let v=this.getSingleMessage({taskUUID:I});if(v){if(v?.error)return X(v),!0;if(v)return S(v),!0}},{debugKey:"unprocessed-image",timeoutDuration:this._timeoutDuration});return f.destroy(),this.insertAdditionalResponse({response:A,payload:U?w:void 0,startTime:y?h:void 0}),A},{maxRetries:b,callback:()=>{f?.destroy()}})}catch(k){throw k}};this.controlNetPreprocess=async e=>this.controlNetPreProcess(e);this.requestImageToText=async({inputImage:e,inputs:t,includeCost:s,customTaskUUID:n,taskUUID:o,retry:r,includePayload:a,includeGenerationTime:i,deliveryMethod:d,skipResponse:m,model:g})=>{try{let p;e&&(p=await this.uploadImage(e));let c={taskUUID:o||n||D(),taskType:"caption",model:g,inputImage:p?.imageUUID,inputs:t,...R({key:"includeCost",value:s}),retry:r,includePayload:a,includeGenerationTime:i},y=await this.baseSingleRequest({payload:{...c,taskType:"caption"},debugKey:"caption"});if(m)return y;if(d==="async"){let U=y?.taskUUID;return(await this.pollForAsyncResults({taskUUID:U}))[0]}return y}catch(p){throw p}};this.caption=async e=>this.requestImageToText(e);this.removeImageBackground=async e=>{let{skipResponse:t,...s}=e;try{let n=s.deliveryMethod,o=await this.baseSingleRequest({payload:{...s,taskType:"removeBackground"},debugKey:"remove-background"});if(t)return o;if(n==="async"){let r=o?.taskUUID;return(await this.pollForAsyncResults({taskUUID:r}))[0]}return o}catch(n){throw n}};this.removeBackground=async e=>this.removeImageBackground(e);this.vectorize=async e=>this.baseSingleRequest({payload:{...e,taskType:"vectorize"},debugKey:"vectorize"});this.videoInference=async e=>{let{skipResponse:t,inputAudios:s,referenceVideos:n,...o}=e;try{let r=await this.baseSingleRequest({payload:{...o,...s?.length&&{inputAudios:s},...n?.length&&{referenceVideos:n},deliveryMethod:"async",taskType:"videoInference"},debugKey:"video-inference"});if(t)return r;let a=r?.taskUUID;return this.pollForAsyncResults({taskUUID:a,numberResults:e?.numberResults})}catch(r){throw r}};this.audioInference=async e=>{let{skipResponse:t,deliveryMethod:s="sync",...n}=e;try{let r=await(s==="sync"?this.baseSyncRequest:this.baseSingleRequest)({payload:{...n,numberResults:n.numberResults||1,taskType:"audioInference",deliveryMethod:s},groupKey:"REQUEST_AUDIO",debugKey:"audio-inference",skipResponse:t});if(t)return r;let a=r?.taskUUID;return s==="async"?this.pollForAsyncResults({taskUUID:a,numberResults:e?.numberResults}):r}catch(o){throw o}};this.threeDInference=async e=>{let{skipResponse:t,deliveryMethod:s="sync",...n}=e;try{let r=await(s==="sync"?this.baseSyncRequest:this.baseSingleRequest)({payload:{...n,numberResults:n.numberResults||1,taskType:"3dInference",deliveryMethod:s},groupKey:"REQUEST_IMAGES",debugKey:"three-d-inference",skipResponse:t});if(t)return r;let a=r?.taskUUID;return s==="async"?this.pollForAsyncResults({taskUUID:a,numberResults:e?.numberResults}):r}catch(o){throw o}};this.textInference=async e=>{let{skipResponse:t,deliveryMethod:s="sync",...n}=e;try{let r=await(s==="sync"?this.baseSyncRequest:this.baseSingleRequest)({payload:{...n,numberResults:n.numberResults||1,taskType:"textInference",deliveryMethod:s},groupKey:"REQUEST_TEXT",debugKey:"text-inference",skipResponse:t});if(t)return r;let a=r?.taskUUID;return s==="async"?this.pollForAsyncResults({taskUUID:a,numberResults:e?.numberResults}):r}catch(o){throw o}};this.getResponse=async e=>{let t=e.taskUUID;return this.baseSingleRequest({payload:{...e,customTaskUUID:t,taskType:"getResponse"},isMultiple:!0,debugKey:"async-results"})};this.upscaleGan=async e=>{let{inputImage:t,skipResponse:s,deliveryMethod:n="sync",...o}=e;try{let r;t&&(r=await this.uploadImage(t));let a=await this.baseSingleRequest({payload:{...o,...r?.imageUUID?{inputImage:r.imageUUID}:{},taskType:"upscale",deliveryMethod:n},debugKey:"upscale"});if(s)return a;if(n==="async"){let i=a?.taskUUID;return(await this.pollForAsyncResults({taskUUID:i}))[0]}return a}catch(r){throw r}};this.upscale=async e=>this.upscaleGan(e);this.enhancePrompt=async({prompt:e,promptMaxLength:t=380,promptVersions:s=1,includeCost:n,customTaskUUID:o,taskUUID:r,retry:a,includeGenerationTime:i,includePayload:d})=>{let m=a||this._globalMaxRetries,g,p=Date.now();try{return await x(async()=>{await this.ensureConnection();let u=r||o||D(),c={prompt:e,taskUUID:u,promptMaxLength:t,promptVersions:s,...R({key:"includeCost",value:n}),taskType:"promptEnhance"};this.send(c),g=this.globalListener({taskUUID:u});let y=await M(({resolve:U,reject:b})=>{let f=this._globalMessages[u];if(f?.error)return b(f),!0;if(f?.length>=s)return delete this._globalMessages[u],U(f),!0},{debugKey:"enhance-prompt",timeoutDuration:this._timeoutDuration});return g.destroy(),this.insertAdditionalResponse({response:y,payload:d?c:void 0,startTime:i?p:void 0}),y},{maxRetries:m,callback:()=>{g?.destroy()}})}catch(u){throw u}};this.promptEnhance=async e=>this.enhancePrompt(e);this.modelUpload=async e=>{let{onUploadStream:t,retry:s,customTaskUUID:n,taskUUID:o,...r}=e,a=s||this._globalMaxRetries,i;try{return await x(async()=>{await this.ensureConnection();let d=o||n||D();this.send({...r,taskUUID:d,taskType:"modelUpload"});let m,g;return i=this.listenToUpload({taskUUID:d,onUploadStream:(u,c)=>{t?.(u,c),u?.status==="ready"?m=u:c&&(g=c)}}),await M(({resolve:u,reject:c})=>{if(m)return u(m),!0;if(g)return c(g),!1},{shouldThrowError:!1,timeoutDuration:60*60*1e3})},{maxRetries:a,callback:()=>{i?.destroy()}})}catch(d){throw d}};this.photoMaker=async(e,t)=>{let{onPartialImages:s,retry:n,customTaskUUID:o,taskUUID:r,numberResults:a,includeGenerationTime:i,includePayload:d,...m}=e,g=n||this._globalMaxRetries,p,u=[],c=0,y=Date.now();try{return await x(async()=>{await this.ensureConnection(),c++;let U=this._globalImages.filter(I=>u.includes(I.taskUUID)),b=r||o||D();u.push(b);let f=a-U.length,h={...m,...m.seed?{seed:m.seed}:{seed:Pe()},...t??{},taskUUID:b,taskType:"photoMaker",numberResults:a};this.send({...h,numberResults:f}),p=this.listenToResponse({onPartialImages:s,taskUUID:b,groupKey:"REQUEST_IMAGES",requestPayload:d?h:void 0,startTime:i?y:void 0});let k=await this.getResponseWithSimilarTaskUUID({taskUUID:u,numberResults:a,lis:p});return p.destroy(),k},{maxRetries:g,callback:()=>{p?.destroy()}})}catch(U){if(U.taskUUID)throw U;if(c>=g)return this.handleIncompleteImages({taskUUIDs:u,error:U})}};this.modelSearch=async e=>this.baseSingleRequest({payload:{...e,taskType:"modelSearch"},debugKey:"model-search"});this.imageMasking=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageMasking"},debugKey:"image-masking"});this.imageUpload=async e=>this.baseSingleRequest({payload:{...e,taskType:"imageUpload"},debugKey:"image-upload"});this.mediaStorage=async e=>this.baseSingleRequest({payload:{...e,operation:e.operation||"upload",taskType:"mediaStorage"},debugKey:"media-storage"});this.baseSingleRequest=async({payload:e,debugKey:t,isMultiple:s})=>{let{retry:n,customTaskUUID:o,taskUUID:r,includePayload:a,includeGenerationTime:i,...d}=e,m=n||this._globalMaxRetries,g,p=Date.now();try{return await x(async()=>{await this.ensureConnection();let u=r||o||D(),c={...d,taskUUID:u};this.send(c),g=this.globalListener({taskUUID:u});let y=await M(({resolve:U,reject:b})=>{let f=s?this.getMultipleMessages({taskUUID:u}):this.getSingleMessage({taskUUID:u});if(f){if(f?.error)return b(f),!0;if(f)return delete this._globalMessages[u],U(f),!0}},{debugKey:t,timeoutDuration:this._timeoutDuration});return this.insertAdditionalResponse({response:y,payload:a?c:void 0,startTime:i?p:void 0}),g.destroy(),y},{maxRetries:m,callback:()=>{g?.destroy()}})}catch(u){throw u}};this.baseSyncRequest=async({payload:e,groupKey:t,skipResponse:s=!1})=>{let{retry:n,customTaskUUID:o,includePayload:r,numberResults:a=1,onPartialResponse:i,includeGenerationTime:d,...m}=e,g=n||this._globalMaxRetries,p,u=[],c=0,y=Date.now();try{return await x(async()=>{await this.ensureConnection(),c++;let U=this._globalImages.filter(I=>u.includes(I.taskUUID)),b=o||D();u.push(b);let f=a-U.length,h={...m,taskUUID:b,numberResults:f};if(this.send(h),s)return new Promise((I,w)=>{let A=this.addListener({taskUUID:b,groupKey:t,lis:S=>{A.destroy(),S.error?w(S.error):I(S[b])}})});p=this.listenToResponse({onPartialImages:i,taskUUID:b,groupKey:t,requestPayload:r?h:void 0,startTime:d?y:void 0});let k=await this.getResponseWithSimilarTaskUUID({taskUUID:u,numberResults:a,lis:p});return p.destroy(),k},{maxRetries:g,callback:()=>{p?.destroy()}})}catch(U){throw U}};this.getSingleMessage=({taskUUID:e})=>{let t=this._globalMessages[e]?.[0],s=this._globalMessages[e];return!t&&!s?null:s?.error?s:t};this.getMultipleMessages=({taskUUID:e})=>{let t=this._globalMessages[e]?.[0],s=this._globalMessages[e];return!t&&!s?null:s};this.insertAdditionalResponse=({response:e,payload:t,startTime:s})=>{if(!t&&!s)return;let n=e;n.additionalResponse={},t&&(e.additionalResponse.payload=t),s&&(e.additionalResponse.generationTime=Date.now()-s)};this.disconnect=async()=>{this._shouldReconnect=!1,this._ws?.terminate?.(),this._ws?.close?.()};this.connected=()=>this.isWebsocketReadyState()&&!!this._connectionSessionUUID;this._apiKey=e,this._url=t,this._sdkType="CLIENT",this._shouldReconnect=s,this._globalMaxRetries=n,this._timeoutDuration=o}getUniqueUUID(e){return e.mediaUUID||e.audioUUID||e.imageUUID||e.videoUUID||e.outputs?.files?.map(t=>t.uuid).join("-")||e.text}async pollForAsyncResults({taskUUID:e,numberResults:t=1}){let s=new Map;return await Le(async({resolve:n,reject:o})=>{try{let r=await this.getResponse({taskUUID:e});for(let i of r||[])if(i.status==="success"){let d=this.getUniqueUUID(i);d&&s.set(d,i)}return s.size===t?(n(Array.from(s.values())),!0):!1}catch(r){return o(r),!0}},{debugKey:"async-response",pollingInterval:2*1e3,timeoutDuration:10*60*1e3}),Array.from(s.values())}static async initialize(e){try{let t=new this(e);return await t.ensureConnection(),t}catch(t){throw t}}addListener({lis:e,groupKey:t,taskUUID:s}){let n=a=>{let i=Array.isArray(a?.data)?a.data:[a.data],d=a?.[0]?.errors?a?.[0]?.errors:Array.isArray(a?.errors)?a.errors:[a.errors],m=i.filter(p=>(p?.taskUUID||p?.taskType)===s);if(d.filter(p=>(p?.taskUUID||p?.taskType)===s).length){e({error:{...d[0]??{}}});return}if(m.length){e({[s]:i});return}},o={key:s||D(),listener:n,groupKey:t};return this._listeners.push(o),{destroy:()=>{this._listeners=Ne(this._listeners,o)}}}connect(){this._ws.onopen=e=>{this._connectionSessionUUID?this.send({taskType:"authentication",apiKey:this._apiKey,connectionSessionUUID:this._connectionSessionUUID}):this.send({apiKey:this._apiKey,taskType:"authentication"}),this.addListener({taskUUID:"authentication",lis:t=>{if(t?.error){this._connectionError=t;return}this._connectionSessionUUID=t?.authentication?.[0]?.connectionSessionUUID,this._connectionError=void 0}})},this._ws.onmessage=e=>{let t=JSON.parse(e.data);for(let s of this._listeners)if(s?.listener?.(t))return},this._ws.onclose=e=>{this.isInvalidAPIKey()}}destroy(e){Ae(this._listeners,e)}listenToResponse({onPartialImages:e,taskUUID:t,groupKey:s,requestPayload:n,startTime:o}){return this.addListener({taskUUID:t,lis:r=>{let a=r?.[t]?.filter(i=>i.taskUUID===t);r.error?(e?.(a,r?.error&&r),this._globalErrors.push(r)):(a=a.map(i=>(this.insertAdditionalResponse({response:i,payload:n||void 0,startTime:o||void 0}),{...i})),e?.(a,r?.error&&r),this._sdkType==="CLIENT"?this._globalImages=[...this._globalImages,...(r?.[t]??[]).map(i=>(this.insertAdditionalResponse({response:i,payload:n||void 0,startTime:o||void 0}),{...i}))]:this._globalImages=[...this._globalImages,...a])},groupKey:s})}listenToUpload({onUploadStream:e,taskUUID:t}){return this.addListener({taskUUID:t,lis:s=>{let n=s?.error,o=s?.[t]?.[0],r=o?.taskUUID===t?o:null;(r||n)&&e?.(r||void 0,n)}})}globalListener({taskUUID:e}){return this.addListener({taskUUID:e,lis:t=>{if(t.error){this._globalMessages[e]=t;return}let s=Ce({key:e,data:t,useZero:!1});Array.isArray(s)?s.forEach(n=>{this._globalMessages[n.taskUUID]=[...this._globalMessages[n.taskUUID]??[],n]}):this._globalMessages[s.taskUUID]=s}})}async requestImages({outputType:e,outputFormat:t,uploadEndpoint:s,checkNSFW:n,positivePrompt:o,negativePrompt:r,seedImage:a,maskImage:i,strength:d,height:m,width:g,model:p,steps:u,scheduler:c,seed:y,CFGScale:U,clipSkip:b,usePromptWeighting:f,promptWeighting:h,numberResults:k=1,onPartialImages:I,includeCost:w,customTaskUUID:A,taskUUID:S,retry:X,refiner:v,maskMargin:T,outputQuality:ie,controlNet:$,lora:le,embeddings:ue,ipAdapters:ce,providerSettings:de,outpaint:pe,acceleratorOptions:ge,advancedFeatures:me,referenceImages:Ie,includeGenerationTime:He,includePayload:je,...ye},Qe){let O,he,K=[],Ue=0,Te=X||this._globalMaxRetries;try{await this.ensureConnection();let E=null,J=null,Z=[];if(a){let _=await this.uploadImage(a);if(!_)return[];E=_.imageUUID}if(i){let _=await this.uploadImage(i);if(!_)return[];J=_.imageUUID}if($?.length)for(let _=0;_<$.length;_++){let N=$[_],{endStep:Y,startStep:q,weight:ee,guideImage:W,controlMode:Xe,startStepPercentage:$e,endStepPercentage:Je,model:Ze}=N,Ye=W?await this.uploadImage(W):null;Z.push({guideImage:Ye?.imageUUID,model:Ze,endStep:Y,startStep:q,weight:ee,...R({key:"startStepPercentage",value:$e}),...R({key:"endStepPercentage",value:Je}),controlMode:Xe||"controlnet"})}he={taskType:"imageInference",model:p,positivePrompt:o,...r?{negativePrompt:r}:{},...m?{height:m}:{},...g?{width:g}:{},numberResults:k,...e?{outputType:e}:{},...t?{outputFormat:t}:{},...s?{uploadEndpoint:s}:{},...R({key:"checkNSFW",value:n}),...R({key:"strength",value:d}),...R({key:"CFGScale",value:U}),...R({key:"clipSkip",value:b}),...R({key:"maskMargin",value:T}),...R({key:"usePromptWeighting",value:f}),...R({key:"steps",value:u}),...h?{promptWeighting:h}:{},...y?{seed:y}:{},...c?{scheduler:c}:{},...v?{refiner:v}:{},...pe?{outpaint:pe}:{},...R({key:"includeCost",value:w}),...E?{seedImage:E}:{},...J?{maskImage:J}:{},...ie?{outputQuality:ie}:{},...Z.length?{controlNet:Z}:{},...le?.length?{lora:le}:{},...ue?.length?{embeddings:ue}:{},...ce?.length?{ipAdapters:ce}:{},...de?{providerSettings:de}:{},...ge?{acceleratorOptions:ge}:{},...me?{advancedFeatures:me}:{},...Ie?.length?{referenceImages:Ie}:{},...ye,...Qe??{}};let ze=Date.now();return await x(async()=>{Ue++,O?.destroy();let _=this._globalImages.filter(W=>K.includes(W.taskUUID)),N=S||A||D();K.push(N);let Y=k-_.length,q={...he,taskUUID:N,numberResults:Y};this.send(q),O=this.listenToResponse({onPartialImages:I,taskUUID:N,groupKey:"REQUEST_IMAGES",requestPayload:je?q:void 0,startTime:He?ze:void 0});let ee=await this.getResponseWithSimilarTaskUUID({taskUUID:K,numberResults:k,lis:O,deliveryMethod:ye.deliveryMethod});return O.destroy(),ee},{maxRetries:Te,callback:()=>{O?.destroy()}})}catch(E){if(Ue>=Te)return this.handleIncompleteImages({taskUUIDs:K,error:E});throw E}}async imageInference(e,t){return this.requestImages(e,t)}async ensureConnection(){if(this.connected()||this._url===oe.TEST)return;let t=2e3,s=200;try{if(this.isInvalidAPIKey())throw this._connectionError;return new Promise((n,o)=>{let r=0,a=30,i=D(),d,m,g=()=>{this.ensureConnectionUUID=null,clearInterval(d),clearInterval(m)};this._sdkType==="SERVER"&&(d=setInterval(async()=>{try{let p=this.connected(),u=!1;(!this.ensureConnectionUUID||i===this.ensureConnectionUUID)&&(this.ensureConnectionUUID||(this.ensureConnectionUUID=i),u=!0);let c=r%10===0&&u;p?(g(),n(!0)):r>=a?(g(),o(new Error("Retry timed out"))):(c&&this.connect(),r++)}catch(p){g(),o(p)}},t)),m=setInterval(async()=>{if(this.connected()){g(),n(!0);return}if(this.isInvalidAPIKey()){g(),o(this._connectionError);return}},s)})}catch{throw this.ensureConnectionUUID=null,this._connectionError=void 0,this._connectionError??"Could not connect to server. Ensure your API key is correct"}}async getResponseWithSimilarTaskUUID({taskUUID:e,numberResults:t,shouldThrowError:s,lis:n,deliveryMethod:o}){return await M(({resolve:r,reject:a,intervalId:i})=>{let d=Array.isArray(e)?e:[e],m=this._globalImages.filter(u=>d.includes(u.taskUUID)),g=o==="async"&&m.length>0,p=this._globalErrors.filter(u=>d.includes(u.error.taskUUID));if(p.length>0){let u=p[0];return this._globalErrors=this._globalErrors.filter(c=>!d.includes(c.error.taskUUID)),clearInterval(i),a?.(u),!0}else if(m.length>=t||g)return clearInterval(i),this._globalImages=this._globalImages.filter(u=>!d.includes(u.taskUUID)),r([...m].slice(0,t)),!0},{debugKey:"getting images",shouldThrowError:s,timeoutDuration:this._timeoutDuration})}handleIncompleteImages({taskUUIDs:e,error:t}){let s=this._globalImages.filter(n=>e.includes(n.taskUUID));if(s.length>1)return this._globalImages=this._globalImages.filter(n=>!e.includes(n.taskUUID)),s;throw t}};var Be=fe(Ve(),1);var L=class extends C{constructor(e){let{shouldReconnect:t,...s}=e;super(s);let n=Q(this._url||"");this._ws=new Be.default(n),this.connect()}};var Ge=fe(require("ws"),1);var F=class extends C{constructor(t){super(t);this._instantiated=!1;this._listeners=[];this._reconnectingIntervalId=null;this.send=t=>{this._ws.send(JSON.stringify([t]))};this.resetConnection=()=>{this._ws&&(this._listeners.forEach(t=>{t?.destroy?.()}),this._ws.removeAllListeners(),this._ws.readyState===1&&(this._ws.terminate(),this._ws.close()),this._ws=null,this._listeners=[])};this._sdkType="SERVER",this.connect()}async connect(){if(!this._url)return;this.resetConnection();let t=Q(this._url);this._ws=new Ge.default(t,{perMessageDeflate:!1,headers:{"X-SDK-Name":"js","X-SDK-Version":P}}),this._ws.on("error",()=>{}),this._ws.on("close",()=>{this.handleClose()}),this._ws.on("open",()=>{this._reconnectingIntervalId&&clearInterval(this._reconnectingIntervalId),this._connectionSessionUUID&&this.isWebsocketReadyState()?this.send({taskType:"authentication",apiKey:this._apiKey,connectionSessionUUID:this._connectionSessionUUID}):this.isWebsocketReadyState()&&this.send({apiKey:this._apiKey,taskType:"authentication"}),this.addListener({taskUUID:"authentication",lis:s=>{if(s?.error){this._connectionError=s;return}this._connectionSessionUUID=s?.authentication?.[0]?.connectionSessionUUID,this._connectionError=void 0}})}),this._ws.on("message",(s,n)=>{let o=n?s:s?.toString();if(!o)return;let r=JSON.parse(o);this._listeners.forEach(a=>{a.listener(r)})})}handleClose(){this.isInvalidAPIKey()||(this._reconnectingIntervalId&&clearInterval(this._reconnectingIntervalId),this._shouldReconnect&&setTimeout(()=>this.connect(),1e3))}heartBeat(){clearTimeout(this._pingTimeout),this._pingTimeout=setTimeout(()=>{this.isWebsocketReadyState()&&this.send({ping:!0})},5e3)}};var ae;typeof window>"u"?ae=F:ae=L;0&&(module.exports={EControlMode,EModelArchitecture,EModelConditioning,EModelFormat,EModelType,EOpenPosePreProcessor,EPhotoMakerEnum,EPreProcessor,EPreProcessorGroup,ETaskType,Environment,Runware,RunwareClient,RunwareServer,SDK_VERSION,SdkType});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|