@bty/feed_app-runtime-sdk 0.0.7 → 0.0.8
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/ai/index.js +3 -3
- package/dist/chunk-IOHVFMVA.js +1 -0
- package/dist/react/index.js +1 -1
- package/dist/user/index.js +1 -1
- package/package.json +1 -1
package/dist/ai/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
2
|
-
`)};return
|
|
3
|
-
export{
|
|
1
|
+
import {c as c$1,a,b as b$1}from'../chunk-IOHVFMVA.js';var M={version:"0.0.8"};var f="/v1/feed-app/runtime/ai",w=`${f}/chat/completions`,P=`${f}/messages`,D=`${f}/images/generations`,U=`${f}/audio/speech`,j=`${f}/video/generations`,G="Authorization",q="x-bty-extend",J="x-bty-app",V=M.version;var Z=/\r\n|\r|\n/,ee=(()=>{let e=new TextDecoder;return (t,r)=>e.decode(t,{stream:r})})();async function*L(e){let t=e.getReader(),r="",n="",o=[],a=()=>{if(o.length===0&&!n)return null;let m={event:n||"message",data:o.join(`
|
|
2
|
+
`)};return n="",o=[],m};try{for(;;){let{done:m,value:h}=await t.read();if(m){let i=a();i&&(yield i);return}for(r+=ee(h,!0);;){let i=Z.exec(r);if(!i)break;let p=r.slice(0,i.index);if(r=r.slice(i.index+i[0].length),p===""){let v=a();v&&(yield v);continue}if(p.startsWith(":"))continue;let y=p.indexOf(":"),I=y===-1?p:p.slice(0,y),l=y===-1?"":p.slice(y+1);l.startsWith(" ")&&(l=l.slice(1)),I==="event"?n=l:I==="data"&&o.push(l);}}}finally{t.releaseLock();}}async function*$(e){for await(let t of L(e)){if(t.data==="[DONE]")return;t.data&&(yield JSON.parse(t.data));}}async function*F(e){for await(let t of L(e))t.data&&(yield JSON.parse(t.data));}var te="https://reactus-api.betteryeah.com",Y=e=>{try{let t=e();if(typeof t=="string"&&t.length>0)return t}catch{}},re=()=>Y(()=>typeof __BTY_RUNTIME_API_BASE_URL__=="string"?__BTY_RUNTIME_API_BASE_URL__:void 0),ne=()=>Y(()=>typeof __BTY_RUNTIME_PROJECT_ID__=="string"?__BTY_RUNTIME_PROJECT_ID__:void 0),S={apiBaseUrl:(re()??te).replace(/\/+$/,""),projectId:ne()??""},oe=e=>{S={...S,...e,...e.apiBaseUrl?{apiBaseUrl:e.apiBaseUrl.replace(/\/+$/,"")}:{}};},A=()=>S;var s=class extends Error{status;code;body;constructor(t,r,n,o=null){super(t),this.name="AiError",this.code=r,this.status=n,this.body=o;}},c=class extends s{constructor(t="Auth required",r=null){super(t,"auth_required",401,r),this.name="AuthRequiredError";}},R=class extends s{constructor(t="Rate limit exceeded",r=null){super(t,"rate_limit",429,r),this.name="RateLimitError";}},C=class extends s{constructor(t="Quota exceeded",r=null){super(t,"quota_exceeded",402,r),this.name="QuotaExceededError";}},E=class extends s{constructor(t,r=400,n=null){super(t,"bad_input",r,n),this.name="BadInputError";}},x=class extends s{constructor(t,r=500,n=null){super(t,"server",r,n),this.name="ServerError";}},d=class extends s{constructor(t="Network error",r){super(t,"network",-1,r),this.name="NetworkError";}},g=class extends s{constructor(t="Request aborted"){super(t,"aborted",-1,null),this.name="AbortedError";}},K=e=>typeof e=="object"&&e!==null,se=(e,t)=>{if(typeof e=="string")return e||t;if(!K(e))return t;let r=e.message;if(typeof r=="string"&&r.length>0)return r;let n=e.error;if(typeof n=="string"&&n.length>0)return n;if(K(n)&&typeof n.message=="string"&&n.message.length>0)return n.message;let o=e.detail;return typeof o=="string"&&o.length>0?o:t},b=(e,t)=>{let r=se(t,`HTTP ${e}`);return e===401||e===403?new c(r,t):e===402?new C(r,t):e===429?new R(r,t):e>=400&&e<500?new E(r,e,t):e>=500?new x(r,e,t):new s(r,"unknown",e,t)};var ae=e=>JSON.stringify({"sdk-version":V,...e}),Q=async(e={})=>{let t=await b$1(),r=new Headers;t&&r.set(G,`Bearer ${t}`),r.set(q,ae(e.extend));let{projectId:n}=A();if(n&&r.set(J,n),e.contentType&&r.set("Content-Type",e.contentType),e.accept&&r.set("Accept",e.accept),e.extra)for(let[o,a]of Object.entries(e.extra))r.set(o,a);return r};var ie="feed-app-runtime-sdk:auth-required",k=e=>{a()&&window.dispatchEvent(new CustomEvent(ie,{detail:e}));};var ce=e=>e instanceof DOMException&&e.name==="AbortError",pe=async e=>{let t=e.headers.get("content-type")??"";try{return t.includes("application/json")?await e.json():await e.text()}catch{return null}},de=e=>typeof e=="object"&&e!==null,ue=(e,t)=>{if(!de(e)||typeof e.success!="boolean")return e;if(e.success)return e.data;let r=typeof e.code=="number"?e.code:t;throw b(r,e)},W=async(e,t)=>{let{apiBaseUrl:r}=A(),n=`${r}${e}`,o=await Q(t),a;try{a=await fetch(n,{method:t.method??"POST",headers:o,body:t.body,signal:t.signal});}catch(h){throw ce(h)?new g:new d("Failed to reach AI backend",h)}if(a.ok)return a;let m=await pe(a);throw b(a.status,m)},O=async(e,t={})=>{try{return await W(e,t)}catch(r){if(r instanceof c&&!t.skipAuthRetry&&!t.signal?.aborted){if(!await c$1())throw k({reason:"refresh_failed",error:r}),r;try{return await W(e,{...t,skipAuthRetry:!0})}catch(o){throw o instanceof c&&k({reason:"retry_rejected",error:o}),o}}throw r}},u=async(e,t,r={})=>{let n=await O(e,{...r,method:"POST",contentType:"application/json",body:JSON.stringify(t)});return ue(await n.json(),n.status)};var _=async(e,t,r={})=>{let n=await O(e,{...r,method:"POST",contentType:"application/json",accept:"text/event-stream",body:JSON.stringify(t)});if(!n.body)throw new d("Streaming response has no body");return n.body},X=async(e,t,r={})=>await(await O(e,{...r,method:"POST",contentType:"application/json",body:JSON.stringify(t)})).blob();var T=e=>{let{signal:t,headers:r,...n}=e;return {transport:{signal:t,extra:r},payload:n}},me=(async e=>{let{transport:t,payload:r}=T(e);if(e.stream){let n=await _(w,r,t);return $(n)}return await u(w,r,t)}),le={create:me},fe={async generate(e){let{transport:t,payload:r}=T(e);return u(D,r,t)}},ge={speech:{async create(e){let{transport:t,payload:r}=T(e);return X(U,r,t)}}},he={generations:{async create(e){let{transport:t,payload:r}=T(e);return u(j,r,t)}}},ye={chat:{completions:le},images:fe,audio:ge,video:he};var Ae=e=>{let{signal:t,headers:r,...n}=e;return {transport:{signal:t,extra:r},payload:n}},Re=(async e=>{let{transport:t,payload:r}=Ae(e);if(e.stream){let n=await _(P,r,t);return F(n)}return await u(P,r,t)}),Ce={messages:{create:Re}};
|
|
3
|
+
export{g as AbortedError,s as AiError,c as AuthRequiredError,E as BadInputError,d as NetworkError,C as QuotaExceededError,R as RateLimitError,x as ServerError,Ce as anthropic,oe as configureRuntime,ye as openai};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var i=()=>typeof window<"u"&&typeof document<"u";var se="hostRuntime",g=class{listeners=new Map;on(n,t){let r=this.listeners.get(n),s=r??new Set;return r||this.listeners.set(n,s),s.add(t),()=>{s.delete(t),s.size===0&&this.listeners.delete(n);}}emit(n,t){let r=this.listeners.get(n);if(r)for(let s of r)s(t);}},o=new g,y=0,N=e=>(y+=1,`${e}.${y}`),k=false,v=()=>{if(!i()||k)return;k=true,Reflect.set(window,se,{receiveMessage(n){if(!n)return;let t=n.endpoint;t&&o.emit(t,n.data??n);}});};var _=e=>typeof e=="object"&&e!==null,f=(e,n)=>{if(e)for(let t of n){let r=e[t];if(typeof r=="string"&&r.length>0)return r}},oe=(e,n)=>{if(e)for(let t of n){let r=e[t];if(typeof r=="string"&&r.length>0||typeof r=="number"&&Number.isFinite(r))return r}},a=e=>{if(!_(e))return null;let n=_(e.credentials)?e.credentials:void 0,t=_(e.user)?e.user:void 0,r=f(e,["uid","userId","id"])??f(n,["uid","userId","id"])??f(t,["uid","userId","id"]),s=f(e,["token","authToken"])??f(n,["token","authToken"]);return !r||!s?null:{uid:r,token:s}},m=e=>{if(!_(e))return null;let n=_(e.data)?e.data:e,t=oe(n,["userId","id","uid"]);if(t===void 0)return null;let r=f(n,["username","nickname","nickName","name"]),s=f(n,["nickname","nickName","username"]);return {...n,userId:t,...r?{username:r}:{},...s?{nickname:s}:{}}};var O="HostApp",A="hostListener";var U="processUserCredentials",P="processUserInfo",x="user.getCredentials",L="user.getUserInfo",d="user.credentials",R="user.info",h="user-credentials-request",b="user-credentials-response",F="user-info-request",H="user-info-response",D={iOS:[1,6,7],Android:[1,1,8]},q=3e3,B=500,V=50,j=1500;var ie=e=>typeof e!="object"||e===null?false:typeof Reflect.get(e,"type")=="string",G=false,Q=()=>{!i()||G||(G=true,v(),Reflect.set(window,U,e=>{a(e)&&o.emit(d,e);}),Reflect.set(window,P,e=>{m(e)&&o.emit(R,e);}),window.addEventListener("message",e=>{let n=e.data;if(ie(n))switch(n.type){case b:o.emit("iframe.credentials",n);break;case H:o.emit("iframe.userinfo",n);break}}));};var ue=new RegExp(`${O}\\/(\\d+\\.\\d+\\.\\d+)\\/(\\d+)\\/(iOS|Android)`),le=e=>{let n=e.split(".").map(t=>Number.parseInt(t,10));return [n[0]??0,n[1]??0,n[2]??0]},ae=(e,n)=>{for(let t=0;t<3;t++){if(e[t]>n[t])return true;if(e[t]<n[t])return false}return true},ce=e=>{let n=e.match(ue);if(!n)return null;let[,t,r,s]=n;if(!t||!r||s!=="iOS"&&s!=="Android")return null;let u=ae(le(t),D[s]);return {type:"native_app",platform:s,appVersion:t,buildNumber:r,meetsMinVersion:u}},w=()=>{if(!i())return {type:"web",meetsMinVersion:false};let e=ce(navigator.userAgent??"");return e||(window.parent!==window?{type:"iframe",meetsMinVersion:false}:{type:"web",meetsMinVersion:false})};var $=(e,n,t)=>new Promise(r=>{let s=false,u=l=>{s||(s=true,p(),clearTimeout(c),r(l));},p=o.on(n,l=>{let T=t(l);T&&u(T);}),c=setTimeout(()=>u(null),B);try{window.parent.postMessage({type:e,timestamp:Date.now()},"*");}catch{u(null);}}),K=()=>$(h,"iframe.credentials",a),z=()=>$(F,"iframe.userinfo",m);var J=e=>typeof e!="object"||e===null?false:typeof Reflect.get(e,"postMessage")=="function",M=e=>{let n=Reflect.get(window,"webkit");if(typeof n=="object"&&n!==null){let r=Reflect.get(n,"messageHandlers");if(typeof r=="object"&&r!==null){let s=Reflect.get(r,e);if(J(s))return s}}let t=Reflect.get(window,e);return J(t)?t:null},X=(e,n={})=>{let{pollIntervalMs:t=50,timeoutMs:r=1500}=n;return new Promise(s=>{let u=Date.now(),p=()=>{let c=M(e);if(c){s(c);return}if(Date.now()-u>=r){s(null);return}setTimeout(p,t);};p();})};var W=async(e,n,t,r)=>{let s=e.platform==="Android"?await X(A,{pollIntervalMs:V,timeoutMs:j}):M(A);if(!s)return null;let u=N(t);return new Promise(p=>{let c=false,l=E=>{c||(c=true,T(),te(),clearTimeout(re),p(E));},T=o.on(u,E=>{let I=r(E);I&&l(I);}),te=o.on(t,E=>{let I=r(E);I&&l(I);}),re=setTimeout(()=>l(null),q);try{s.postMessage({command:n,parameters:JSON.stringify({timestamp:Date.now(),endpoint:u})});}catch{l(null);}})},Y=e=>W(e,x,d,a),Z=e=>W(e,L,R,m);Q();var C=null,S=null,fe=e=>{switch(e.type){case "native_app":return e.meetsMinVersion?Y(e):Promise.resolve(null);case "iframe":return K();case "web":return Promise.resolve(null)}},pe=e=>{switch(e.type){case "native_app":return e.meetsMinVersion?Z(e):Promise.resolve(null);case "iframe":return z();case "web":return Promise.resolve(null)}},ee=e=>{C=e;},ne=()=>S||(S=fe(w()).then(e=>(e&&ee(e),e)).finally(()=>{S=null;}),S);i()&&o.on(d,e=>{let n=a(e);n&&ee(n);});var me=async()=>i()?C?C.token:(await ne())?.token??"":"",$e=async()=>i()?(await ne())?.token??"":"",de=async()=>i()?pe(w()):null;export{i as a,me as b,$e as c,de as d};
|
package/dist/react/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {b,d as d$1}from'../chunk-IOHVFMVA.js';import {useState,useCallback,useEffect}from'react';var U=()=>{let[s,o]=useState(""),[r,t]=useState(true),n=useCallback(()=>{t(true),b().then(e=>{o(e),t(false);});},[]);return useEffect(()=>{let e=true;return b().then(u=>{e&&(o(u),t(false));}),()=>{e=false;}},[]),{token:s,loading:r,refetch:n}};var d=()=>{let[s,o]=useState(null),[r,t]=useState(true),n=useCallback(()=>{t(true),d$1().then(e=>{o(e),t(false);});},[]);return useEffect(()=>{let e=true;return d$1().then(u=>{e&&(o(u),t(false));}),()=>{e=false;}},[]),{user:s,loading:r,refetch:n}};export{U as useAuthToken,d as useUserInfo};
|
package/dist/user/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export{b as getAuthTokenAsync,d as getUserInfoAsync}from'../chunk-IOHVFMVA.js';
|
package/package.json
CHANGED