PageSourceSearch

https://sprag.ai/assets/session-HFeFroCn.js

js sprag.ai collected 2026-10-05 12:43:09 UTC 2,001 bytes, 1 lines download raw bytes

1import{i as e}from"./config-DdUAZnIP.js";var t=`sprag_auth_identity`;function n(){return typeof localStorage>`u`?null:localStorage}function r(){let e=n();if(!e)return null;try{let n=e.getItem(t);if(!n)return null;let r=JSON.parse(n);return typeof r?.id==`string`?{id:r.id,email:typeof r.email==`string`?r.email:null}:null}catch{return null}}function i(e){let r=n();if(r)try{if(!e){r.removeItem(t);return}let n={id:e.user_id,email:e.email};r.setItem(t,JSON.stringify(n))}catch{}}var a=(void 0)?.trim()||(e?`https://api.sprag.ai`:`https://api.dev.sprag.ai`),o=8e3,s=class extends Error{constructor(e,t){super(`${e} timed out after ${t}ms`),this.name=`AuthTimeoutError`}};function c(e,t=`auth request`,n=o){return new Promise((r,i)=>{let a=setTimeout(()=>i(new s(t,n)),n);Promise.resolve(e).then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})})}var l=e=>new Promise(t=>setTimeout(t,e)),u={accessToken:null,user:null},d=u,f=new Set,p=null,m=0;function h(){return d}function g(){return d.accessToken}function _(e){return f.size===0&&window.addEventListener(`storage`,b),f.add(e),()=>{f.delete(e),f.size===0&&window.removeEventListener(`storage`,b)}}function v(e,t){m+=1,d={accessToken:e,user:t},i(t);for(let e of f)e()}function y(){m+=1,d=u,i(null);for(let e of f)e()}function b(e){if(e.key!==null&&e.key!==`sprag_auth_identity`)return;let t=r();if(!t){d.user&&y();return}t.id!==d.user?.user_id&&x().catch(()=>void 0)}function x(){return p||(p=(async()=>{let e=m,t=new AbortController;try{let n=await c(globalThis.fetch(`${a}/auth/refresh`,{method:`POST`,credentials:`include`,signal:t.signal}).then(async e=>({status:e.status,body:e.ok?await e.json():null})),`refreshSession`).catch(e=>{throw t.abort(),e});if(n.status===401)return m===e&&y(),d.accessToken!==null;if(!n.body)throw Error(`Session refresh failed (HTTP ${n.status}).`);return m===e&&v(n.body.access_token,n.body.user),d.accessToken!==null}finally{p=null}})(),p)}export{v as a,c,x as i,a as l,g as n,_ as o,h as r,l as s,y as t,r as u};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.