@rizom/brain 0.2.0-alpha.373 → 0.2.0-alpha.375
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/brain.js +36 -36
- package/dist/chunks/{app-vc3nv5y9.js → app-j3z3g3eb.js} +2 -2
- package/dist/chunks/{index-sbrkcb6b.js → index-0zjzp75n.js} +2 -2
- package/dist/chunks/{index-rwamfjnc.js → index-cjejqg93.js} +3 -3
- package/dist/chunks/{index-rwamfjnc.js.map → index-cjejqg93.js.map} +1 -1
- package/dist/chunks/{index-tyn6rvwj.js → index-m1k2tyv0.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/model.js +37 -37
- package/dist/model.js.map +1 -1
- package/dist/ui/app.js.map +1 -1
- package/dist/ui/studio-app.css +46 -5
- package/dist/ui/studio-app.js +89 -89
- package/dist/ui/studio-app.js.map +10 -8
- package/dist/ui/studio-asset-manifest.json +18 -18
- package/dist/ui/studio-chunks/{account-view-ccwc00f3.js → account-view-xe37mz6g.js} +2 -2
- package/dist/ui/studio-chunks/{account-view-ccwc00f3.js.map → account-view-xe37mz6g.js.map} +1 -1
- package/dist/ui/studio-chunks/{highlighted-body-OFNGDK62-4nvg61ct.js → highlighted-body-OFNGDK62-rk8j2gp8.js} +2 -2
- package/dist/ui/studio-chunks/{highlighted-body-OFNGDK62-4nvg61ct.js.map → highlighted-body-OFNGDK62-rk8j2gp8.js.map} +1 -1
- package/dist/ui/studio-chunks/{main-m0kdgfnh.js → main-19ek6kcp.js} +5 -5
- package/dist/ui/studio-chunks/{main-m0kdgfnh.js.map → main-19ek6kcp.js.map} +1 -1
- package/dist/ui/studio-chunks/{main-ddbzvt9n.js → main-j8m9t6k5.js} +2 -2
- package/dist/ui/studio-chunks/{main-ddbzvt9n.js.map → main-j8m9t6k5.js.map} +1 -1
- package/dist/ui/studio-chunks/{main-ae3gk7qq.js → main-jyb12r9e.js} +4 -4
- package/dist/ui/studio-chunks/{main-ae3gk7qq.js.map → main-jyb12r9e.js.map} +4 -4
- package/dist/ui/studio-chunks/{main-fnp26a36.js → main-kgem2nc7.js} +2 -2
- package/dist/ui/studio-chunks/{main-fnp26a36.js.map → main-kgem2nc7.js.map} +1 -1
- package/dist/ui/studio-chunks/{main-b5ybzc6w.js → main-wrwp0bss.js} +5 -5
- package/dist/ui/studio-chunks/{main-b5ybzc6w.js.map → main-wrwp0bss.js.map} +7 -5
- package/dist/ui/studio-chunks/mermaid-GHXKKRXX-cvdypvaf.js +3 -0
- package/dist/ui/studio-chunks/{mermaid-GHXKKRXX-fvw2rwpe.js.map → mermaid-GHXKKRXX-cvdypvaf.js.map} +1 -1
- package/dist/ui/studio-chunks/studio-chat-workspace-ynxn5948.js +5 -0
- package/dist/ui/studio-chunks/studio-chat-workspace-ynxn5948.js.map +19 -0
- package/package.json +1 -1
- package/dist/ui/studio-chunks/mermaid-GHXKKRXX-fvw2rwpe.js +0 -3
- package/dist/ui/studio-chunks/studio-chat-workspace-01yyssn0.js +0 -5
- package/dist/ui/studio-chunks/studio-chat-workspace-01yyssn0.js.map +0 -19
- /package/dist/chunks/{app-vc3nv5y9.js.map → app-j3z3g3eb.js.map} +0 -0
- /package/dist/chunks/{index-sbrkcb6b.js.map → index-0zjzp75n.js.map} +0 -0
- /package/dist/chunks/{index-tyn6rvwj.js.map → index-m1k2tyv0.js.map} +0 -0
|
@@ -4,23 +4,23 @@
|
|
|
4
4
|
"app.css": "studio-app.css",
|
|
5
5
|
"app.js": "studio-app.js",
|
|
6
6
|
"studio-app.js.map": "studio-app.js.map",
|
|
7
|
-
"studio-chunks/account-view-
|
|
8
|
-
"studio-chunks/account-view-
|
|
9
|
-
"studio-chunks/highlighted-body-OFNGDK62-
|
|
10
|
-
"studio-chunks/highlighted-body-OFNGDK62-
|
|
11
|
-
"studio-chunks/main-
|
|
12
|
-
"studio-chunks/main-
|
|
13
|
-
"studio-chunks/main-
|
|
14
|
-
"studio-chunks/main-
|
|
15
|
-
"studio-chunks/main-
|
|
16
|
-
"studio-chunks/main-
|
|
17
|
-
"studio-chunks/main-
|
|
18
|
-
"studio-chunks/main-
|
|
19
|
-
"studio-chunks/main-
|
|
20
|
-
"studio-chunks/main-
|
|
21
|
-
"studio-chunks/mermaid-GHXKKRXX-
|
|
22
|
-
"studio-chunks/mermaid-GHXKKRXX-
|
|
23
|
-
"studio-chunks/studio-chat-workspace-
|
|
24
|
-
"studio-chunks/studio-chat-workspace-
|
|
7
|
+
"studio-chunks/account-view-xe37mz6g.js": "studio-chunks/account-view-xe37mz6g.js",
|
|
8
|
+
"studio-chunks/account-view-xe37mz6g.js.map": "studio-chunks/account-view-xe37mz6g.js.map",
|
|
9
|
+
"studio-chunks/highlighted-body-OFNGDK62-rk8j2gp8.js": "studio-chunks/highlighted-body-OFNGDK62-rk8j2gp8.js",
|
|
10
|
+
"studio-chunks/highlighted-body-OFNGDK62-rk8j2gp8.js.map": "studio-chunks/highlighted-body-OFNGDK62-rk8j2gp8.js.map",
|
|
11
|
+
"studio-chunks/main-19ek6kcp.js": "studio-chunks/main-19ek6kcp.js",
|
|
12
|
+
"studio-chunks/main-19ek6kcp.js.map": "studio-chunks/main-19ek6kcp.js.map",
|
|
13
|
+
"studio-chunks/main-j8m9t6k5.js": "studio-chunks/main-j8m9t6k5.js",
|
|
14
|
+
"studio-chunks/main-j8m9t6k5.js.map": "studio-chunks/main-j8m9t6k5.js.map",
|
|
15
|
+
"studio-chunks/main-jyb12r9e.js": "studio-chunks/main-jyb12r9e.js",
|
|
16
|
+
"studio-chunks/main-jyb12r9e.js.map": "studio-chunks/main-jyb12r9e.js.map",
|
|
17
|
+
"studio-chunks/main-kgem2nc7.js": "studio-chunks/main-kgem2nc7.js",
|
|
18
|
+
"studio-chunks/main-kgem2nc7.js.map": "studio-chunks/main-kgem2nc7.js.map",
|
|
19
|
+
"studio-chunks/main-wrwp0bss.js": "studio-chunks/main-wrwp0bss.js",
|
|
20
|
+
"studio-chunks/main-wrwp0bss.js.map": "studio-chunks/main-wrwp0bss.js.map",
|
|
21
|
+
"studio-chunks/mermaid-GHXKKRXX-cvdypvaf.js": "studio-chunks/mermaid-GHXKKRXX-cvdypvaf.js",
|
|
22
|
+
"studio-chunks/mermaid-GHXKKRXX-cvdypvaf.js.map": "studio-chunks/mermaid-GHXKKRXX-cvdypvaf.js.map",
|
|
23
|
+
"studio-chunks/studio-chat-workspace-ynxn5948.js": "studio-chunks/studio-chat-workspace-ynxn5948.js",
|
|
24
|
+
"studio-chunks/studio-chat-workspace-ynxn5948.js.map": "studio-chunks/studio-chat-workspace-ynxn5948.js.map"
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as Z,b as ie,e as a,f as r}from"./main-ddbzvt9n.js";import{$a as oe,Na as I,Qa as b,Ra as K,Ua as ne,lb as o,mb as ae,nb as x,vb as se,wb as re,xb as ce,yb as ue}from"./main-ae3gk7qq.js";import{Ab as k,Eb as Ne}from"./main-fnp26a36.js";var m={updateDisplayName:"updateDisplayName",revokePasskey:"revokePasskey",revokeSession:"revokeSession",revokeOtherSessions:"revokeOtherSessions",revokeAllSessions:"revokeAllSessions"};var u=k(Ne(),1);var y=k(I(),1);function C(e){return y.jsxDEV(b,{variant:e.tone==="danger"?"danger":e.tone==="primary"?"primary":"outline",type:e.type??"button",onClick:e.onClick,disabled:e.disabled,children:e.children},void 0,!1,void 0,this)}function N(e){return y.jsxDEV("div",{className:r("account-access-item",a.access),children:[y.jsxDEV(Z,{density:"comfortable",title:e.kind,description:e.description,metadata:e.metadata??[]},void 0,!1,void 0,this),e.action]},void 0,!0,void 0,this)}function T(e){return y.jsxDEV("section",{className:r("account-detail-section",a.section),children:[y.jsxDEV("div",{className:"account-section-label",children:[y.jsxDEV("h3",{className:r("",a.heading,x.section),children:e.title},void 0,!1,void 0,this),e.description?y.jsxDEV("p",{className:r("",a.description),children:e.description},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),y.jsxDEV("div",{className:r("people-stack",a.stack),children:e.children},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function G(e){return e.length===0?e:`${e.slice(0,1).toUpperCase()}${e.slice(1)}`}function Q(e){return e.split(/\s+/).filter(Boolean).slice(0,2).map((i)=>i.slice(0,1).toUpperCase()).join("")}function D(e,i){let c=i.indexOf("/");if(c<=0||c===i.length-1)return;let A=i.slice(0,c),p=i.slice(c+1);return`${e==="/"?"":e.replace(/\/+$/,"")}/entities/${encodeURIComponent(A)}/${encodeURIComponent(p)}`}function R(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}var ye=o.object({displayName:o.string(),role:o.enum(["admin","trusted","public"]),profileEntityId:o.string().optional(),passkeys:o.array(o.object({id:o.string(),transports:o.array(o.string()).optional(),credentialDeviceType:o.string().optional(),credentialBackedUp:o.boolean(),createdAt:o.number(),updatedAt:o.number()})),connectedChannels:o.array(o.object({type:o.string(),label:o.string(),verifiedAt:o.number()})),pluginSettings:o.array(o.object({id:o.string(),title:o.string(),description:o.string().optional(),configured:o.boolean(),revision:o.number().nullable(),fields:o.array(o.object({name:o.string(),label:o.string(),control:o.enum(["text","url","number","checkbox"]),secret:o.boolean(),required:o.boolean(),value:o.union([o.string(),o.number(),o.boolean(),o.null()]).optional(),set:o.boolean().optional()}))})),sessions:o.array(o.object({id:o.string(),current:o.boolean(),createdAt:o.number(),expiresAt:o.number()}))});function he(e){return ye.safeParse(e).success}var X=o.custom(he,{message:"Invalid account response"}),B=o.object({account:X}),ge=o.object({account:X.optional(),revoked:o.object({sessions:o.number(),refreshTokens:o.number().optional()}).optional(),signedOut:o.boolean().optional()});function be(e){return ge.safeParse(e).success}var ve=o.custom(be,{message:"Invalid account mutation response"}),Se=o.custom((e)=>{if(!R(e))return!1;return typeof e.challenge==="string"&&R(e.rp)&&R(e.user)&&Array.isArray(e.pubKeyCredParams)},{message:"Invalid passkey registration options"});class ee extends Error{status;constructor(e,i){super(e);this.name="AccountApiError",this.status=i}}async function O(e,i){let c;try{c=await e.json()}catch{c={}}if(!e.ok){let A=typeof c==="object"&&c!==null&&"error"in c&&typeof c.error==="string"?c.error:"Account request failed";throw new ee(A,e.status)}return i.parse(c)}function F(e){let i=e.replaceAll("-","+").replaceAll("_","/").padEnd(Math.ceil(e.length/4)*4,"=");return Uint8Array.from(atob(i),(c)=>c.charCodeAt(0)).buffer}function L(e){let i=new Uint8Array(e),c="";for(let A of i)c+=String.fromCharCode(A);return btoa(c).replaceAll("+","-").replaceAll("/","_").replace(/=+$/,"")}function ke(e){return{challenge:F(e.challenge),rp:e.rp,user:{...e.user,id:F(e.user.id)},pubKeyCredParams:e.pubKeyCredParams,...e.timeout!==void 0?{timeout:e.timeout}:{},...e.excludeCredentials?{excludeCredentials:e.excludeCredentials.map((i)=>({...i,id:F(i.id)}))}:{},...e.authenticatorSelection?{authenticatorSelection:e.authenticatorSelection}:{},...e.attestation?{attestation:e.attestation}:{},...e.extensions?{extensions:e.extensions}:{}}}var Ce=(e,i)=>fetch(e,i);class j{fetchFn;constructor(e={}){this.fetchFn=e.fetch??Ce}async fetchAccount(){return(await O(await this.fetchFn("/auth/account",{credentials:"same-origin",cache:"no-store"}),B)).account}async mutatePluginSettings(e){return(await O(await this.fetchFn("/auth/account/plugin-settings",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),B)).account}async mutateAccount(e){return O(await this.fetchFn("/auth/account/mutations",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),ve)}async registerPasskey(){let e=await O(await this.fetchFn("/auth/account/passkeys/options",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:"{}"}),Se),i=await navigator.credentials.create({publicKey:ke(e)});if(!(i instanceof PublicKeyCredential))throw Error("Passkey registration was cancelled");if(!(i.response instanceof AuthenticatorAttestationResponse))throw Error("Authenticator returned an invalid passkey response");let c=i.response,A={id:i.id,rawId:L(i.rawId),type:i.type,...i.authenticatorAttachment?{authenticatorAttachment:i.authenticatorAttachment}:{},clientExtensionResults:i.getClientExtensionResults(),response:{clientDataJSON:L(c.clientDataJSON),attestationObject:L(c.attestationObject),transports:typeof c.getTransports==="function"?c.getTransports():[]}};return(await O(await this.fetchFn("/auth/account/passkeys/verify",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)}),B.extend({verified:o.literal(!0)}))).account}}var n=k(I(),1);function H(e,i=!1){return new Date(i?e:e*1000).toISOString()}function te(e){return re(e,"Account request failed")}function ze({bootstrap:e,initialAccount:i,client:c}){let A=se(),p=u.useMemo(()=>c??new j({fetch:A.fetch}),[c,A]),[q,J]=u.useState(i),[Y,_]=u.useState(i?.displayName??e.displayName),[le,P]=u.useState(""),[V,E]=u.useState(!1),[f,z]=u.useState(!1),[S,v]=u.useState(null);u.useEffect(()=>{if(i)return;let t=!1;return p.fetchAccount().then((s)=>{if(t)return;J(s),_(s.displayName)}).catch((s)=>{if(t)return;E(!0),P(te(s))}),()=>{t=!0}},[p,i]);let h=u.useCallback(async(t,s,U)=>{z(!0),E(!1),P(t);try{let d=await U();if(d)J(d),_(d.displayName);P(s)}catch(d){E(!0),P(te(d))}finally{z(!1)}},[]),w=u.useCallback(async(t)=>(await p.mutateAccount(t)).account,[p]),de=(t)=>{t.preventDefault(),h("Saving…","Display name updated.",()=>w({action:m.updateDisplayName,confirmation:m.updateDisplayName,displayName:Y}))},pe=(t)=>{v({title:"Revoke this passkey?",message:"You will not be able to use this passkey again.",confirmLabel:"Revoke passkey",action:()=>{h("Revoking passkey…","Passkey revoked.",()=>w({action:m.revokePasskey,confirmation:m.revokePasskey,credentialId:t}))}})},me=(t)=>{v({title:"End this browser session?",message:"That browser will need a passkey to sign in again.",confirmLabel:"End session",action:()=>{h("Ending session…","Session ended.",()=>w({action:m.revokeSession,confirmation:m.revokeSession,sessionId:t}))}})},Ae=()=>{v({title:"End every other browser session?",message:"Your current browser will remain signed in.",confirmLabel:"End other sessions",action:()=>{h("Ending other sessions…","Other sessions ended.",()=>w({action:m.revokeOtherSessions,confirmation:m.revokeOtherSessions}))}})},fe=()=>{v({title:"Sign out everywhere?",message:"This ends every session, including this one. You will need your passkey to return.",confirmLabel:"Sign out everywhere",action:()=>{h("Signing out everywhere…","Signed out.",async()=>{await p.mutateAccount({action:m.revokeAllSessions,confirmation:m.revokeAllSessions}),window.location.assign(`/login?return_to=${encodeURIComponent(e.routePath)}`);return})}})},l=q,W=l?.role??e.role,M=l?.displayName??e.displayName;return n.jsxDEV(n.Fragment,{children:[n.jsxDEV("div",{className:r("account-shell",a.shell,ae.inset),children:[n.jsxDEV(ue,{model:{access:ce("public"),title:"Account",totals:[]}},void 0,!1,void 0,this),n.jsxDEV("p",{className:r(`account-status${V?" is-error":""}`,a.feedback,V&&a.feedbackError),role:"status","aria-live":"polite",children:le},void 0,!1,void 0,this),!l?n.jsxDEV("p",{className:r("account-loading",a.loading),children:"Reading your account…"},void 0,!1,void 0,this):n.jsxDEV("section",{className:"account-details","aria-live":"polite",children:n.jsxDEV("div",{className:r("account-detail-sections",a.grid),children:[n.jsxDEV("div",{className:r("",a.column),children:[n.jsxDEV(T,{title:"Profile",children:[n.jsxDEV("div",{className:r("account-identity",a.identity),children:n.jsxDEV("div",{className:r("people-detail-person",a.person),children:[n.jsxDEV("span",{className:r("people-avatar people-avatar--large",a.avatar),children:Q(M)},void 0,!1,void 0,this),n.jsxDEV("span",{className:r("",a.personCopy),children:[n.jsxDEV("span",{className:r("people-detail-name",a.name,x.secondaryDisplay),children:M},void 0,!1,void 0,this),n.jsxDEV("span",{"data-account-role":W,className:r("account-role",a.role),children:G(W)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),l.profileEntityId?n.jsxDEV(n.Fragment,{children:[n.jsxDEV("p",{className:r("account-profile-note",a.description),children:"Managed by the Anchor profile — your account name follows the published profile."},void 0,!1,void 0,this),n.jsxDEV(N,{kind:"Anchor profile",description:M,action:D(e.studioPath,l.profileEntityId)?n.jsxDEV(b,{asChild:!0,variant:"link",children:n.jsxDEV("a",{href:D(e.studioPath,l.profileEntityId),children:"Edit in Studio →"},void 0,!1,void 0,this)},void 0,!1,void 0,this):void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this):n.jsxDEV("form",{className:r("name-form",a.form),onSubmit:de,children:[n.jsxDEV("label",{className:r("",a.formLabel),htmlFor:"display-name",children:"Display name"},void 0,!1,void 0,this),n.jsxDEV(K,{id:"display-name",maxLength:200,autoComplete:"name",required:!0,value:Y,onChange:(t)=>_(t.target.value)},void 0,!1,void 0,this),n.jsxDEV(C,{type:"submit",disabled:f,children:"Save name"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),n.jsxDEV(T,{title:"Connected channels",children:l.connectedChannels.length===0?n.jsxDEV("p",{className:r("people-empty",a.empty),children:"No connected channels."},void 0,!1,void 0,this):l.connectedChannels.map((t)=>n.jsxDEV(N,{kind:t.type,description:t.label,metadata:[`Verified: ${H(t.verifiedAt,!0)}`]},`${t.type}:${t.label}`,!1,void 0,this))},void 0,!1,void 0,this),l.pluginSettings.map((t)=>n.jsxDEV(ie,{label:t.title,density:"comfortable",presentation:"disclosure",children:[n.jsxDEV("p",{className:r("account-settings-description",a.description),children:t.description??"Private settings for this account."},void 0,!1,void 0,this),n.jsxDEV("form",{className:r("name-form",a.form),onSubmit:(s)=>{s.preventDefault();let U=new FormData(s.currentTarget),d=Object.fromEntries(U.entries());for(let g of t.fields)if(g.control==="checkbox")d[g.name]=U.has(g.name);else if(g.control==="number"&&typeof d[g.name]==="string"&&d[g.name]!=="")d[g.name]=Number(d[g.name]);h(`Saving ${t.title}…`,`${t.title} updated.`,()=>p.mutatePluginSettings({action:"save",definitionId:t.id,values:d}))},children:[t.fields.map((s)=>n.jsxDEV("label",{htmlFor:`setting-${t.id}-${s.name}`,className:r("",a.field),children:[n.jsxDEV("span",{className:r("",a.formLabel),children:s.label},void 0,!1,void 0,this),s.control==="checkbox"?n.jsxDEV(ne,{id:`setting-${t.id}-${s.name}`,name:s.name,defaultChecked:s.value===!0},void 0,!1,void 0,this):n.jsxDEV(K,{id:`setting-${t.id}-${s.name}`,name:s.name,type:s.secret?"password":s.control==="url"?"url":s.control==="number"?"number":"text",required:s.required&&(!t.configured||s.secret)&&!s.set,defaultValue:s.secret?"":typeof s.value==="string"||typeof s.value==="number"?s.value:"",placeholder:s.secret&&s.set?"Stored — leave blank to keep":void 0,autoComplete:"off"},void 0,!1,void 0,this)]},s.name,!0,void 0,this)),n.jsxDEV("div",{className:r("people-inline-actions",a.inlineActions),children:[n.jsxDEV(C,{type:"submit",tone:"primary",disabled:f,children:"Save settings"},void 0,!1,void 0,this),t.configured?n.jsxDEV(b,{variant:"danger",disabled:f,type:"button",onClick:()=>v({title:`Remove ${t.title}?`,message:"The stored settings for this integration will be removed.",confirmLabel:"Remove settings",action:()=>{h(`Removing ${t.title}…`,`${t.title} removed.`,()=>p.mutatePluginSettings({action:"delete",definitionId:t.id}))}}),children:"Remove"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},`${t.id}:${t.revision??"unset"}`,!0,void 0,this)]},t.id,!0,void 0,this))]},void 0,!0,void 0,this),n.jsxDEV("div",{className:r("",a.column),children:[n.jsxDEV(T,{title:"Sign-in",description:"Passkeys used to access this account. Your final passkey is protected from revocation.",children:[l.passkeys.map((t)=>n.jsxDEV(N,{kind:t.credentialBackedUp?"Synced passkey":"Device passkey",metadata:[`Added: ${H(t.createdAt,!0)}`],action:l.passkeys.length>1?n.jsxDEV(b,{variant:"danger",disabled:f,type:"button",onClick:()=>pe(t.id),children:"Revoke"},void 0,!1,void 0,this):void 0},t.id,!1,void 0,this)),n.jsxDEV("div",{className:r("people-inline-actions",a.inlineActions),children:n.jsxDEV(b,{variant:"outline",disabled:f,type:"button",onClick:()=>void h("Waiting for your authenticator…","Passkey added.",p.registerPasskey),children:"Add passkey"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),n.jsxDEV(T,{title:"Signed-in sessions",children:l.sessions.map((t)=>n.jsxDEV(N,{kind:t.current?"This session":"Browser session",metadata:[`Started: ${H(t.createdAt)}`,...t.current?["Current browser"]:[]],action:!t.current?n.jsxDEV(b,{variant:"danger",disabled:f,type:"button",onClick:()=>me(t.id),children:"End"},void 0,!1,void 0,this):void 0},t.id,!1,void 0,this))},void 0,!1,void 0,this),n.jsxDEV("footer",{className:r("account-session-actions",a.footer),children:[n.jsxDEV("small",{children:"Access changes require an Admin."},void 0,!1,void 0,this),n.jsxDEV("div",{className:r("",a.actions),children:[n.jsxDEV(C,{disabled:f||l.sessions.every((t)=>t.current),onClick:Ae,children:"End other sessions"},void 0,!1,void 0,this),n.jsxDEV(C,{tone:"danger",disabled:f,onClick:fe,children:"Sign out everywhere"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),S&&n.jsxDEV(oe,{mark:"!",title:S.title,titleId:"account-confirmation-title",cancelLabel:"Cancel",confirmLabel:S.confirmLabel,confirmVariant:"danger",pending:f,onCancel:()=>v(null),onConfirm:()=>{let t=S.action;v(null),t()},children:n.jsxDEV("p",{children:S.message},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}export{ze as AccountApp};
|
|
1
|
+
import{a as Z,b as ie,e as a,f as r}from"./main-j8m9t6k5.js";import{Ab as ue,Pa as I,Sa as b,Ta as K,Wa as ne,bb as oe,nb as o,ob as ae,pb as x,xb as se,yb as re,zb as ce}from"./main-jyb12r9e.js";import{Cb as k,Gb as Ne}from"./main-kgem2nc7.js";var m={updateDisplayName:"updateDisplayName",revokePasskey:"revokePasskey",revokeSession:"revokeSession",revokeOtherSessions:"revokeOtherSessions",revokeAllSessions:"revokeAllSessions"};var u=k(Ne(),1);var y=k(I(),1);function C(e){return y.jsxDEV(b,{variant:e.tone==="danger"?"danger":e.tone==="primary"?"primary":"outline",type:e.type??"button",onClick:e.onClick,disabled:e.disabled,children:e.children},void 0,!1,void 0,this)}function N(e){return y.jsxDEV("div",{className:r("account-access-item",a.access),children:[y.jsxDEV(Z,{density:"comfortable",title:e.kind,description:e.description,metadata:e.metadata??[]},void 0,!1,void 0,this),e.action]},void 0,!0,void 0,this)}function T(e){return y.jsxDEV("section",{className:r("account-detail-section",a.section),children:[y.jsxDEV("div",{className:"account-section-label",children:[y.jsxDEV("h3",{className:r("",a.heading,x.section),children:e.title},void 0,!1,void 0,this),e.description?y.jsxDEV("p",{className:r("",a.description),children:e.description},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),y.jsxDEV("div",{className:r("people-stack",a.stack),children:e.children},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function G(e){return e.length===0?e:`${e.slice(0,1).toUpperCase()}${e.slice(1)}`}function Q(e){return e.split(/\s+/).filter(Boolean).slice(0,2).map((i)=>i.slice(0,1).toUpperCase()).join("")}function D(e,i){let c=i.indexOf("/");if(c<=0||c===i.length-1)return;let A=i.slice(0,c),p=i.slice(c+1);return`${e==="/"?"":e.replace(/\/+$/,"")}/entities/${encodeURIComponent(A)}/${encodeURIComponent(p)}`}function R(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}var ye=o.object({displayName:o.string(),role:o.enum(["admin","trusted","public"]),profileEntityId:o.string().optional(),passkeys:o.array(o.object({id:o.string(),transports:o.array(o.string()).optional(),credentialDeviceType:o.string().optional(),credentialBackedUp:o.boolean(),createdAt:o.number(),updatedAt:o.number()})),connectedChannels:o.array(o.object({type:o.string(),label:o.string(),verifiedAt:o.number()})),pluginSettings:o.array(o.object({id:o.string(),title:o.string(),description:o.string().optional(),configured:o.boolean(),revision:o.number().nullable(),fields:o.array(o.object({name:o.string(),label:o.string(),control:o.enum(["text","url","number","checkbox"]),secret:o.boolean(),required:o.boolean(),value:o.union([o.string(),o.number(),o.boolean(),o.null()]).optional(),set:o.boolean().optional()}))})),sessions:o.array(o.object({id:o.string(),current:o.boolean(),createdAt:o.number(),expiresAt:o.number()}))});function he(e){return ye.safeParse(e).success}var X=o.custom(he,{message:"Invalid account response"}),B=o.object({account:X}),ge=o.object({account:X.optional(),revoked:o.object({sessions:o.number(),refreshTokens:o.number().optional()}).optional(),signedOut:o.boolean().optional()});function be(e){return ge.safeParse(e).success}var ve=o.custom(be,{message:"Invalid account mutation response"}),Se=o.custom((e)=>{if(!R(e))return!1;return typeof e.challenge==="string"&&R(e.rp)&&R(e.user)&&Array.isArray(e.pubKeyCredParams)},{message:"Invalid passkey registration options"});class ee extends Error{status;constructor(e,i){super(e);this.name="AccountApiError",this.status=i}}async function O(e,i){let c;try{c=await e.json()}catch{c={}}if(!e.ok){let A=typeof c==="object"&&c!==null&&"error"in c&&typeof c.error==="string"?c.error:"Account request failed";throw new ee(A,e.status)}return i.parse(c)}function F(e){let i=e.replaceAll("-","+").replaceAll("_","/").padEnd(Math.ceil(e.length/4)*4,"=");return Uint8Array.from(atob(i),(c)=>c.charCodeAt(0)).buffer}function L(e){let i=new Uint8Array(e),c="";for(let A of i)c+=String.fromCharCode(A);return btoa(c).replaceAll("+","-").replaceAll("/","_").replace(/=+$/,"")}function ke(e){return{challenge:F(e.challenge),rp:e.rp,user:{...e.user,id:F(e.user.id)},pubKeyCredParams:e.pubKeyCredParams,...e.timeout!==void 0?{timeout:e.timeout}:{},...e.excludeCredentials?{excludeCredentials:e.excludeCredentials.map((i)=>({...i,id:F(i.id)}))}:{},...e.authenticatorSelection?{authenticatorSelection:e.authenticatorSelection}:{},...e.attestation?{attestation:e.attestation}:{},...e.extensions?{extensions:e.extensions}:{}}}var Ce=(e,i)=>fetch(e,i);class j{fetchFn;constructor(e={}){this.fetchFn=e.fetch??Ce}async fetchAccount(){return(await O(await this.fetchFn("/auth/account",{credentials:"same-origin",cache:"no-store"}),B)).account}async mutatePluginSettings(e){return(await O(await this.fetchFn("/auth/account/plugin-settings",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),B)).account}async mutateAccount(e){return O(await this.fetchFn("/auth/account/mutations",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),ve)}async registerPasskey(){let e=await O(await this.fetchFn("/auth/account/passkeys/options",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:"{}"}),Se),i=await navigator.credentials.create({publicKey:ke(e)});if(!(i instanceof PublicKeyCredential))throw Error("Passkey registration was cancelled");if(!(i.response instanceof AuthenticatorAttestationResponse))throw Error("Authenticator returned an invalid passkey response");let c=i.response,A={id:i.id,rawId:L(i.rawId),type:i.type,...i.authenticatorAttachment?{authenticatorAttachment:i.authenticatorAttachment}:{},clientExtensionResults:i.getClientExtensionResults(),response:{clientDataJSON:L(c.clientDataJSON),attestationObject:L(c.attestationObject),transports:typeof c.getTransports==="function"?c.getTransports():[]}};return(await O(await this.fetchFn("/auth/account/passkeys/verify",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)}),B.extend({verified:o.literal(!0)}))).account}}var n=k(I(),1);function H(e,i=!1){return new Date(i?e:e*1000).toISOString()}function te(e){return re(e,"Account request failed")}function ze({bootstrap:e,initialAccount:i,client:c}){let A=se(),p=u.useMemo(()=>c??new j({fetch:A.fetch}),[c,A]),[q,J]=u.useState(i),[Y,_]=u.useState(i?.displayName??e.displayName),[le,P]=u.useState(""),[V,E]=u.useState(!1),[f,z]=u.useState(!1),[S,v]=u.useState(null);u.useEffect(()=>{if(i)return;let t=!1;return p.fetchAccount().then((s)=>{if(t)return;J(s),_(s.displayName)}).catch((s)=>{if(t)return;E(!0),P(te(s))}),()=>{t=!0}},[p,i]);let h=u.useCallback(async(t,s,U)=>{z(!0),E(!1),P(t);try{let d=await U();if(d)J(d),_(d.displayName);P(s)}catch(d){E(!0),P(te(d))}finally{z(!1)}},[]),w=u.useCallback(async(t)=>(await p.mutateAccount(t)).account,[p]),de=(t)=>{t.preventDefault(),h("Saving…","Display name updated.",()=>w({action:m.updateDisplayName,confirmation:m.updateDisplayName,displayName:Y}))},pe=(t)=>{v({title:"Revoke this passkey?",message:"You will not be able to use this passkey again.",confirmLabel:"Revoke passkey",action:()=>{h("Revoking passkey…","Passkey revoked.",()=>w({action:m.revokePasskey,confirmation:m.revokePasskey,credentialId:t}))}})},me=(t)=>{v({title:"End this browser session?",message:"That browser will need a passkey to sign in again.",confirmLabel:"End session",action:()=>{h("Ending session…","Session ended.",()=>w({action:m.revokeSession,confirmation:m.revokeSession,sessionId:t}))}})},Ae=()=>{v({title:"End every other browser session?",message:"Your current browser will remain signed in.",confirmLabel:"End other sessions",action:()=>{h("Ending other sessions…","Other sessions ended.",()=>w({action:m.revokeOtherSessions,confirmation:m.revokeOtherSessions}))}})},fe=()=>{v({title:"Sign out everywhere?",message:"This ends every session, including this one. You will need your passkey to return.",confirmLabel:"Sign out everywhere",action:()=>{h("Signing out everywhere…","Signed out.",async()=>{await p.mutateAccount({action:m.revokeAllSessions,confirmation:m.revokeAllSessions}),window.location.assign(`/login?return_to=${encodeURIComponent(e.routePath)}`);return})}})},l=q,W=l?.role??e.role,M=l?.displayName??e.displayName;return n.jsxDEV(n.Fragment,{children:[n.jsxDEV("div",{className:r("account-shell",a.shell,ae.inset),children:[n.jsxDEV(ue,{model:{access:ce("public"),title:"Account",totals:[]}},void 0,!1,void 0,this),n.jsxDEV("p",{className:r(`account-status${V?" is-error":""}`,a.feedback,V&&a.feedbackError),role:"status","aria-live":"polite",children:le},void 0,!1,void 0,this),!l?n.jsxDEV("p",{className:r("account-loading",a.loading),children:"Reading your account…"},void 0,!1,void 0,this):n.jsxDEV("section",{className:"account-details","aria-live":"polite",children:n.jsxDEV("div",{className:r("account-detail-sections",a.grid),children:[n.jsxDEV("div",{className:r("",a.column),children:[n.jsxDEV(T,{title:"Profile",children:[n.jsxDEV("div",{className:r("account-identity",a.identity),children:n.jsxDEV("div",{className:r("people-detail-person",a.person),children:[n.jsxDEV("span",{className:r("people-avatar people-avatar--large",a.avatar),children:Q(M)},void 0,!1,void 0,this),n.jsxDEV("span",{className:r("",a.personCopy),children:[n.jsxDEV("span",{className:r("people-detail-name",a.name,x.secondaryDisplay),children:M},void 0,!1,void 0,this),n.jsxDEV("span",{"data-account-role":W,className:r("account-role",a.role),children:G(W)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),l.profileEntityId?n.jsxDEV(n.Fragment,{children:[n.jsxDEV("p",{className:r("account-profile-note",a.description),children:"Managed by the Anchor profile — your account name follows the published profile."},void 0,!1,void 0,this),n.jsxDEV(N,{kind:"Anchor profile",description:M,action:D(e.studioPath,l.profileEntityId)?n.jsxDEV(b,{asChild:!0,variant:"link",children:n.jsxDEV("a",{href:D(e.studioPath,l.profileEntityId),children:"Edit in Studio →"},void 0,!1,void 0,this)},void 0,!1,void 0,this):void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this):n.jsxDEV("form",{className:r("name-form",a.form),onSubmit:de,children:[n.jsxDEV("label",{className:r("",a.formLabel),htmlFor:"display-name",children:"Display name"},void 0,!1,void 0,this),n.jsxDEV(K,{id:"display-name",maxLength:200,autoComplete:"name",required:!0,value:Y,onChange:(t)=>_(t.target.value)},void 0,!1,void 0,this),n.jsxDEV(C,{type:"submit",disabled:f,children:"Save name"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),n.jsxDEV(T,{title:"Connected channels",children:l.connectedChannels.length===0?n.jsxDEV("p",{className:r("people-empty",a.empty),children:"No connected channels."},void 0,!1,void 0,this):l.connectedChannels.map((t)=>n.jsxDEV(N,{kind:t.type,description:t.label,metadata:[`Verified: ${H(t.verifiedAt,!0)}`]},`${t.type}:${t.label}`,!1,void 0,this))},void 0,!1,void 0,this),l.pluginSettings.map((t)=>n.jsxDEV(ie,{label:t.title,density:"comfortable",presentation:"disclosure",children:[n.jsxDEV("p",{className:r("account-settings-description",a.description),children:t.description??"Private settings for this account."},void 0,!1,void 0,this),n.jsxDEV("form",{className:r("name-form",a.form),onSubmit:(s)=>{s.preventDefault();let U=new FormData(s.currentTarget),d=Object.fromEntries(U.entries());for(let g of t.fields)if(g.control==="checkbox")d[g.name]=U.has(g.name);else if(g.control==="number"&&typeof d[g.name]==="string"&&d[g.name]!=="")d[g.name]=Number(d[g.name]);h(`Saving ${t.title}…`,`${t.title} updated.`,()=>p.mutatePluginSettings({action:"save",definitionId:t.id,values:d}))},children:[t.fields.map((s)=>n.jsxDEV("label",{htmlFor:`setting-${t.id}-${s.name}`,className:r("",a.field),children:[n.jsxDEV("span",{className:r("",a.formLabel),children:s.label},void 0,!1,void 0,this),s.control==="checkbox"?n.jsxDEV(ne,{id:`setting-${t.id}-${s.name}`,name:s.name,defaultChecked:s.value===!0},void 0,!1,void 0,this):n.jsxDEV(K,{id:`setting-${t.id}-${s.name}`,name:s.name,type:s.secret?"password":s.control==="url"?"url":s.control==="number"?"number":"text",required:s.required&&(!t.configured||s.secret)&&!s.set,defaultValue:s.secret?"":typeof s.value==="string"||typeof s.value==="number"?s.value:"",placeholder:s.secret&&s.set?"Stored — leave blank to keep":void 0,autoComplete:"off"},void 0,!1,void 0,this)]},s.name,!0,void 0,this)),n.jsxDEV("div",{className:r("people-inline-actions",a.inlineActions),children:[n.jsxDEV(C,{type:"submit",tone:"primary",disabled:f,children:"Save settings"},void 0,!1,void 0,this),t.configured?n.jsxDEV(b,{variant:"danger",disabled:f,type:"button",onClick:()=>v({title:`Remove ${t.title}?`,message:"The stored settings for this integration will be removed.",confirmLabel:"Remove settings",action:()=>{h(`Removing ${t.title}…`,`${t.title} removed.`,()=>p.mutatePluginSettings({action:"delete",definitionId:t.id}))}}),children:"Remove"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},`${t.id}:${t.revision??"unset"}`,!0,void 0,this)]},t.id,!0,void 0,this))]},void 0,!0,void 0,this),n.jsxDEV("div",{className:r("",a.column),children:[n.jsxDEV(T,{title:"Sign-in",description:"Passkeys used to access this account. Your final passkey is protected from revocation.",children:[l.passkeys.map((t)=>n.jsxDEV(N,{kind:t.credentialBackedUp?"Synced passkey":"Device passkey",metadata:[`Added: ${H(t.createdAt,!0)}`],action:l.passkeys.length>1?n.jsxDEV(b,{variant:"danger",disabled:f,type:"button",onClick:()=>pe(t.id),children:"Revoke"},void 0,!1,void 0,this):void 0},t.id,!1,void 0,this)),n.jsxDEV("div",{className:r("people-inline-actions",a.inlineActions),children:n.jsxDEV(b,{variant:"outline",disabled:f,type:"button",onClick:()=>void h("Waiting for your authenticator…","Passkey added.",p.registerPasskey),children:"Add passkey"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),n.jsxDEV(T,{title:"Signed-in sessions",children:l.sessions.map((t)=>n.jsxDEV(N,{kind:t.current?"This session":"Browser session",metadata:[`Started: ${H(t.createdAt)}`,...t.current?["Current browser"]:[]],action:!t.current?n.jsxDEV(b,{variant:"danger",disabled:f,type:"button",onClick:()=>me(t.id),children:"End"},void 0,!1,void 0,this):void 0},t.id,!1,void 0,this))},void 0,!1,void 0,this),n.jsxDEV("footer",{className:r("account-session-actions",a.footer),children:[n.jsxDEV("small",{children:"Access changes require an Admin."},void 0,!1,void 0,this),n.jsxDEV("div",{className:r("",a.actions),children:[n.jsxDEV(C,{disabled:f||l.sessions.every((t)=>t.current),onClick:Ae,children:"End other sessions"},void 0,!1,void 0,this),n.jsxDEV(C,{tone:"danger",disabled:f,onClick:fe,children:"Sign out everywhere"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),S&&n.jsxDEV(oe,{mark:"!",title:S.title,titleId:"account-confirmation-title",cancelLabel:"Cancel",confirmLabel:S.confirmLabel,confirmVariant:"danger",pending:f,onCancel:()=>v(null),onConfirm:()=>{let t=S.action;v(null),t()},children:n.jsxDEV("p",{children:S.message},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}export{ze as AccountApp};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=02A30C1B1986D4E164756E2164756E21
|
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
"import type {\n AuthAccountMutation,\n AuthAccountPluginSettingsMutation,\n AuthAccountSnapshot,\n} from \"@brains/auth-service/account-contracts\";\nimport { z } from \"@brains/utils/zod\";\nimport { isRecord } from \"@brains/utils/is-record\";\nimport type { FetchLike } from \"@brains/utils/fetch-like\";\n\nexport interface AccountMutationResponse {\n account?: AuthAccountSnapshot;\n revoked?: { sessions: number; refreshTokens?: number };\n signedOut?: boolean;\n}\n\ninterface RegistrationOptionsJSON {\n challenge: string;\n rp: PublicKeyCredentialRpEntity;\n user: Omit<PublicKeyCredentialUserEntity, \"id\"> & { id: string };\n pubKeyCredParams: PublicKeyCredentialParameters[];\n timeout?: number;\n excludeCredentials?: Array<\n Omit<PublicKeyCredentialDescriptor, \"id\"> & { id: string }\n >;\n authenticatorSelection?: AuthenticatorSelectionCriteria;\n attestation?: AttestationConveyancePreference;\n extensions?: AuthenticationExtensionsClientInputs;\n}\n\nconst rawAccountSnapshotSchema = z.object({\n displayName: z.string(),\n role: z.enum([\"admin\", \"trusted\", \"public\"]),\n profileEntityId: z.string().optional(),\n passkeys: z.array(\n z.object({\n id: z.string(),\n transports: z.array(z.string()).optional(),\n credentialDeviceType: z.string().optional(),\n credentialBackedUp: z.boolean(),\n createdAt: z.number(),\n updatedAt: z.number(),\n }),\n ),\n connectedChannels: z.array(\n z.object({\n type: z.string(),\n label: z.string(),\n verifiedAt: z.number(),\n }),\n ),\n pluginSettings: z.array(\n z.object({\n id: z.string(),\n title: z.string(),\n description: z.string().optional(),\n configured: z.boolean(),\n revision: z.number().nullable(),\n fields: z.array(\n z.object({\n name: z.string(),\n label: z.string(),\n control: z.enum([\"text\", \"url\", \"number\", \"checkbox\"]),\n secret: z.boolean(),\n required: z.boolean(),\n value: z\n .union([z.string(), z.number(), z.boolean(), z.null()])\n .optional(),\n set: z.boolean().optional(),\n }),\n ),\n }),\n ),\n sessions: z.array(\n z.object({\n id: z.string(),\n current: z.boolean(),\n createdAt: z.number(),\n expiresAt: z.number(),\n }),\n ),\n});\n\nfunction isAccountSnapshot(value: unknown): value is AuthAccountSnapshot {\n return rawAccountSnapshotSchema.safeParse(value).success;\n}\n\nconst accountSnapshotSchema = z.custom<AuthAccountSnapshot>(isAccountSnapshot, {\n message: \"Invalid account response\",\n});\nconst accountResponseSchema = z.object({\n account: accountSnapshotSchema,\n});\n\nconst rawAccountMutationResponseSchema = z.object({\n account: accountSnapshotSchema.optional(),\n revoked: z\n .object({\n sessions: z.number(),\n refreshTokens: z.number().optional(),\n })\n .optional(),\n signedOut: z.boolean().optional(),\n});\n\nfunction isAccountMutationResponse(\n value: unknown,\n): value is AccountMutationResponse {\n return rawAccountMutationResponseSchema.safeParse(value).success;\n}\n\nconst accountMutationResponseSchema = z.custom<AccountMutationResponse>(\n isAccountMutationResponse,\n { message: \"Invalid account mutation response\" },\n);\n\nconst registrationOptionsSchema = z.custom<RegistrationOptionsJSON>(\n (value) => {\n if (!isRecord(value)) return false;\n return (\n typeof value[\"challenge\"] === \"string\" &&\n isRecord(value[\"rp\"]) &&\n isRecord(value[\"user\"]) &&\n Array.isArray(value[\"pubKeyCredParams\"])\n );\n },\n { message: \"Invalid passkey registration options\" },\n);\n\nexport class AccountApiError extends Error {\n readonly status: number;\n\n constructor(message: string, status: number) {\n super(message);\n this.name = \"AccountApiError\";\n this.status = status;\n }\n}\n\nasync function parseResponse<T>(\n response: Response,\n schema: z.ZodType<T>,\n): Promise<T> {\n let body: unknown;\n try {\n body = await response.json();\n } catch {\n body = {};\n }\n if (!response.ok) {\n const error =\n typeof body === \"object\" &&\n body !== null &&\n \"error\" in body &&\n typeof body.error === \"string\"\n ? body.error\n : \"Account request failed\";\n throw new AccountApiError(error, response.status);\n }\n return schema.parse(body);\n}\n\nfunction decodeBase64Url(value: string): ArrayBuffer {\n const base64 = value\n .replaceAll(\"-\", \"+\")\n .replaceAll(\"_\", \"/\")\n .padEnd(Math.ceil(value.length / 4) * 4, \"=\");\n return Uint8Array.from(atob(base64), (character) => character.charCodeAt(0))\n .buffer;\n}\n\nfunction encodeBase64Url(value: ArrayBuffer): string {\n const bytes = new Uint8Array(value);\n let binary = \"\";\n for (const byte of bytes) binary += String.fromCharCode(byte);\n return btoa(binary)\n .replaceAll(\"+\", \"-\")\n .replaceAll(\"/\", \"_\")\n .replace(/=+$/, \"\");\n}\n\nfunction prepareCreationOptions(\n options: RegistrationOptionsJSON,\n): PublicKeyCredentialCreationOptions {\n return {\n challenge: decodeBase64Url(options.challenge),\n rp: options.rp,\n user: { ...options.user, id: decodeBase64Url(options.user.id) },\n pubKeyCredParams: options.pubKeyCredParams,\n ...(options.timeout !== undefined ? { timeout: options.timeout } : {}),\n ...(options.excludeCredentials\n ? {\n excludeCredentials: options.excludeCredentials.map((credential) => ({\n ...credential,\n id: decodeBase64Url(credential.id),\n })),\n }\n : {}),\n ...(options.authenticatorSelection\n ? { authenticatorSelection: options.authenticatorSelection }\n : {}),\n ...(options.attestation ? { attestation: options.attestation } : {}),\n ...(options.extensions ? { extensions: options.extensions } : {}),\n };\n}\n\n/**\n * The account endpoints, on an injected transport. Production leaves fetch\n * unset and the client uses the global; a test hands in a fake.\n */\nexport interface AccountClientDeps {\n fetch?: FetchLike | undefined;\n}\n\nconst globalFetch: FetchLike = (input, init) => fetch(input, init);\n\nexport class AccountClient {\n private readonly fetchFn: FetchLike;\n\n constructor(deps: AccountClientDeps = {}) {\n this.fetchFn = deps.fetch ?? globalFetch;\n }\n\n async fetchAccount(): Promise<AuthAccountSnapshot> {\n const response = await parseResponse(\n await this.fetchFn(\"/auth/account\", {\n credentials: \"same-origin\",\n cache: \"no-store\",\n }),\n accountResponseSchema,\n );\n return response.account;\n }\n\n async mutatePluginSettings(\n mutation: AuthAccountPluginSettingsMutation,\n ): Promise<AuthAccountSnapshot> {\n const response = await parseResponse(\n await this.fetchFn(\"/auth/account/plugin-settings\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(mutation),\n }),\n accountResponseSchema,\n );\n return response.account;\n }\n\n async mutateAccount(\n mutation: AuthAccountMutation,\n ): Promise<AccountMutationResponse> {\n return parseResponse(\n await this.fetchFn(\"/auth/account/mutations\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(mutation),\n }),\n accountMutationResponseSchema,\n );\n }\n\n async registerPasskey(): Promise<AuthAccountSnapshot> {\n const options = await parseResponse(\n await this.fetchFn(\"/auth/account/passkeys/options\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: { \"Content-Type\": \"application/json\" },\n body: \"{}\",\n }),\n registrationOptionsSchema,\n );\n const created = await navigator.credentials.create({\n publicKey: prepareCreationOptions(options),\n });\n if (!(created instanceof PublicKeyCredential)) {\n throw new Error(\"Passkey registration was cancelled\");\n }\n if (!(created.response instanceof AuthenticatorAttestationResponse)) {\n throw new Error(\"Authenticator returned an invalid passkey response\");\n }\n const response = created.response;\n const payload = {\n id: created.id,\n rawId: encodeBase64Url(created.rawId),\n type: created.type,\n ...(created.authenticatorAttachment\n ? { authenticatorAttachment: created.authenticatorAttachment }\n : {}),\n clientExtensionResults: created.getClientExtensionResults(),\n response: {\n clientDataJSON: encodeBase64Url(response.clientDataJSON),\n attestationObject: encodeBase64Url(response.attestationObject),\n transports:\n typeof response.getTransports === \"function\"\n ? response.getTransports()\n : [],\n },\n };\n const result = await parseResponse(\n await this.fetchFn(\"/auth/account/passkeys/verify\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n }),\n accountResponseSchema.extend({ verified: z.literal(true) }),\n );\n return result.account;\n }\n}\n"
|
|
11
11
|
],
|
|
12
12
|
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
13
|
+
"debugId": "02A30C1B1986D4E164756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Ga as n,Ia as g,Ja as c}from"./main-19ek6kcp.js";import{Cb as m,Gb as b,Hb as k}from"./main-kgem2nc7.js";var e=m(b(),1),u=m(k(),1),C=({code:s,language:t,raw:r,className:h,startLine:f,lineNumbers:d,...p})=>{let{shikiTheme:l}=e.useContext(c),a=g(),[N,i]=e.useState(r);return e.useEffect(()=>{if(!a){i(r);return}let o=a.highlight({code:s,language:t,themes:l},(x)=>{i(x)});o&&i(o)},[s,t,l,a,r]),u.jsx(n,{className:h,language:t,lineNumbers:d,result:N,startLine:f,...p})};export{C as HighlightedCodeBlockBody};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=9859DA329E0CDB2D64756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"\"use client\";\nimport {A,f,c}from'./chunk-BO2N2NFS.js';import {useContext,useState,useEffect}from'react';import {jsx}from'react/jsx-runtime';var R=({code:s,language:e,raw:t,className:h,startLine:d,lineNumbers:m,...p})=>{let{shikiTheme:l}=useContext(A),o=f(),[a,i]=useState(t);return useEffect(()=>{if(!o){i(t);return}let r=o.highlight({code:s,language:e,themes:l},c=>{i(c);});r&&i(r);},[s,e,l,o,t]),jsx(c,{className:h,language:e,lineNumbers:m,result:a,startLine:d,...p})};export{R as HighlightedCodeBlockBody};"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "gHACwC,eAAkD,WAAwC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,KAAK,KAAK,CAAC,IAAI,WAAW,GAAG,aAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,WAAS,CAAC,EAAE,OAAO,YAAU,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,KAAG,CAAC,EAAE,CAAC,EAAG,EAAE,GAAG,EAAE,CAAC,GAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,KAAK,CAAC,CAAC",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "9859DA329E0CDB2D64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|