@urun-sh/react 0.1.13 → 0.1.15
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/CHANGELOG.md +9 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.15
|
|
4
|
+
|
|
5
|
+
- Read WorkOS access tokens from the Next.js AuthKit provider before falling back to authkit-react.
|
|
6
|
+
- Show a visible sign-in status while WorkOS tokens are pending instead of rendering a blank app shell.
|
|
7
|
+
|
|
8
|
+
## 0.1.14
|
|
9
|
+
|
|
10
|
+
- Read known public auth environment variables directly so browser bundlers can inline them.
|
|
11
|
+
|
|
3
12
|
## 0.1.13
|
|
4
13
|
|
|
5
14
|
- Let explicit `NEXT_PUBLIC_AUTH_MODE` override production environment defaults.
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var fe=Object.create;var T=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var Se=Object.getPrototypeOf,ye=Object.prototype.hasOwnProperty;var ke=(t,e)=>{for(var r in e)T(t,r,{get:e[r],enumerable:!0})},V=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ve(e))!ye.call(t,o)&&o!==r&&T(t,o,{get:()=>e[o],enumerable:!(n=he(e,o))||n.enumerable});return t};var Pe=(t,e,r)=>(r=t!=null?fe(Se(t)):{},V(e||!t||!t.__esModule?T(r,"default",{value:t,enumerable:!0}):r,t)),xe=t=>V(T({},"__esModule",{value:!0}),t);var we={};ke(we,{ComponentRenderer:()=>te,ImageFrame:()=>pe,ImageFrameSchema:()=>ce,MetricsPanel:()=>me,MetricsPanelSchema:()=>de,ProgressCard:()=>oe,ProgressCardSchema:()=>ne,StatusBadge:()=>ie,StatusBadgeSchema:()=>se,TextStream:()=>ue,TextStreamSchema:()=>ae,UrunErrorBoundary:()=>m,UrunProvider:()=>q,authMode:()=>v,registerComponent:()=>ee,urunPublicEnv:()=>i,useApp:()=>Q,useImageFrame:()=>F,useMetricsPanel:()=>L,useProgressCard:()=>O,useStatusBadge:()=>W,useTextStream:()=>D,usesWorkOSAuth:()=>K});module.exports=xe(we);var A=require("react");var J=require("react"),f=require("react/jsx-runtime"),m=class extends J.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){console.error("[urun] Error caught by UrunErrorBoundary:",e,r)}render(){if(this.state.error){let{fallback:e}=this.props;return typeof e=="function"?e(this.state.error):e||(0,f.jsxs)("div",{role:"status","aria-live":"polite",style:{padding:"16px",border:"1px solid rgba(17, 24, 39, 0.12)",borderRadius:"8px",background:"#ffffff",color:"#111827",fontFamily:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',maxWidth:"360px"},children:[(0,f.jsx)("p",{style:{margin:0,fontWeight:600},children:"Connection interrupted"}),(0,f.jsx)("p",{style:{margin:"6px 0 0",color:"#4b5563"},children:"Reconnecting automatically."})]})}return this.props.children}};var X=require("react"),_=(0,X.createContext)(null);var h=require("react"),Z=require("react/jsx-runtime");function be({module:t,onToken:e}){let r;try{r=t.useAuth()}catch{r={}}return(0,h.useEffect)(()=>{let n=!1;async function o(){if(!(r.loading||r.isLoading))try{let c=r.getAccessToken?await r.getAccessToken():r.accessToken;n||e(c??void 0)}catch{n||e(void 0)}}o();let s=window.setInterval(()=>{o()},6e4);return()=>{n=!0,window.clearInterval(s)}},[r,r.accessToken,r.getAccessToken,r.isAuthenticated,r.isLoading,r.loading,r.user,e]),null}function H({onToken:t}){let[e,r]=(0,h.useState)(null);return(0,h.useEffect)(()=>{let n=!1;return import("@workos-inc/authkit-react").then(o=>{!n&&typeof o.useAuth=="function"&&r({useAuth:o.useAuth})}).catch(()=>{n||r(null)}),()=>{n=!0}},[]),e?(0,Z.jsx)(be,{module:e,onToken:t}):null}function i(t){let r=(typeof process<"u"?process.env:void 0)?.[t];return r&&r.trim()?r.trim():void 0}function v(){let t=i("NEXT_PUBLIC_AUTH_MODE")?.toLowerCase();return t==="jwt"||t==="customer-jwt"||t==="test-jwt"?"jwt":t==="workos"||i("VERCEL_ENV")==="production"?"workos":i("NEXT_PUBLIC_AUTH_ENABLED")==="false"?"jwt":"workos"}function K(){return v()==="workos"}var S=require("react/jsx-runtime");function q({baseUrl:t,orgId:e,appId:r,jwt:n,authProvider:o,fallback:s,children:c}){let[C,R]=(0,A.useState)(),w=i("NEXT_PUBLIC_SESSION_TOKEN")??i("NEXT_PUBLIC_URUN_JWT"),j=v(),z=j==="workos"&&!n,M=n??(j==="jwt"?w:void 0)??C,$=o??i("NEXT_PUBLIC_SESSION_AUTH_PROVIDER"),le=z&&!M,ge=(0,A.useMemo)(()=>({appId:r,baseUrl:t,orgId:e,jwt:M,authProvider:$}),[r,t,$,M,e]);return(0,S.jsxs)(m,{fallback:s,children:[z?(0,S.jsx)(H,{onToken:R}):null,le?null:(0,S.jsx)(_.Provider,{value:ge,children:c})]})}var a=require("react"),G=require("@urun-sh/core");function Ce(t,e){return`${t}:${JSON.stringify(e??{})}`}var N=class{constructor(e,r){this._doc=e;this._notify=r;this._unsubscribeChange=this._doc.on("change",()=>this._notify())}_doc;_notify;_unsubscribeChange;get(e,r){return this._doc.get(e,r)}set(e){this._doc.set(e),this._notify()}on(e,r){return this._doc.on(e,n=>r(n))}dispose(){this._unsubscribeChange()}},I=class{constructor(e,r){this._stream=e;this._notify=r;this._unsubscribeTrack=this._stream.on("track",()=>this._notify())}_stream;_notify;_unsubscribeTrack;get track(){return this._stream.track}attach(e){return this._stream.attach(e)}detach(){return this._stream.detach()}seek(e){return this._stream.seek(e)}on(e,r){return this._stream.on(e,r)}dispose(){this._unsubscribeTrack()}},B=class{constructor(e,r){this._session=e;this._notify=r}_session;_notify;_docs=new Map;_streams=new Map;get id(){return this._session.id}doc(e){let r=this._docs.get(e);return r||(r=new N(this._session.doc(e),this._notify),this._docs.set(e,r)),r}stream(e){let r=this._streams.get(e);return r||(r=new I(this._session.stream(e),this._notify),this._streams.set(e,r)),r}disconnect(){for(let e of this._docs.values())e.dispose();for(let e of this._streams.values())e.dispose();this._docs.clear(),this._streams.clear(),this._session.disconnect(),this._notify()}};function Q(){let t=(0,a.useContext)(_);if(!t)throw new Error("useApp must be used within <UrunProvider>");if(!t.appId)throw new Error('useApp requires <UrunProvider appId="...">');let[,e]=(0,a.useReducer)(o=>o+1,0),r=(0,a.useRef)(new Map),n=(0,a.useMemo)(()=>(0,G.App)(t.appId,{baseUrl:t.baseUrl,orgId:t.orgId,jwt:t.jwt,authProvider:t.authProvider}),[t.appId,t.baseUrl,t.orgId,t.jwt,t.authProvider]);return(0,a.useMemo)(()=>new Proxy({},{get(o,s){if(typeof s=="string")return c=>{let C=Ce(s,c),R=r.current.get(C);if(R)return R;let w=new B(n[s](c),e);return r.current.set(C,w),w}}}),[n])}var Y=new Map;function ee(t,e,r){if(!r||typeof r.safeParse!="function")throw new Error(`registerComponent("${t}"): schema must be a valid Zod schema`);Y.set(t,{component:e,schema:r})}function re(t,e){let r=Y.get(t);if(!r)return{error:`Unknown component: "${t}"`};let n=r.schema.safeParse(e);return n.success?{Component:r.component,validatedProps:n.data}:{error:`Validation failed for "${t}": ${n.error.message}`}}var p=require("react/jsx-runtime");function te({name:t,props:e,fallback:r}){let n=re(t,e);if(n.error)return console.warn(`[urun] ComponentRenderer: ${n.error}`),r?(0,p.jsx)(p.Fragment,{children:r}):(0,p.jsx)("div",{className:"urun-component-error",role:"alert",children:(0,p.jsx)("span",{className:"urun-component-error-text",children:n.error})});let o=n.Component;return(0,p.jsx)(o,{...n.validatedProps})}var l=require("zod"),d=require("react/jsx-runtime"),ne=l.z.object({step:l.z.number().min(0),total:l.z.number().min(1),label:l.z.string().optional(),variant:l.z.enum(["default","success","error"]).default("default")});function O(t){let{step:e,total:r,label:n,variant:o="default"}=t,s=Math.min(e/r*100,100),c=e>=r;return{step:e,total:r,label:n,variant:o,percentage:s,isComplete:c}}function oe(t){let{step:e,total:r,label:n,variant:o,percentage:s}=O(t);return(0,d.jsxs)("div",{className:"urun-progress-card","data-variant":o,children:[n&&(0,d.jsx)("div",{className:"urun-progress-label",children:n}),(0,d.jsx)("div",{className:"urun-progress-bar",children:(0,d.jsx)("div",{className:"urun-progress-fill",style:{width:`${s}%`}})}),(0,d.jsxs)("div",{className:"urun-progress-text",children:[e,"/",r]})]})}var E=require("zod"),y=require("react/jsx-runtime"),se=E.z.object({state:E.z.enum(["thinking","generating","idle","error"]),message:E.z.string().optional()}),Re={thinking:"Thinking...",generating:"Generating...",idle:"Idle",error:"Error"};function W(t){let{state:e,message:r}=t,n=e==="thinking"||e==="generating",o=r??Re[e]??e;return{state:e,message:o,isActive:n}}function ie(t){let{state:e,message:r,isActive:n}=W(t);return(0,y.jsxs)("span",{className:"urun-status-badge","data-state":e,children:[(0,y.jsx)("span",{className:`urun-status-indicator${n?" urun-status-pulse":""}`}),(0,y.jsx)("span",{className:"urun-status-message",children:r})]})}var k=require("react"),U=require("zod"),P=require("react/jsx-runtime"),ae=U.z.object({text:U.z.string(),streaming:U.z.boolean().default(!1)});function D(t){let{text:e,streaming:r=!1}=t,n=e.length===0;return{text:e,streaming:r,isEmpty:n}}function ue(t){let{text:e,streaming:r}=D(t),n=(0,k.useRef)(null),o=(0,k.useRef)(0);return(0,k.useEffect)(()=>{let s=n.current;s&&e.length!==o.current&&(s.textContent=e,o.current=e.length)},[e]),(0,P.jsxs)("div",{className:"urun-text-stream",children:[(0,P.jsx)("span",{ref:n,className:"urun-text-content"}),r&&(0,P.jsx)("span",{className:"urun-text-cursor"})]})}var x=require("zod"),b=require("react/jsx-runtime"),ce=x.z.object({src:x.z.string().url(),alt:x.z.string().optional(),caption:x.z.string().optional()});function F(t){let{src:e,alt:r,caption:n}=t;return{src:e,alt:r??"",caption:n}}function pe(t){let{src:e,alt:r,caption:n}=F(t);return(0,b.jsxs)("figure",{className:"urun-image-frame",children:[(0,b.jsx)("img",{className:"urun-image",src:e,alt:r}),n&&(0,b.jsx)("figcaption",{className:"urun-image-caption",children:n})]})}var u=require("zod"),g=require("react/jsx-runtime"),de=u.z.object({metrics:u.z.array(u.z.object({label:u.z.string(),value:u.z.union([u.z.string(),u.z.number()]),unit:u.z.string().optional()}))});function L(t){return{metrics:t.metrics.map(r=>({...r,displayValue:r.unit?`${r.value} ${r.unit}`:String(r.value)}))}}function me(t){let{metrics:e}=L(t);return(0,g.jsx)("div",{className:"urun-metrics-panel",children:e.map((r,n)=>(0,g.jsxs)("div",{className:"urun-metric-card",children:[(0,g.jsx)("div",{className:"urun-metric-label",children:r.label}),(0,g.jsx)("div",{className:"urun-metric-value",children:r.displayValue})]},n))})}0&&(module.exports={ComponentRenderer,ImageFrame,ImageFrameSchema,MetricsPanel,MetricsPanelSchema,ProgressCard,ProgressCardSchema,StatusBadge,StatusBadgeSchema,TextStream,TextStreamSchema,UrunErrorBoundary,UrunProvider,authMode,registerComponent,urunPublicEnv,useApp,useImageFrame,useMetricsPanel,useProgressCard,useStatusBadge,useTextStream,usesWorkOSAuth});
|
|
1
|
+
"use strict";var he=Object.create;var b=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var ye=Object.getPrototypeOf,ke=Object.prototype.hasOwnProperty;var _e=(t,e)=>{for(var r in e)b(t,r,{get:e[r],enumerable:!0})},$=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ve(e))!ke.call(t,o)&&o!==r&&b(t,o,{get:()=>e[o],enumerable:!(n=Se(e,o))||n.enumerable});return t};var Pe=(t,e,r)=>(r=t!=null?he(ye(t)):{},$(e||!t||!t.__esModule?b(r,"default",{value:t,enumerable:!0}):r,t)),Te=t=>$(b({},"__esModule",{value:!0}),t);var be={};_e(be,{ComponentRenderer:()=>ne,ImageFrame:()=>de,ImageFrameSchema:()=>pe,MetricsPanel:()=>le,MetricsPanelSchema:()=>me,ProgressCard:()=>se,ProgressCardSchema:()=>oe,StatusBadge:()=>ae,StatusBadgeSchema:()=>ie,TextStream:()=>ue,TextStreamSchema:()=>ce,UrunErrorBoundary:()=>l,UrunProvider:()=>G,authMode:()=>y,registerComponent:()=>re,urunPublicEnv:()=>i,useApp:()=>Y,useImageFrame:()=>X,useMetricsPanel:()=>V,useProgressCard:()=>L,useStatusBadge:()=>D,useTextStream:()=>W,usesWorkOSAuth:()=>q});module.exports=Te(be);var N=require("react");var H=require("react"),S=require("react/jsx-runtime"),l=class extends H.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){console.error("[urun] Error caught by UrunErrorBoundary:",e,r)}render(){if(this.state.error){let{fallback:e}=this.props;return typeof e=="function"?e(this.state.error):e||(0,S.jsxs)("div",{role:"status","aria-live":"polite",style:{padding:"16px",border:"1px solid rgba(17, 24, 39, 0.12)",borderRadius:"8px",background:"#ffffff",color:"#111827",fontFamily:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',maxWidth:"360px"},children:[(0,S.jsx)("p",{style:{margin:0,fontWeight:600},children:"Connection interrupted"}),(0,S.jsx)("p",{style:{margin:"6px 0 0",color:"#4b5563"},children:"Reconnecting automatically."})]})}return this.props.children}};var J=require("react"),w=(0,J.createContext)(null);var v=require("react"),Z=require("react/jsx-runtime"),Ce="@workos-inc/authkit-nextjs/components";function xe({module:t,onToken:e}){let r;try{r=t.useToken()}catch{r={}}return(0,v.useEffect)(()=>{let n=!1;async function o(){if(!(r.loading||r.isLoading))try{let u=r.getAccessToken?await r.getAccessToken():r.accessToken;n||e(u??void 0)}catch{n||e(void 0)}}o();let s=window.setInterval(()=>{o()},6e4);return()=>{n=!0,window.clearInterval(s)}},[r,r.accessToken,r.getAccessToken,r.isAuthenticated,r.isLoading,r.loading,r.user,e]),null}function K({onToken:t}){let[e,r]=(0,v.useState)(null);return(0,v.useEffect)(()=>{let n=!1;async function o(){try{let s=await import(Ce);if(!n&&typeof s.useAccessToken=="function"){r({useToken:s.useAccessToken});return}}catch{}try{let s=await import("@workos-inc/authkit-react");!n&&typeof s.useAuth=="function"&&r({useToken:s.useAuth})}catch{n||r(null)}}return o(),()=>{n=!0}},[]),e?(0,Z.jsx)(xe,{module:e,onToken:t}):null}function p(t){return t&&t.trim()?t.trim():void 0}function i(t){switch(t){case"NEXT_PUBLIC_AUTH_MODE":return p(typeof process<"u"?process.env?.NEXT_PUBLIC_AUTH_MODE:void 0);case"NEXT_PUBLIC_AUTH_ENABLED":return p(typeof process<"u"?process.env?.NEXT_PUBLIC_AUTH_ENABLED:void 0);case"NEXT_PUBLIC_SESSION_AUTH_PROVIDER":return p(typeof process<"u"?process.env?.NEXT_PUBLIC_SESSION_AUTH_PROVIDER:void 0);case"NEXT_PUBLIC_SESSION_TOKEN":return p(typeof process<"u"?process.env?.NEXT_PUBLIC_SESSION_TOKEN:void 0);case"NEXT_PUBLIC_URUN_JWT":return p(typeof process<"u"?process.env?.NEXT_PUBLIC_URUN_JWT:void 0);case"VERCEL_ENV":return p(typeof process<"u"?process.env?.VERCEL_ENV:void 0);default:return p(typeof process<"u"?process.env?.[t]:void 0)}}function y(){let t=i("NEXT_PUBLIC_AUTH_MODE")?.toLowerCase();return t==="jwt"||t==="customer-jwt"||t==="test-jwt"?"jwt":t==="workos"||i("VERCEL_ENV")==="production"?"workos":i("NEXT_PUBLIC_AUTH_ENABLED")==="false"?"jwt":"workos"}function q(){return y()==="workos"}var f=require("react/jsx-runtime");function G({baseUrl:t,orgId:e,appId:r,jwt:n,authProvider:o,fallback:s,children:u}){let[x,R]=(0,N.useState)(),E=i("NEXT_PUBLIC_SESSION_TOKEN")??i("NEXT_PUBLIC_URUN_JWT"),F=y(),j=F==="workos"&&!n,I=n??(F==="jwt"?E:void 0)??x,z=o??i("NEXT_PUBLIC_SESSION_AUTH_PROVIDER"),fe=j&&!I,ge=(0,N.useMemo)(()=>({appId:r,baseUrl:t,orgId:e,jwt:I,authProvider:z}),[r,t,z,I,e]);return(0,f.jsxs)(l,{fallback:s,children:[j?(0,f.jsx)(K,{onToken:R}):null,fe?(0,f.jsx)("div",{role:"status","aria-live":"polite",children:"Signing in..."}):(0,f.jsx)(w.Provider,{value:ge,children:u})]})}var a=require("react"),Q=require("@urun-sh/core");function Re(t,e){return`${t}:${JSON.stringify(e??{})}`}var M=class{constructor(e,r){this._doc=e;this._notify=r;this._unsubscribeChange=this._doc.on("change",()=>this._notify())}_doc;_notify;_unsubscribeChange;get(e,r){return this._doc.get(e,r)}set(e){this._doc.set(e),this._notify()}on(e,r){return this._doc.on(e,n=>r(n))}dispose(){this._unsubscribeChange()}},B=class{constructor(e,r){this._stream=e;this._notify=r;this._unsubscribeTrack=this._stream.on("track",()=>this._notify())}_stream;_notify;_unsubscribeTrack;get track(){return this._stream.track}attach(e){return this._stream.attach(e)}detach(){return this._stream.detach()}seek(e){return this._stream.seek(e)}on(e,r){return this._stream.on(e,r)}dispose(){this._unsubscribeTrack()}},O=class{constructor(e,r){this._session=e;this._notify=r}_session;_notify;_docs=new Map;_streams=new Map;get id(){return this._session.id}doc(e){let r=this._docs.get(e);return r||(r=new M(this._session.doc(e),this._notify),this._docs.set(e,r)),r}stream(e){let r=this._streams.get(e);return r||(r=new B(this._session.stream(e),this._notify),this._streams.set(e,r)),r}disconnect(){for(let e of this._docs.values())e.dispose();for(let e of this._streams.values())e.dispose();this._docs.clear(),this._streams.clear(),this._session.disconnect(),this._notify()}};function Y(){let t=(0,a.useContext)(w);if(!t)throw new Error("useApp must be used within <UrunProvider>");if(!t.appId)throw new Error('useApp requires <UrunProvider appId="...">');let[,e]=(0,a.useReducer)(o=>o+1,0),r=(0,a.useRef)(new Map),n=(0,a.useMemo)(()=>(0,Q.App)(t.appId,{baseUrl:t.baseUrl,orgId:t.orgId,jwt:t.jwt,authProvider:t.authProvider}),[t.appId,t.baseUrl,t.orgId,t.jwt,t.authProvider]);return(0,a.useMemo)(()=>new Proxy({},{get(o,s){if(typeof s=="string")return u=>{let x=Re(s,u),R=r.current.get(x);if(R)return R;let E=new O(n[s](u),e);return r.current.set(x,E),E}}}),[n])}var ee=new Map;function re(t,e,r){if(!r||typeof r.safeParse!="function")throw new Error(`registerComponent("${t}"): schema must be a valid Zod schema`);ee.set(t,{component:e,schema:r})}function te(t,e){let r=ee.get(t);if(!r)return{error:`Unknown component: "${t}"`};let n=r.schema.safeParse(e);return n.success?{Component:r.component,validatedProps:n.data}:{error:`Validation failed for "${t}": ${n.error.message}`}}var d=require("react/jsx-runtime");function ne({name:t,props:e,fallback:r}){let n=te(t,e);if(n.error)return console.warn(`[urun] ComponentRenderer: ${n.error}`),r?(0,d.jsx)(d.Fragment,{children:r}):(0,d.jsx)("div",{className:"urun-component-error",role:"alert",children:(0,d.jsx)("span",{className:"urun-component-error-text",children:n.error})});let o=n.Component;return(0,d.jsx)(o,{...n.validatedProps})}var g=require("zod"),m=require("react/jsx-runtime"),oe=g.z.object({step:g.z.number().min(0),total:g.z.number().min(1),label:g.z.string().optional(),variant:g.z.enum(["default","success","error"]).default("default")});function L(t){let{step:e,total:r,label:n,variant:o="default"}=t,s=Math.min(e/r*100,100),u=e>=r;return{step:e,total:r,label:n,variant:o,percentage:s,isComplete:u}}function se(t){let{step:e,total:r,label:n,variant:o,percentage:s}=L(t);return(0,m.jsxs)("div",{className:"urun-progress-card","data-variant":o,children:[n&&(0,m.jsx)("div",{className:"urun-progress-label",children:n}),(0,m.jsx)("div",{className:"urun-progress-bar",children:(0,m.jsx)("div",{className:"urun-progress-fill",style:{width:`${s}%`}})}),(0,m.jsxs)("div",{className:"urun-progress-text",children:[e,"/",r]})]})}var U=require("zod"),k=require("react/jsx-runtime"),ie=U.z.object({state:U.z.enum(["thinking","generating","idle","error"]),message:U.z.string().optional()}),Ee={thinking:"Thinking...",generating:"Generating...",idle:"Idle",error:"Error"};function D(t){let{state:e,message:r}=t,n=e==="thinking"||e==="generating",o=r??Ee[e]??e;return{state:e,message:o,isActive:n}}function ae(t){let{state:e,message:r,isActive:n}=D(t);return(0,k.jsxs)("span",{className:"urun-status-badge","data-state":e,children:[(0,k.jsx)("span",{className:`urun-status-indicator${n?" urun-status-pulse":""}`}),(0,k.jsx)("span",{className:"urun-status-message",children:r})]})}var _=require("react"),A=require("zod"),P=require("react/jsx-runtime"),ce=A.z.object({text:A.z.string(),streaming:A.z.boolean().default(!1)});function W(t){let{text:e,streaming:r=!1}=t,n=e.length===0;return{text:e,streaming:r,isEmpty:n}}function ue(t){let{text:e,streaming:r}=W(t),n=(0,_.useRef)(null),o=(0,_.useRef)(0);return(0,_.useEffect)(()=>{let s=n.current;s&&e.length!==o.current&&(s.textContent=e,o.current=e.length)},[e]),(0,P.jsxs)("div",{className:"urun-text-stream",children:[(0,P.jsx)("span",{ref:n,className:"urun-text-content"}),r&&(0,P.jsx)("span",{className:"urun-text-cursor"})]})}var T=require("zod"),C=require("react/jsx-runtime"),pe=T.z.object({src:T.z.string().url(),alt:T.z.string().optional(),caption:T.z.string().optional()});function X(t){let{src:e,alt:r,caption:n}=t;return{src:e,alt:r??"",caption:n}}function de(t){let{src:e,alt:r,caption:n}=X(t);return(0,C.jsxs)("figure",{className:"urun-image-frame",children:[(0,C.jsx)("img",{className:"urun-image",src:e,alt:r}),n&&(0,C.jsx)("figcaption",{className:"urun-image-caption",children:n})]})}var c=require("zod"),h=require("react/jsx-runtime"),me=c.z.object({metrics:c.z.array(c.z.object({label:c.z.string(),value:c.z.union([c.z.string(),c.z.number()]),unit:c.z.string().optional()}))});function V(t){return{metrics:t.metrics.map(r=>({...r,displayValue:r.unit?`${r.value} ${r.unit}`:String(r.value)}))}}function le(t){let{metrics:e}=V(t);return(0,h.jsx)("div",{className:"urun-metrics-panel",children:e.map((r,n)=>(0,h.jsxs)("div",{className:"urun-metric-card",children:[(0,h.jsx)("div",{className:"urun-metric-label",children:r.label}),(0,h.jsx)("div",{className:"urun-metric-value",children:r.displayValue})]},n))})}0&&(module.exports={ComponentRenderer,ImageFrame,ImageFrameSchema,MetricsPanel,MetricsPanelSchema,ProgressCard,ProgressCardSchema,StatusBadge,StatusBadgeSchema,TextStream,TextStreamSchema,UrunErrorBoundary,UrunProvider,authMode,registerComponent,urunPublicEnv,useApp,useImageFrame,useMetricsPanel,useProgressCard,useStatusBadge,useTextStream,usesWorkOSAuth});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useMemo as
|
|
1
|
+
import{useMemo as ne,useState as oe}from"react";import{Component as Z}from"react";import{jsx as U,jsxs as q}from"react/jsx-runtime";var p=class extends Z{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){console.error("[urun] Error caught by UrunErrorBoundary:",e,r)}render(){if(this.state.error){let{fallback:e}=this.props;return typeof e=="function"?e(this.state.error):e||q("div",{role:"status","aria-live":"polite",style:{padding:"16px",border:"1px solid rgba(17, 24, 39, 0.12)",borderRadius:"8px",background:"#ffffff",color:"#111827",fontFamily:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',maxWidth:"360px"},children:[U("p",{style:{margin:0,fontWeight:600},children:"Connection interrupted"}),U("p",{style:{margin:"6px 0 0",color:"#4b5563"},children:"Reconnecting automatically."})]})}return this.props.children}};import{createContext as G}from"react";var g=G(null);import{useEffect as A,useState as Q}from"react";import{jsx as re}from"react/jsx-runtime";var Y="@workos-inc/authkit-nextjs/components";function ee({module:t,onToken:e}){let r;try{r=t.useToken()}catch{r={}}return A(()=>{let n=!1;async function o(){if(!(r.loading||r.isLoading))try{let i=r.getAccessToken?await r.getAccessToken():r.accessToken;n||e(i??void 0)}catch{n||e(void 0)}}o();let s=window.setInterval(()=>{o()},6e4);return()=>{n=!0,window.clearInterval(s)}},[r,r.accessToken,r.getAccessToken,r.isAuthenticated,r.isLoading,r.loading,r.user,e]),null}function I({onToken:t}){let[e,r]=Q(null);return A(()=>{let n=!1;async function o(){try{let s=await import(Y);if(!n&&typeof s.useAccessToken=="function"){r({useToken:s.useAccessToken});return}}catch{}try{let s=await import("@workos-inc/authkit-react");!n&&typeof s.useAuth=="function"&&r({useToken:s.useAuth})}catch{n||r(null)}}return o(),()=>{n=!0}},[]),e?re(ee,{module:e,onToken:t}):null}function u(t){return t&&t.trim()?t.trim():void 0}function a(t){switch(t){case"NEXT_PUBLIC_AUTH_MODE":return u(typeof process<"u"?process.env?.NEXT_PUBLIC_AUTH_MODE:void 0);case"NEXT_PUBLIC_AUTH_ENABLED":return u(typeof process<"u"?process.env?.NEXT_PUBLIC_AUTH_ENABLED:void 0);case"NEXT_PUBLIC_SESSION_AUTH_PROVIDER":return u(typeof process<"u"?process.env?.NEXT_PUBLIC_SESSION_AUTH_PROVIDER:void 0);case"NEXT_PUBLIC_SESSION_TOKEN":return u(typeof process<"u"?process.env?.NEXT_PUBLIC_SESSION_TOKEN:void 0);case"NEXT_PUBLIC_URUN_JWT":return u(typeof process<"u"?process.env?.NEXT_PUBLIC_URUN_JWT:void 0);case"VERCEL_ENV":return u(typeof process<"u"?process.env?.VERCEL_ENV:void 0);default:return u(typeof process<"u"?process.env?.[t]:void 0)}}function h(){let t=a("NEXT_PUBLIC_AUTH_MODE")?.toLowerCase();return t==="jwt"||t==="customer-jwt"||t==="test-jwt"?"jwt":t==="workos"||a("VERCEL_ENV")==="production"?"workos":a("NEXT_PUBLIC_AUTH_ENABLED")==="false"?"jwt":"workos"}function te(){return h()==="workos"}import{jsx as k,jsxs as ie}from"react/jsx-runtime";function se({baseUrl:t,orgId:e,appId:r,jwt:n,authProvider:o,fallback:s,children:i}){let[m,l]=oe(),f=a("NEXT_PUBLIC_SESSION_TOKEN")??a("NEXT_PUBLIC_URUN_JWT"),b=h(),w=b==="workos"&&!n,y=n??(b==="jwt"?f:void 0)??m,N=o??a("NEXT_PUBLIC_SESSION_AUTH_PROVIDER"),J=w&&!y,K=ne(()=>({appId:r,baseUrl:t,orgId:e,jwt:y,authProvider:N}),[r,t,N,y,e]);return ie(p,{fallback:s,children:[w?k(I,{onToken:l}):null,J?k("div",{role:"status","aria-live":"polite",children:"Signing in..."}):k(g.Provider,{value:K,children:i})]})}import{useContext as ae,useMemo as M,useReducer as ce,useRef as ue}from"react";import{App as pe}from"@urun-sh/core";function de(t,e){return`${t}:${JSON.stringify(e??{})}`}var _=class{constructor(e,r){this._doc=e;this._notify=r;this._unsubscribeChange=this._doc.on("change",()=>this._notify())}_doc;_notify;_unsubscribeChange;get(e,r){return this._doc.get(e,r)}set(e){this._doc.set(e),this._notify()}on(e,r){return this._doc.on(e,n=>r(n))}dispose(){this._unsubscribeChange()}},P=class{constructor(e,r){this._stream=e;this._notify=r;this._unsubscribeTrack=this._stream.on("track",()=>this._notify())}_stream;_notify;_unsubscribeTrack;get track(){return this._stream.track}attach(e){return this._stream.attach(e)}detach(){return this._stream.detach()}seek(e){return this._stream.seek(e)}on(e,r){return this._stream.on(e,r)}dispose(){this._unsubscribeTrack()}},T=class{constructor(e,r){this._session=e;this._notify=r}_session;_notify;_docs=new Map;_streams=new Map;get id(){return this._session.id}doc(e){let r=this._docs.get(e);return r||(r=new _(this._session.doc(e),this._notify),this._docs.set(e,r)),r}stream(e){let r=this._streams.get(e);return r||(r=new P(this._session.stream(e),this._notify),this._streams.set(e,r)),r}disconnect(){for(let e of this._docs.values())e.dispose();for(let e of this._streams.values())e.dispose();this._docs.clear(),this._streams.clear(),this._session.disconnect(),this._notify()}};function me(){let t=ae(g);if(!t)throw new Error("useApp must be used within <UrunProvider>");if(!t.appId)throw new Error('useApp requires <UrunProvider appId="...">');let[,e]=ce(o=>o+1,0),r=ue(new Map),n=M(()=>pe(t.appId,{baseUrl:t.baseUrl,orgId:t.orgId,jwt:t.jwt,authProvider:t.authProvider}),[t.appId,t.baseUrl,t.orgId,t.jwt,t.authProvider]);return M(()=>new Proxy({},{get(o,s){if(typeof s=="string")return i=>{let m=de(s,i),l=r.current.get(m);if(l)return l;let f=new T(n[s](i),e);return r.current.set(m,f),f}}}),[n])}var B=new Map;function le(t,e,r){if(!r||typeof r.safeParse!="function")throw new Error(`registerComponent("${t}"): schema must be a valid Zod schema`);B.set(t,{component:e,schema:r})}function O(t,e){let r=B.get(t);if(!r)return{error:`Unknown component: "${t}"`};let n=r.schema.safeParse(e);return n.success?{Component:r.component,validatedProps:n.data}:{error:`Validation failed for "${t}": ${n.error.message}`}}import{Fragment as ge,jsx as S}from"react/jsx-runtime";function fe({name:t,props:e,fallback:r}){let n=O(t,e);if(n.error)return console.warn(`[urun] ComponentRenderer: ${n.error}`),r?S(ge,{children:r}):S("div",{className:"urun-component-error",role:"alert",children:S("span",{className:"urun-component-error-text",children:n.error})});let o=n.Component;return S(o,{...n.validatedProps})}import{z as d}from"zod";import{jsx as C,jsxs as L}from"react/jsx-runtime";var he=d.object({step:d.number().min(0),total:d.number().min(1),label:d.string().optional(),variant:d.enum(["default","success","error"]).default("default")});function D(t){let{step:e,total:r,label:n,variant:o="default"}=t,s=Math.min(e/r*100,100),i=e>=r;return{step:e,total:r,label:n,variant:o,percentage:s,isComplete:i}}function Se(t){let{step:e,total:r,label:n,variant:o,percentage:s}=D(t);return L("div",{className:"urun-progress-card","data-variant":o,children:[n&&C("div",{className:"urun-progress-label",children:n}),C("div",{className:"urun-progress-bar",children:C("div",{className:"urun-progress-fill",style:{width:`${s}%`}})}),L("div",{className:"urun-progress-text",children:[e,"/",r]})]})}import{z as x}from"zod";import{jsx as W,jsxs as _e}from"react/jsx-runtime";var ve=x.object({state:x.enum(["thinking","generating","idle","error"]),message:x.string().optional()}),ye={thinking:"Thinking...",generating:"Generating...",idle:"Idle",error:"Error"};function X(t){let{state:e,message:r}=t,n=e==="thinking"||e==="generating",o=r??ye[e]??e;return{state:e,message:o,isActive:n}}function ke(t){let{state:e,message:r,isActive:n}=X(t);return _e("span",{className:"urun-status-badge","data-state":e,children:[W("span",{className:`urun-status-indicator${n?" urun-status-pulse":""}`}),W("span",{className:"urun-status-message",children:r})]})}import{useRef as V,useEffect as Pe}from"react";import{z as R}from"zod";import{jsx as F,jsxs as xe}from"react/jsx-runtime";var Te=R.object({text:R.string(),streaming:R.boolean().default(!1)});function j(t){let{text:e,streaming:r=!1}=t,n=e.length===0;return{text:e,streaming:r,isEmpty:n}}function Ce(t){let{text:e,streaming:r}=j(t),n=V(null),o=V(0);return Pe(()=>{let s=n.current;s&&e.length!==o.current&&(s.textContent=e,o.current=e.length)},[e]),xe("div",{className:"urun-text-stream",children:[F("span",{ref:n,className:"urun-text-content"}),r&&F("span",{className:"urun-text-cursor"})]})}import{z as v}from"zod";import{jsx as z,jsxs as be}from"react/jsx-runtime";var Re=v.object({src:v.string().url(),alt:v.string().optional(),caption:v.string().optional()});function $(t){let{src:e,alt:r,caption:n}=t;return{src:e,alt:r??"",caption:n}}function Ee(t){let{src:e,alt:r,caption:n}=$(t);return be("figure",{className:"urun-image-frame",children:[z("img",{className:"urun-image",src:e,alt:r}),n&&z("figcaption",{className:"urun-image-caption",children:n})]})}import{z as c}from"zod";import{jsx as E,jsxs as Ue}from"react/jsx-runtime";var we=c.object({metrics:c.array(c.object({label:c.string(),value:c.union([c.string(),c.number()]),unit:c.string().optional()}))});function H(t){return{metrics:t.metrics.map(r=>({...r,displayValue:r.unit?`${r.value} ${r.unit}`:String(r.value)}))}}function Ne(t){let{metrics:e}=H(t);return E("div",{className:"urun-metrics-panel",children:e.map((r,n)=>Ue("div",{className:"urun-metric-card",children:[E("div",{className:"urun-metric-label",children:r.label}),E("div",{className:"urun-metric-value",children:r.displayValue})]},n))})}export{fe as ComponentRenderer,Ee as ImageFrame,Re as ImageFrameSchema,Ne as MetricsPanel,we as MetricsPanelSchema,Se as ProgressCard,he as ProgressCardSchema,ke as StatusBadge,ve as StatusBadgeSchema,Ce as TextStream,Te as TextStreamSchema,p as UrunErrorBoundary,se as UrunProvider,h as authMode,le as registerComponent,a as urunPublicEnv,me as useApp,$ as useImageFrame,H as useMetricsPanel,D as useProgressCard,X as useStatusBadge,j as useTextStream,te as usesWorkOSAuth};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@urun-sh/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"description": "React bindings for the urun TypeScript SDK",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": "^18.2.0 || ^19.0.0",
|
|
39
|
-
"@urun-sh/core": "^0.1.
|
|
39
|
+
"@urun-sh/core": "^0.1.15",
|
|
40
40
|
"@workos-inc/authkit-react": "^0.15.0"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|